timeStepRestrictionUpdater (1d, 2d, 3d)

The timeStepRestrictionUpdater computes the minimum time step and fastest wave speed based on specified restrictions. This data can both be used to determine the time step that the simulation will be advanced over and (optionally) store this data in a dynVector that can be passed to, e.g Time Integrator or classicMusclUpdater (1d, 2d, 3d).

Data

in (string vector, required)
Inputs 1 to N are nodalArrays which will be supplied to the time step restriction. Defined by the choice of Time Step Restriction.
timeSteps (string, optional)
At most one dynVector that will contain the time step associated with each of the Time Step Restriction blocks. The dynVector must have the same number of components as the number of Time Step Restriction blocks.
waveSpeeds (string, optional)
At most one dynVector that will contain the fastest wave speed associated with each of the Time Step Restriction blocks. The dynVector must have the same number of components as the number of Time Step Restriction blocks.

Parameters

courantCondition (float, required)
The CFL condition to apply to the time-step restrictions computed by this updater.
restrictions (string vector, required)
Names of 1 to N time step restrictions to compute using this updater. The names must correspond to the names of Time Step Restriction subblocks specified in this updater.

Sub-Blocks

TimeStepRestriction (block)
The Time Step Restriction that defines the time-step and fastest wave speed to be computed by this updater. At least one Time Step Restriction must be specifed and This updater requires at least one TimeStepRestriction block. Each of the block names used should be put into the restrictions list.

Example

The following block demonstrates the twoTemperatureMhdDednerEqn used in combination with timeStepRestrictionUpdater (1d, 2d, 3d), hyperbolic (1d, 2d, 3d) and quadratic (1d, 2d, 3d) to compute \(dt_{\mathrm{min}}\), \(dt_{\mathrm{diff}}\) and \(c_{\mathrm{fast}}\) for resistive two-temperature MHD:

 <Updater getHypDT>
  kind = timeStepRestrictionUpdater1d
   in = [q,electricField,current,chargeState,resistivity]
  onGrid = domain
  waveSpeeds = [waveSpeed]
  timeSteps = [diffDT]
  restrictions = [idealMhd,quadratic]
  courantCondition = CFL

  <TimeStepRestriction idealMhd>
    kind = hyperbolic1d
    cfl = CFL
    model = twoTemperatureMhdDednerEqn
    gasGamma = GAS_GAMMA
    electronGamma = $ELECTRON_GAMMA$
    correctNans = true
    correct = true
    correctNans = true
    basementDensity = $BASEMENT_DENSITY$
    basementPressure = $BASEMENT_PRESSURE$
    externalEfield = "electricField"
    currentVector = "current"
    storeTimeStep = False
  </TimeStepRestriction>

  <TimeStepRestriction quadratic>
    kind = quadratic1d
    in = [resistivity]
    cfl = CFL
  </TimeStepRestriction>
</Updater>