Abstract interface for one-step multi-stage method parameters in Shu/Osher form.
More...
template<class Scalar>
class Dumux::Experimental::MultiStageMethod< Scalar >
This implementation is based on the Shu/Osher form from: Chi W. Shu and Stanley Osher. Efficient implementation of essentially non- oscillatory shock-capturing schemes. J. Comput. Phys., 77:439–471, 1988. https://doi.org/10.1016/0021-9991(88)90177-5. To this end Eq. (2.12) is extended for implicit schemes.
We consider the general PDE form
\[
\begin{equation}
\frac{\partial M(x, t)}{\partial t} - R(x, t) = 0,
\end{equation}
\]
where \( M(x, t)\) is the temporal operator/residual in terms of the solution \( x \), and \( R(x, t)\) is the discrete spatial operator/residual. \( M(x)\) usually corresponds to the conserved quantity (e.g. mass), and \( R(x)\) contains the rest of the residual. We can then construct \( m \)-stage time discretization methods. Integrating from time \( t^n\) to \( t^{n+1}\) with time step size \( \Delta t^n\), we solve:
\[
\begin{aligned}
x^{(0)} &= u^n\\
\sum_{k=0}^i \left[ \alpha_{ik} M\left(x^{(k)}, t^n + d_k\Delta t^n\right)
+ \beta_{ik}\Delta t^n R \left(x^{(k)}, t^n+d_k\Delta t^n \right)\right]
&= 0 & \forall i \in \{1,\ldots,m\} \\
x^{n+1} &= x^{(m)}
\end{aligned}
\]
where \( x^{(k)} \) denotes the intermediate solution at stage \( k \). Dependent on the number of stages \( m \), and the coefficients \( \alpha, \beta, d\), schemes with different properties and order of accuracy can be constructed.
That the summation only goes up to \( i \) in stage \( i \) means that we restrict ourselves to diagonally-implicit Runge-Kutta schemes (DIRK) and explicit schemes.
Note that when computing the Jacobian of the residual with respect to \( x^{(k)} \) at stage \( k \), only the terms containing the solution of the current stage \( k \) contribute to the derivatives.