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_fehlberg_4_5 Module Reference

Butcher tableau for Fehlberg's 6 stage, Order (4,5) Runge-Kutta method. More...

Variables

integer, parameter s = 6
 The order of the overall method.
integer, parameter m = 2
 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 = [ 4, 5 ]
 The method orders.
integer, dimension(m), parameter se = [ 5, 6 ]
 Number of stages for each method.

Detailed Description

Butcher tableau for Fehlberg's 6 stage, Order (4,5) Runge-Kutta method.

IMO
Included for historical reasons and for unit tests. Performs poorly in local extrapolation mode. This method was broadly implemented, and widely used. As such it is a standard used for comparison frequently in older literature. It was largely replaced by mrkiss_eerk_dormand_prince_5_4.
Known Aliases
'RKF78'', 'ode78' (OrdinaryDiffEq.jl), 'ARKODE_FEHLBERG_6_4_5' (SUNDIALS).
Stability Image Links
References:
  • Erwin Fehlberg (1972); Classical eight and lower-order Runge-Kutta-Nystroem formulas with stepsize control for special second-order differential equations; NASA Tech. Rep. M-533
  • Butcher (2008); Numerical Methods for Ordinary Differential Equations. 2ed; p209; zotero://select/items/0_8V2GY73E
  • Butcher (2016); Numerical Methods for Ordinary Differential Equations. 3ed; p222; zotero://select/items/0_V7UTIRPT
  • Hairer, Norsett & Wanner (2009). Solving Ordinary Differential Equations. I: Nonstiff Problems. p180; zotero://select/items/0_VLZWN2CT

Variable Documentation

◆ s

integer, parameter mrkiss_eerk_fehlberg_4_5::s = 6

The order of the overall method.

Definition at line 68 of file mrkiss_eerk_fehlberg_4_5.f90.

◆ m

integer, parameter mrkiss_eerk_fehlberg_4_5::m = 2

Number of methods.

Definition at line 70 of file mrkiss_eerk_fehlberg_4_5.f90.

◆ a

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

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

Definition at line 72 of file mrkiss_eerk_fehlberg_4_5.f90.

72 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, &
73 & 45082440.0_rk, 0.0_rk, 0.0_rk, 0.0_rk, 0.0_rk, 0.0_rk, &
74 & 16905915.0_rk, 50717745.0_rk, 0.0_rk, 0.0_rk, 0.0_rk, 0.0_rk, &
75 & 158578560.0_rk, -590976000.0_rk, 598855680.0_rk, 0.0_rk, 0.0_rk, 0.0_rk, &
76 & 366503540.0_rk, -1442638080.0_rk, 1293593600.0_rk, -37129300.0_rk, 0.0_rk, 0.0_rk, &
77 & -53431040.0_rk, 360659520.0_rk, -249157376.0_rk, 81684460.0_rk, -49590684.0_rk, 0.0_rk], [s, s]) / 180329760.0_rk

◆ b

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

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

Definition at line 79 of file mrkiss_eerk_fehlberg_4_5.f90.

79 real(kind=rk), parameter :: b(s,m) = reshape([ 130625.0_rk, 0.0_rk, 619520.0_rk, 604175.0_rk, -225720.0_rk, 0.0_rk, &
80 & 133760.0_rk, 0.0_rk, 585728.0_rk, 571220.0_rk, -203148.0_rk, 41040.0_rk], [s, m]) / 1128600.0_rk

◆ c

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

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

Definition at line 82 of file mrkiss_eerk_fehlberg_4_5.f90.

82 real(kind=rk), parameter :: c(s) = [ 0.0_rk, 26.0_rk, 39.0_rk, 96.0_rk, 104.0_rk, 52.0_rk ] / 104.0_rk

◆ p

integer, dimension(m), parameter mrkiss_eerk_fehlberg_4_5::p = [ 4, 5 ]

The method orders.

Definition at line 84 of file mrkiss_eerk_fehlberg_4_5.f90.

◆ se

integer, dimension(m), parameter mrkiss_eerk_fehlberg_4_5::se = [ 5, 6 ]

Number of stages for each method.

Definition at line 86 of file mrkiss_eerk_fehlberg_4_5.f90.