Gyoto
|
Current state of a geodesic integration. More...
#include <GyotoWorldline.h>
Public Types | |
typedef Gyoto::SmartPointer< Gyoto::SmartPointee > | Subcontractor_t(Gyoto::FactoryMessenger *, std::vector< std::string > const &) |
A subcontractor builds an object upon order from the Factory. More... | |
Public Member Functions | |
Generic (Worldline *parent) | |
Normal constructor. More... | |
virtual | ~Generic () |
Virtual destructor. | |
virtual Generic * | clone (Worldline *newparent) const =0 |
Deep copy. More... | |
virtual void | init (Worldline *line, const state_t &coord, const double delta) |
virtual void | init (Worldline *line, const double *coord, const double delta)=delete |
Obsolete, update your code. | |
virtual void | init () |
Cache whatever needs to be cached. More... | |
virtual void | checkNorm (double coord[8]) |
Check norm. More... | |
virtual std::string | kind ()=0 |
Return the integrator kind. | |
void | integ31 (bool integ) |
Defines the kind of geodesic equation to integrate (3+1, 4D) | |
bool | integ31 () const |
virtual int | nextStep (state_t &coord, double &tau, double h1max=GYOTO_DEFAULT_DELTA_MAX)=0 |
Make one step. More... | |
virtual int | nextStep (double *coord, double h1max=GYOTO_DEFAULT_DELTA_MAX)=delete |
Obsolete, update your code. | |
virtual void | doStep (state_t const &coordin, double step, state_t &coordout)=0 |
Make one step of exactly this size. More... | |
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. | |
Protected Attributes | |
Worldline * | line_ |
Worldline that we are integrating. More... | |
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. More... | |
Friends | |
class | Gyoto::SmartPointer< Gyoto::Worldline::IntegState::Generic > |
Current state of a geodesic integration.
|
inherited |
A subcontractor builds an object upon order from the Factory.
Various classes need to provide a subcontractor to be able to instantiate themselves upon order from the Factory. A subcontractor is a function (often a static member function) which accepts a pointer to a FactoryMessenger as unique parameter, communicates with the Factory using this messenger to read an XML description of the object to build, and returns this objet. SmartPointee::Subcontractor_t* is just generic enough a typedef to cast to and from other subcontractor types: Astrobj::Subcontractor_t, Metric::Subcontractor_t, Spectrum::Subcontractor_t. A subcontractor needs to be registered using the relevant Register() function: Astrobj::Register(), Metric::Register(), Spectrum::Register().
|
virtual |
Check norm.
Issue a warning using GYOTO_SEVERE if norm is drifting. nextStep() implementations should call it.
|
pure virtual |
Deep copy.
Derived classes must implement it
Implemented in Gyoto::Worldline::IntegState::Boost, and Gyoto::Worldline::IntegState::Legacy.
|
pure 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.
[in] | coordin | current position-velocity; |
[in] | step | exact step to use. |
[out] | coordout | next position-velocity; |
Implemented in Gyoto::Worldline::IntegState::Boost, and Gyoto::Worldline::IntegState::Legacy.
|
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 in Gyoto::Worldline::IntegState::Boost, and Gyoto::Worldline::IntegState::Legacy.
|
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 in Gyoto::Worldline::IntegState::Boost.
|
pure virtual |
Make one step.
[out] | coord | Next position-velocity; |
[out] | tau | Next proper time or affine parameter |
[in] | h1max | maximum step in case of adaptive integration |
Implemented in Gyoto::Worldline::IntegState::Boost, and Gyoto::Worldline::IntegState::Legacy.
|
protected |
The Metric in this end of the Universe.
Taken from Worldline::line_, never updated.
|
protected |
Worldline that we are integrating.
Beware this is not a SmartPointer. Make sure line_ still exists when calling nestStep().
|
protected |
Initial norm of the 4-velocity.