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
30namespace 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:
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 double gmunu(const double x[4],
87 int alpha, int beta) const ;
88
89 void gmunu(double g[4][4], const double pos[4]) const;
90
94 void gmunu_up(double gup[4][4], const double pos[4]) const;
95
101 void jacobian(double dst[4][4][4], const double x[4]) const ;
102
104 int christoffel(double dst[4][4][4], const double x[4]) const ;
105 int christoffel(double dst[4][4][4], const double pos[4], double gup[4][4], double jac[4][4][4]) const ;
106
107 virtual void circularVelocity(double const pos[4], double vel [4],
108 double dir=1.) const ;
109
110 virtual int isStopCondition(double const * const coord) const;
111
112 virtual int setParameter(std::string name,
113 std::string content,
114 std::string unit);
115};
116
117#endif
Base class for metric description.
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
Gyoto registers.
Timelike or null geodesics.
Base class for metrics.
Definition: GyotoMetric.h:162
virtual double christoffel(const double coord[4], const int alpha, const int mu, const int nu) const
Chistoffel symbol.
Metric around a Kerr black-hole in Kerr-Schild coordinates Warning: this metric is seldom used and ma...
Definition: GyotoKerrKS.h:54
double rsink_
numerical horizon
Definition: GyotoKerrKS.h:63
void gmunu_up(double gup[4][4], const double pos[4]) const
The inverse matrix of gmunu.
double spin_
Angular momentum parameter.
Definition: GyotoKerrKS.h:61
int christoffel(double dst[4][4][4], const double x[4]) const
Chistoffel symbol.
virtual int setParameter(std::string name, std::string content, std::string unit)
Set parameter by name.
double spin() const
Returns spin.
double gmunu(const double x[4], int alpha, int beta) const
Metric coefficients.
double drhor_
horizon security
Definition: GyotoKerrKS.h:64
void jacobian(double dst[4][4][4], const double x[4]) const
The derivatives of gmunu.
double a2_
spin_*spin_
Definition: GyotoKerrKS.h:62
virtual KerrKS * clone() const
Copy constructor.
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: GyotoSmartPointer.h:135
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43