Timestep

EarthBox.ModelDataContainer.TimestepContainer.ParameterCollection.ParametersType
Parameters <: AbstractParameterCollection

Collection of timestep parameters.

Fields

  • main_time_loop::MainTimeLoop: Parameters used for main model time loop
  • thermal_loop::ThermalLoop: Parameters used for adaptive time stepping loop for heat equation
  • output_steps::OutputSteps: Parameters used for output steps
  • single_increase::SingleIncrease: Parameters used for modifying the time step by a single step
  • multiple_increase::MultipleIncrease: Parameters used for modifying the time step over multiple steps
  • boundary_displacement_stopping::BoundaryDisplacementStopping: Parameters used for stopping the model when the displacement or extensional strain reaches a specified value
source
EarthBox.ModelDataContainer.TimestepContainer.ParameterCollection.MainTimeLoopGroup.MainTimeLoopType
MainTimeLoop <: AbstractParameterGroup

Parameter 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 than model_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 the model_duration_myr to achieve the desired model duration. If you want full control over the number of time steps then set ntimestep_max and timestep_viscoelastic directly when using run_time_steps function.
  • ntimestep_max::ParameterInt: Maximum number of model time steps
  • timesum::ParameterFloat: Total model time in seconds in seconds
  • ntimestep::ParameterInt: Model time step counter
  • timestep_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 options
  • timestep_viscoelastic_step1::ParameterFloat: The viscoelastic time step in seconds for the first velocity step in seconds
  • timestep_viscoelastic_step2::ParameterFloat: The viscoelastic time step in seconds for the second velocity step in seconds
  • timestep::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 large
  • iupdate_timestep::ParameterInt: 0 = off; 1 = update timestep using maximum displacement
  • obj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of parameter objects

Nested Dot Access

  • model_duration_myr = model.timestep.parameters.main_time_loop.model_duration_myr.value
  • ntimestep_max = model.timestep.parameters.main_time_loop.ntimestep_max.value
  • timesum = model.timestep.parameters.main_time_loop.timesum.value
  • ntimestep = model.timestep.parameters.main_time_loop.ntimestep.value
  • timestep_viscoelastic = model.timestep.parameters.main_time_loop.timestep_viscoelastic.value
  • timestep_viscoelastic_step1 = model.timestep.parameters.main_time_loop.timestep_viscoelastic_step1.value
  • timestep_viscoelastic_step2 = model.timestep.parameters.main_time_loop.timestep_viscoelastic_step2.value
  • timestep = model.timestep.parameters.main_time_loop.timestep.value
  • iupdate_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.

source
EarthBox.ModelDataContainer.TimestepContainer.ParameterCollection.ThermalLoopGroup.ThermalLoopType
ThermalLoop <: AbstractParameterGroup

Parameter group for thermal loop configuration.

Fields

  • timestep_heat::ParameterFloat: Thermal time step in seconds used in adaptive heat solver loop
  • timestep_sum::ParameterFloat: Total thermal loop time in seconds
  • obj_list::Vector{ParameterFloat}: List of numerical parameter objects

Nested Dot Access

  • timestep_heat = model.timestep.parameters.thermal_loop.timestep_heat.value
  • timestep_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.

source
EarthBox.ModelDataContainer.TimestepContainer.ParameterCollection.OutputStepsGroup.OutputStepsType
OutputSteps <: AbstractParameterGroup

Parameter group for output step configuration.

Fields

  • timestep_out::ParameterFloat: Time step for output
  • nskip::ParameterInt: Number of time steps to skip before output is generated. This is calculated as floor(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 step
  • noutput::ParameterInt: Number of outputs generated during a model run
  • obj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of numerical parameter objects

Nested Dot Access

  • timestep_out = model.timestep.parameters.output_steps.timestep_out.value
  • nskip = model.timestep.parameters.output_steps.nskip.value
  • icount_output = model.timestep.parameters.output_steps.icount_output.value
  • noutput = 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.

source
EarthBox.ModelDataContainer.TimestepContainer.ParameterCollection.SingleIncreaseGroup.SingleIncreaseType
SingleIncrease <: AbstractParameterGroup

Parameter 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_increase
  • ntime_increase::ParameterInt: Time step number at which to increase the timestep. This is only used if iuse_single_timestep_increase is 1
  • obj_list::Vector{ParameterInt}: List of parameter objects

Nested Dot Access

  • iuse_single_timestep_increase = model.timestep.parameters.single_increase.iuse_single_timestep_increase.value
  • ntime_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.

source
EarthBox.ModelDataContainer.TimestepContainer.ParameterCollection.MultipleIncreaseGroup.MultipleIncreaseType
MultipleIncrease <: AbstractParameterGroup

Parameter 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 by ntime_increase_1, ntime_increase_2, etc
  • ntime_increase_1::ParameterInt: First time step number at which to increase the timestep
  • ntime_increase_2::ParameterInt: Second time step number at which to increase the timestep
  • ntime_increase_3::ParameterInt: Third time step number at which to increase the timestep
  • ntime_increase_4::ParameterInt: Fourth time step number at which to increase the timestep
  • time_increase_factor::ParameterFloat: Multiplication factor used to increase the viscoelastic time step
  • cell_displ_factor::ParameterFloat: Factor used to adjust the maximum allowed cell displacement fraction during multiple viscoelastic time step increases
  • obj_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.value
  • ntime_increase_1 = model.timestep.parameters.multiple_increase.ntime_increase_1.value
  • ntime_increase_2 = model.timestep.parameters.multiple_increase.ntime_increase_2.value
  • ntime_increase_3 = model.timestep.parameters.multiple_increase.ntime_increase_3.value
  • ntime_increase_4 = model.timestep.parameters.multiple_increase.ntime_increase_4.value
  • time_increase_factor = model.timestep.parameters.multiple_increase.time_increase_factor.value
  • cell_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.

source
EarthBox.ModelDataContainer.TimestepContainer.ParameterCollection.BoundaryDisplacementStoppingGroup.BoundaryDisplacementStoppingType
BoundaryDisplacementStopping <: AbstractParameterGroup

Parameter 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 by displ_limit
  • displ_limit::ParameterFloat: Displacement limit for stopping the model in meters
  • iuse_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 by strain_limit
  • strain_limit::ParameterFloat: Strain limit for stopping the model
  • obj_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.value
  • displ_limit = model.timestep.parameters.boundary_displacement_stopping.displ_limit.value
  • iuse_extensional_strain = model.timestep.parameters.boundary_displacement_stopping.iuse_extensional_strain.value
  • strain_limit = model.timestep.parameters.boundary_displacement_stopping.strain_limit.value

Constructor

BoundaryDisplacementStopping()
source