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

class for applying random perturbations on velocity during orbit integration, mimicking the effect of two-body relaxation. More...

#include <orbitan.h>

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

Public Member Functions

 COrbitRuntimeVelPerturber (const COrbit *_orbit, const CMassModel *_model, double _mult)
 
virtual FNCTYPE FncType () const
 derived classes return their type
 
virtual STEPRESULT Timestep (const double told, const double t, CPosVelPoint< double > *vars)
 Modifies the velocity by applying a random perturbation to it and records accumulated changes in E and L resulting from the perturbation. More...
 
virtual void Finish ()
 fit pericenter distribution and compute fitting coefficients
 
virtual CBasicInformationgetData () const
 returns the collected data as an instance of an information object
 
- 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 Attributes

const CMassModelmodel
 spherical mass model used to compute diffusion coefficients
 
const double mult
 multiplier for the diffusion coefficients =(log Lambda)/N
 
double Eorbitavg
 energy below which we use orbit-averaged dif.coefs instead of local ones
 
double intTime
 total integration time
 
double deltaE
 
double deltaE2
 
double deltaEcumul
 accumulated drift and diffusion coefficients in energy and its total change
 
double deltaL
 
double deltaL2
 
double deltaLcumul
 accumulated drift and diffusion coefficients in angular momentum and its total change
 
double avgCoefs [15]
 time-averaged coefficients DEE, DLL, DEL, DE, DL and their counterparts in spherical model
 

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

class for applying random perturbations on velocity during orbit integration, mimicking the effect of two-body relaxation.

The diffusion coefficients come in two varieties: local (position-dependent) coefficients for velocity, and orbit-averaged coefficients for energy and angular momentum. They are computed from a spherical mass model constructed as an approximation to the true (non-spherical) potential used in orbit integration itself. There is a free parameter that determines the scaling of these coefficients: its numerical value corresponds to $ (\ln\Lambda)/N $, where N is the number of stars in the model galaxy, and log Lambda is the Coulomb logarithm (~log N).

Member Function Documentation

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

Modifies the velocity by applying a random perturbation to it and records accumulated changes in E and L resulting from the perturbation.

Parameters
[in,out]varsis the current position and velocity of the orbit; the velocity is modified.
[in]toldis the time at the beginning of timestep;
[in]tis the time at the end of timestep.

don't bother computing local coefs; just take orbit-averaged values and set new velocity

Implements smile::CBasicOrbitRuntimeFnc.


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