SMILE
v2.5
Schwarzschild Modelling Interactive expLoratory Environment
|
ODE integration classes. More...
#include "common.h"
#include <boost/numeric/odeint.hpp>
#include "runge_kutta_bogacki_shampine32.hpp"
Classes | |
class | smile::COdeIntegratorDOP853 |
8th order Runge-Kutta integrator from Hairer,Norsett&Wanner. More... | |
class | smile::COdeIntegratorIAS15 |
15-th order implicit Runge-Kutta scheme from Rein & Spiegel, 2014, MNRAS (adapted from Rebound). More... | |
class | smile::COdeIntegratorHermite |
Hermite integrator that uses information about force derivatives (jerk) in a 4th-order predictor-corrector scheme with only two force evaluations per timestep. More... | |
class | smile::COdeIntegratorOdeint< Stepper > |
A template class for integrators based on the boost::numeric::odeint library. More... | |
class | smile::COdeIntegratorLeapfrog |
low-order leapfrog method provided for treecode, which has discontinuous potential/forces and is poorly handled by Runge-Kutta integrator. More... | |
Namespaces | |
smile | |
common namespace for all core SMILE classes, functions and variables | |
Typedefs | |
typedef boost::numeric::odeint::bulirsch_stoer_dense_out < OdeStateType > | smile::StepperBS |
Implementation of Bulirsch-Stoer method with dense output. | |
typedef boost::numeric::odeint::dense_output_runge_kutta < boost::numeric::odeint::controlled_runge_kutta < boost::numeric::odeint::runge_kutta_dopri5 < OdeStateType > , my_error_checker > > | smile::StepperDP5 |
Implementation of the Dormand-Prince 5th order Runge-Kutta method with adaptive timestep and dense output. | |
typedef boost::numeric::odeint::controlled_runge_kutta < boost::numeric::odeint::runge_kutta_cash_karp54 < OdeStateType > , my_error_checker > | smile::StepperCK5 |
Implementation of the Cash-Karp 5th order Runge-Kutta method with adaptive timestep. | |
typedef boost::numeric::odeint::controlled_runge_kutta < boost::numeric::odeint::runge_kutta_bogacki_shampine32 < OdeStateType > , my_error_checker > | smile::StepperBS3 |
Implementation of the Bogacki-Shampine 3rd order Runge-Kutta method with adaptive timestep. | |
typedef boost::numeric::odeint::runge_kutta4 < OdeStateType > | smile::StepperRK4 |
Implementation of the standard fixed-timestep 4th order Runge-Kutta method. | |
typedef boost::numeric::odeint::symplectic_rkn_sb3a_mclachlan < OdeStateType > | smile::StepperSympl4 |
Implementation of the fixed-timestep 4th order symplectic Runge-Kutta method. | |
Functions | |
const char * | smile::getIntegratorNameByType (CBasicOdeIntegrator::STEPPERKIND integratorType) |
CBasicOdeIntegrator::STEPPERKIND | smile::getIntegratorTypeByName (const std::string &integratorName) |
return integrator type associated with the text name | |
ODE integration classes.
Classes for orbit integration, derived from smile::CBasicOdeIntegrator, are declared in this module. The integrators call smile::CPotential::DiffEq for obtaining accelerations, adaptively adjust timestep to maintain desired accuracy, and call runtime functions derived from smile::CBasicOrbitRuntimeFnc after each timestep.
The COrbitIntegratorDOP853 contains code of the 8th order Runge-Kutta integrator from Hairer, Norsett & Wanner, "Solving ordinary differential equations", 1987, Berlin:Springer. Based on the C version (by J.Colinge) of the original Fortran code by E.Hairer & G.Wanner.
The COrbitIntegratorIAS15 is an adapted version of the 15th order integrator from Rebound: Rein & Spiegel, 2014, MNRAS.