The multiUpdater references several updaters and uses them to perform an explicit time-integration. The multiUpdater typically used to advance systems of the form:
Time integration schemes currently supported by multiUpdater include 1st, 2nd and 3rd order Runge-Kutta, subcycling and 1st, 2nd order accurate Super Time Step methods.
The multiUpdater updater accepts the parameters required by Updater.
The operations performed by the multiUpdater are specified using the UpdateStep and UpdateSequence pattern used for the main USim input file. Note that only the loop attribute for the UpdateSequence is used by the multiUpdater and that the attribute “operation = integrate” must be specified in the final UpdateStep in the loop in order for USim to perform the time integration.
The time integration scheme used by the multiUpdater is specified by the use of a Time Integrator block.
in
(string vector, required)out
(string vector, required)TimeIntegrator
Time Integrator Currently only one time integration scheme can be specified.
Time integration schemes currently supported by multiUpdater include 1st, 2nd and 3rd order Runge-Kutta, subcycling and 1st, 2nd order accurate Super Time Step methods.
UpdateSequence
UpdateStep
The code block below demonstrates the use of a multiUpdater to solve a multi-species fluid problem with collision operators and boundary conditions:
<Updater rkUpdater>
kind = multiUpdater1d
onGrid = domain
in = [q, q1, q2, q3]
out = [qnew, qnew1, qnew2, qnew3]
<TimeIntegrator rkIntegrator>
kind = rungeKutta1d
ongrid = domain
scheme = third
</TimeIntegrator>
<UpdateSequence sequence>
loop = [boundaries,hyper]
</UpdateSequence>
<UpdateStep boundaries>
updaters = [openBoundaries, openBoundaries1, openBoundaries2, openBoundaries3]
syncVars = [q, q1, q2, q3]
</UpdateStep>
<UpdateStep hyper>
operation = "integrate"
updaters = [\
computeN1, computeN2, computeN3, \
computeT1, computeT2, computeT3, \
computeV1, computeV2, computeV3, \
collisionFrequency, \
momentumSource, energySource,\
hyper, hyper1, hyper2, hyper3, \
addThermalRelaxation1, addThermalRelaxation2, addThermalRelaxation3 \
]
syncVars = [qnew, qnew1, qnew2, qnew3]
</UpdateStep>
</Updater>