explicit

Definitions of explicit time marching schemes for a scalar transport equation.

class CRK4(mesh, root=None, **default)

Class responsible for implementing an explicit 4th-order (classic) Runge-Kutta time-marching scheme that updates the current solution (\(t = t^{n}\)) to the next time step (\(t = t^{n+1}\)). This is implemented as

\[\begin{split}\bm{k}_{1} &= -\widetilde{\bm{M}}^{-1} \bm{B} \bm{u}^{n},\\[2ex] \bm{k}_{2} &= -\widetilde{\bm{M}}^{-1} \bm{B} \big( \bm{u}^{n} + \bm{k}_1 / 2 \big),\\[2ex] \bm{k}_{3} &= -\widetilde{\bm{M}}^{-1} \bm{B} \big( \bm{u}^{n} + \bm{k}_2 / 2 \big),\\[2ex] \bm{k}_{4} &= -\widetilde{\bm{M}}^{-1} \bm{B} \big( \bm{u}^{n} + \bm{k}_3 \big),\\[2ex] \bm{u}^{n+1} &= \bm{u}^{n} + \big( \bm{k}_1 + 2\bm{k}_2 + 2\bm{k}_3 + \bm{k}_4 \big) / 6,\end{split}\]

where \(\widetilde{\bm{M}} = \frac{1}{\delta t} \int_{D} u v\, d\bm{x}\) is the weighted mass matrix and \(\bm{B}\) is the matrix associated with the spatial bilinear form, see add_symbolic_spatial_forms() for the implementation.

class ExplicitEuler(mesh, root=None, **default)

Class responsible for implementing an explicit (forwards-)Euler time-marching scheme that updates the current solution (\(t = t^{n}\)) to the next time step (\(t = t^{n+1}\)). Namely,

\[\widetilde{\bm{M}} \bm{u}^{n+1} = \widetilde{\bm{M}} \bm{u}^{n} - \bm{B} \bm{u}^{n} ,\]

where \(\widetilde{\bm{M}} = \frac{1}{\delta t} \int_{D} u v\, d\bm{x}\) is the weighted mass matrix and \(\bm{B}\) is the matrix associated with the spatial bilinear form, see add_symbolic_spatial_forms() for the implementation.

class ExplicitSchemes(mesh, root=None, **default)
class SSPRK3(mesh, root=None, **default)

Class responsible for implementing an explicit 3rd-order strong-stability-preserving Runge-Kutta time-marching scheme that updates the current solution (\(t = t^{n}\)) to the next time step (\(t = t^{n+1}\)), see Section 4.1, Equation 4.2 in [1]. This is implemented as

\[\begin{split}\bm{y}_{1} &= \bm{u}^{n} - \widetilde{\bm{M}}^{-1} \bm{B} \bm{u}^{n},\\[2ex] \bm{y}_{2} &= \frac{3}{4} \bm{u}^{n} + \frac{1}{4} \bm{y}_{1} - \frac{1}{4} \widetilde{\bm{M}}^{-1} \bm{B} \bm{y}_{1},\\[2ex] \bm{u}^{n+1} &= \frac{1}{3} \bm{u}^{n} + \frac{2}{3} \bm{y}_{2} - \frac{2}{3} \widetilde{\bm{M}}^{-1} \bm{B} \bm{y}_{2},\end{split}\]

where \(\widetilde{\bm{M}} = \frac{1}{\delta t} \int_{D} u v\, d\bm{x}\) is the weighted mass matrix and \(\bm{B}\) is the matrix associated with the spatial bilinear form, see add_symbolic_spatial_forms() for the implementation.