|
Gyoto
|
#include <GyotoWorldline.h>
Public Types | |
| enum | Kind { runge_kutta_cash_karp54, runge_kutta_fehlberg78, runge_kutta_dopri5, runge_kutta_cash_karp54_classic } |
| Enum to represent the integrator flavour. | |
Public Member Functions | |
| Boost (Worldline *parent, std::string type) | |
| Constructor. More... | |
| Boost (Worldline *parent, Kind type) | |
| Constructor. More... | |
| Boost * | clone (Worldline *newparent) const |
| Deep copy. More... | |
| virtual void | init () |
| Cache whatever needs to be cached. More... | |
| virtual void | init (Worldline *line, const double *coord, const double delta) |
| virtual int | nextStep (double *coord, double h1max=1e6) |
| Make one step. More... | |
| virtual std::string | kind () |
| Return the integrator kind. | |
| virtual void | checkNorm (double coord[8]) |
| Check norm. More... | |
Protected Attributes | |
| Worldline * | line_ |
| Worldline that we are integrating. More... | |
| double | delta_ |
| Integration step (current in case of adaptive_). | |
| bool | adaptive_ |
| Whether to use an adaptive step. | |
| double | norm_ |
| Current norm of the 4-velocity. | |
| double | normref_ |
| Gyoto::SmartPointer < Gyoto::Metric::Generic > | gg_ |
| The Metric in this end of the Universe. More... | |
Private Attributes | |
| Kind | kind_ |
| Integrator flavour. | |
|
std::function < boost::numeric::odeint::controlled_step_result(std::array < double, 8 > &, double &, double &)> | try_step_ |
| Stepper used by the adaptive-step integrator. | |
|
std::function< void(std::array < double, 8 > &, double)> | do_step_ |
| Stepper used by the non-adaptive-step integrator. | |
Friends | |
| 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).
| 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.
Constructor.
Since this IntegState::Generic implementation can actually be used to implement several distinct integrators, it is necessary to specify which one is meant.
|
virtualinherited |
Check norm.
Issue a warning using GYOTO_SEVERE if norm is drifting. nextStep() implementations should call it.
|
virtual |
Cache whatever needs to be cached.
This is called by all the methods in Worldline each time an member that could be cached in Worldline::state_ changes. Therefore, user code should normally not have to call it.
Reimplemented from Gyoto::Worldline::IntegState::Generic.
|
virtual |
| line | The Worldline that we are integrating. Sets: Worldline::line_, Worldline::gg_, Worldline::adaptive_. |
| coord | Initial coordinate. |
| delta | Integration step. Sign determines direction. |
Reimplemented from Gyoto::Worldline::IntegState::Generic.
|
virtual |
Make one step.
| [out] | coord | Next position-velocity; |
| [in] | h1max | maximum step in case of adaptive integration |
Implements Gyoto::Worldline::IntegState::Generic.
|
protectedinherited |
The Metric in this end of the Universe.
Taken from Worldline::line_, never updated.
|
protectedinherited |
Worldline that we are integrating.
Beware this is not a SmartPointer. Make sure line_ still exists when calling nestStep().
|
protectedinherited |
Initial norm of the 4-velocity.
1.8.8