SMILE  v2.5
Schwarzschild Modelling Interactive expLoratory Environment
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
smile::COdeIntegratorOdeint< Stepper > Class Template Reference

A template class for integrators based on the boost::numeric::odeint library. More...

#include <odeint.h>

Inheritance diagram for smile::COdeIntegratorOdeint< Stepper >:
Inheritance graph
[legend]
Collaboration diagram for smile::COdeIntegratorOdeint< Stepper >:
Collaboration graph
[legend]

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
COdeSystemodeSystem
 
double timePrev
 
double timeCurr
 

Detailed Description

template<class Stepper>
class smile::COdeIntegratorOdeint< Stepper >

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.


The documentation for this class was generated from the following files: