Tableau< FP > Class Template Reference

CPP API: mio::Tableau< FP > Class Template Reference
mio::Tableau< FP > Class Template Reference

Two scheme Runge-Kutta numerical integrator with adaptive step width for ODE y'(t) = f(t,y) which is given by y_{n+1} = y_n + h*\sum_{i=1}^lb_ik_{ni} with k_{ni} = f(t_n + c_i*h, y_n + h*\sum_{j=1}^{i-1}a_{ij}k_{nj}) where the general Butcher tableau is 0 | c_2 | a_{21} c_3 | a_{31} a_{32} ... More...

#include <adapt_rk.h>

Public Member Functions

 Tableau ()
 default is Runge-Kutta-Fehlberg4(5) tableau More...
 

Public Attributes

std::vector< Eigen::VectorX< FP > > entries
 

Detailed Description

template<typename FP>
class mio::Tableau< FP >

Two scheme Runge-Kutta numerical integrator with adaptive step width for ODE y'(t) = f(t,y) which is given by y_{n+1} = y_n + h*\sum_{i=1}^lb_ik_{ni} with k_{ni} = f(t_n + c_i*h, y_n + h*\sum_{j=1}^{i-1}a_{ij}k_{nj}) where the general Butcher tableau is 0 | c_2 | a_{21} c_3 | a_{31} a_{32} ...

| ............

c_s | a{s,1} a_{s,2} ... a_{s,s-1}

| b_1 b_2 ... b_{s-1} b_s

Actually, only the RK-Fehlberg 4 (5) method is implemented.

The RKF4's Butcher tableau is 0 | 1/4 | 1/4 3/8 | 3/32 9/32 12/13 | 1932/2197 −7200/2197 7296/2197 1 | 439/216 -8 3680/513 -845/4104

1/2 | -8/27 2 -3544/2565 1859/4104 -11/40

| 25/216 0 1408/2565 2197/4104 -1/5 0 The higher order (5th) approximation only differs by the last line which is | 16/135 0 6656/12825 28561/56430 -9/50 2/55

Constructor & Destructor Documentation

◆ Tableau()

template<typename FP >
mio::Tableau< FP >::Tableau ( )
inline

default is Runge-Kutta-Fehlberg4(5) tableau

Member Data Documentation

◆ entries

template<typename FP >
std::vector<Eigen::VectorX<FP> > mio::Tableau< FP >::entries