List of diagonal implicit Runge-Kutta methods#
-
template<typename value_t, typename linear_algebra_t = void, typename ...Args>
auto ponio::runge_kutta::backward_euler_t =[]( Args ... args ){returndiagonal_implicit_runge_kutta::make_dirk<butcher_backward_euler<value_t>, linear_algebra_t>(args...);}# backward Euler method
This method is based on the following Butcher tableau:
\[\begin{split} \begin{array}{c|c} 1 & 1 \\ \hline & 1 \end{array} \end{split}\]stages: 1
order: 1
stages order:
stability function:
\[ - \frac{z}{z - 1} + 1 \]
- Template Parameters:
value_t – type of coefficient (
doubleby default)linear_algebra_t – type that provides linear algebra if it is undefined for state_t (
voidby default)Args – optional arguments to build linear_algebra_t object
-
template<typename value_t, typename linear_algebra_t = void, typename ...Args>
auto ponio::runge_kutta::crancknicolson_t =[]( Args ... args ){returndiagonal_implicit_runge_kutta::make_dirk<butcher_crancknicolson<value_t>, linear_algebra_t>(args...);}# Cranck-Nicolson method.
This method is based on the following Butcher tableau:
\[\begin{split} \begin{array}{c|cc} 0 & 0 & 0 \\ 1 & \frac{1}{2} & \frac{1}{2} \\ \hline & \frac{1}{2} & \frac{1}{2} \end{array} \end{split}\]stages: 2
order: 2
stages order:
stability function:
\[ z \left(- \frac{z}{2 \left(z - 2\right)} + \frac{1}{2} - \frac{1}{z - 2}\right) + 1 \]
- Template Parameters:
value_t – type of coefficient (
doubleby default)linear_algebra_t – type that provides linear algebra if it is undefined for state_t (
voidby default)Args – optional arguments to build linear_algebra_t object
-
template<typename value_t, typename linear_algebra_t = void, typename ...Args>
auto ponio::runge_kutta::crancknicolson_2_t =[]( Args ... args ){returndiagonal_implicit_runge_kutta::make_dirk<butcher_crancknicolson_2<value_t>, linear_algebra_t>(args...);}# Cranck-Nicolson 2 method.
This method is based on the following Butcher tableau:
\[\begin{split} \begin{array}{c|cc} 0 & 0 & 0 \\ 1 & 0 & 1 \\ \hline & \frac{1}{2} & \frac{1}{2} \end{array} \end{split}\]stages: 2
order: 2
stages order:
stability function:
\[ z \left(\frac{1}{2} - \frac{1}{2 \left(z - 1\right)}\right) + 1 \]
- Template Parameters:
value_t – type of coefficient (
doubleby default)linear_algebra_t – type that provides linear algebra if it is undefined for state_t (
voidby default)Args – optional arguments to build linear_algebra_t object
-
template<typename value_t, typename linear_algebra_t = void, typename ...Args>
auto ponio::runge_kutta::dirk23_t =[]( Args ... args ){returndiagonal_implicit_runge_kutta::make_dirk<butcher_dirk23<value_t>, linear_algebra_t>(args...);}# DIRK(2,3) method.
This method is based on the following Butcher tableau:
\[\begin{split} \begin{array}{c|cc} \frac{\sqrt{3}}{6} + \frac{1}{2} & \frac{\sqrt{3}}{6} + \frac{1}{2} & 0 \\ \frac{1}{2} - \frac{\sqrt{3}}{6} & - \frac{\sqrt{3}}{3} & \frac{\sqrt{3}}{6} + \frac{1}{2} \\ \hline & \frac{1}{2} & \frac{1}{2} \end{array} \end{split}\]stages: 2
order: 3
stages order:
stability function:
\[ z \left(- \frac{\sqrt{3} z}{\sqrt{3} z^{2} + 2 z^{2} - 6 z - 2 \sqrt{3} z + 6} + \frac{- 3 z - \sqrt{3} z + 6}{2 \left(\sqrt{3} z^{2} + 2 z^{2} - 6 z - 2 \sqrt{3} z + 6\right)} - \frac{3}{\sqrt{3} z + 3 z - 6}\right) + 1 \]
- Template Parameters:
value_t – type of coefficient (
doubleby default)linear_algebra_t – type that provides linear algebra if it is undefined for state_t (
voidby default)Args – optional arguments to build linear_algebra_t object
-
template<typename value_t, typename linear_algebra_t = void, typename ...Args>
auto ponio::runge_kutta::dirk23_crouzeix_t =[]( Args ... args ){returndiagonal_implicit_runge_kutta::make_dirk<butcher_dirk23_crouzeix<value_t>, linear_algebra_t>(args...);}# DIRK(2,3) Crouzeix method.
This method is based on the following Butcher tableau:
\[\begin{split} \begin{array}{c|cc} \frac{\sqrt{3}}{6} + \frac{1}{2} & \frac{\sqrt{3}}{6} + \frac{1}{2} & 0 \\ \frac{1}{2} - \frac{\sqrt{3}}{6} & - \frac{\sqrt{3}}{3} & \frac{\sqrt{3}}{6} + \frac{1}{2} \\ \hline & \frac{1}{2} & \frac{1}{2} \end{array} \end{split}\]stages: 2
order: 3
stages order:
stability function:
\[ z \left(- \frac{\sqrt{3} z}{\sqrt{3} z^{2} + 2 z^{2} - 6 z - 2 \sqrt{3} z + 6} + \frac{- 3 z - \sqrt{3} z + 6}{2 \left(\sqrt{3} z^{2} + 2 z^{2} - 6 z - 2 \sqrt{3} z + 6\right)} - \frac{3}{\sqrt{3} z + 3 z - 6}\right) + 1 \]
- Template Parameters:
value_t – type of coefficient (
doubleby default)linear_algebra_t – type that provides linear algebra if it is undefined for state_t (
voidby default)Args – optional arguments to build linear_algebra_t object
-
template<typename value_t, typename linear_algebra_t = void, typename ...Args>
auto ponio::runge_kutta::dirk34_t =[]( Args ... args ){returndiagonal_implicit_runge_kutta::make_dirk<butcher_dirk34<value_t>, linear_algebra_t>(args...);}# DIRK(3,4) method.
This method is based on the following Butcher tableau:
\[\begin{split} \begin{array}{c|ccc} \frac{1}{2} + \frac{\sqrt{3} \cos{\left(\frac{\pi}{18} \right)}}{3} & \frac{1}{2} + \frac{\sqrt{3} \cos{\left(\frac{\pi}{18} \right)}}{3} & 0 & 0 \\ \frac{1}{2} & - \frac{\sqrt{3} \cos{\left(\frac{\pi}{18} \right)}}{3} & \frac{1}{2} + \frac{\sqrt{3} \cos{\left(\frac{\pi}{18} \right)}}{3} & 0 \\ - \frac{\sqrt{3} \cos{\left(\frac{\pi}{18} \right)}}{3} + \frac{1}{2} & 1 + \frac{2 \sqrt{3} \cos{\left(\frac{\pi}{18} \right)}}{3} & - \frac{4 \sqrt{3} \cos{\left(\frac{\pi}{18} \right)}}{3} - 1 & \frac{1}{2} + \frac{\sqrt{3} \cos{\left(\frac{\pi}{18} \right)}}{3} \\ \hline & \frac{1}{8 \cos^{2}{\left(\frac{\pi}{18} \right)}} & 1 - \frac{1}{4 \cos^{2}{\left(\frac{\pi}{18} \right)}} & \frac{1}{8 \cos^{2}{\left(\frac{\pi}{18} \right)}} \end{array} \end{split}\]stages: 3
order: 4
stages order:
stability function:
\[ z \left(- \frac{4 \sqrt{3} z \left(1 - \frac{1}{4 \cos^{2}{\left(\frac{\pi}{18} \right)}}\right) \cos{\left(\frac{\pi}{18} \right)}}{3 z^{2} + 4 z^{2} \cos^{2}{\left(\frac{\pi}{18} \right)} + 4 \sqrt{3} z^{2} \cos{\left(\frac{\pi}{18} \right)} - 8 \sqrt{3} z \cos{\left(\frac{\pi}{18} \right)} - 12 z + 12} + \frac{\left(1 - \frac{1}{4 \cos^{2}{\left(\frac{\pi}{18} \right)}}\right) \left(- 4 \sqrt{3} z \cos{\left(\frac{\pi}{18} \right)} - 6 z + 12\right)}{3 z^{2} + 4 z^{2} \cos^{2}{\left(\frac{\pi}{18} \right)} + 4 \sqrt{3} z^{2} \cos{\left(\frac{\pi}{18} \right)} - 8 \sqrt{3} z \cos{\left(\frac{\pi}{18} \right)} - 12 z + 12} + \frac{- 32 \sqrt{3} z^{3} \cos^{3}{\left(\frac{\pi}{18} \right)} + 36 z^{3} + 48 \sqrt{3} z^{3} \cos{\left(\frac{\pi}{18} \right)} - 144 \sqrt{3} z^{2} \cos{\left(\frac{\pi}{18} \right)} - 144 z^{2} + 144 z + 96 \sqrt{3} z \cos{\left(\frac{\pi}{18} \right)}}{8 \left(9 z^{4} + 16 z^{4} \cos^{4}{\left(\frac{\pi}{18} \right)} + 24 \sqrt{3} z^{4} \cos{\left(\frac{\pi}{18} \right)} + 32 \sqrt{3} z^{4} \cos^{3}{\left(\frac{\pi}{18} \right)} + 72 z^{4} \cos^{2}{\left(\frac{\pi}{18} \right)} - 288 z^{3} \cos^{2}{\left(\frac{\pi}{18} \right)} - 144 \sqrt{3} z^{3} \cos{\left(\frac{\pi}{18} \right)} - 64 \sqrt{3} z^{3} \cos^{3}{\left(\frac{\pi}{18} \right)} - 72 z^{3} + 216 z^{2} + 288 z^{2} \cos^{2}{\left(\frac{\pi}{18} \right)} + 288 \sqrt{3} z^{2} \cos{\left(\frac{\pi}{18} \right)} - 192 \sqrt{3} z \cos{\left(\frac{\pi}{18} \right)} - 288 z + 144\right) \cos^{2}{\left(\frac{\pi}{18} \right)}} + \frac{- 240 z^{3} \cos^{2}{\left(\frac{\pi}{18} \right)} - 96 \sqrt{3} z^{3} \cos{\left(\frac{\pi}{18} \right)} - 64 \sqrt{3} z^{3} \cos^{3}{\left(\frac{\pi}{18} \right)} - 36 z^{3} + 144 z^{2} + 384 z^{2} \cos^{2}{\left(\frac{\pi}{18} \right)} + 288 \sqrt{3} z^{2} \cos{\left(\frac{\pi}{18} \right)} - 192 \sqrt{3} z \cos{\left(\frac{\pi}{18} \right)} - 144 z}{8 \left(9 z^{4} + 16 z^{4} \cos^{4}{\left(\frac{\pi}{18} \right)} + 24 \sqrt{3} z^{4} \cos{\left(\frac{\pi}{18} \right)} + 32 \sqrt{3} z^{4} \cos^{3}{\left(\frac{\pi}{18} \right)} + 72 z^{4} \cos^{2}{\left(\frac{\pi}{18} \right)} - 288 z^{3} \cos^{2}{\left(\frac{\pi}{18} \right)} - 144 \sqrt{3} z^{3} \cos{\left(\frac{\pi}{18} \right)} - 64 \sqrt{3} z^{3} \cos^{3}{\left(\frac{\pi}{18} \right)} - 72 z^{3} + 216 z^{2} + 288 z^{2} \cos^{2}{\left(\frac{\pi}{18} \right)} + 288 \sqrt{3} z^{2} \cos{\left(\frac{\pi}{18} \right)} - 192 \sqrt{3} z \cos{\left(\frac{\pi}{18} \right)} - 288 z + 144\right) \cos^{2}{\left(\frac{\pi}{18} \right)}} + \frac{- 72 z^{3} \cos^{2}{\left(\frac{\pi}{18} \right)} - 36 \sqrt{3} z^{3} \cos{\left(\frac{\pi}{18} \right)} - 16 \sqrt{3} z^{3} \cos^{3}{\left(\frac{\pi}{18} \right)} - 18 z^{3} + 108 z^{2} + 144 z^{2} \cos^{2}{\left(\frac{\pi}{18} \right)} + 144 \sqrt{3} z^{2} \cos{\left(\frac{\pi}{18} \right)} - 144 \sqrt{3} z \cos{\left(\frac{\pi}{18} \right)} - 216 z + 144}{8 \left(9 z^{4} + 16 z^{4} \cos^{4}{\left(\frac{\pi}{18} \right)} + 24 \sqrt{3} z^{4} \cos{\left(\frac{\pi}{18} \right)} + 32 \sqrt{3} z^{4} \cos^{3}{\left(\frac{\pi}{18} \right)} + 72 z^{4} \cos^{2}{\left(\frac{\pi}{18} \right)} - 288 z^{3} \cos^{2}{\left(\frac{\pi}{18} \right)} - 144 \sqrt{3} z^{3} \cos{\left(\frac{\pi}{18} \right)} - 64 \sqrt{3} z^{3} \cos^{3}{\left(\frac{\pi}{18} \right)} - 72 z^{3} + 216 z^{2} + 288 z^{2} \cos^{2}{\left(\frac{\pi}{18} \right)} + 288 \sqrt{3} z^{2} \cos{\left(\frac{\pi}{18} \right)} - 192 \sqrt{3} z \cos{\left(\frac{\pi}{18} \right)} - 288 z + 144\right) \cos^{2}{\left(\frac{\pi}{18} \right)}} - \frac{3}{4 \left(3 z + 2 \sqrt{3} z \cos{\left(\frac{\pi}{18} \right)} - 6\right) \cos^{2}{\left(\frac{\pi}{18} \right)}}\right) + 1 \]
- Template Parameters:
value_t – type of coefficient (
doubleby default)linear_algebra_t – type that provides linear algebra if it is undefined for state_t (
voidby default)Args – optional arguments to build linear_algebra_t object
-
template<typename value_t, typename linear_algebra_t = void, typename ...Args>
auto ponio::runge_kutta::dirk_qin_zhang_t =[]( Args ... args ){returndiagonal_implicit_runge_kutta::make_dirk<butcher_dirk_qin_zhang<value_t>, linear_algebra_t>(args...);}# DIRK Qin Zhang method.
This method is based on the following Butcher tableau:
\[\begin{split} \begin{array}{c|cc} \frac{1}{4} & \frac{1}{4} & 0 \\ \frac{3}{4} & \frac{1}{2} & \frac{1}{4} \\ \hline & \frac{1}{2} & \frac{1}{2} \end{array} \end{split}\]stages: 2
order: 2
stages order:
stability function:
\[ z \left(\frac{4 z}{z^{2} - 8 z + 16} - \frac{4}{z - 4}\right) + 1 \]
- Template Parameters:
value_t – type of coefficient (
doubleby default)linear_algebra_t – type that provides linear algebra if it is undefined for state_t (
voidby default)Args – optional arguments to build linear_algebra_t object
-
template<typename value_t, typename linear_algebra_t = void, typename ...Args>
auto ponio::runge_kutta::esdirk_54_a_t =[]( Args ... args ){returndiagonal_implicit_runge_kutta::make_dirk<butcher_esdirk_54_a<value_t>, linear_algebra_t>(args...);}# ESDIRK (5,4) a method.
This method is based on the following Butcher tableau:
\[\begin{split} \begin{array}{c|ccccccc} 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0.52 & 0.26 & 0.26 & 0 & 0 & 0 & 0 & 0 \\ 1.23033320996791 & 0.13 & 0.840333209967908 & 0.26 & 0 & 0 & 0 & 0 \\ 0.895765984350076 & 0.223719614783205 & 0.476755323197997 & -0.0647089536311262 & 0.26 & 0 & 0 & 0 \\ 0.436393609858648 & 0.166485643232483 & 0.104500188415917 & 0.0363148227209871 & -0.13090704451074 & 0.26 & 0 & 0 \\ 1.0 & 0.138556402312682 & 0 & -0.0424533720175204 & 0.0244665789800314 & 0.619430390724807 & 0.26 & 0 \\ 1.0 & 0.136597511776403 & 0 & -0.0549690879653838 & -0.0411862672832105 & 0.629933048990164 & 0.0696247944820273 & 0.26 \\ \hline & 0.136597511776403 & 0 & -0.0549690879653838 & -0.0411862672832105 & 0.629933048990164 & 0.0696247944820273 & 0.26 \end{array} \end{split}\]stages: 7
order: 5
stages order:
stability function:
\[ z \left(\frac{0.0696247944820273 \left(- 0.00328757369592344 z^{5} + 0.0236323948968521 z^{4} - 0.0528483278867826 z^{3} + 0.0407201859290169 z^{2}\right)}{0.000308915776 z^{6} - 0.0071288256 z^{5} + 0.0685464 z^{4} - 0.35152 z^{3} + 1.014 z^{2} - 1.56 z + 1.0} + \frac{0.26 \left(- 0.00149225345662538 z^{5} + 0.0108244641646129 z^{4} - 0.0150164106435991 z^{3} - 1.66349469056742 \cdot 10^{-16} z^{2}\right)}{0.000308915776 z^{6} - 0.0071288256 z^{5} + 0.0685464 z^{4} - 0.35152 z^{3} + 1.014 z^{2} - 1.56 z + 1.0} + \frac{0.629933048990164 \left(- 0.000598213775723399 z^{5} + 0.00920328885728307 z^{4} - 0.0530958972535561 z^{3} + 0.13614332629117 z^{2} - 0.13090704451074 z\right)}{0.000308915776 z^{6} - 0.0071288256 z^{5} + 0.0685464 z^{4} - 0.35152 z^{3} + 1.014 z^{2} - 1.56 z + 1.0} - \frac{0.0411862672832105 \left(- 0.000295704387945375 z^{5} + 0.0045492982760827 z^{4} - 0.0262459515927848 z^{3} + 0.0672973117763713 z^{2} - 0.0647089536311262 z\right)}{0.000308915776 z^{6} - 0.0071288256 z^{5} + 0.0685464 z^{4} - 0.35152 z^{3} + 1.014 z^{2} - 1.56 z + 1.0} + \frac{0.26 \left(- 0.000283998408274243 z^{5} + 0.00527830865718005 z^{4} - 0.0331199154858109 z^{3} + 0.0797530714422474 z^{2} - 0.0549690879653838 z\right)}{0.000308915776 z^{6} - 0.0071288256 z^{5} + 0.0685464 z^{4} - 0.35152 z^{3} + 1.014 z^{2} - 1.56 z + 1.0} + \frac{0.0696247944820273 \left(- 0.000206834276931005 z^{5} + 0.00449695758435355 z^{4} - 0.0282827934080121 z^{3} + 0.0650628050006532 z^{2} - 0.0424533720175204 z\right)}{0.000308915776 z^{6} - 0.0071288256 z^{5} + 0.0685464 z^{4} - 0.35152 z^{3} + 1.014 z^{2} - 1.56 z + 1.0} + \frac{0.629933048990164 \left(1.70662262975104 \cdot 10^{-5} z^{5} - 0.000835187319884574 z^{4} + 0.00812202295451043 z^{3} - 0.0292965577565933 z^{2} + 0.0363148227209871 z\right)}{0.000308915776 z^{6} - 0.0071288256 z^{5} + 0.0685464 z^{4} - 0.35152 z^{3} + 1.014 z^{2} - 1.56 z + 1.0} + \frac{0.26 \left(0.000318168600832189 z^{5} - 0.00489490155126445 z^{4} + 0.0282398166419103 z^{3} - 0.0724097862613084 z^{2} + 0.0696247944820273 z\right)}{0.000308915776 z^{6} - 0.0071288256 z^{5} + 0.0685464 z^{4} - 0.35152 z^{3} + 1.014 z^{2} - 1.56 z + 1.0} + \frac{0.26 \left(0.000849561446562311 z^{5} - 0.0105466298398649 z^{4} + 0.0406412991163122 z^{3} - 0.0379254751752397 z^{2} - 0.0411862672832105 z\right)}{0.000308915776 z^{6} - 0.0071288256 z^{5} + 0.0685464 z^{4} - 0.35152 z^{3} + 1.014 z^{2} - 1.56 z + 1.0} + \frac{0.629933048990164 \left(0.00151931110893813 z^{5} - 0.0175164388782111 z^{4} + 0.0743810010483864 z^{3} - 0.140574274720624 z^{2} + 0.104500188415917 z\right)}{0.000308915776 z^{6} - 0.0071288256 z^{5} + 0.0685464 z^{4} - 0.35152 z^{3} + 1.014 z^{2} - 1.56 z + 1.0} + \frac{0.0696247944820273 \left(0.00153700559716482 z^{5} - 0.0181647045594394 z^{4} + 0.0731721297836363 z^{3} - 0.10653304386915 z^{2} + 0.0244665789800314 z\right)}{0.000308915776 z^{6} - 0.0071288256 z^{5} + 0.0685464 z^{4} - 0.35152 z^{3} + 1.014 z^{2} - 1.56 z + 1.0} + \frac{0.26 \left(0.00212063015483849 z^{5} - 0.0355405127479568 z^{4} + 0.221861228023304 z^{3} - 0.612002657299634 z^{2} + 0.629933048990164 z\right)}{0.000308915776 z^{6} - 0.0071288256 z^{5} + 0.0685464 z^{4} - 0.35152 z^{3} + 1.014 z^{2} - 1.56 z + 1.0} + \frac{0.0696247944820273 \left(0.00283064822231859 z^{5} - 0.0435484341895168 z^{4} + 0.251240966477982 z^{3} - 0.644207606353799 z^{2} + 0.619430390724807 z\right)}{0.000308915776 z^{6} - 0.0071288256 z^{5} + 0.0685464 z^{4} - 0.35152 z^{3} + 1.014 z^{2} - 1.56 z + 1.0} - \frac{0.0411862672832105 \left(0.00313438901159779 z^{5} - 0.0445454786174256 z^{4} + 0.235786083609544 z^{3} - 0.550202618844426 z^{2} + 0.476755323197997 z\right)}{0.000308915776 z^{6} - 0.0071288256 z^{5} + 0.0685464 z^{4} - 0.35152 z^{3} + 1.014 z^{2} - 1.56 z + 1.0} - \frac{0.0549690879653838 \left(0.00384012108958295 z^{5} - 0.0590787859935838 z^{4} + 0.340839149962983 z^{3} - 0.873946538366624 z^{2} + 0.840333209967908 z\right)}{0.000308915776 z^{6} - 0.0071288256 z^{5} + 0.0685464 z^{4} - 0.35152 z^{3} + 1.014 z^{2} - 1.56 z + 1.0} + \frac{0.863402488223597 \left(- 0.0011881376 z^{5} + 0.0228488 z^{4} - 0.17576 z^{3} + 0.676 z^{2} - 1.3 z + 1.0\right)}{0.000308915776 z^{6} - 0.0071288256 z^{5} + 0.0685464 z^{4} - 0.35152 z^{3} + 1.014 z^{2} - 1.56 z + 1.0} + \frac{0.0696247944820273 \left(- 0.00023116109807461 z^{6} - 0.00141911510018816 z^{5} + 0.0164280529344173 z^{4} - 0.0183753083001567 z^{3} - 0.077042340706721 z^{2} + 0.138556402312682 z\right)}{0.000308915776 z^{6} - 0.0071288256 z^{5} + 0.0685464 z^{4} - 0.35152 z^{3} + 1.014 z^{2} - 1.56 z + 1.0} + \frac{0.26 \left(- 6.03384334309753 \cdot 10^{-19} z^{6} - 0.00233306300400003 z^{5} + 0.0177235379839599 z^{4} - 0.0176993509854497 z^{3} - 0.0794151527060655 z^{2} + 0.136597511776403 z\right)}{0.000308915776 z^{6} - 0.0071288256 z^{5} + 0.0685464 z^{4} - 0.35152 z^{3} + 1.014 z^{2} - 1.56 z + 1.0} + \frac{0.629933048990164 \left(6.55994896950454 \cdot 10^{-5} z^{6} + 0.0012001049430604 z^{5} - 0.0207451870780086 z^{4} + 0.102644363402604 z^{3} - 0.213826833830712 z^{2} + 0.166485643232483 z\right)}{0.000308915776 z^{6} - 0.0071288256 z^{5} + 0.0685464 z^{4} - 0.35152 z^{3} + 1.014 z^{2} - 1.56 z + 1.0} - \frac{0.0411862672832105 \left(0.000510689886401085 z^{6} - 0.0058786909303814 z^{5} + 0.0185714485371234 z^{4} + 0.0169304292248242 z^{3} - 0.175291279158734 z^{2} + 0.223719614783205 z\right)}{0.000308915776 z^{6} - 0.0071288256 z^{5} + 0.0685464 z^{4} - 0.35152 z^{3} + 1.014 z^{2} - 1.56 z + 1.0} - \frac{0.0549690879653838 \left(0.000843973595291566 z^{6} - 0.0123901403583318 z^{5} + 0.0657693789903757 z^{4} - 0.139346099975322 z^{3} + 0.0494866345916561 z^{2} + 0.13 z\right)}{0.000308915776 z^{6} - 0.0071288256 z^{5} + 0.0685464 z^{4} - 0.35152 z^{3} + 1.014 z^{2} - 1.56 z + 1.0} + 0.136597511776403\right) + 1 \]
- Template Parameters:
value_t – type of coefficient (
doubleby default)linear_algebra_t – type that provides linear algebra if it is undefined for state_t (
voidby default)Args – optional arguments to build linear_algebra_t object
-
template<typename value_t, typename linear_algebra_t = void, typename ...Args>
auto ponio::runge_kutta::esdirk_54_b_t =[]( Args ... args ){returndiagonal_implicit_runge_kutta::make_dirk<butcher_esdirk_54_b<value_t>, linear_algebra_t>(args...);}# ESDIRK (5,4) b method.
This method is based on the following Butcher tableau:
\[\begin{split} \begin{array}{c|ccccccc} 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0.54000000000000004 & 0.27 & 0.27 & 0 & 0 & 0 & 0 & 0 \\ 1.27765371804359695 & 0.135 & 0.87265371804359686 & 0.27 & 0 & 0 & 0 & 0 \\ 0.61209613098388882 & 0.24814211234447322 & 0.13282088522859322 & -0.03886686658917771 & 0.27 & 0 & 0 & 0 \\ 0.64467703996313608 & 0.25494479822150471 & 0.131061964223472 & -0.04522093930235708 & 0.03389121682051642 & 0.27 & 0 & 0 \\ 1.0 & 0.17549975523182941 & 0 & -0.01641725931492383 & 3.59357175290010625 & -3.02265424881701182 & 0.27 & 0 \\ 1.00000000000000022 & 0.1584761264367041 & 0 & -0.07384703732094983 & 5.26056776397634893 & -4.839469477584075 & 0.2242726244919718 & 0.27 \\ \hline & 0.1584761264367041 & 0 & -0.07384703732094983 & 5.26056776397634893 & -4.839469477584075 & 0.2242726244919718 & 0.27 \end{array} \end{split}\]stages: 7
order: 5
stages order:
stability function:
\[ z \left(\frac{0.2242726244919718 \left(- 0.00343504981381171726 z^{5} + 0.0268414382272845098 z^{4} - 0.0703340542016252829 z^{3} + 0.0668197959530245767 z^{2}\right)}{0.000387420489 z^{6} - 0.0086093442 z^{5} + 0.07971615 z^{4} - 0.39366 z^{3} + 1.0935 z^{2} - 1.62 z + 1.0} + \frac{0.27 \left(0.000678214982238698531 z^{5} - 0.00117914034666921656 z^{4} + 0.0057530417321895417 z^{3} + 1.27872476569795087 \cdot 10^{-17} z^{2}\right)}{0.000387420489 z^{6} - 0.0086093442 z^{5} + 0.07971615 z^{4} - 0.39366 z^{3} + 1.0935 z^{2} - 1.62 z + 1.0} + \frac{0.2242726244919718 \left(- 0.0160636239664556158 z^{5} + 0.237979614317860975 z^{4} - 1.32210896843256097 z^{3} + 3.26446658872237277 z^{2} - 3.02265424881701182 z\right)}{0.000387420489 z^{6} - 0.0086093442 z^{5} + 0.07971615 z^{4} - 0.39366 z^{3} + 1.0935 z^{2} - 1.62 z + 1.0} + \frac{0.27 \left(- 0.0123758468167041065 z^{5} + 0.232764686801777421 z^{4} - 1.56768608243093377 z^{3} + 4.54872843447680021 z^{2} - 4.839469477584075 z\right)}{0.000387420489 z^{6} - 0.0086093442 z^{5} + 0.07971615 z^{4} - 0.39366 z^{3} + 1.0935 z^{2} - 1.62 z + 1.0} + \frac{0.27 \left(- 0.00042825225575959634 z^{5} + 0.00596649128258051227 z^{4} - 0.0352633859981608142 z^{3} + 0.0904564285087441128 z^{2} - 0.07384703732094983 z\right)}{0.000387420489 z^{6} - 0.0086093442 z^{5} + 0.07971615 z^{4} - 0.39366 z^{3} + 1.0935 z^{2} - 1.62 z + 1.0} - \frac{4.839469477584075 \left(- 0.000214395270776339753 z^{5} + 0.00327225342358095833 z^{4} - 0.018712670074657582 z^{3} + 0.0475213690438377394 z^{2} - 0.0452209393023570803 z\right)}{0.000387420489 z^{6} - 0.0086093442 z^{5} + 0.07971615 z^{4} - 0.39366 z^{3} + 1.0935 z^{2} - 1.62 z + 1.0} + \frac{5.26056776397634893 \left(- 0.000206554464470191914 z^{5} + 0.00306006614029913946 z^{4} - 0.0170003674461063304 z^{3} + 0.0419762159163119268 z^{2} - 0.03886686658917771 z\right)}{0.000387420489 z^{6} - 0.0086093442 z^{5} + 0.07971615 z^{4} - 0.39366 z^{3} + 1.0935 z^{2} - 1.62 z + 1.0} - \frac{4.839469477584075 \left(0.000180111821583120666 z^{5} - 0.00266832328271289875 z^{4} + 0.0148240182372938819 z^{3} - 0.0366025141661577332 z^{2} + 0.0338912168205164196 z\right)}{0.000387420489 z^{6} - 0.0086093442 z^{5} + 0.07971615 z^{4} - 0.39366 z^{3} + 1.0935 z^{2} - 1.62 z + 1.0} + \frac{0.2242726244919718 \left(0.000261735333728298576 z^{5} - 0.00151000355809119979 z^{4} - 0.000782608050637478677 z^{3} + 0.0147470304792776464 z^{2} - 0.0164172593149238301 z\right)}{0.000387420489 z^{6} - 0.0086093442 z^{5} + 0.07971615 z^{4} - 0.39366 z^{3} + 1.0935 z^{2} - 1.62 z + 1.0} + \frac{0.27 \left(0.00119187667832637985 z^{5} - 0.0176574322715019238 z^{4} + 0.0980968459527884653 z^{3} - 0.242214434451329544 z^{2} + 0.2242726244919718 z\right)}{0.000387420489 z^{6} - 0.0086093442 z^{5} + 0.07971615 z^{4} - 0.39366 z^{3} + 1.0935 z^{2} - 1.62 z + 1.0} - \frac{4.839469477584075 \left(0.00130085115621898058 z^{5} - 0.0173439591341042507 z^{4} + 0.084495219163898703 z^{3} - 0.176507680757400304 z^{2} + 0.131061964223472 z\right)}{0.000387420489 z^{6} - 0.0086093442 z^{5} + 0.07971615 z^{4} - 0.39366 z^{3} + 1.0935 z^{2} - 1.62 z + 1.0} + \frac{5.26056776397634893 \left(0.00137345916436552883 z^{5} - 0.0178749708657936096 z^{4} + 0.0855688808655644826 z^{3} - 0.177363871684631058 z^{2} + 0.13282088522859322 z\right)}{0.000387420489 z^{6} - 0.0086093442 z^{5} + 0.07971615 z^{4} - 0.39366 z^{3} + 1.0935 z^{2} - 1.62 z + 1.0} - \frac{0.07384703732094983 \left(0.00463763964570807159 z^{5} - 0.068705772529008468 z^{4} + 0.381698736272269266 z^{3} - 0.942466015487084608 z^{2} + 0.87265371804359686 z\right)}{0.000387420489 z^{6} - 0.0086093442 z^{5} + 0.07971615 z^{4} - 0.39366 z^{3} + 1.0935 z^{2} - 1.62 z + 1.0} + \frac{0.27 \left(0.013646955203251074 z^{5} - 0.261379789179478633 z^{4} + 1.75803888172453756 z^{3} - 5.03948892613240765 z^{2} + 5.26056776397634893 z\right)}{0.000387420489 z^{6} - 0.0086093442 z^{5} + 0.07971615 z^{4} - 0.39366 z^{3} + 1.0935 z^{2} - 1.62 z + 1.0} + \frac{0.2242726244919718 \left(0.0211140683362572287 z^{5} - 0.305333032104079776 z^{4} + 1.65480584343979763 z^{3} - 3.98349892365222728 z^{2} + 3.59357175290010625 z\right)}{0.000387420489 z^{6} - 0.0086093442 z^{5} + 0.07971615 z^{4} - 0.39366 z^{3} + 1.0935 z^{2} - 1.62 z + 1.0} + \frac{0.8415238735632959 \left(- 0.0014348907 z^{5} + 0.02657205 z^{4} - 0.19683 z^{3} + 0.729 z^{2} - 1.35 z + 1.0\right)}{0.000387420489 z^{6} - 0.0086093442 z^{5} + 0.07971615 z^{4} - 0.39366 z^{3} + 1.0935 z^{2} - 1.62 z + 1.0} + \frac{5.26056776397634893 \left(- 0.0000131076876062229431 z^{6} + 0.00218051141149906886 z^{5} - 0.0280332637442846082 z^{4} + 0.138674143692972702 z^{3} - 0.304377239642857669 z^{2} + 0.24814211234447322 z\right)}{0.000387420489 z^{6} - 0.0086093442 z^{5} + 0.07971615 z^{4} - 0.39366 z^{3} + 1.0935 z^{2} - 1.62 z + 1.0} + \frac{0.2242726244919718 \left(1.8113357766680171 \cdot 10^{-19} z^{6} - 0.00338759268971819462 z^{5} + 0.0199227497836921602 z^{4} - 0.00824354608830724837 z^{3} - 0.118034491502447667 z^{2} + 0.17549975523182941 z\right)}{0.000387420489 z^{6} - 0.0086093442 z^{5} + 0.07971615 z^{4} - 0.39366 z^{3} + 1.0935 z^{2} - 1.62 z + 1.0} - \frac{4.839469477584075 \left(1.16185850875168748 \cdot 10^{-6} z^{6} + 0.00187116779576669822 z^{5} - 0.0262148227209297975 z^{4} + 0.135530443737588061 z^{3} - 0.306483735932744638 z^{2} + 0.25494479822150471 z\right)}{0.000387420489 z^{6} - 0.0086093442 z^{5} + 0.07971615 z^{4} - 0.39366 z^{3} + 1.0935 z^{2} - 1.62 z + 1.0} + \frac{0.27 \left(0.000338308657693899338 z^{6} - 0.00391791795801911703 z^{5} + 0.0193859503799585079 z^{4} - 0.00560263431375434396 z^{3} - 0.112981502401807074 z^{2} + 0.1584761264367041 z\right)}{0.000387420489 z^{6} - 0.0086093442 z^{5} + 0.07971615 z^{4} - 0.39366 z^{3} + 1.0935 z^{2} - 1.62 z + 1.0} - \frac{0.07384703732094983 \left(0.00105845245984117933 z^{6} - 0.0149633318328322863 z^{5} + 0.0764866087935127019 z^{4} - 0.156050824181512844 z^{3} + 0.0533665038717711521 z^{2} + 0.135 z\right)}{0.000387420489 z^{6} - 0.0086093442 z^{5} + 0.07971615 z^{4} - 0.39366 z^{3} + 1.0935 z^{2} - 1.62 z + 1.0} + 0.1584761264367041\right) + 1 \]
- Template Parameters:
value_t – type of coefficient (
doubleby default)linear_algebra_t – type that provides linear algebra if it is undefined for state_t (
voidby default)Args – optional arguments to build linear_algebra_t object
-
template<typename value_t, typename linear_algebra_t = void, typename ...Args>
auto ponio::runge_kutta::implicit_midpoint_t =[]( Args ... args ){returndiagonal_implicit_runge_kutta::make_dirk<butcher_implicit_midpoint<value_t>, linear_algebra_t>(args...);}# implicit midpoint method
This method is based on the following Butcher tableau:
\[\begin{split} \begin{array}{c|c} \frac{1}{2} & \frac{1}{2} \\ \hline & 1 \end{array} \end{split}\]stages: 1
order: 2
stages order:
stability function:
\[ - \frac{2 z}{z - 2} + 1 \]
- Template Parameters:
value_t – type of coefficient (
doubleby default)linear_algebra_t – type that provides linear algebra if it is undefined for state_t (
voidby default)Args – optional arguments to build linear_algebra_t object
-
template<typename value_t, typename linear_algebra_t = void, typename ...Args>
auto ponio::runge_kutta::lsdirk22qz_t =[]( Args ... args ){returndiagonal_implicit_runge_kutta::make_dirk<butcher_lsdirk22qz<value_t>, linear_algebra_t>(args...);}# L-SDIRK-22-QZ method.
This method is based on the following Butcher tableau:
\[\begin{split} \begin{array}{c|cc} \frac{\sqrt{2}}{2} + 1 & \frac{\sqrt{2}}{2} + 1 & 0 \\ 1 & - \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} + 1 \\ \hline & \frac{1}{2} & \frac{1}{2} \end{array} \end{split}\]stages: 2
order: 1
stages order:
stability function:
\[ z \left(- \frac{\sqrt{2} z}{2 \left(2 \sqrt{2} z^{2} + 3 z^{2} - 4 z - 2 \sqrt{2} z + 2\right)} + \frac{- 2 z - \sqrt{2} z + 2}{2 \left(2 \sqrt{2} z^{2} + 3 z^{2} - 4 z - 2 \sqrt{2} z + 2\right)} - \frac{1}{\sqrt{2} z + 2 z - 2}\right) + 1 \]
- Template Parameters:
value_t – type of coefficient (
doubleby default)linear_algebra_t – type that provides linear algebra if it is undefined for state_t (
voidby default)Args – optional arguments to build linear_algebra_t object
-
template<typename value_t, typename linear_algebra_t = void, typename ...Args>
auto ponio::runge_kutta::lsdirk33_t =[]( Args ... args ){returndiagonal_implicit_runge_kutta::make_dirk<butcher_lsdirk33<value_t>, linear_algebra_t>(args...);}# L-SDIRK-33 method.
This method is based on the following Butcher tableau:
\[\begin{split} \begin{array}{c|ccc} 0.4358665215 & 0.4358665215 & 0 & 0 \\ 0.71793326075 & 0.28206673925 & 0.4358665215 & 0 \\ 1 & 1.20849664915323 & -0.644363170653235 & 0.4358665215 \\ \hline & 1.20849664915323 & -0.644363170653235 & 0.4358665215 \end{array} \end{split}\]stages: 3
order: 3
stages order:
stability function:
\[ z \left(\frac{0.4358665215 \left(- 0.280856333775336 z^{2} + 0.644363170653235 z\right)}{0.0828057581148089 z^{3} - 0.56993887369353 z^{2} + 1.3075995645 z - 1.0} - \frac{0.644363170653235 \left(0.122943448467745 z^{2} - 0.28206673925 z\right)}{0.0828057581148089 z^{3} - 0.56993887369353 z^{2} + 1.3075995645 z - 1.0} + \frac{0.4358665215 \left(0.708496649149774 z^{2} - 1.20849664915323 z\right)}{0.0828057581148089 z^{3} - 0.56993887369353 z^{2} + 1.3075995645 z - 1.0} + \frac{0.999999999999995 \left(- 0.18997962456451 z^{2} + 0.871733043 z - 1.0\right)}{0.0828057581148089 z^{3} - 0.56993887369353 z^{2} + 1.3075995645 z - 1.0}\right) + 1 \]
- Template Parameters:
value_t – type of coefficient (
doubleby default)linear_algebra_t – type that provides linear algebra if it is undefined for state_t (
voidby default)Args – optional arguments to build linear_algebra_t object
-
template<typename value_t, typename linear_algebra_t = void, typename ...Args>
auto ponio::runge_kutta::lsdirk43_t =[]( Args ... args ){returndiagonal_implicit_runge_kutta::make_dirk<butcher_lsdirk43<value_t>, linear_algebra_t>(args...);}# L-SDIRK-43 method.
This method is based on the following Butcher tableau:
\[\begin{split} \begin{array}{c|cccc} \frac{1}{2} & \frac{1}{2} & 0 & 0 & 0 \\ \frac{2}{3} & \frac{1}{6} & \frac{1}{2} & 0 & 0 \\ \frac{1}{2} & - \frac{1}{2} & \frac{1}{2} & \frac{1}{2} & 0 \\ 1 & \frac{3}{2} & - \frac{3}{2} & \frac{1}{2} & \frac{1}{2} \\ \hline & \frac{3}{2} & - \frac{3}{2} & \frac{1}{2} & \frac{1}{2} \end{array} \end{split}\]stages: 4
order: 3
stages order:
stability function:
\[ z \left(- \frac{3 z}{3 z^{2} - 12 z + 12} + \frac{2 z}{z^{2} - 4 z + 4} + \frac{- 8 z^{2} + 12 z}{2 \left(3 z^{3} - 18 z^{2} + 36 z - 24\right)} + \frac{- 8 z^{2} + 12 z}{2 \left(z^{3} - 6 z^{2} + 12 z - 8\right)} + \frac{32 z^{3} - 96 z^{2} + 72 z}{2 \left(3 z^{4} - 24 z^{3} + 72 z^{2} - 96 z + 48\right)} - \frac{2}{z - 2}\right) + 1 \]
- Template Parameters:
value_t – type of coefficient (
doubleby default)linear_algebra_t – type that provides linear algebra if it is undefined for state_t (
voidby default)Args – optional arguments to build linear_algebra_t object
-
template<typename value_t, typename linear_algebra_t = void, typename ...Args>
auto ponio::runge_kutta::sdirk_23_t =[]( Args ... args ){returndiagonal_implicit_runge_kutta::make_dirk<butcher_sdirk_23<value_t>, linear_algebra_t>(args...);}# SDIRK (2,3) method.
This method is based on the following Butcher tableau:
\[\begin{split} \begin{array}{c|cc} \frac{\sqrt{3}}{6} + \frac{1}{2} & \frac{\sqrt{3}}{6} + \frac{1}{2} & 0 \\ \frac{1}{2} - \frac{\sqrt{3}}{6} & - \frac{\sqrt{3}}{3} & \frac{\sqrt{3}}{6} + \frac{1}{2} \\ \hline & \frac{1}{2} & \frac{1}{2} \end{array} \end{split}\]stages: 2
order: 3
stages order:
stability function:
\[ z \left(- \frac{\sqrt{3} z}{\sqrt{3} z^{2} + 2 z^{2} - 6 z - 2 \sqrt{3} z + 6} + \frac{- 3 z - \sqrt{3} z + 6}{2 \left(\sqrt{3} z^{2} + 2 z^{2} - 6 z - 2 \sqrt{3} z + 6\right)} - \frac{3}{\sqrt{3} z + 3 z - 6}\right) + 1 \]
- Template Parameters:
value_t – type of coefficient (
doubleby default)linear_algebra_t – type that provides linear algebra if it is undefined for state_t (
voidby default)Args – optional arguments to build linear_algebra_t object
-
template<typename value_t, typename linear_algebra_t = void, typename ...Args>
auto ponio::runge_kutta::sdirk_34_t =[]( Args ... args ){returndiagonal_implicit_runge_kutta::make_dirk<butcher_sdirk_34<value_t>, linear_algebra_t>(args...);}# SDIRK (3,4) method.
This method is based on the following Butcher tableau:
\[\begin{split} \begin{array}{c|ccc} \frac{1}{2} + \frac{\sqrt{3} \cos{\left(\frac{\pi}{18} \right)}}{3} & \frac{1}{2} + \frac{\sqrt{3} \cos{\left(\frac{\pi}{18} \right)}}{3} & 0 & 0 \\ \frac{1}{2} & - \frac{\sqrt{3} \cos{\left(\frac{\pi}{18} \right)}}{3} & \frac{1}{2} + \frac{\sqrt{3} \cos{\left(\frac{\pi}{18} \right)}}{3} & 0 \\ - \frac{\sqrt{3} \cos{\left(\frac{\pi}{18} \right)}}{3} + \frac{1}{2} & 1 + \frac{2 \sqrt{3} \cos{\left(\frac{\pi}{18} \right)}}{3} & - \frac{4 \sqrt{3} \cos{\left(\frac{\pi}{18} \right)}}{3} - 1 & \frac{1}{2} + \frac{\sqrt{3} \cos{\left(\frac{\pi}{18} \right)}}{3} \\ \hline & \frac{1}{8 \cos^{2}{\left(\frac{\pi}{18} \right)}} & 1 - \frac{1}{4 \cos^{2}{\left(\frac{\pi}{18} \right)}} & \frac{1}{8 \cos^{2}{\left(\frac{\pi}{18} \right)}} \end{array} \end{split}\]stages: 3
order: 4
stages order:
stability function:
\[ z \left(- \frac{4 \sqrt{3} z \left(1 - \frac{1}{4 \cos^{2}{\left(\frac{\pi}{18} \right)}}\right) \cos{\left(\frac{\pi}{18} \right)}}{3 z^{2} + 4 z^{2} \cos^{2}{\left(\frac{\pi}{18} \right)} + 4 \sqrt{3} z^{2} \cos{\left(\frac{\pi}{18} \right)} - 8 \sqrt{3} z \cos{\left(\frac{\pi}{18} \right)} - 12 z + 12} + \frac{\left(1 - \frac{1}{4 \cos^{2}{\left(\frac{\pi}{18} \right)}}\right) \left(- 4 \sqrt{3} z \cos{\left(\frac{\pi}{18} \right)} - 6 z + 12\right)}{3 z^{2} + 4 z^{2} \cos^{2}{\left(\frac{\pi}{18} \right)} + 4 \sqrt{3} z^{2} \cos{\left(\frac{\pi}{18} \right)} - 8 \sqrt{3} z \cos{\left(\frac{\pi}{18} \right)} - 12 z + 12} + \frac{- 32 \sqrt{3} z^{3} \cos^{3}{\left(\frac{\pi}{18} \right)} + 36 z^{3} + 48 \sqrt{3} z^{3} \cos{\left(\frac{\pi}{18} \right)} - 144 \sqrt{3} z^{2} \cos{\left(\frac{\pi}{18} \right)} - 144 z^{2} + 144 z + 96 \sqrt{3} z \cos{\left(\frac{\pi}{18} \right)}}{8 \left(9 z^{4} + 16 z^{4} \cos^{4}{\left(\frac{\pi}{18} \right)} + 24 \sqrt{3} z^{4} \cos{\left(\frac{\pi}{18} \right)} + 32 \sqrt{3} z^{4} \cos^{3}{\left(\frac{\pi}{18} \right)} + 72 z^{4} \cos^{2}{\left(\frac{\pi}{18} \right)} - 288 z^{3} \cos^{2}{\left(\frac{\pi}{18} \right)} - 144 \sqrt{3} z^{3} \cos{\left(\frac{\pi}{18} \right)} - 64 \sqrt{3} z^{3} \cos^{3}{\left(\frac{\pi}{18} \right)} - 72 z^{3} + 216 z^{2} + 288 z^{2} \cos^{2}{\left(\frac{\pi}{18} \right)} + 288 \sqrt{3} z^{2} \cos{\left(\frac{\pi}{18} \right)} - 192 \sqrt{3} z \cos{\left(\frac{\pi}{18} \right)} - 288 z + 144\right) \cos^{2}{\left(\frac{\pi}{18} \right)}} + \frac{- 240 z^{3} \cos^{2}{\left(\frac{\pi}{18} \right)} - 96 \sqrt{3} z^{3} \cos{\left(\frac{\pi}{18} \right)} - 64 \sqrt{3} z^{3} \cos^{3}{\left(\frac{\pi}{18} \right)} - 36 z^{3} + 144 z^{2} + 384 z^{2} \cos^{2}{\left(\frac{\pi}{18} \right)} + 288 \sqrt{3} z^{2} \cos{\left(\frac{\pi}{18} \right)} - 192 \sqrt{3} z \cos{\left(\frac{\pi}{18} \right)} - 144 z}{8 \left(9 z^{4} + 16 z^{4} \cos^{4}{\left(\frac{\pi}{18} \right)} + 24 \sqrt{3} z^{4} \cos{\left(\frac{\pi}{18} \right)} + 32 \sqrt{3} z^{4} \cos^{3}{\left(\frac{\pi}{18} \right)} + 72 z^{4} \cos^{2}{\left(\frac{\pi}{18} \right)} - 288 z^{3} \cos^{2}{\left(\frac{\pi}{18} \right)} - 144 \sqrt{3} z^{3} \cos{\left(\frac{\pi}{18} \right)} - 64 \sqrt{3} z^{3} \cos^{3}{\left(\frac{\pi}{18} \right)} - 72 z^{3} + 216 z^{2} + 288 z^{2} \cos^{2}{\left(\frac{\pi}{18} \right)} + 288 \sqrt{3} z^{2} \cos{\left(\frac{\pi}{18} \right)} - 192 \sqrt{3} z \cos{\left(\frac{\pi}{18} \right)} - 288 z + 144\right) \cos^{2}{\left(\frac{\pi}{18} \right)}} + \frac{- 72 z^{3} \cos^{2}{\left(\frac{\pi}{18} \right)} - 36 \sqrt{3} z^{3} \cos{\left(\frac{\pi}{18} \right)} - 16 \sqrt{3} z^{3} \cos^{3}{\left(\frac{\pi}{18} \right)} - 18 z^{3} + 108 z^{2} + 144 z^{2} \cos^{2}{\left(\frac{\pi}{18} \right)} + 144 \sqrt{3} z^{2} \cos{\left(\frac{\pi}{18} \right)} - 144 \sqrt{3} z \cos{\left(\frac{\pi}{18} \right)} - 216 z + 144}{8 \left(9 z^{4} + 16 z^{4} \cos^{4}{\left(\frac{\pi}{18} \right)} + 24 \sqrt{3} z^{4} \cos{\left(\frac{\pi}{18} \right)} + 32 \sqrt{3} z^{4} \cos^{3}{\left(\frac{\pi}{18} \right)} + 72 z^{4} \cos^{2}{\left(\frac{\pi}{18} \right)} - 288 z^{3} \cos^{2}{\left(\frac{\pi}{18} \right)} - 144 \sqrt{3} z^{3} \cos{\left(\frac{\pi}{18} \right)} - 64 \sqrt{3} z^{3} \cos^{3}{\left(\frac{\pi}{18} \right)} - 72 z^{3} + 216 z^{2} + 288 z^{2} \cos^{2}{\left(\frac{\pi}{18} \right)} + 288 \sqrt{3} z^{2} \cos{\left(\frac{\pi}{18} \right)} - 192 \sqrt{3} z \cos{\left(\frac{\pi}{18} \right)} - 288 z + 144\right) \cos^{2}{\left(\frac{\pi}{18} \right)}} - \frac{3}{4 \left(3 z + 2 \sqrt{3} z \cos{\left(\frac{\pi}{18} \right)} - 6\right) \cos^{2}{\left(\frac{\pi}{18} \right)}}\right) + 1 \]
- Template Parameters:
value_t – type of coefficient (
doubleby default)linear_algebra_t – type that provides linear algebra if it is undefined for state_t (
voidby default)Args – optional arguments to build linear_algebra_t object
-
template<typename value_t, typename linear_algebra_t = void, typename ...Args>
auto ponio::runge_kutta::sspirk33_t =[]( Args ... args ){returndiagonal_implicit_runge_kutta::make_dirk<butcher_sspirk33<value_t>, linear_algebra_t>(args...);}# SSPIRK33 method.
This method is based on the following Butcher tableau:
\[\begin{split} \begin{array}{c|ccc} \frac{1}{2} - \frac{\sqrt{2}}{4} & \frac{1}{2} - \frac{\sqrt{2}}{4} & 0 & 0 \\ \frac{1}{2} & \frac{\sqrt{2}}{4} & \frac{1}{2} - \frac{\sqrt{2}}{4} & 0 \\ \frac{\sqrt{2}}{4} + \frac{1}{2} & \frac{\sqrt{2}}{4} & \frac{\sqrt{2}}{4} & \frac{1}{2} - \frac{\sqrt{2}}{4} \\ \hline & \frac{1}{3} & \frac{1}{3} & \frac{1}{3} \end{array} \end{split}\]stages: 3
order: 3
stages order:
stability function:
\[ z \left(- \frac{2 \sqrt{2} z}{3 \left(- 3 z^{2} + 2 \sqrt{2} z^{2} - 4 \sqrt{2} z + 8 z - 8\right)} + \frac{- 2 \sqrt{2} z + 4 z - 8}{3 \left(- 3 z^{2} + 2 \sqrt{2} z^{2} - 4 \sqrt{2} z + 8 z - 8\right)} + \frac{- 8 \sqrt{2} z^{3} + 12 z^{3} - 24 z^{2} + 16 \sqrt{2} z^{2} - 16 \sqrt{2} z}{3 \left(- 17 z^{4} + 12 \sqrt{2} z^{4} - 56 \sqrt{2} z^{3} + 80 z^{3} - 144 z^{2} + 96 \sqrt{2} z^{2} - 64 \sqrt{2} z + 128 z - 64\right)} + \frac{- 6 \sqrt{2} z^{3} + 8 z^{3} - 16 z^{2} + 16 \sqrt{2} z^{2} - 16 \sqrt{2} z}{3 \left(- 17 z^{4} + 12 \sqrt{2} z^{4} - 56 \sqrt{2} z^{3} + 80 z^{3} - 144 z^{2} + 96 \sqrt{2} z^{2} - 64 \sqrt{2} z + 128 z - 64\right)} + \frac{- 14 \sqrt{2} z^{3} + 20 z^{3} - 72 z^{2} + 48 \sqrt{2} z^{2} - 48 \sqrt{2} z + 96 z - 64}{3 \left(- 17 z^{4} + 12 \sqrt{2} z^{4} - 56 \sqrt{2} z^{3} + 80 z^{3} - 144 z^{2} + 96 \sqrt{2} z^{2} - 64 \sqrt{2} z + 128 z - 64\right)} + \frac{4}{3 \left(- 2 z + \sqrt{2} z + 4\right)}\right) + 1 \]
- Template Parameters:
value_t – type of coefficient (
doubleby default)linear_algebra_t – type that provides linear algebra if it is undefined for state_t (
voidby default)Args – optional arguments to build linear_algebra_t object
Embedded methods#
-
template<typename value_t, typename linear_algebra_t = void, typename ...Args>
auto ponio::runge_kutta::sdirk_54_t =[]( Args ... args ){returndiagonal_implicit_runge_kutta::make_dirk<butcher_sdirk_54<value_t>, linear_algebra_t>(args...);}# SDIRK (5,4) method.
This method is based on the following Butcher tableau:
\[\begin{split} \begin{array}{c|ccccc} \frac{1}{4} & \frac{1}{4} & 0 & 0 & 0 & 0 \\ \frac{3}{4} & \frac{1}{2} & \frac{1}{4} & 0 & 0 & 0 \\ \frac{11}{20} & \frac{17}{50} & - \frac{1}{25} & \frac{1}{4} & 0 & 0 \\ \frac{1}{2} & \frac{371}{1360} & - \frac{137}{2720} & \frac{15}{544} & \frac{1}{4} & 0 \\ 1 & \frac{25}{24} & - \frac{49}{48} & \frac{125}{16} & - \frac{85}{12} & \frac{1}{4} \\ \hline & \frac{25}{24} & - \frac{49}{48} & \frac{125}{16} & - \frac{85}{12} & \frac{1}{4} \\ \hline & \frac{59}{48} & - \frac{17}{96} & \frac{225}{32} & - \frac{85}{12} & 0 \end{array} \end{split}\]stages: 5
order: 4
stages order:
stability function:
\[ z \left(- \frac{425 z}{4 \left(34 z^{2} - 272 z + 544\right)} - \frac{125 z}{25 z^{2} - 200 z + 400} - \frac{85 z}{3 z^{2} - 24 z + 48} - \frac{49 z}{6 \left(z^{2} - 8 z + 16\right)} - \frac{85 \left(- 125 z^{2} + 548 z\right)}{12 \left(170 z^{3} - 2040 z^{2} + 8160 z - 10880\right)} + \frac{125 \left(168 z^{2} - 544 z\right)}{16 \left(25 z^{3} - 300 z^{2} + 1200 z - 1600\right)} + \frac{275 z^{2} - 1000 z}{4 \left(2 z^{3} - 24 z^{2} + 96 z - 128\right)} + \frac{- 103 z^{3} + 852 z^{2} - 1568 z}{4 \left(6 z^{4} - 96 z^{3} + 576 z^{2} - 1536 z + 1536\right)} - \frac{85 \left(445 z^{3} - 3312 z^{2} + 5936 z\right)}{12 \left(85 z^{4} - 1360 z^{3} + 8160 z^{2} - 21760 z + 21760\right)} + \frac{- 37 z^{4} - 136 z^{3} + 1744 z^{2} - 3200 z}{4 \left(3 z^{5} - 60 z^{4} + 480 z^{3} - 1920 z^{2} + 3840 z - 3072\right)} - \frac{4}{z - 4}\right) + 1 \]bibliography: Hairer, Ernst & Wanner, Gerhard, “Solving Ordinary Differential Equations II”, in: Springer Berlin Heidelberg (1996)
- Template Parameters:
value_t – type of coefficient (
doubleby default)linear_algebra_t – type that provides linear algebra if it is undefined for state_t (
voidby default)Args – optional arguments to build linear_algebra_t object