SMILE  v2.5
Schwarzschild Modelling Interactive expLoratory Environment
Public Member Functions | Private Member Functions | Private Attributes | List of all members
smile::COrbitRuntimeSchwKinemShell Class Reference

Runtime function recording shell-based kinematic data (time spent in each shell and radial/tangential velocity dispersion in a shell). More...

#include <schwarzschild.h>

Inheritance diagram for smile::COrbitRuntimeSchwKinemShell:
Inheritance graph
[legend]
Collaboration diagram for smile::COrbitRuntimeSchwKinemShell:
Collaboration graph
[legend]

Public Member Functions

 COrbitRuntimeSchwKinemShell (const COrbit *_orbit, const CSchwDataKinemShell *_model)
 
virtual FNCTYPE FncType () const
 derived classes return their type
 
virtual STEPRESULT Timestep (const double told, const double t, CPosVelPoint< double > *vars)
 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 CBasicInformationgetData () const
 serialize three arrays into one
 
- Public Member Functions inherited from smile::CBasicOrbitRuntimeFnc
 CBasicOrbitRuntimeFnc (const COrbit *_orbit)
 constructs instance and initializes some internal data
 
virtual ~CBasicOrbitRuntimeFnc ()
 destroys all necessary internal data
 

Private Member Functions

void calcShellTime (double tlow, double tupp, size_t slow, size_t supp, double vr2, double vt2)
 record time-in-shell with fraction-of-period accuracy
 

Private Attributes

const CSchwDataKinemShellmodel
 pointer to Schwarzschild kinem.data object
 
double timeAccuracy
 accuracy of computation of time spent in each shell
 
vectord shellTime
 
vectord shellVr
 
vectord shellVt
 time spent in each shell and corresponding radial/tangential velocity dispersions
 
size_t shellprev
 index of shell on the previous timestep
 

Additional Inherited Members

- Public Types inherited from smile::CBasicOrbitRuntimeFnc
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...
 
- Protected Attributes inherited from smile::CBasicOrbitRuntimeFnc
const COrbitorbit
 pointer to the orbit that is being integrated
 

Detailed Description

Runtime function recording shell-based kinematic data (time spent in each shell and radial/tangential velocity dispersion in a shell).

Member Function Documentation

CBasicOrbitRuntimeFnc::STEPRESULT smile::COrbitRuntimeSchwKinemShell::Timestep ( const double  told,
const double  tcur,
CPosVelPoint< double > *  vars 
)
virtual

the following method is called after each timestep.

Parameters
[in]toldis the value of time at the beginning of the timestep
[in]tcuris the time at the end of timestep
[in,out]varsare 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].

Returns
true if integration may be finished right now [default], false if needs to continue. (the ultimate decision is taken by orbit integration routine and may ignore the demands of runtime functions)

Implements smile::CBasicOrbitRuntimeFnc.


The documentation for this class was generated from the following files: