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