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

Fifth order Cash-Karp method with adaptive time step. More...

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

Collaboration diagram for TNL::Solvers::ODE::Methods::CashKarp< 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 { 37.0/378.0, 0.0, 250.0/621.0, 125.0/594.0, 0.0, 512.0/1771.0 }
 
static constexpr std::array< std::array< Value, Stages >, Stages > k_coefficients
 
static constexpr std::array< Value, Stages > lower_order_update_coefficients { 2825.0/27648.0, 0.0, 18575.0/48384.0, 13525.0/55296.0, 277.0/14336.0, 1.0/4.0 }
 
static constexpr std::size_t Stages = 6
 
static constexpr std::array< Value, Stages > time_coefficients { 0.0, 1.0/5.0, 3.0/10.0, 3.0/5.0, 1.0, 7.0/8.0 }
 

Detailed Description

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

Fifth order Cash-Karp 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::CashKarp< 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/ 5.0, 0.0, 0.0, 0.0, 0.0, 0.0 },
std::array< Value, Stages >{ 3.0/ 40.0, 9.0/ 40.0, 0.0, 0.0, 0.0, 0.0 },
std::array< Value, Stages >{ 3.0/ 10.0, -9.0/ 10.0, 6.0/ 5.0, 0.0, 0.0 },
std::array< Value, Stages >{ -11.0/ 54.0, 5.0/ 2.0, -70.0/ 27.0, 35.0/ 27.0, 0.0 },
std::array< Value, Stages >{ 1631.0/55296.0, 175.0/512.0, 575.0/13824.0, 44275.0/110592.0, 253.0/4096.0 }
}

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