Gyoto
GyotoKonoplyaRezzollaZhidenko.h
Go to the documentation of this file.
1 
13 /*
14  Copyright 2025 Irene Urso
15 
16  This file is part of Gyoto.
17 
18  Gyoto is free software: you can redistribute it and/or modify
19  it under the terms of the GNU General Public License as published by
20  the Free Software Foundation, either version 3 of the License, or
21  (at your option) any later version.
22 
23  Gyoto is distributed in the hope that it will be useful,
24  but WITHOUT ANY WARRANTY; without even the implied warranty of
25  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26  GNU General Public License for more details.
27 
28  You should have received a copy of the GNU General Public License
29  along with Gyoto. If not, see <http://www.gnu.org/licenses/>.
30  */
31 
32 #ifndef __GyotoKonoplyaRezzollaZhidenko_h
33 #define __GyotoKonoplyaRezzollaZhidenko_h
34 
35 #include <GyotoMetric.h>
36 
37 namespace Gyoto {
38  namespace Metric {
39  class KonoplyaRezzollaZhidenko;
40  };
41 };
42 
44 : public Gyoto::Metric::Generic {
46  private:
47  double spin_;
48  double spin2_;
49  double spin3_;
50  double spin4_;
51  double rms_;
52  double* deltashorizon_;
54  public:
57  KonoplyaRezzollaZhidenko(const KonoplyaRezzollaZhidenko & orig);
58  virtual ~KonoplyaRezzollaZhidenko();
59  virtual KonoplyaRezzollaZhidenko * clone() const ;
60 
61  // accessors
62  void spin(const double val);
63  double spin() const ;
64  GYOTO_OBJECT_ACCESSORS(double, rms);
65  void deltashorizon(std::vector<double> const &v);
66  std::vector<double> deltashorizon() const;
67  void deltasasymptotics(std::vector<double> const &v);
68  std::vector<double> deltasasymptotics() const;
69 
70 
71  using Generic::gmunu;
72  double gmunu(double const x[4], int mu, int nu) const ;
73  void gmunu_up(double ARGOUT_ARRAY2[4][4], const double IN_ARRAY1[4]) const ;
74  double gmunu_up(double const x[4], int mu, int nu) const ;
75  double Definer0() const;
76  enum class AsymptoticParameter {epsilon0, k00, w00, a20, a00, b00, epsilon2, b20, w20, k20};
77  double DefineAsymptoticParameters(AsymptoticParameter, const double r0) const;
78  enum class HorizonParameter {a01, a21, k21, k22, k23, w01, w21, b01, b21};
79  double DefineHorizonParameters(HorizonParameter, const double r0) const;
80  double N2(const double rr, const double th) const;
81  double B(const double rr, const double th) const;
82  double Sigma(const double rr, const double th) const;
83  double W(const double rr, const double th) const;
84  double K2(const double rr, const double th) const;
85  double drN2(const double rr, const double th) const;
86  double dthN2(const double rr, const double th) const;
87  double drB(const double rr, const double th) const;
88  double dthB(const double rr, const double th) const;
89  double drSigma(const double rr, const double th) const;
90  double dthSigma(const double rr, const double th) const;
91  double drW(const double rr, const double th) const;
92  double dthW(const double rr, const double th) const;
93  double drK2(const double rr, const double th) const;
94  double dthK2(const double rr, const double th) const;
95  double KeplerianSpecificAngularMomentum(const double rr, const double th) const;
96  double KeplerianAngularVelocity(const double rr, const double th, const double ell) const;
97  double KeplerianEnergy(const double rr, const double th, const double Omega) const;
98  double KeplerianAngularMomentum(const double rr, const double th, const double Omega) const;
100  int christoffel(double dst[4][4][4], double const pos[4]) const ;
101  int isStopCondition(double const coord[8]) const;
102  virtual double getRms() const;
103  virtual void circularVelocity(double const pos[4], double vel [4],
104  double dir=1.) const ;
105 
106 
107 #endif
108 };
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
Base class for metrics.
Definition: GyotoMetric.h:163
virtual double christoffel(const double coord[4], const int alpha, const int mu, const int nu) const
Chistoffel symbol.
#define GYOTO_OBJECT_ACCESSORS(type, method)
Declare a pair of accessors to scalar member in a class declaration.
Definition: GyotoObject.h:60
virtual double gmunu(double const x[4], int mu, int nu) const
Metric coefficients.
Definition: GyotoKonoplyaRezzollaZhidenko.h:43
Base class for metric description.
double gmunu(double const x[4], int mu, int nu) const
Metric coefficients.
virtual void circularVelocity(double const pos[4], double vel [4], double dir=1.) const
Yield circular velocity at a given position.
double * deltasasymptotics_
The parameter vector [δepsilon0,ẟw00,ẟa00,ẟb00] used in Cárdenas-Avendaño & Held PRD109(2024)06405...
Definition: GyotoKonoplyaRezzollaZhidenko.h:53
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:46
double spin() const
Returns spin.
virtual KonoplyaRezzollaZhidenko * clone() const
Virtual copy constructor.
double * deltashorizon_
The ẟ-parameter vector [δ1,ẟ2,ẟ3,ẟ4,ẟ5,ẟ6]=[a01,w01,w21,b01,b21,->a21&k21] used in Ni et al...
Definition: GyotoKonoplyaRezzollaZhidenko.h:52
Pointers performing reference counting.
Definition: GyotoProperty.h:45
double rms_
Provide marginally stable orbits if needed.
Definition: GyotoKonoplyaRezzollaZhidenko.h:51
int isStopCondition(double const coord[8]) const
Check whether integration should stop.
void gmunu_up(double ARGOUT_ARRAY2[4][4], const double IN_ARRAY1[4]) const
Metric contravariant coefficients.