ExplicitTVDRK2

Explicit TVD (total-variation-diminishing) second-order Runge-Kutta time integration method.

Description

The method Gottlieb and Shu (1998) consists of two stages:

Stage 1.

RNL=M(U(1)Un)/ΔtF(tn,Un)R_{NL} = M(U^{(1)}-U^n)/\Delta t - F(t^n,U^n)t(1)=tn+Δt=tn+1t^{(1)} = t^{n} + \Delta t = t^{n+1}

Stage 2.

RNL=M(2U(2)U(1)Un)/(2Δt)(1/2)F(t(1),U(1))R_{NL} = M(2U^{(2)}-U^{(1)}-U^n)/(2\Delta t) - (1/2)F(t^{(1)},U^{(1)})Un+1=U(2)U^{n+1} = U^{(2)}

The method requires two mass matrix (linear) system solves per timestep. Although strictly speaking these are "two stage" methods, we treat the "update" step as a third stage, since in finite element analysis the update step requires a mass matrix solve.

warningwarning

To use the explicit TimeIntegrators derived from this method, you must generally add "implicit=false" to the Kernels, Materials, etc. used in your simulation, so that MOOSE evaluates them correctly! An important exception are TimeDerivative kernels, which should never be marked "implicit=false".

Input Parameters

  • variablesA subset of the variables that this time integrator should be applied to

    C++ Type:std::vector<VariableName>

    Unit:(no unit assumed)

    Controllable:No

    Description:A subset of the variables that this time integrator should be applied to

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Unit:(no unit assumed)

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Set the enabled status of the MooseObject.

Advanced Parameters

References

  1. S. Gottlieb and C. W. Shu. Total variation diminishing runge-kutta schemes. Mathematics of computation of the American Mathematical Society, 67(221):73–85, 1998.[BibTeX]