SMILE
v2.5
Schwarzschild Modelling Interactive expLoratory Environment
|
defines a routine which may be called after each integration timestep to perform user-specific data collection. More...
#include <common.h>
Public Types | |
enum | FNCTYPE { FT_TRAJ_ANALYSIS, FT_TRAJ_SAMPLE, FT_POINCARE, FT_PERICENTER, FT_SCHW, FT_VEL_PERTURBER } |
lists all possible runtime functions More... | |
enum | STEPRESULT { SR_CONTINUE, SR_TERMINATE, SR_REINIT } |
result of processing of a timestep More... | |
Public Member Functions | |
CBasicOrbitRuntimeFnc (const COrbit *_orbit) | |
constructs instance and initializes some internal data | |
virtual | ~CBasicOrbitRuntimeFnc () |
destroys all necessary internal data | |
virtual FNCTYPE | FncType () const =0 |
derived classes return their type | |
virtual STEPRESULT | Timestep (const double told, const double tcur, CPosVelPoint< double > *vars)=0 |
the following method is called after each timestep. More... | |
virtual void | Finish () |
called when integration is finished, performs cleanup/postprocessing but doesn't destroy collected data | |
virtual CBasicInformation * | getData () const =0 |
returns the collected data as an instance of an information object | |
Protected Attributes | |
const COrbit * | orbit |
pointer to the orbit that is being integrated | |
defines a routine which may be called after each integration timestep to perform user-specific data collection.
(such as computing cell occupation times in Schw model or recording Poincare section points).
|
pure virtual |
the following method is called after each timestep.
[in] | told | is the value of time at the beginning of the timestep |
[in] | tcur | is the time at the end of timestep |
[in,out] | vars | are the phase-space variables at the end of timestep; the function may change them and return SR_REINIT to indicate that the ODE integrator needs to be restarted. |
This procedure may call orbit->getPos() and orbit->getVel() to get interpolated coordinates on the interval [told, tcur].
Implemented in smile::COrbitRuntimeSchwDensSH, smile::COrbitRuntimeSchwDensGrid, smile::COrbitRuntimeSchwAngMomDist, smile::COrbitRuntimeVelPerturber, smile::COrbitRuntimeSchwKinemShell, smile::COrbitRuntimePericenter, smile::COrbitRuntimePoincare, smile::COrbitRuntimeTrajSample, and smile::COrbitRuntimeTrajectory.