SMILE
v2.5
Schwarzschild Modelling Interactive expLoratory Environment
|
A template class for integrators based on the boost::numeric::odeint library. More...
#include <odeint.h>
Public Types | |
typedef boost::numeric::odeint::unwrap_reference < Stepper > ::type::stepper_category | stepper_category |
category of the integrator (could be fixed-timestep, adaptive-timestep, adaptive with dense output, etc) | |
Public Types inherited from smile::CBasicOdeIntegrator | |
enum | STEPPERKIND { SK_DEFAULT, SK_LEAPFROG_NB, SK_DOP853, SK_IAS15, SK_HERMITE, SK_ODEINT_CK5, SK_ODEINT_DP5, SK_ODEINT_BS3, SK_ODEINT_BS, SK_ODEINT_RK4, SK_ODEINT_SYMPL4 } |
list of various ODE stepper types | |
Public Member Functions | |
COdeIntegratorOdeint (COdeSystem *_odeSystem, double _accAbs, double _accRel) | |
virtual void | integrateToTime (double timeEnd) |
perform integration | |
virtual double | getInterpolatedSolution (unsigned int c, double t) const |
return interpolated value of c-th variable at time t, where t must lie within current timestep interval; called from various runtime functions that need to obtain x(t) at arbitrary times | |
template<> | |
COdeIntegratorOdeint (COdeSystem *_odeSystem, double _accAbs, double _accRel) | |
template<> | |
const char * | myName () |
template<> | |
COdeIntegratorOdeint (COdeSystem *_odeSystem, double _accAbs, double _accRel) | |
template<> | |
const char * | myName () |
template<> | |
COdeIntegratorOdeint (COdeSystem *_odeSystem, double _accAbs, double _accRel) | |
template<> | |
const char * | myName () |
template<> | |
COdeIntegratorOdeint (COdeSystem *_odeSystem, double _timeStep, double) | |
template<> | |
const char * | myName () |
template<> | |
COdeIntegratorOdeint (COdeSystem *_odeSystem, double _accAbs, double _accRel) | |
template<> | |
const char * | myName () |
template<> | |
COdeIntegratorOdeint (COdeSystem *_odeSystem, double _accAbs, double) | |
template<> | |
const char * | myName () |
template<> | |
void | integrateToTime (double timeEnd) |
perform integration | |
Public Member Functions inherited from smile::CBasicOdeIntegrator | |
CBasicOdeIntegrator (COdeSystem *_odeSystem) | |
double | getTime () const |
return the time to which the integration has proceeded so far | |
Static Public Member Functions | |
static const char * | myName () |
Private Member Functions | |
void | integrateToTimeImpl (double timeEnd, boost::numeric::odeint::stepper_tag) |
driver routine for generic (fixed-timestep) steppers | |
void | integrateToTimeImpl (double timeEnd, boost::numeric::odeint::controlled_stepper_tag) |
driver routine for adaptive-timestep steppers | |
void | integrateToTimeImpl (double timeEnd, boost::numeric::odeint::dense_output_stepper_tag) |
driver routine for adaptive-timestep steppers with dense output | |
double | getInterpolatedSolutionImpl (unsigned int c, double t, boost::numeric::odeint::stepper_tag) const |
interpolate trajectory for a generic stepper | |
double | getInterpolatedSolutionImpl (unsigned int c, double t, boost::numeric::odeint::controlled_stepper_tag) const |
interpolate trajectory for an adaptive-timestep stepper | |
double | getInterpolatedSolutionImpl (unsigned int c, double t, boost::numeric::odeint::dense_output_stepper_tag) const |
interpolate trajectory for a stepper that provides dense output | |
double | getInterpolatedSolutionGeneric (unsigned int c, double t) const |
simple first-order interpolation of trajectory for an arbitrary stepper and ODE system of unknown structure | |
double | getInterpolatedSolutionStdHamiltonian (unsigned int c, double t) const |
interpolation of trajectory for an ODE system that is a "standard Hamiltonian" – 3rd order in position, 2nd order in velocity | |
Private Attributes | |
Stepper | stepper |
the instance of stepper that does actual integration | |
OdeStateType | stateCurr |
OdeStateType | statePrev |
ODE system state at the beginning and the end of timestep. | |
OdeStateType | stateIntermediate |
temporary cached storage for interpolated trajectory | |
double | timeIntermediate |
temporary cache for interpolation is for this particular value of time | |
double | timeStep |
current timestep length | |
bool | isStdHamiltonian |
whether the ODE system is a "standard Hamiltonian" (positions, then velocities) | |
Additional Inherited Members | |
Protected Attributes inherited from smile::CBasicOdeIntegrator | |
COdeSystem * | odeSystem |
double | timePrev |
double | timeCurr |
A template class for integrators based on the boost::numeric::odeint library.
The argument of template class is the class name of the stepper algorithm from odeint.