Gyoto
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Private Attributes | Friends
Gyoto::Metric::RotStar3_1 Class Reference

Numerical metric around a rotating star in 3+1 formalism. More...

#include <GyotoRotStar3_1.h>

Inheritance diagram for Gyoto::Metric::RotStar3_1:
Gyoto::Metric::Generic Gyoto::SmartPointee

List of all members.

Public Member Functions

 RotStar3_1 (const char *lorene_res, const int integ_kind)
 Constructor.
virtual ~RotStar3_1 ()
 Destructor.
virtual RotStar3_1clone () const
 Cloner (uses RotStar3_1(file, integ_kind))
char const *const getFileName () const
int getIntegKind () const
int myrk4 (const double coord[6], double h, double res[6]) const
int myrk4_adaptive (Gyoto::Worldline *line, const double coord[8], double lastnorm, double normref, double coordnew[8], double h0, double &h1) const
int myrk4_adaptive (const double coor[6], double lastnorm, double normref, double coornew[6], double cst[2], double &tdot_used, double h0, double &h1, double &hused) const
int diff (const double coord[8], double res[8]) const
int diff (const double y[6], double res[6], int) const
void Normalize4v (const double coordin[8], double coordout[8], const double cst[2], double &tdot_used) const
double gmunu (const double *x, int mu, int nu) const
 Display.
double christoffel (const double coord[8], const int alpha, const int mu, const int nu) const
double ScalarProd (const double pos[4], const double u1[4], const double u2[4]) const
 Scalar product.
virtual void fillElement (FactoryMessenger *fmp)
 called from Factory
const std::string getKind () const
void setKind (const std::string)
int getRefCount ()
 Get the current number of references.
void setMass (const double)
 Set mass used in unitLength()
void setMass (const double, std::string unit)
 Set mass used in unitLength()
int getCoordKind () const
 Get coordinate kind.
void setCoordKind (int coordkind)
 Set coordinate kind.
double getMass () const
 Get mass used in unitLength()
double unitLength () const
 M * G / c^2, M is in kg, unitLength in meters.
virtual void cartesianVelocity (double const coord[8], double vel[3])
 Compute xprime, yprime and zprime from 8-coordinates.
virtual double SysPrimeToTdot (const double coord[4], const double v[3]) const
 Compute tdot as a function of dr/dt, dtheta/dt and dphi/dt. Everything is in geometrical units.
virtual void circularVelocity (double const pos[4], double vel[4], double dir=1.) const
 Yield circular valocity at a given position (projected on equatorial plane.
virtual void nullifyCoord (double coord[8]) const
 Set tdot (coord[4]) such that coord is light-like. Everything is in geometrical units.
virtual void nullifyCoord (double coord[8], double &tdot2) const
 Set tdot (coord[4]) such that coord is light-like and return other possible tdot.
virtual double Norm3D (double *pos) const
 not clear
void processGenericParameters (Gyoto::FactoryMessenger *fmp)
virtual int myrk4 (Worldline *line, const double coord[8], double h, double res[8]) const
virtual int isStopCondition (double const *const coord) const
virtual void setParticleProperties (Gyoto::Worldline *line, const double *coord) const

Static Public Member Functions

static void Init ()

Static Public Attributes

static Metric::Subcontractor_t Subcontractor

Protected Types

typedef Gyoto::SmartPointer
< Gyoto::SmartPointee
Subcontractor_t (Gyoto::FactoryMessenger *)
 A subcontractor builds an object upon order from the Factory.

Protected Member Functions

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.

Private Attributes

char * filename_
Star_rot * star_
int integ_kind_

Friends

class Gyoto::SmartPointer< Gyoto::Metric::RotStar3_1 >

Detailed Description

Numerical metric around a rotating star in 3+1 formalism.


Member Typedef Documentation

typedef Gyoto::SmartPointer<Gyoto::SmartPointee> Gyoto::SmartPointee::Subcontractor_t(Gyoto::FactoryMessenger *)
inherited

A subcontractor builds an object upon order from the Factory.

Various classes need to provide a subcontractor to be able to instanciate 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().


Member Function Documentation

double Gyoto::Metric::RotStar3_1::christoffel ( const double  coord[8],
const int  alpha,
const int  mu,
const int  nu 
) const
virtual

Value of Christoffel symbol $^{}_{}$ at point $(x_{1},x_{2},x_{3})$

Implements Gyoto::Metric::Generic.

virtual void Gyoto::Metric::Generic::circularVelocity ( double const  pos[4],
double  vel[4],
double  dir = 1. 
) const
virtualinherited

Yield circular valocity at a given position (projected on equatorial plane.

Parameters:
posinput: position,
veloutput: velocity,
dir1 for corotating, -1 for counterrotating.

Reimplemented in Gyoto::Metric::KerrBL, and Gyoto::Metric::KerrKS.

int Gyoto::Metric::RotStar3_1::diff ( const double  coord[8],
double  res[8] 
) const
virtual

F function such as dy/dtau=F(y,cst)

Reimplemented from Gyoto::Metric::Generic.

double Gyoto::Metric::RotStar3_1::gmunu ( const double *  x,
int  mu,
int  nu 
) const
virtual

Display.

Parameters:
x[4]4-position at which to compute the coefficient;
0<=mu<=31st index of coefficient;
0<=nu<=32nd index of coefficient;
syscoordinate systemp in which x is expressed (see GyotoMetric.h)
Returns:
Metric coefficient $g_{mu, nu}$ at point x Metric coefficients

Implements Gyoto::Metric::Generic.

virtual int Gyoto::Metric::Generic::isStopCondition ( double const *const  coord) const
virtualinherited

The integrating loop will ask this the Metric through this method whether or not it is happy to conitnue the integration. Typically, the Metric should answer 0 when everything is fine, 1 when too close to the event horizon, inside the BH...

Parameters:
coord[8]coordinates to check.

Reimplemented in Gyoto::Metric::KerrKS.

virtual void Gyoto::Metric::Generic::nullifyCoord ( double  coord[8]) const
virtualinherited

Set tdot (coord[4]) such that coord is light-like. Everything is in geometrical units.

Set coord[4] so that the 4-velocity coord[4:7] is lightlike, i.e. of norm 0. There may be up to two solutions. coord[4] is set to the hightest. The lowest can be retrieved in tdot2. Everything is expressed in geometrical units.

Parameters:
coord[4]8-position, coord[4] will be set according to the other elements;

Reimplemented in Gyoto::Metric::KerrBL, and Gyoto::Metric::KerrKS.

virtual void Gyoto::Metric::Generic::nullifyCoord ( double  coord[8],
double &  tdot2 
) const
virtualinherited

Set tdot (coord[4]) such that coord is light-like and return other possible tdot.

Set coord[4] so that the 4-velocity coord[4:7] is lightlike, i.e. of norm 0. There may be up to two solutions. coord[4] is set to the hightest. The lowest can be retrieved in tdot2. Everything is expressed in geometrical units.

Parameters:
coord[4]8-position, coord[4] will be set according to the other elements;
tdot2will be set to the smallest solution

Reimplemented in Gyoto::Metric::KerrBL, and Gyoto::Metric::KerrKS.

double Gyoto::Metric::RotStar3_1::ScalarProd ( const double  pos[4],
const double  u1[4],
const double  u2[4] 
) const
virtual

Scalar product.

Compute the scalarproduct of the two quadrivectors u1 and u2 in this Metric, at point pos expressed in coordinate system sys.

Parameters:
pos[4]4-position;
u1[4]1st quadrivector;
u2[4]2nd quadrivector;
Returns:
u1*u2

Reimplemented from Gyoto::Metric::Generic.

virtual void Gyoto::Metric::Generic::setParticleProperties ( Gyoto::Worldline line,
const double *  coord 
) const
virtualinherited

Set Metric-specific constants of motion. Used e.g. in KerrBL.

Reimplemented in Gyoto::Metric::KerrBL, and Gyoto::Metric::KerrKS.

virtual double Gyoto::Metric::Generic::SysPrimeToTdot ( const double  coord[4],
const double  v[3] 
) const
virtualinherited

Compute tdot as a function of dr/dt, dtheta/dt and dphi/dt. Everything is in geometrical units.

Parameters:
coord[4]4-position (geometrical units);
v[3]3-velocity dx1/dx0, dx2/dx0, dx3/dx0;
Returns:
tdot = dx0/dtau.
double Gyoto::Metric::Generic::unitLength ( ) const
inherited

M * G / c^2, M is in kg, unitLength in meters.

Metrics implementations are free to express lengths and distances in whatever unit they see fit (presumably most often geometrical units). This function returns this unit in SI (meters).


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