Gyoto
|
Metric around a Kerr black-hole in Boyer-Lindquist coordinates. More...
#include <GyotoKerrBL.h>
Public Member Functions | |
KerrBL () | |
Default constructor. | |
KerrBL (double spin, double mass) | |
Constructor with spin and mass specification. | |
virtual | ~KerrBL () |
Destructor. | |
void | setSpin (const double spin) |
Set spin. | |
virtual KerrBL * | clone () const |
Virtual copy constructor. | |
double | getSpin () const |
Returns spin. | |
double | getRms () const |
Returns prograde marginally stable orbit. | |
double | getRmb () const |
Returns prograde marginally bound orbit. | |
double | gmunu (const double *const x, int alpha, int beta) const |
double | christoffel (const double[8], const int, const int, const int) const |
double | ScalarProd (const double *pos, const double *u1, const double *u2) const |
void | nullifyCoord (double coord[8], double &tdot2) const |
Set tdot (coord[4]) such that coord is light-like and return other possible tdot. | |
void | nullifyCoord (double coord[8]) const |
Set tdot (coord[4]) such that coord is light-like. 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. | |
void | MakeCoord (const double coordin[8], const double cst[5], double coordout[8]) const |
Inverse function of MakeMomentumAndCst. | |
void | MakeMomentum (const double coordin[8], const double cst[5], double coordout[8]) const |
Transforms from Boyer-Lindquist coordinates [t,r,th,phi,tdot,rdot,thdot,phidot] to [t,r,th,phi,pt,pr,pth,pphi] where pt,pr... are generalized momenta. | |
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 double | ScalarProd (const double pos[4], const double u1[4], const double u2[4]) const |
Scalar product. | |
virtual double | Norm3D (double *pos) const |
not clear | |
void | processGenericParameters (Gyoto::FactoryMessenger *fmp) |
virtual int | isStopCondition (double const *const coord) const |
virtual int | diff (const double y[8], double res[8]) 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 | |
int | myrk4 (Worldline *line, const double coordin[8], double h, double res[8]) const |
int | myrk4 (const double coor[8], const double cst[5], double h, double res[8]) const |
int | myrk4_adaptive (Gyoto::Worldline *line, const double coor[8], double lastnorm, double normref, double coor1[8], double h0, double &h1) const |
int | CheckCons (const double coor_init[8], const double cst[5], double coor_fin[8]) const |
void | Normalize4v (double coord[8], const double part_mass) const |
int | diff (const double y[8], const double cst[5], double res[8]) const |
void | computeCst (const double coord[8], double cst[5]) const |
void | setParticleProperties (Worldline *line, const double *coord) const |
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. |
Protected Attributes | |
double | spin_ |
Angular momentum parameter. |
Friends | |
class | Gyoto::SmartPointer< Gyoto::Metric::KerrBL > |
Metric around a Kerr black-hole in Boyer-Lindquist coordinates.
|
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().
|
virtual |
Value of Christoffel symbol $^{}_{}$ at point $(x_{1},x_{2},x_{3})$
Implements Gyoto::Metric::Generic.
|
virtual |
Yield circular valocity at a given position (projected on equatorial plane.
pos | input: position, |
vel | output: velocity, |
dir | 1 for corotating, -1 for counterrotating. |
Reimplemented from Gyoto::Metric::Generic.
|
protected |
Integrator. Computes the evolution of y (initcond=y(0)).
|
virtualinherited |
F function such as dy/dtau=F(y,cst)
Reimplemented in Gyoto::Metric::KerrKS, and Gyoto::Metric::RotStar3_1.
|
virtual |
Value of metric coefficient $g_{}$ at point $(x_{1},x_{2},x_{3})$ in Boyer-Lindquist coordinates
Implements Gyoto::Metric::Generic.
|
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...
coord[8] | coordinates to check. |
Reimplemented in Gyoto::Metric::KerrKS.
void Gyoto::Metric::KerrBL::MakeCoord | ( | const double | coordin[8], |
const double | cst[5], | ||
double | coordout[8] | ||
) | const |
Inverse function of MakeMomentumAndCst.
Computes pr, ptheta, E and L from rdot, thetadot, phidot, tdot
|
virtual |
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.
coord[4] | 8-position, coord[4] will be set according to the other elements; |
tdot2 | will be set to the smallest solution |
Reimplemented from Gyoto::Metric::Generic.
|
virtual |
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.
coord[4] | 8-position, coord[4] will be set according to the other elements; |
Reimplemented from Gyoto::Metric::Generic.
|
virtualinherited |
Scalar product.
Compute the scalarproduct of the two quadrivectors u1 and u2 in this Metric, at point pos expressed in coordinate system sys.
pos[4] | 4-position; |
u1[4] | 1st quadrivector; |
u2[4] | 2nd quadrivector; |
Reimplemented in Gyoto::Metric::RotStar3_1.
|
protectedvirtual |
Set Metric-specific constants of motion. Used e.g. in KerrBL.
Reimplemented from Gyoto::Metric::Generic.
|
virtualinherited |
Compute tdot as a function of dr/dt, dtheta/dt and dphi/dt. Everything is in geometrical units.
coord[4] | 4-position (geometrical units); |
v[3] | 3-velocity dx1/dx0, dx2/dx0, dx3/dx0; |
|
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).