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).
in
(string vector, required)timeSteps
(string, optional)waveSpeeds
(string, optional)courantCondition
(float, required)restrictions
(string vector, required)TimeStepRestriction
(block)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>