Classes | |
| class | BDF |
| class | Integrator |
| class | ODE |
| an object that can create an ordinary differential equation More... | |
Enumerations | |
| enum class | Status { OK = 0 , TRAPPED = 1 , MAXIT = 2 } |
| enum class | Type { RK45 = 0 , DOP853 = 1 } |
Functions | |
| void | DOP853_init (ODE &aODE, Cell< Vector< real > > &aWork) |
| Status | DOP853 (ODE &aODE, real &aT, Vector< real > &aY, real &aStep, Cell< Vector< real > > &aWork, const real aEpsilon=1e-7, const uint aMaxIterations=1000, const real aTmax=BELFEM_REAL_MAX, const bool aAutoTimestep=true) |
| Dormand-Prince 8(5,3) explicit Runge-Kutta method (DOP853). | |
| void | RK45_init (ODE &aODE, Cell< Vector< real > > &aWork) |
| Status | RK45 (ODE &aODE, real &aT, Vector< real > &aY, real &aStep, Cell< Vector< real > > &aWork, const real aEpsilon, const uint aMaxIterations, const real aTmax, const bool aAutoTimestep) |
|
strong |
|
strong |
| Status belfem::ode::DOP853 | ( | ODE & | aODE, |
| real & | aT, | ||
| Vector< real > & | aY, | ||
| real & | aStep, | ||
| Cell< Vector< real > > & | aWork, | ||
| const real | aEpsilon = 1e-7, | ||
| const uint | aMaxIterations = 1000, | ||
| const real | aTmax = BELFEM_REAL_MAX, | ||
| const bool | aAutoTimestep = true ) |
Dormand-Prince 8(5,3) explicit Runge-Kutta method (DOP853).
An 8th order method with embedded 5th and 3rd order error estimators. The step size controller uses the 5th order estimator. Recommended for smooth, non-stiff problems requiring high accuracy (tolerances tighter than ~1e-8). For moderate accuracy, RK45 is more efficient.
Reference: Hairer, Norsett, Wanner: Solving Ordinary Differential Equations I, 2nd ed., Springer (1993), Section II.6.
| Status belfem::ode::RK45 | ( | ODE & | aODE, |
| real & | aT, | ||
| Vector< real > & | aY, | ||
| real & | aStep, | ||
| Cell< Vector< real > > & | aWork, | ||
| const real | aEpsilon, | ||
| const uint | aMaxIterations, | ||
| const real | aTmax, | ||
| const bool | aAutoTimestep ) |