SMILE
v2.5
Schwarzschild Modelling Interactive expLoratory Environment
|
Container for orbit initial conditions and information objects. More...
#include <orbitlib.h>
Public Types | |
enum | ORBITSTATE { OS_INITIALIZED, OS_PREPARING, OS_RUNNING, OS_NEEDTOTERMINATE, OS_DONE, OS_FAILED } |
lists all possible states of orbit integration More... | |
Public Member Functions | |
template<typename NumT > | |
COrbitDesc (const CPosVelPoint< NumT > &_initCond, const NumT _intTime, const NumT _maxTime, const double _weight, const double _weightPrior, const vectorInformation *_info=NULL) | |
Create the object for the given initial conditions, without the results of orbit integration (OS_INITIALIZED) | |
~COrbitDesc () | |
destroy all information containers | |
void | run (const COrbitLauncher *launcher) |
create an internal COrbit instance using the launcher, and run orbit integration and analysis | |
void | halt () |
if running, immediately stop computation (set the state to OS_NEEDTOTERMINATE) | |
const CPosVelPoint< float > & | getInitCond () const |
return the initial conditions for the orbit | |
void | setInitCond (const CPosVelPoint< float > &ic) |
assign initial conditions | |
float | getIntTime () const |
return the integration time, whether the actual one if orbit is done, or the intended one if only initialized | |
void | setIntTime (float time) |
assign the integration time | |
float | getMaxTime () const |
return the maximum time for adaptive integration | |
void | setMaxTime (float time) |
assign maximum integration time | |
size_t | getInfoNum () const |
return the number of CBasicInformation objects | |
const CBasicInformation * | getInfo (size_t index) const |
return a pointer to the given information object (a private data member!) | |
const CBasicInformation * | getInfoByType (CBasicInformation::INFOTYPE InfoType) const |
convenience function to get a pointer to information of a given type, or NULL if it doesn't exist | |
std::string | toString () const |
returns string representation of all information objects associated with the orbit, plus the weight and integration time | |
double | getWeight () const |
return orbit weight in the Schwarzschild model | |
void | setWeight (double w) |
assign the orbit weight | |
double | getWeightPrior () const |
return orbit weight prior in the Schwarzschild model | |
void | setWeightPrior (double w) |
ORBITSTATE | getState () const |
return the state of orbit integration (init/running/done) | |
void | setState (ORBITSTATE _state) |
set the state to OS_PREPARING if it is going to be started by the orbit library class, or reset it to OS_INITIALIZED if it was completed. More... | |
Private Attributes | |
CPosVelPoint< float > | initCond |
orbit initial conditions | |
COrbit * | orbit |
pointer to the internal object created in run() | |
float | intTime |
float | maxTime |
integration and max integration time | |
vectorInformation | info |
array of CBasicOrbitInformation objects | |
double | weight |
weight of the orbit in the Schwarzschild model | |
double | weightPrior |
prior on orbit weight (for proper normalization of entropy; default 0 means Mtotal/Norbits) | |
volatile ORBITSTATE | state |
current state of affairs | |
Container for orbit initial conditions and information objects.
This class serves as an interface between a single COrbit and the entire COrbitLibrary. It keeps the initial data for an orbit, and internally creates an instance of COrbit for the integration and analysis; then it records the results in the form of an array of CBasicInformation and deletes the COrbit to free up memory.
A collection of this objects constitutes the COrbitLibrary.
lists all possible states of orbit integration
Enumerator | |
---|---|
OS_INITIALIZED |
the object is created but only contains initial data |
OS_PREPARING |
the run() method is called |
OS_RUNNING |
the internal COrbit::run() is in progress |
OS_NEEDTOTERMINATE |
the user requested to stop orbit integration |
OS_DONE |
integration completed, all information objects are stored (also set when all data is loaded from a file). |
OS_FAILED |
if the integration failed for some reason (did not produce any orbit) |
|
inline |
set the state to OS_PREPARING if it is going to be started by the orbit library class, or reset it to OS_INITIALIZED if it was completed.