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

Butcher tableau for the three eights rule. More...

Variables

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

Detailed Description

Butcher tableau for the three eights rule.

A 4 step, order (4) Runge-Kutta method

IMO
Included for historical reasons. More precise than RK4.
Known Aliases
'3/8 rule', 'RK42' (Butcher), 'GIRK438' (OrdinaryDiffEq.jl).
Stability Image Links
References:
  • Kutta (1901), Beitrag zur n"herungsweisen Integration totaler Differentialgleichungen; Z. Math. Phys. 46; p435-453.
  • Hairer, Norsett & Wanner (2009). Solving Ordinary Differential Equations. I: Nonstiff Problems. p138; zotero://select/items/0_VLZWN2CT

Variable Documentation

◆ s

integer, parameter mrkiss_erk_kutta_three_eight_4::s = 4

The order of the overall method.

Definition at line 63 of file mrkiss_erk_kutta_three_eight_4.f90.

◆ m

integer, parameter mrkiss_erk_kutta_three_eight_4::m = 1

Number of methods.

Definition at line 65 of file mrkiss_erk_kutta_three_eight_4.f90.

◆ a

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

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

Definition at line 67 of file mrkiss_erk_kutta_three_eight_4.f90.

67 real(kind=rk), parameter :: a(s,s) = reshape([ 0.0_rk, 0.0_rk, 0.0_rk, 0.0_rk, &
68 1.0_rk, 0.0_rk, 0.0_rk, 0.0_rk, &
69 -1.0_rk, 3.0_rk, 0.0_rk, 0.0_rk, &
70 3.0_rk, -3.0_rk, 3.0_rk, 0.0_rk], [s, s]) / 3.0_rk

◆ b

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

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

Definition at line 72 of file mrkiss_erk_kutta_three_eight_4.f90.

72 real(kind=rk), parameter :: b(s,m) = reshape([ 1.0_rk, 3.0_rk, 3.0_rk, 1.0_rk], [s, m]) / 8.0_rk

◆ c

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

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

Definition at line 74 of file mrkiss_erk_kutta_three_eight_4.f90.

74 real(kind=rk), parameter :: c(s) = [ 0.0_rk, 1.0_rk, 2.0_rk, 3.0_rk] / 3.0_rk

◆ p

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

The method orders.

Definition at line 76 of file mrkiss_erk_kutta_three_eight_4.f90.

◆ se

integer, dimension(m), parameter mrkiss_erk_kutta_three_eight_4::se = [4]

Number of stages for each method.

Definition at line 78 of file mrkiss_erk_kutta_three_eight_4.f90.