Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Low Order MRI Methods #439

Merged
merged 52 commits into from
May 12, 2024
Merged
Show file tree
Hide file tree
Changes from 48 commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
56844ec
Add explicit midpoint method
Steven-Roberts Mar 11, 2024
e0201e8
Add additional coefficients
Steven-Roberts Mar 13, 2024
83986c0
Update test output files for Dahlquist test problem
Steven-Roberts Mar 13, 2024
9563569
Remove extra ERK tables from this branch
Steven-Roberts Mar 13, 2024
4d7c00e
Revert whitespace change
Steven-Roberts Mar 13, 2024
a7cab48
Fix reallocation bug when changing MRI coupling
Steven-Roberts Mar 14, 2024
ea4fe97
Add missing ERK table entry
Steven-Roberts Mar 14, 2024
a1a06de
Finish adding tables and make MRIStepSetOrder error handling more con…
Steven-Roberts Mar 14, 2024
ebe3240
Fix table construction typos
Steven-Roberts Mar 14, 2024
3aec725
Clean up Dahlquist MRI test
Steven-Roberts Mar 14, 2024
e1d37eb
Update out files
Steven-Roberts Mar 14, 2024
71f8795
Apply suggestions from code review
Steven-Roberts Mar 19, 2024
3bb4f08
Revert efun logic
Steven-Roberts Mar 19, 2024
b7c6872
Merge branch 'feature/low-order-mri' of github.com:LLNL/sundials into…
Steven-Roberts Mar 19, 2024
9cd3fcb
Update ARK test output for Forward Euler after fixing stage bug
Steven-Roberts Mar 19, 2024
590009f
Fix variable naming following Dan's suggestion
Steven-Roberts Mar 19, 2024
f2738c5
Add alloc casts back for consistency
Steven-Roberts Mar 19, 2024
0314b0b
Fix integer coefficient
Steven-Roberts Mar 27, 2024
43c3e79
Switch back to calloc+free
Steven-Roberts Mar 27, 2024
b4797af
Update test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_mri.cpp
Steven-Roberts Mar 28, 2024
595a91e
Use static const int for defaults
Steven-Roberts Mar 28, 2024
a68f347
Use consistent alloc style
Steven-Roberts Mar 28, 2024
0ba65bd
Merge branch 'feature/low-order-mri' of github.com:LLNL/sundials into…
Steven-Roberts Mar 28, 2024
0ee54bd
Apply formatter
Steven-Roberts Mar 28, 2024
b35781c
Merge branch 'develop' into feature/low-order-mri
Steven-Roberts Apr 5, 2024
ffae89c
Add MRI coupling to docs
Steven-Roberts Apr 5, 2024
ad155b0
Fix table formatting
Steven-Roberts Apr 5, 2024
3a0f51f
Add new MRI coefficients to the constants docs
Steven-Roberts Apr 5, 2024
de27d24
Fix citation
Steven-Roberts Apr 5, 2024
045a7ad
Add docs for new ERK methods
Steven-Roberts Apr 9, 2024
12457cd
Add ERK stability plots
Steven-Roberts Apr 9, 2024
503296c
Fix title length
Steven-Roberts Apr 9, 2024
ef457b6
Add backward Euler docs
Steven-Roberts Apr 10, 2024
23cefab
Add forward Euler citation
Steven-Roberts Apr 10, 2024
f96ef67
Add midpoint and trapezoidal docs
Steven-Roberts Apr 10, 2024
69a1a47
Correct name for trapezoidal rule
Steven-Roberts Apr 10, 2024
cca7be5
Update changelog
Steven-Roberts Apr 10, 2024
d9f2249
Fix formatting
Steven-Roberts Apr 10, 2024
5fe51fa
Update section ids for consistency
Steven-Roberts Apr 10, 2024
3413c2f
Fix dublicate target
Steven-Roberts Apr 10, 2024
0b95ca1
Add publisher to bib entry
Steven-Roberts Apr 10, 2024
246a062
Update answers submodule
Steven-Roberts Apr 10, 2024
a442f4a
Update Fortran interface
Steven-Roberts Apr 11, 2024
ddbfe62
Apply suggestions from code review
Steven-Roberts Apr 11, 2024
e7405b5
Update answers to fix missing out files in Fortran tests
Steven-Roberts Apr 11, 2024
4afeebf
Update answers
Steven-Roberts May 7, 2024
06f5162
Merge develop
Steven-Roberts May 7, 2024
6f0de00
Merge branch 'develop' into feature/low-order-mri
gardner48 May 11, 2024
5a686ce
Apply suggestions from code review
gardner48 May 11, 2024
c624d92
update answers
gardner48 May 11, 2024
5c71c50
add missing tables to docs
gardner48 May 12, 2024
cd0022f
add missing defaults for first order methods
gardner48 May 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,24 @@ Added "Resize" capability, as well as missing `SetRootDirection` and
Deprecated `ARKStepSetOptimalParams` function; added instructions to user guide
for users who wish to retain the current functionality.

Added the following Runge-Kutta Butcher tables
* `ARKODE_FORWARD_EULER_1_1`
* `ARKODE_RALSTON_EULER_2_1_2`
* `ARKODE_EXPLICIT_MIDPOINT_EULER_2_1_2`
* `ARKODE_BACKWARD_EULER_1_1`
* `ARKODE_IMPLICIT_MIDPOINT_1_2`
* `ARKODE_IMPLICIT_TRAPEZOIDAL_2_2`

Added the following MRI coupling tables
* `ARKODE_MRI_GARK_FORWARD_EULER`
* `ARKODE_MRI_GARK_RALSTON2`
* `ARKODE_MRI_GARK_RALSTON3`
* `ARKODE_MRI_GARK_BACKWARD_EULER`
* `ARKODE_MRI_GARK_IMPLICIT_MIDPOINT`
* `ARKODE_IMEX_MRI_GARK_EULER`
* `ARKODE_IMEX_MRI_GARK_TRAPEZOIDAL`
* `ARKODE_IMEX_MRI_GARK_MIDPOINT`

Updated the CMake variable `HIP_PLATFORM` default to `amd` as the previous
default, `hcc`, is no longer recognized in ROCm 5.7.0 or newer. The new default
is also valid in older version of ROCm (at least back to version 4.3.1).
Expand Down
193 changes: 193 additions & 0 deletions doc/arkode/guide/source/Butcher.rst
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,37 @@ specified via a unique ID and name:
with values specified for each method below (e.g., ``ARKODE_HEUN_EULER_2_1_2``).


.. _Butcher.Forward_Euler:

Forward-Euler-1-1
^^^^^^^^^^^^^^^^^

.. index:: Forward-Euler-1-1 ERK method

Accessible via the constant ``ARKODE_FORWARD_EULER_1_1`` to
:c:func:`ARKStepSetTableNum`, :c:func:`ERKStepSetTableNum` or
:c:func:`ARKodeButcherTable_LoadERK`.
Accessible via the string ``"ARKODE_FORWARD_EULER_1_1"`` to
:c:func:`ARKStepSetTableName`, :c:func:`ERKStepSetTableName` or
:c:func:`ARKodeButcherTable_LoadERKByName`.
This is the default 1st order explicit method (from :cite:p:`Euler:68`).

.. math::

\renewcommand{\arraystretch}{1.5}
\begin{array}{r|c}
0 & 0 \\
\hline
1 & 1
\end{array}

.. figure:: /figs/arkode/forward_euler_erk_stab_region.png
:scale: 50 %
:align: center

Linear stability region for the forward Euler method.


.. _Butcher.Heun_Euler:

Heun-Euler-2-1-2
Expand Down Expand Up @@ -184,6 +215,74 @@ This is the default 2nd order explicit method.
region is outlined in blue; the embedding's region is in red.


.. _Butcher.Ralston_Euler:

Ralston-Euler-2-1-2
^^^^^^^^^^^^^^^^^^^^

.. index:: Ralston-Euler-2-1-2 ERK method

Accessible via the constant ``ARKODE_RALSTON_EULER_2_1_2`` to
:c:func:`ARKStepSetTableNum`, :c:func:`ERKStepSetTableNum` or
:c:func:`ARKodeButcherTable_LoadERK`.
Accessible via the string ``"ARKODE_RALSTON_EULER_2_1_2"`` to
:c:func:`ARKStepSetTableName`, :c:func:`ERKStepSetTableName` or
:c:func:`ARKodeButcherTable_LoadERKByName`.
gardner48 marked this conversation as resolved.
Show resolved Hide resolved
(primary method from :cite:p:`Ralston:62`).

.. math::

\renewcommand{\arraystretch}{1.5}
\begin{array}{r|cc}
0 & 0 & 0 \\
\frac{2}{3} & \frac{2}{3} & 0 \\
\hline
2 & \frac{1}{4} & \frac{3}{4} \\
1 & 1 & 0
\end{array}

.. figure:: /figs/arkode/ralston_euler_erk_stab_region.png
:scale: 50 %
:align: center

Linear stability region for the Ralston-Euler method. The method's
region is outlined in blue; the embedding's region is in red.


.. _Butcher.Explicit_Midpoint_Euler:

Explicit-Midpoint-Euler-2-1-2
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. index:: Explicit-Midpoint-Euler-2-1-2 ERK method

Accessible via the constant ``ARKODE_EXPLICIT_MIDPOINT_EULER_2_1_2`` to
:c:func:`ARKStepSetTableNum`, :c:func:`ERKStepSetTableNum` or
:c:func:`ARKodeButcherTable_LoadERK`.
Accessible via the string ``"ARKODE_EXPLICIT_MIDPOINT_EULER_2_1_2"`` to
:c:func:`ARKStepSetTableName`, :c:func:`ERKStepSetTableName` or
:c:func:`ARKodeButcherTable_LoadERKByName`.
gardner48 marked this conversation as resolved.
Show resolved Hide resolved
(primary method from :cite:p:`Runge:95`).

.. math::

\renewcommand{\arraystretch}{1.5}
\begin{array}{r|cc}
0 & 0 & 0 \\
\frac{1}{2} & \frac{1}{2} & 0 \\
\hline
2 & 0 & 1 \\
1 & 1 & 0
\end{array}

.. figure:: /figs/arkode/explicit_midpoint_euler_erk_stab_region.png
:scale: 50 %
:align: center

Linear stability region for the Explicit-Midpoint-Euler method. The method's
region is outlined in blue; the embedding's region is in red.


.. _Butcher.ARK2_ERK:

ARK2-ERK-3-1-2
Expand Down Expand Up @@ -1123,6 +1222,37 @@ specified via a unique ID and name:
with values specified for each method below (e.g., ``ARKODE_SDIRK_2_1_2``).


.. _Butcher.Backward-Euler:

Backward-Euler-1-1
^^^^^^^^^^^^^^^^^^

.. index:: Backward-Euler-1-1 method

Accessible via the constant ``ARKODE_BACKWARD_EULER_1_1`` to
:c:func:`ARKStepSetTableNum` or
:c:func:`ARKodeButcherTable_LoadDIRK`.
Accessible via the string ``"ARKODE_BACKWARD_EULER_1_1"`` to
:c:func:`ARKStepSetTableName` or
:c:func:`ARKodeButcherTable_LoadDIRKByName`.
This is the default 1st order implicit method. The method is A-, L-, and B-stable.

.. math::

\renewcommand{\arraystretch}{1.5}
\begin{array}{r|c}
1 & 1 \\
\hline
1 & 1
\end{array}

.. figure:: /figs/arkode/backward_euler_dirk_stab_region.png
:scale: 50 %
:align: center

Linear stability region for the backward Euler method.


.. _Butcher.SDIRK-2-1:

SDIRK-2-1-2
Expand Down Expand Up @@ -1194,6 +1324,69 @@ implicit portion of the ARK2 method from :cite:p:`giraldo2013implicit`).
region is outlined in blue; the embedding's region is in red.


.. _Butcher.Implicit_Midpoint:

Implicit-Midpoint-1-2
^^^^^^^^^^^^^^^^^^^^^

.. index:: Implicit-Midpoint-1-2 method

Accessible via the constant ``ARKODE_IMPLICIT_MIDPOINT_1_2`` to
:c:func:`ARKStepSetTableNum` or
:c:func:`ARKodeButcherTable_LoadDIRK`.
Accessible via the string ``"ARKODE_IMPLICIT_MIDPOINT_1_2"`` to
:c:func:`ARKStepSetTableName` or
:c:func:`ARKodeButcherTable_LoadDIRKByName`.
The method is A- and B-stable.

.. math::

\renewcommand{\arraystretch}{1.5}
\begin{array}{r|c}
\frac{1}{2} & \frac{1}{2} \\
\hline
2 & 1
\end{array}

.. figure:: /figs/arkode/implicit_midpoint_dirk_stab_region.png
:scale: 50 %
:align: center

Linear stability region for the implicit midpoint method.


.. _Butcher.Implicit_Trapezoidal:

Implicit-Trapezoidal-2-2
^^^^^^^^^^^^^^^^^^^^^^^^

.. index:: Implicit-Trapezoidal-2-2 method

Accessible via the constant ``ARKODE_IMPLICIT_TRAPEZOIDAL_2_2`` to
:c:func:`ARKStepSetTableNum` or
:c:func:`ARKodeButcherTable_LoadDIRK`.
Accessible via the string ``"ARKODE_IMPLICIT_TRAPEZOIDAL_2_2"`` to
:c:func:`ARKStepSetTableName` or
:c:func:`ARKodeButcherTable_LoadDIRKByName`.
The method is A-stable.

.. math::

\renewcommand{\arraystretch}{1.5}
\begin{array}{r|cc}
0 & 0 & 0 \\
1 & \frac{1}{2} & \frac{1}{2} \\
\hline
2 & \frac{1}{2} & \frac{1}{2}
\end{array}

.. figure:: /figs/arkode/implicit_trapezoidal_dirk_stab_region.png
:scale: 50 %
:align: center

Linear stability region for the implicit trapezoidal method.


.. _Butcher.Billington:

Billington-3-3-2
Expand Down
35 changes: 35 additions & 0 deletions doc/arkode/guide/source/Constants.rst
gardner48 marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
Expand Up @@ -299,30 +299,59 @@ contains the ARKODE output constants.
+-----------------------------------------------+------------------------------------------------------------+
| **MRI coupling table specification** | |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`ARKODE_MRI_GARK_FORWARD_EULER` | Use the forward Euler MRI-GARK method. |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`ARKODE_MRI_GARK_ERK22b` | Use the ERK22b MRI-GARK method. |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`ARKODE_MRI_GARK_ERK22a` | Use the ERK22a MRI-GARK method. |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`ARKODE_MRI_GARK_RALSTON2` | Use the second order Ralston MRI-GARK method. |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`ARKODE_MIS_MW3` | Use the Knoth-Wolke-3 MIS method. |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`ARKODE_MRI_GARK_ERK33a` | Use the ERK33a MRI-GARK method. |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`ARKODE_MRI_GARK_RALSTON3` | Use the third order Ralston MRI-GARK method. |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`ARKODE_MRI_GARK_ERK45a` | Use the ERK45a MRI-GARK method. |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`ARKODE_MRI_GARK_BACKWARD_EULER` | Use the backward Euler MRI-GARK method. |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`ARKODE_MRI_GARK_IRK21a` | Use the IRK21a MRI-GARK method. |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`ARKODE_MRI_GARK_IMPLICIT_MIDPOINT` | Use the implicit midpoint MRI-GARK method. |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`ARKODE_MRI_GARK_ESDIRK34a` | Use the ESDIRK34a MRI-GARK method. |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`ARKODE_MRI_GARK_ESDIRK46a` | Use the ESDIRK46a MRI-GARK method. |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`ARKODE_IMEX_MRI_GARK_EULER` | Use the Euler IMEX-MRI-GARK method. |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`ARKODE_IMEX_MRI_GARK_TRAPEZOIDAL` | Use the trapezoidal rule IMEX-MRI-GARK method. |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`ARKODE_IMEX_MRI_GARK_MIDPOINT` | Use the midpoint rule IMEX-MRI-GARK method. |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`ARKODE_IMEX_MRI_GARK3a` | Use the IMEX-MRI-GARK3a method. |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`ARKODE_IMEX_MRI_GARK3b` | Use the IMEX-MRI-GARK3b method. |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`ARKODE_IMEX_MRI_GARK4` | Use the IMEX-MRI-GARK4 method. |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`MRISTEP_DEFAULT_EXPL_TABLE_1` | Use MRIStep's default 1st-order explicit method |
| | (MRI_GARK_FORWARD_EULER). |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`MRISTEP_DEFAULT_EXPL_TABLE_2` | Use MRIStep's default 2nd-order explicit method |
| | (MRI_GARK_ERK22b). |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`MRISTEP_DEFAULT_EXPL_TABLE_3` | Use MRIStep's default 3rd-order explicit method |
| | (MIS_MW3). |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`MRISTEP_DEFAULT_EXPL_TABLE_4` | Use MRIStep's default 4th-order explicit method |
| | (MRI_GARK_ERK45a). |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`MRISTEP_DEFAULT_IMPL_SD_TABLE_1` | Use MRIStep's default 1st-order solve-decoupled implicit |
| | method (MRI_GARK_BACKWARD_EULER). |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`MRISTEP_DEFAULT_IMPL_SD_TABLE_2` | Use MRIStep's default 2nd-order solve-decoupled implicit |
| | method (MRI_GARK_IRK21a). |
+-----------------------------------------------+------------------------------------------------------------+
Expand All @@ -332,6 +361,12 @@ contains the ARKODE output constants.
| :index:`MRISTEP_DEFAULT_IMPL_SD_TABLE_4` | Use MRIStep's default 4th-order solve-decoupled implicit |
| | method (MRI_GARK_ESDIRK46a). |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`MRISTEP_DEFAULT_IMEX_SD_TABLE_1` | Use MRIStep's default 1st-order solve-decoupled ImEx |
| | method (IMEX_MRI_GARK_EULER). |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`MRISTEP_DEFAULT_IMEX_SD_TABLE_2` | Use MRIStep's default 2nd-order solve-decoupled ImEx |
| | method (ARKODE_IMEX_MRI_GARK_TRAPEZOIDAL). |
+-----------------------------------------------+------------------------------------------------------------+
| :index:`MRISTEP_DEFAULT_IMEX_SD_TABLE_3` | Use MRIStep's default 3rd-order solve-decoupled ImEx |
| | method (IMEX_MRI_GARK3b). |
+-----------------------------------------------+------------------------------------------------------------+
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -304,36 +304,46 @@ with values specified for each method below (e.g., ``ARKODE_MIS_KW3``).
.. table:: Explicit MRI-GARK coupling tables. The default method for each order
is marked with an asterisk (:math:`^*`).

========================== =========== =====================
Table name Order Reference
========================== =========== =====================
``ARKODE_MIS_KW3`` :math:`3^*` :cite:p:`Schlegel:09`
``ARKODE_MRI_GARK_ERK33a`` 3 :cite:p:`Sandu:19`
``ARKODE_MRI_GARK_ERK45a`` :math:`4^*` :cite:p:`Sandu:19`
========================== =========== =====================
================================= =========== =====================
Table name Order Reference
================================= =========== =====================
``ARKODE_MRI_GARK_FORWARD_EULER`` :math:`1^*`
``ARKODE_MRI_GARK_ERK22b`` :math:`2^*` :cite:p:`Sandu:19`
``ARKODE_MRI_GARK_ERK22a`` 2 :cite:p:`Sandu:19`
``ARKODE_MRI_GARK_RALSTON2`` 2 :cite:p:`Roberts:22`
``ARKODE_MIS_KW3`` :math:`3^*` :cite:p:`Schlegel:09`
``ARKODE_MRI_GARK_ERK33a`` 3 :cite:p:`Sandu:19`
``ARKODE_MRI_GARK_RALSTON3`` 3 :cite:p:`Roberts:22`
``ARKODE_MRI_GARK_ERK45a`` :math:`4^*` :cite:p:`Sandu:19`
================================= =========== =====================


.. table:: Diagonally-implicit, solve-decoupled MRI-GARK coupling tables. The
default method for each order is marked with an asterisk
(:math:`^*`).

============================= =========== =============== ==================
Table name Order Implicit Solves Reference
============================= =========== =============== ==================
``ARKODE_MRI_GARK_IRK21a`` :math:`2^*` 1 :cite:p:`Sandu:19`
``ARKODE_MRI_GARK_ESDIRK34a`` :math:`3^*` 3 :cite:p:`Sandu:19`
``ARKODE_MRI_GARK_ESDIRK46a`` :math:`4^*` 5 :cite:p:`Sandu:19`
============================= =========== =============== ==================
===================================== =========== =============== ==================
Table name Order Implicit Solves Reference
===================================== =========== =============== ==================
``ARKODE_MRI_GARK_BACKWARD_EULER`` :math:`1^*` 1
``ARKODE_MRI_GARK_IRK21a`` :math:`2^*` 1 :cite:p:`Sandu:19`
``ARKODE_MRI_GARK_IMPLICIT_MIDPOINT`` 2 2
``ARKODE_MRI_GARK_ESDIRK34a`` :math:`3^*` 3 :cite:p:`Sandu:19`
``ARKODE_MRI_GARK_ESDIRK46a`` :math:`4^*` 5 :cite:p:`Sandu:19`
===================================== =========== =============== ==================


.. table:: Diagonally-implicit, solve-decoupled IMEX-MRI-GARK coupling tables.
The default method for each order is marked with an asterisk
(:math:`^*`).

=========================== =========== =============== ===================
Table name Order Implicit Solves Reference
=========================== =========== =============== ===================
``ARKODE_IMEX_MRI_GARK3a`` :math:`3^*` 2 :cite:p:`ChiRen:21`
``ARKODE_IMEX_MRI_GARK3b`` 3 2 :cite:p:`ChiRen:21`
``ARKODE_IMEX_MRI_GARK4`` :math:`4^*` 5 :cite:p:`ChiRen:21`
=========================== =========== =============== ===================
==================================== =========== =============== ===================
Table name Order Implicit Solves Reference
==================================== =========== =============== ===================
``ARKODE_IMEX_MRI_GARK_EULER`` :math:`1^*` 1
``ARKODE_IMEX_MRI_GARK_TRAPEZOIDAL`` :math:`2^*` 1
``ARKODE_IMEX_MRI_GARK_MIDPOINT`` 2 2
``ARKODE_IMEX_MRI_GARK3a`` :math:`3^*` 2 :cite:p:`ChiRen:21`
``ARKODE_IMEX_MRI_GARK3b`` 3 2 :cite:p:`ChiRen:21`
``ARKODE_IMEX_MRI_GARK4`` :math:`4^*` 5 :cite:p:`ChiRen:21`
==================================== =========== =============== ===================
Loading
Loading