EarthBox.BoundaryConditions.VelocityStep.initialize!Function
initialize!(model::ModelData; kwargs...)::Nothing

Initialize velocity stepping model. Activating velocity stepping requires setting the iuse_velocity_step parameter to 1. At the velocity step time the lateral velocity boundary conditions are multiplied by the velocity_step_factor parameter. This is accompanied by a multiplying the viscoelastic time step (timestep_viscoelastic) by the timestep_adjustment_factor used to maintain stability during an increase in velocity. There are two available velocity steps. The second velocity step is ignored if associated parameters are not provided.

For certain cases involving symmetric extensional boundary conditions with two velocity stepping events, the time step parameters, velocity stepping factors and time step adjustment factors are calculated automatically. See EarthBox.run_time_steps for more details. For these cases, ensure that velocity stepping factors and time step adjustment factors are not overridden by providing values for the velocity_step_factor, velocity_second_step_factor, timestep_adjustment_factor and timestep_second_adjustment_factor parameters. The integer flag iuse_velocity_step should be still be set to 1 to activate velocity stepping and the first and second velocity step times (velocity_step_time and velocity_second_step_time) should be provided.

Arguments

  • model::ModelData: Model data object containing model parameters and arrays.

Optional Keyword Arguments

  • iuse_velocity_step::Int64:
    • Increase/decrease full extension velocity by factor at specified time
  • velocity_step_factor::Float64:
    • Factor used to increase/decrease velocity at specified time
  • velocity_second_step_factor::Float64:
    • Factor used to increase/decrease velocity at specified time
  • timestep_adjustment_factor::Float64:
    • Factor used to adjust time step when velocity is increased/decreased
  • timestep_second_adjustment_factor::Float64:
    • Factor used to adjust time step when velocity is increased/decreased
  • velocity_step_time::Float64:
    • Time of velocity increase/decrease in Myr
  • velocity_second_step_time::Float64:
    • Time of second velocity increase/decrease in Myr

Returns

  • Nothing

Example: Single velocity step

using EarthBox
eb = EarthBoxState(
    xnum = 100, ynum = 100, 
    xsize = 1000000.0, ysize = 1000000.0, 
    dx_marker = 10000.0, dy_marker = 10000.0
)
model = eb.model_manager.model
BoundaryConditions.VelocityStep.initialize!(
    model, iuse_velocity_step = 1, velocity_step_factor = 2.0, 
    timestep_adjustment_factor = 0.5, velocity_step_time = 10.0
)
source