Boost integrator.
More...
#include <GyotoWorldline.h>
|
| | Boost (Worldline *parent, std::string type) |
| | Constructor.
|
| | Boost (Worldline *parent, Kind type) |
| | Constructor.
|
| Boost * | clone (Worldline *newparent) const |
| | Deep copy.
|
| virtual void | init () |
| | Cache whatever needs to be cached.
|
| virtual void | init (Worldline *line, const state_t &coord, const double delta) |
| virtual int | nextStep (state_t &coord, double &tau, double h1max=1e6) |
| | Make one step.
|
| virtual void | doStep (state_t const &coordin, double step, state_t &coordout) |
| | Make one step of exactly this size.
|
| virtual std::string | kind () |
| | Return the integrator kind.
|
| virtual void | init (Worldline *line, const double *coord, const double delta)=delete |
| | Obsolete, update your code.
|
| virtual void | checkNorm (double coord[8]) |
| | Check norm.
|
|
void | integ31 (bool integ) |
| | Defines the kind of geodesic equation to integrate (3+1, 4D).
|
|
bool | integ31 () const |
|
virtual int | nextStep (double *coord, double h1max=GYOTO_DEFAULT_DELTA_MAX)=delete |
| | Obsolete, update your code.
|
|
virtual void | doStep (double const coordin[8], double step, double coordout[8])=delete |
| | Obsolete, update your code.
|
|
void | incRefCount () |
| | Increment the reference counter. Warning: Don't mess with the counter.
|
|
int | decRefCount () |
| | Decrement the reference counter and return current value. Warning: Don't mess with the counter.
|
|
int | getRefCount () |
| | Get the current number of references.
|
|
| Worldline * | line_ |
| | Worldline that we are integrating.
|
|
bool | integ_31_ |
| | Whether to integrate the 3+1 equation of geodesics instead of the 4D one.
|
|
double | delta_ |
| | Integration step (current in case of adaptive_).
|
|
bool | adaptive_ |
| | Whether to use an adaptive step.
|
|
bool | parallel_transport_ |
| | Whether to parallel-transport base vectors.
|
|
double | norm_ |
| | Current norm of the 4-velocity.
|
| double | normref_ |
| Gyoto::SmartPointer< Gyoto::Metric::Generic > | gg_ |
| | The Metric in this end of the Universe.
|
|
|
typedef std::function< boost::numeric::odeint::controlled_step_result(state_t &, double &, double &)> | try_step_t |
|
typedef std::function< void(state_t &, double)> | do_step_t |
|
typedef std::function< void(const state_t &, state_t &, const double)> | system_t |
|
|
Kind | kind_ |
| | Integrator flavour.
|
|
try_step_t | try_step_ |
| | Stepper used by the adaptive-step integrator.
|
|
do_step_t | do_step_ |
| | Stepper used by the non-adaptive-step integrator.
|
|
int | refCount |
| | Reference counter.
|
| pthread_mutex_t | mutex_ |
| | A mutex.
|
|
|
class | Gyoto::SmartPointer< Gyoto::Worldline::IntegState::Boost > |
Boost integrator.
This Worldline::IntegState::Generic implementation provides several integrators from the boost::numeric::odeint library. To select it, pass one of "runge_kutta_cash_karp54", "runge_kutta_fehlberg78", "runge_kutta_dopri5", or "runge_kutta_cash_karp54_classic" to Worldline::integrator(std::string type).
◆ Subcontractor_t
◆ Boost() [1/2]
| Gyoto::Worldline::IntegState::Boost::Boost |
( |
Worldline * | parent, |
|
|
std::string | type ) |
Constructor.
Since this IntegState::Generic implementation can actually be used to implement several distinct integrators, it is necessary to specify which one is meant.
◆ Boost() [2/2]
| Gyoto::Worldline::IntegState::Boost::Boost |
( |
Worldline * | parent, |
|
|
Kind | type ) |
Constructor.
Since this IntegState::Generic implementation can actually be used to implement several distinct integrators, it is necessary to specify which one is meant.
◆ checkNorm()
| virtual void Gyoto::Worldline::IntegState::Generic::checkNorm |
( |
double | coord[8] | ) |
|
|
virtualinherited |
Check norm.
Issue a warning using GYOTO_SEVERE if norm is drifting. nextStep() implementations should call it.
◆ clone()
| Boost * Gyoto::Worldline::IntegState::Boost::clone |
( |
Worldline * | newparent | ) |
const |
|
virtual |
◆ doStep()
| virtual void Gyoto::Worldline::IntegState::Boost::doStep |
( |
state_t const & | coordin, |
|
|
double | step, |
|
|
state_t & | coordout ) |
|
virtual |
Make one step of exactly this size.
doStep() is meant to refine a computation made using nextStep(). In particular, there is no checking for norm conservation.
- Parameters
-
| [in] | coordin | current position-velocity; |
| [in] | step | exact step to use. |
| [out] | coordout | next position-velocity; |
Implements Gyoto::Worldline::IntegState::Generic.
◆ init() [1/3]
| virtual void Gyoto::Worldline::IntegState::Boost::init |
( |
| ) |
|
|
virtual |
◆ init() [2/3]
| virtual void Gyoto::Worldline::IntegState::Boost::init |
( |
Worldline * | line, |
|
|
const state_t & | coord, |
|
|
const double | delta ) |
|
virtual |
◆ init() [3/3]
| virtual void Gyoto::Worldline::IntegState::Generic::init |
( |
Worldline * | line, |
|
|
const double * | coord, |
|
|
const double | delta ) |
|
virtualdeleteinherited |
◆ kind()
| virtual std::string Gyoto::Worldline::IntegState::Boost::kind |
( |
| ) |
|
|
virtual |
◆ nextStep()
| virtual int Gyoto::Worldline::IntegState::Boost::nextStep |
( |
state_t & | coord, |
|
|
double & | tau, |
|
|
double | h1max = 1e6 ) |
|
virtual |
Make one step.
- Parameters
-
| [out] | coord | Next position-velocity; |
| [out] | tau | Next proper time or affine parameter |
| [in] | h1max | maximum step in case of adaptive integration |
Implements Gyoto::Worldline::IntegState::Generic.
◆ gg_
The Metric in this end of the Universe.
Taken from Worldline::line_, never updated.
◆ line_
| Worldline* Gyoto::Worldline::IntegState::Generic::line_ |
|
protectedinherited |
Worldline that we are integrating.
Beware this is not a SmartPointer. Make sure line_ still exists when calling nestStep().
◆ mutex_
| pthread_mutex_t Gyoto::SmartPointee::mutex_ |
|
privateinherited |
A mutex.
When compiled with libpthread
◆ normref_
| double Gyoto::Worldline::IntegState::Generic::normref_ |
|
protectedinherited |
Initial norm of the 4-velocity.
The documentation for this class was generated from the following file: