Template Numerical Library: TNL::Solvers::ODE::Methods Namespace Reference

Template Numerical Library version\ main:0b2c40fb1

Loading...
Searching...
No Matches
Namespaces | Classes
TNL::Solvers::ODE::Methods Namespace Reference

Namespace for numerical methods for ODE solvers. More...

## Namespaces
namespace | Matlab
| Namespace for Matlab aliases for ODE solvers.

## Classes
struct | BogackiShampin
| Third order Bogacki-Shampin method with adaptive time step. More...
struct | CashKarp
| Fifth order Cash-Karp method with adaptive time step. More...
struct | DormandPrince
| Fifth order Dormand-Prince method also known as ode45 from Matlab with adaptive step size. More...
struct | Euler
| First order Euler method. More...
struct | Fehlberg2
| Second order Fehlbergs's method with adaptive time step. More...
struct | Fehlberg5
| Fifth order Runge-Kutta-Fehlberg method with adaptive time step. More...
struct | Heun2
| Second order Heun's method and Heun-Euler method with adaptive time step. More...
struct | Heun3
| Third order Heun's method. More...
struct | Kutta
| Third order Kutta's method. More...
struct | KuttaMerson
| Fourth order Runge-Kutta-Merson method with adaptive step size. More...
struct | Midpoint
| Second order midpoint method. More...
struct | OriginalRungeKutta
| Fourth order Runge-Kutta method. More...
struct | Ralston2
| Second order Ralstons's method. More...
struct | Ralston3
| Third order Ralston's method. More...
struct | Ralston4
| Fourth order Ralstons's method. More...
struct | Rule38
| Fourth order 3/8 rule method. More...
struct | SSPRK3
| Third order Strong Stability Preserving Runge-Kutta method. More...
struct | VanDerHouwenWray
| Third order Van der Houwen's-Wray's method. More...

## Detailed Description

Namespace for numerical methods for ODE solvers.

This namespace contains numerical methods for TNL::Solvers::ODE::ODESolver.

TNL provides several methods for ODE solution, categorized based on their order of accuracy:

1-order accuracy methods:

1. TNL::Solvers::ODE::Methods::Euler or TNL::Solvers::ODE::Methods::Matlab::ode1 - the forward Euler method.
2. TNL::Solvers::ODE::Methods::Midpoint - the explicit midpoint method.

2-nd order accuracy methods

1. TNL::Solvers::ODE::Methods::Heun2 or TNL::Solvers::ODE::Methods::Matlab::ode2 - the Heun method with adaptive choice of the time step.
2. TNL::Solvers::ODE::Methods::Ralston2 - the Ralston method.
3. TNL::Solvers::ODE::Methods::Fehlberg2 - the Fehlberg method with adaptive choice of the time step.

3-rd order accuracy methods

1. TNL::Solvers::ODE::Methods::Kutta - the Kutta method.
2. TNL::Solvers::ODE::Methods::Heun3 - the Heun method.
3. TNL::Solvers::ODE::Methods::VanDerHouwenWray - the Van der Houwen/Wray method.
4. TNL::Solvers::ODE::Methods::Ralston3 - the Ralston method.
5. TNL::Solvers::ODE::Methods::SSPRK3 - the Strong Stability Preserving Runge-Kutta method.
6. TNL::Solvers::ODE::Methods::BogackiShampin or TNL::Solvers::ODE::Methods::Matlab::ode23 - Bogacki-Shampin method with adaptive choice of the time step.

4-th order accuracy method

1. TNL::Solvers::ODE::Methods::OriginalRungeKutta - the "original" Runge-Kutta method.
2. TNL::Solvers::ODE::Methods::Rule38 - 3/8 rule method.
3. TNL::Solvers::ODE::Methods::Ralston4 - the Ralston method.
4. TNL::Solvers::ODE::Methods::KuttaMerson - the Runge-Kutta-Merson * method with adaptive choice of the time step.

5-th order accuracy method

1. TNL::Solvers::ODE::Methods::CashKarp - the Cash-Karp method with adaptive choice of the time step.
2. TNL::Solvers::ODE::Methods::DormandPrince or TNL::Solvers::ODE::Methods::Matlab::ode45 - the Dormand-Prince with adaptive choice of the time step.
3. TNL::Solvers::ODE::Methods::Fehlberg5 - the Fehlberg method with adaptive choice of the time step.

The vector \( \vec u(t) \) in ODE solvers can be represented using different types of containers, depending on the size and nature of the ODE system:

1. Static vectors (TNL::Containers::StaticVector): This is suitable for small systems of ODEs with a fixed number of unknowns. Utilizing StaticVector allows the ODE solver to be executed within GPU kernels. This capability is particularly useful for scenarios like running multiple sequential solvers in parallel, as in the case of TNL::Algorithms::parallelFor.
2. Dynamic vectors (TNL::Containers::Vector or TNL::Containers::VectorView): These are preferred when dealing with large systems of ODEs, such as those arising in the solution of parabolic partial differential equations using the method of lines. In these instances, the solver typically handles a single, large-scale problem that can be executed in parallel internally.