EarthBox.ModelDataContainer.TimestepContainer.Timestep — Type
Timestep <: CollectionContainerData structure containing parameter objects associated with model time stepping.
Fields
parameters::Parameters: Parameter groups for model time stepping
EarthBox.ModelDataContainer.TimestepContainer.ParameterCollection.Parameters — Type
Parameters <: AbstractParameterCollectionCollection of timestep parameters.
Fields
main_time_loop::MainTimeLoop: Parameters used for main model time loopthermal_loop::ThermalLoop: Parameters used for adaptive time stepping loop for heat equationoutput_steps::OutputSteps: Parameters used for output stepssingle_increase::SingleIncrease: Parameters used for modifying the time step by a single stepmultiple_increase::MultipleIncrease: Parameters used for modifying the time step over multiple stepsboundary_displacement_stopping::BoundaryDisplacementStopping: Parameters used for stopping the model when the displacement or extensional strain reaches a specified value
EarthBox.ModelDataContainer.TimestepContainer.ParameterCollection.MainTimeLoopGroup.MainTimeLoop — Type
MainTimeLoop <: AbstractParameterGroupParameter group for main time loop configuration.
Fields
model_duration_myr::ParameterFloat: Model duration in Myr used to estimate the maximum number of time steps for extensional model with symmetric extension. If adaptive time stepping is used during the simulation due to displacements that exceed the user specified cell fraction then the actual model duration may be shorter thanmodel_duration_myr. A buffer time of 3.0 Myr is added to the model duration when calculating the maximum number of time steps assuming that there will be some time step reduction. However, the user may need to increase themodel_duration_myrto achieve the desired model duration. If you want full control over the number of time steps then setntimestep_maxandtimestep_viscoelasticdirectly when usingrun_time_stepsfunction.ntimestep_max::ParameterInt: Maximum number of model time stepstimesum::ParameterFloat: Total model time in seconds in secondsntimestep::ParameterInt: Model time step countertimestep_viscoelastic::ParameterFloat: The viscoelastic time step in seconds used in the viscoelastic formulation of the Stokes-continuity equations. The main model time step (timestep) is set equal to the viscoelastic time step at the start of each time loop iteration prior to defining the right-hand side terms that include the time-dependent viscoelastic factor. The viscoelastic time step may be modified due to changes in boundary conditions depending on user defined optionstimestep_viscoelastic_step1::ParameterFloat: The viscoelastic time step in seconds for the first velocity step in secondstimestep_viscoelastic_step2::ParameterFloat: The viscoelastic time step in seconds for the second velocity step in secondstimestep::ParameterFloat: Main model time step in seconds used for forecasting viscoelastic stress, solving heat conduction equation, advecting markers and advancing model time. The main model time step may be reduced after solving the Stokes-continuity equations to ensure that markers do not advect beyond a user defined limit. The model time step is reset to the viscoelastic time step at the start of each time loop iteration. The heat equation loop may use time steps that are smaller than the main model time step if temperature changes are too largeiupdate_timestep::ParameterInt: 0 = off; 1 = update timestep using maximum displacementobj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of parameter objects
Nested Dot Access
model_duration_myr = model.timestep.parameters.main_time_loop.model_duration_myr.valuentimestep_max = model.timestep.parameters.main_time_loop.ntimestep_max.valuetimesum = model.timestep.parameters.main_time_loop.timesum.valuentimestep = model.timestep.parameters.main_time_loop.ntimestep.valuetimestep_viscoelastic = model.timestep.parameters.main_time_loop.timestep_viscoelastic.valuetimestep_viscoelastic_step1 = model.timestep.parameters.main_time_loop.timestep_viscoelastic_step1.valuetimestep_viscoelastic_step2 = model.timestep.parameters.main_time_loop.timestep_viscoelastic_step2.valuetimestep = model.timestep.parameters.main_time_loop.timestep.valueiupdate_timestep = model.timestep.parameters.main_time_loop.iupdate_timestep.value
Constructor
MainTimeLoop()Initializes main time loop parameters with default values. Main time step is set to 10000.0 s.
EarthBox.ModelDataContainer.TimestepContainer.ParameterCollection.ThermalLoopGroup.ThermalLoop — Type
ThermalLoop <: AbstractParameterGroupParameter group for thermal loop configuration.
Fields
timestep_heat::ParameterFloat: Thermal time step in seconds used in adaptive heat solver looptimestep_sum::ParameterFloat: Total thermal loop time in secondsobj_list::Vector{ParameterFloat}: List of numerical parameter objects
Nested Dot Access
timestep_heat = model.timestep.parameters.thermal_loop.timestep_heat.valuetimestep_sum = model.timestep.parameters.thermal_loop.timestep_sum.value
Constructor
ThermalLoop()Initializes thermal loop parameters with zero values for thermal time step and total time.
EarthBox.ModelDataContainer.TimestepContainer.ParameterCollection.OutputStepsGroup.OutputSteps — Type
OutputSteps <: AbstractParameterGroupParameter group for output step configuration.
Fields
timestep_out::ParameterFloat: Time step for outputnskip::ParameterInt: Number of time steps to skip before output is generated. This is calculated asfloor(Int, timestep_out/timestep_viscoelastic)icount_output::ParameterInt: Output loop counter used to track time steps between outputs. An output event is triggered when this counter is equal to nskip, which involves setting the output counter to zero. This counter is incremented by one at the end of each time stepnoutput::ParameterInt: Number of outputs generated during a model runobj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of numerical parameter objects
Nested Dot Access
timestep_out = model.timestep.parameters.output_steps.timestep_out.valuenskip = model.timestep.parameters.output_steps.nskip.valueicount_output = model.timestep.parameters.output_steps.icount_output.valuenoutput = model.timestep.parameters.output_steps.noutput.value
Constructor
OutputSteps()Initializes output step parameters with default values. Output time step is set to 1000.0 s.
EarthBox.ModelDataContainer.TimestepContainer.ParameterCollection.SingleIncreaseGroup.SingleIncrease — Type
SingleIncrease <: AbstractParameterGroupParameter group for single time step increase.
Fields
iuse_single_timestep_increase::ParameterInt: Flag to use single timestep increase: 0 = off; 1 = on. When active, the time step will be increased once during the simulation at the time step specified by ntime_increasentime_increase::ParameterInt: Time step number at which to increase the timestep. This is only used ifiuse_single_timestep_increaseis 1obj_list::Vector{ParameterInt}: List of parameter objects
Nested Dot Access
iuse_single_timestep_increase = model.timestep.parameters.single_increase.iuse_single_timestep_increase.valuentime_increase = model.timestep.parameters.single_increase.ntime_increase.value
Constructor
SingleIncrease()Initializes single time step increase parameters. The increase is set to occur at time step 100.
EarthBox.ModelDataContainer.TimestepContainer.ParameterCollection.MultipleIncreaseGroup.MultipleIncrease — Type
MultipleIncrease <: AbstractParameterGroupParameter group for multiple time step increases.
Fields
iuse_multiple_timestep_increase::ParameterInt: Flag to use multiple viscoelastic time step increases: 0 = off; 1 = on. When active the viscoelastic time step will be increased multiple times during the simulation at the time steps specified byntime_increase_1,ntime_increase_2, etcntime_increase_1::ParameterInt: First time step number at which to increase the timestepntime_increase_2::ParameterInt: Second time step number at which to increase the timestepntime_increase_3::ParameterInt: Third time step number at which to increase the timestepntime_increase_4::ParameterInt: Fourth time step number at which to increase the timesteptime_increase_factor::ParameterFloat: Multiplication factor used to increase the viscoelastic time stepcell_displ_factor::ParameterFloat: Factor used to adjust the maximum allowed cell displacement fraction during multiple viscoelastic time step increasesobj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of numerical parameter objects
Nested Dot Access
iuse_multiple_timestep_increase = model.timestep.parameters.multiple_increase.iuse_multiple_timestep_increase.valuentime_increase_1 = model.timestep.parameters.multiple_increase.ntime_increase_1.valuentime_increase_2 = model.timestep.parameters.multiple_increase.ntime_increase_2.valuentime_increase_3 = model.timestep.parameters.multiple_increase.ntime_increase_3.valuentime_increase_4 = model.timestep.parameters.multiple_increase.ntime_increase_4.valuetime_increase_factor = model.timestep.parameters.multiple_increase.time_increase_factor.valuecell_displ_factor = model.timestep.parameters.multiple_increase.cell_displ_factor.value
Constructor
MultipleIncrease()Initializes multiple time step increase parameters. Time increase factor and cell displacement factor are both set to 2.0.
EarthBox.ModelDataContainer.TimestepContainer.ParameterCollection.BoundaryDisplacementStoppingGroup.BoundaryDisplacementStopping — Type
BoundaryDisplacementStopping <: AbstractParameterGroupParameter group for stopping criteria for boundary displacement or extensional strain.
Fields
iuse_boundary_displacement::ParameterInt: Flag to use boundary displacement stopping: 0 = off; 1 = on. When active, the model will stop when the boundary displacement reaches the limit specified bydispl_limitdispl_limit::ParameterFloat: Displacement limit for stopping the model in metersiuse_extensional_strain::ParameterInt: Flag to use extensional strain stopping: 0 = off; 1 = on. When active, the model will stop when the extensional strain reaches the limit specified bystrain_limitstrain_limit::ParameterFloat: Strain limit for stopping the modelobj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of numerical parameter objects
Nested Dot Access
iuse_boundary_displacement = model.timestep.parameters.boundary_displacement_stopping.iuse_boundary_displacement.valuedispl_limit = model.timestep.parameters.boundary_displacement_stopping.displ_limit.valueiuse_extensional_strain = model.timestep.parameters.boundary_displacement_stopping.iuse_extensional_strain.valuestrain_limit = model.timestep.parameters.boundary_displacement_stopping.strain_limit.value
Constructor
BoundaryDisplacementStopping()