Gyoto
GyotoKerrKS.h
Go to the documentation of this file.
1 
8 /*
9  Copyright 2011-2015 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 __GyotoKerrKS_H_
28 #define __GyotoKerrKS_H_
29 
30 namespace Gyoto {
31  namespace Metric { class KerrKS; }
32 }
33 
34 #include <GyotoMetric.h>
35 #include <GyotoWorldline.h>
36 #ifdef GYOTO_USE_XERCES
37 #include <GyotoRegister.h>
38 #endif
39 
53 : public Metric::Generic
54 {
56 
57  // Data :
58  // -----
59 
60  protected:
61  double spin_ ;
62  double a2_;
63  double rsink_;
64  double drhor_;
65 
66  // Constructors - Destructor
67  // -------------------------
68  public:
70  KerrKS();
71  virtual KerrKS* clone () const;
72 
73  // Mutators / assignment
74  // ---------------------
75  public:
76  // default operator= is fine
77  void spin(const double spin);
78 
79  // Accessors
80  // ---------
81  public:
82  double spin() const ;
83  void horizonSecurity(double drhor);
84  double horizonSecurity() const;
85 
86  virtual double gmunu(double const x[4], int alpha, int beta) const ;
87 
88  virtual void gmunu(double ARGOUT_ARRAY2[4][4], const double IN_ARRAY1[4]) const ;
89 
90 
95  virtual void gmunu_up(double ARGOUT_ARRAY2[4][4], const double IN_ARRAY1[4]) const;
96 
102  virtual void jacobian(double ARGOUT_ARRAY3[4][4][4], const double x[4]) const ;
103 
104  virtual void gmunu_up_and_jacobian(double ARGOUT_ARRAY2[4][4], double ARGOUT_ARRAY3[4][4][4], const double IN_ARRAY1[4]) const;
105 
106  virtual void circularVelocity(double const pos[4], double vel [4],
107  double dir=1.) const ;
108 
109  virtual int isStopCondition(double const * const coord) const;
110 
111  virtual int setParameter(std::string name,
112  std::string content,
113  std::string unit);
114 };
115 
116 #endif
virtual double gmunu(double const x[4], int alpha, int beta) const
Metric coefficients.
double rsink_
numerical horizon
Definition: GyotoKerrKS.h:63
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
virtual int setParameter(std::string name, std::string content, std::string unit)
Set parameter by name.
double spin() const
Returns spin.
Gyoto registers.
Metric around a Kerr black-hole in Kerr-Schild coordinates Warning: this metric is seldom used and ma...
Definition: GyotoKerrKS.h:52
Base class for metrics.
Definition: GyotoMetric.h:158
virtual void gmunu_up_and_jacobian(double ARGOUT_ARRAY2[4][4], double ARGOUT_ARRAY3[4][4][4], const double IN_ARRAY1[4]) const
gmunu_up() and jacobian() in one go
double drhor_
horizon security
Definition: GyotoKerrKS.h:64
virtual double gmunu_up(double const x[4], int mu, int nu) const
Metric contravariant coefficients.
double spin_
Angular momentum parameter.
Definition: GyotoKerrKS.h:61
Timelike or null geodesics.
Base class for metric description.
virtual void gmunu_up(double ARGOUT_ARRAY2[4][4], const double IN_ARRAY1[4]) const
The inverse matrix of gmunu.
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
virtual void circularVelocity(double const pos[4], double vel [4], double dir=1.) const
Yield circular velocity at a given position.
Pointers performing reference counting.
Definition: GyotoProperty.h:45
virtual KerrKS * clone() const
Copy constructor.
double a2_
spin_*spin_
Definition: GyotoKerrKS.h:62
virtual void jacobian(double ARGOUT_ARRAY3[4][4][4], const double x[4]) const
The derivatives of gmunu.