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
32namespace Gyoto {
33 namespace Metric {
34 class RezzollaZhidenko;
35 };
36};
37
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};
Base class for metric description.
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
#define GYOTO_OBJECT_ACCESSORS(type, method)
Declare a pair of accessors to scalar member in a class declaration.
Definition: GyotoObject.h:60
Base class for metrics.
Definition: GyotoMetric.h:162
Definition: GyotoRezzollaZhidenko.h:39
double * bparam_
The b-parameter vector [b0,b1,b2,b3] used in RZ14.
Definition: GyotoRezzollaZhidenko.h:45
double rmb_
Provide marginally stable and bound orbits if needed.
Definition: GyotoRezzollaZhidenko.h:43
virtual double getRmb() const
virtual double getSpecificAngularMomentum(double rr) const
virtual double getRms() const
virtual double getPotential(double const pos[4], double l_cst) const
virtual RezzollaZhidenko * clone() const
Virtual copy constructor.
double * aparam_
The a-parameter vector [a0,a1,a2,a3] used in RZ14.
Definition: GyotoRezzollaZhidenko.h:44
virtual void circularVelocity(double const pos[4], double vel[4], double dir=1.) const
Yield circular velocity at a given position.
double epsilon_
horizon parameter, rH=2/(1+eps)
Definition: GyotoRezzollaZhidenko.h:42
Pointers performing reference counting.
Definition: GyotoSmartPointer.h:135
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43