3.4.4.4. MRIStep Custom Inner Steppers

Recall, MIS and MRI-GARK methods require solving the auxiliary IVP

(3.48)\[\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.5 can be equivalently written as

(3.49)\[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.50)\[\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.48) 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.