MRKISS 2025-09-10
A tiny library with zero dependencies that aims to make it easy to use & experiment with explicit Runge-Kutta methods.
Loading...
Searching...
No Matches
mrkiss_eerk_cash_karp_5_4 Module Reference

Butcher tableau for Cash & Karp's 4 step, order (5,4) Runge-Kutta method. More...

Variables

integer, parameter s = 6
 The order of the overall method.
integer, parameter m = 5
 Number of methods.
real(kind=rk), dimension(s, s), parameter a
 The \(\mathbf{a}\) matrix for the Butcher Tableau.
real(kind=rk), dimension(s, m), parameter b
 The \(\mathbf{b}\) matrix for the Butcher Tableau.
real(kind=rk), dimension(s), parameter c
 The \(\mathbf{c}\) matrix for the Butcher Tableau.
integer, dimension(m), parameter p = [5, 4, 3, 2, 1]
 The method orders.
integer, dimension(m), parameter se = [6, 6, 4, 2, 1]
 Number of stages for each method.

Detailed Description

Butcher tableau for Cash & Karp's 4 step, order (5,4) Runge-Kutta method.

IMO
I don't recommend this method as a 2 step embedded method for general use. It was designed with five embedded methods for use with stiff applications. It's an interesting method from both a historical and research perspective. Note this module has all five embedded methods defined (b1/p1-b5/p5).
Known Aliases
'ARKODE_CASH_KARP_6_4_5' (SUNDIALS)
Stability Image Links

References:
  • Cash & Karp(1990); A variable order Runge-Kutta method for initial value problems with rapidly varying right-hand sides; TOMS 16; zotero://select/items/0_2YSGGWSD

Variable Documentation

◆ s

integer, parameter mrkiss_eerk_cash_karp_5_4::s = 6

The order of the overall method.

Definition at line 67 of file mrkiss_eerk_cash_karp_5_4.f90.

◆ m

integer, parameter mrkiss_eerk_cash_karp_5_4::m = 5

Number of methods.

Definition at line 69 of file mrkiss_eerk_cash_karp_5_4.f90.

◆ a

real(kind=rk), dimension(s,s), parameter mrkiss_eerk_cash_karp_5_4::a

The \(\mathbf{a}\) matrix for the Butcher Tableau.

Definition at line 71 of file mrkiss_eerk_cash_karp_5_4.f90.

71 real(kind=rk), parameter :: a(s,s) = reshape([ 0.0_rk, 0.0_rk, 0.0_rk, 0.0_rk, 0.0_rk, 0.0_rk, &
72 110592.0_rk, 0.0_rk, 0.0_rk, 0.0_rk, 0.0_rk, 0.0_rk, &
73 41472.0_rk, 124416.0_rk, 0.0_rk, 0.0_rk, 0.0_rk, 0.0_rk, &
74 165888.0_rk, -497664.0_rk, 663552.0_rk, 0.0_rk, 0.0_rk, 0.0_rk, &
75 -112640.0_rk, 1382400.0_rk, -1433600.0_rk, 716800.0_rk, 0.0_rk, 0.0_rk, &
76 16310.0_rk, 189000.0_rk, 23000.0_rk, 221375.0_rk, 34155.0_rk, 0.0_rk], [s, s]) / 552960.0_rk

◆ b

real(kind=rk), dimension(s,m), parameter mrkiss_eerk_cash_karp_5_4::b

The \(\mathbf{b}\) matrix for the Butcher Tableau.

Definition at line 78 of file mrkiss_eerk_cash_karp_5_4.f90.

◆ c

real(kind=rk), dimension(s), parameter mrkiss_eerk_cash_karp_5_4::c

The \(\mathbf{c}\) matrix for the Butcher Tableau.

Definition at line 84 of file mrkiss_eerk_cash_karp_5_4.f90.

84 real(kind=rk), parameter :: c(s) = [ 0.0_rk, 8.0_rk, 12.0_rk, 24.0_rk, 40.0_rk, 35.0_rk] / 40.0_rk

◆ p

integer, dimension(m), parameter mrkiss_eerk_cash_karp_5_4::p = [5, 4, 3, 2, 1]

The method orders.

Definition at line 86 of file mrkiss_eerk_cash_karp_5_4.f90.

◆ se

integer, dimension(m), parameter mrkiss_eerk_cash_karp_5_4::se = [6, 6, 4, 2, 1]

Number of stages for each method.

Definition at line 88 of file mrkiss_eerk_cash_karp_5_4.f90.