26 #ifndef __GyotoKerrBL_H_
27 #define __GyotoKerrBL_H_
30 namespace Metric {
class KerrBL; }
36 #ifdef GYOTO_USE_XERCES
58 KerrBL(double spin, double mass) ;
71 void
setSpin(const double spin);
84 double
gmunu(const double * const x, int mu, int nu) const ;
89 double
gmunu_up(const double * const x, int mu, int nu) const ;
97 const int, const int, const int) const;
100 const double u1[4], const double u2[4]) const ;
102 void
nullifyCoord(double coord[8], double & tdot2) const;
109 double dir=1.) const ;
112 virtual void
MakeCoord(const double coordin[8], const double cst[5], double coordout[8]) const ;
116 void
MakeMomentum(const double coordin[8], const double cst[5], double coordout[8]) const;
120 virtual void
setParameter(std::string, std::string, std::string);
121 #ifdef GYOTO_USE_XERCES
130 int
myrk4(Worldline * line, const double coordin[8], double h, double res[8]) const;
132 int
myrk4(const double coor[8], const double cst[5], double h, double res[8]) const;
133 int
myrk4_adaptive(Gyoto::Worldline* line, const double coor[8], double lastnorm, double normref, double coor1[8], double h0, double& h1) const;
139 int
CheckCons(const double coor_init[8], const double cst[5], double coor_fin[8]) const;
146 void
Normalize4v(double coord[8], const double part_mass) const;
154 virtual int
diff(const double y[8], const double cst[5],
155 double res[8]) const ;
158 virtual void
computeCst(const double coord[8], double cst[5]) const;
void nullifyCoord(double coord[8], double &tdot2) const
Set tdot (coord[4]) such that coord is light-like and return other possible tdot. ...
double getSpin() const
Returns spin.
Metric around a Kerr black-hole in Boyer-Lindquist coordinates.
Definition: GyotoKerrBL.h:45
int myrk4_adaptive(Gyoto::Worldline *line, const double coor[8], double lastnorm, double normref, double coor1[8], double h0, double &h1) const
Interal-use adaptive RK4 proxy.
double getRmb() const
Returns prograde marginally bound orbit.
Base class for metrics.
Definition: GyotoMetric.h:142
double spin_
Angular momentum parameter.
Definition: GyotoKerrBL.h:51
double gmunu_up(const double *const x, int mu, int nu) const
gμ,ν
Timelike or null geodesics.
Base class for metric description.
virtual void setParameter(std::string, std::string, std::string)
Set parameter by name.
void setParticleProperties(Worldline *line, const double *coord) const
Set Metric-specific constants of motion. Used e.g. in KerrBL.
int myrk4(Worldline *line, const double coordin[8], double h, double res[8]) const
RK4 integrator.
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).
double gmunu(const double *const x, int mu, int nu) const
Metric coefficients.
virtual int diff(const double y[8], const double cst[5], double res[8]) const
Used in RK4 proxies.
Pointers performing reference counting.
Definition: GyotoSmartPointer.h:51
virtual void fillElement(FactoryMessenger *fmp)
called from Factory
virtual void MakeCoord(const double coordin[8], const double cst[5], double coordout[8]) const
Inverse function of MakeMomentumAndCst.
double getRms() const
Returns prograde marginally stable orbit.
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...
int CheckCons(const double coor_init[8], const double cst[5], double coor_fin[8]) const
Ensure conservation of the constants of motion.
double christoffel(const double[8], const int, const int, const int) const
Chistoffel symbol.
virtual void computeCst(const double coord[8], double cst[5]) const
virtual KerrBL * clone() const
Virtual copy constructor.
double ScalarProd(const double pos[4], const double u1[4], const double u2[4]) const
Scalar product.
void setSpin(const double spin)
Set spin.
void Normalize4v(double coord[8], const double part_mass) const
Normalize 4-velocity.
int modifkerr_CS_
Chern-Simons modification.
Definition: GyotoKerrBL.h:52
virtual int diff(const double y[8], double res[8]) const
F function such as dy/dtau=F(y,cst)