Gyoto
GyotoRezzollaZhidenko.h
Go to the documentation of this file.
1 
8 /*
9  Copyright 2013, 2018 Frederic Vincent & Thibaut Paumard
10 
11  This file is part of Gyoto.
12 
13  Gyoto is free software: you can redistribute it and/or modify
14  it under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  Gyoto is distributed in the hope that it will be useful,
19  but WITHOUT ANY WARRANTY; without even the implied warranty of
20  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21  GNU General Public License for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with Gyoto. If not, see <http://www.gnu.org/licenses/>.
25  */
26 
27 #ifndef __GyotoRezzollaZhidenko_h
28 #define __GyotoRezzollaZhidenko_h
29 
30 #include <GyotoMetric.h>
31 
32 namespace Gyoto {
33  namespace Metric {
34  class RezzollaZhidenko;
35  };
36 };
37 
39 : public Gyoto::Metric::Generic {
41  private:
42  double epsilon_;
43  double rms_, rmb_;
44  double* aparam_;
45  double* bparam_;
46  public:
49  RezzollaZhidenko(const RezzollaZhidenko & orig);
50  virtual ~RezzollaZhidenko();
51  virtual RezzollaZhidenko * clone() const ;
52 
53  // accessors
54  GYOTO_OBJECT_ACCESSORS(double, epsilon);
55  GYOTO_OBJECT_ACCESSORS(double, rms);
56  GYOTO_OBJECT_ACCESSORS(double, rmb);
57  void aparam(std::vector<double> const &v);
58  std::vector<double> aparam() const;
59  void bparam(std::vector<double> const &v);
60  std::vector<double> bparam() const;
61 
62 
63  double gmunu(const double * const x, int mu, int nu) const ;
64  double N2(const double rr) const;
65  double B2(const double rr) const;
66  double Nprime(const double rr) const;
67  double Bprime(const double rr) const;
68  int christoffel(double dst[4][4][4], const double * pos) const ;
69  int isStopCondition(double const * const coord) const;
70  virtual double getRmb() const;
71  virtual double getRms() const;
72  virtual double getPotential(double const pos[4], double l_cst) const;
73  virtual double getSpecificAngularMomentum(double rr) const;
74  virtual void circularVelocity(double const pos[4], double vel [4],
75  double dir=1.) const ;
76 
77 
78 #endif
79 };
GYOTO_OBJECT
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
Gyoto::Metric::RezzollaZhidenko::aparam_
double * aparam_
The a-parameter vector [a0,a1,a2,a3] used in RZ14.
Definition: GyotoRezzollaZhidenko.h:44
Gyoto::Metric::RezzollaZhidenko::getRms
virtual double getRms() const
Gyoto::Metric::RezzollaZhidenko::getRmb
virtual double getRmb() const
Gyoto::Metric::RezzollaZhidenko::epsilon_
double epsilon_
horizon parameter, rH=2/(1+eps)
Definition: GyotoRezzollaZhidenko.h:42
Gyoto::Metric::RezzollaZhidenko::bparam_
double * bparam_
The b-parameter vector [b0,b1,b2,b3] used in RZ14.
Definition: GyotoRezzollaZhidenko.h:45
GYOTO_OBJECT_ACCESSORS
#define GYOTO_OBJECT_ACCESSORS(type, method)
Declare a pair of accessors to scalar member in a class declaration.
Definition: GyotoObject.h:60
Gyoto::Metric::Generic
Base class for metrics.
Definition: GyotoMetric.h:158
Gyoto
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
Gyoto::Metric::RezzollaZhidenko
Definition: GyotoRezzollaZhidenko.h:38
GyotoMetric.h
Base class for metric description.
Gyoto::Metric::RezzollaZhidenko::rmb_
double rmb_
Provide marginally stable and bound orbits if needed.
Definition: GyotoRezzollaZhidenko.h:43
Gyoto::Metric::RezzollaZhidenko::getPotential
virtual double getPotential(double const pos[4], double l_cst) const
Gyoto::SmartPointer
Pointers performing reference counting.
Definition: GyotoProperty.h:45
Gyoto::Metric::RezzollaZhidenko::getSpecificAngularMomentum
virtual double getSpecificAngularMomentum(double rr) const
Gyoto::Metric::RezzollaZhidenko::clone
virtual RezzollaZhidenko * clone() const
Virtual copy constructor.
Gyoto::Metric::RezzollaZhidenko::circularVelocity
virtual void circularVelocity(double const pos[4], double vel[4], double dir=1.) const
Yield circular velocity at a given position.