Template Numerical Library version\ main:f17d0c8
Loading...
Searching...
No Matches
Classes
TNL::Solvers::ODE Namespace Reference

Namespace for solvers of ordinary differential equations. More...

Classes

class  Euler
 Solver of ODEs with the first order of accuracy. More...
 
class  ExplicitSolver
 Base class for ODE solvers and explicit solvers od PDEs. More...
 
class  Merson
 Solver of ODEs with the first order of accuracy. More...
 
class  StaticEuler
 Solver of ODEs with the first order of accuracy. More...
 
class  StaticEuler< Containers::StaticVector< Size_, Real > >
 Solver of ODEs with the first order of accuracy. More...
 
class  StaticExplicitSolver
 Base class for ODE solvers and explicit solvers od PDEs. More...
 
class  StaticMerson
 Solver of ODEs with the first order of accuracy. More...
 
class  StaticMerson< Containers::StaticVector< Size_, Real > >
 Solver of ODEs with the first order of accuracy. More...
 

Detailed Description

Namespace for solvers of ordinary differential equations.

Solvers in this namespace represent numerical methods for the solution of the ordinary differential equations of the following form:

\[ \frac{d \vec u}{dt} = \vec f( t, \vec u)\ \rm{ on }\ (0,T) \]

\[ \vec u( 0 ) = \vec u_{ini}. \]

The following solvers are available:

  1. First order of accuracy a. TNL::Solvers::ODE::StaticEuler, TNL::Solvers::ODE::Euler - the Euler method
  2. Fourth order of accuracy a. TNL::Solvers::ODE::StaticMerson, TNL::Solvers::ODE::Merson - the Runge-Kutta-Merson method with adaptive choice of the time step.

The static variants of the solvers are supposed to be used when the unknown \( x \in R^n \) is expressed by a Containers::StaticVector or it is a scalar, i.e. \( x \in R \) expressed by a numeric type like double or float.