3.4.5.4. MRIStep Custom Inner Steppers
Recall, MIS and MRI-GARK methods require solving the auxiliary IVP
(3.52)\[\dot{v}(t) = f^F(t, v) + r_i(t), \qquad v(t_{n,i-1}^S) = z_{i-1}\]
for \(i \geq 2\) on the interval \(t \in [t_{n,i-1}^S, t_{n,i}^S]\) where \(t_{n,i-1}^S = t_{n-1} + c_{i-1}^S h^S\). The forcing term \(r_i(t)\) presented in §3.2.6 can be equivalently written as
(3.53)\[r_i(t) =
\sum\limits_{k \geq 0} \hat{\omega}^{\{k\}}_i \tau^k
+
\sum\limits_{k \geq 0} \hat{\gamma}^{\{k\}}_i \tau^k\]
where \(\tau = (t - t_{n,i-1}^S)/(h^S \Delta c_i^S)\) is the normalized time with \(\Delta c_i^S=\left(c^S_i - c^S_{i-1}\right)\) and the polynomial coefficient vectors are
(3.54)\[\hat{\omega}^{\{k\}}_i = \frac{1}{\Delta c_i^S} \sum\limits_{j=1}^{i-1}
\omega^{\{k\}}_{i,j} f^E(t_{n,j}^S, z_j)
\quad\text{and}\quad
\hat{\gamma}^{\{k\}}_i = \frac{1}{\Delta c_i^S} \sum\limits_{j=1}^i
\gamma^{\{k\}}_{i,j} f^I(t_{n,j}^S, z_j).\]
To evolve the IVP (3.52) MRIStep utilizes a generic time integrator
interface defined by the MRIStepInnerStepper
base class. This section
presents the MRIStepInnerStepper
base class and methods that define
the integrator interface as well as detailing the steps for creating an
MRIStepInnerStepper
.