Template Numerical Library version\ main:4e58ea6
Loading...
Searching...
No Matches
TNL::Solvers::ODE::Methods::Fehlberg5< Value > Struct Template Reference

Fifth order Runge-Kutta-Fehlberg method with adaptive time step. More...

#include <TNL/Solvers/ODE/Methods/Fehlberg5.h>

Collaboration diagram for TNL::Solvers::ODE::Methods::Fehlberg5< Value >:

Public Types

using ValueType = Value
 

Static Public Member Functions

static constexpr ValueType getCoefficient (const std::size_t stage, const std::size_t i)
 
static constexpr ValueType getErrorCoefficient (std::size_t i)
 
static constexpr std::size_t getStages ()
 
static constexpr ValueType getTimeCoefficient (std::size_t i)
 
static constexpr ValueType getUpdateCoefficient (std::size_t i)
 
static constexpr bool isAdaptive ()
 

Static Protected Attributes

static constexpr std::array< Value, Stages > higher_order_update_coefficients { 16.0/135.0, 0.0, 6656.0/12825.0, 28561.0/56430.0, -9.0/50.0, 2.0/55.0 }
 
static constexpr std::array< std::array< Value, Stages >, Stages > k_coefficients
 
static constexpr std::array< Value, Stages > lower_order_update_coefficients { 25.0/216.0, 0.0, 1408.0/ 2565.0, 2197.0/ 4104.0, -1.0/5.0, 0.0 }
 
static constexpr std::size_t Stages = 6
 
static constexpr std::array< Value, Stages > time_coefficients { 0.0, 1.0/4.0, 3.0/8.0, 12.0/13.0, 1.0, 1.0/2.0 }
 

Detailed Description

template<typename Value = double>
struct TNL::Solvers::ODE::Methods::Fehlberg5< Value >

Fifth order Runge-Kutta-Fehlberg method with adaptive time step.

Template Parameters
Valueis arithmetic type used for computations.

Member Data Documentation

◆ k_coefficients

template<typename Value = double>
std::array< std::array< Value, Stages>, Stages > TNL::Solvers::ODE::Methods::Fehlberg5< Value >::k_coefficients
staticconstexprprotected
Initial value:
{
std::array< Value, Stages >{ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 },
std::array< Value, Stages >{ 1.0/ 4.0, 0.0, 0.0, 0.0, 0.0, 0.0 },
std::array< Value, Stages >{ 3.0/ 32.0, 9.0/ 32.0, 0.0, 0.0, 0.0, 0.0 },
std::array< Value, Stages >{ 1932.0/2197.0, -7200.0/2197.0, 7296.0/2197.0, 0.0, 0.0, 0.0 },
std::array< Value, Stages >{ 439.0/ 216.0, -8.0, 3680.0/ 513.0, -845.0/4104.0, 0.0, 0.0 },
std::array< Value, Stages >{ -8.0/ 27.0, 2.0, -3544.0/2565.0, 1859.0/4104.0, -11.0/ 40.0, 0.0 }
}

The documentation for this struct was generated from the following file: