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 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 coord[8]) const;
110
111 virtual int setParameter(std::string name,
112 std::string content,
113 std::string unit);
114};
115
116#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 gmunu_up(double const x[4], int mu, int nu) const
Metric contravariant coefficients.
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
double spin_
Angular momentum parameter.
Definition GyotoKerrKS.h:61
virtual int setParameter(std::string name, std::string content, std::string unit)
Set parameter by name.
double spin() const
Returns spin.
double drhor_
horizon security
Definition GyotoKerrKS.h:64
virtual void jacobian(double ARGOUT_ARRAY3[4][4][4], const double x[4]) const
The derivatives of gmunu.
virtual void gmunu_up(double ARGOUT_ARRAY2[4][4], const double IN_ARRAY1[4]) const
The inverse matrix of gmunu.
double a2_
spin_*spin_
Definition GyotoKerrKS.h:62
virtual int isStopCondition(double const coord[8]) const
Check whether integration should stop.
virtual double gmunu(double const x[4], int alpha, int beta) const
Metric coefficients.
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.
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
Pointers performing reference counting.
Definition GyotoSmartPointer.h:135
Namespace for the Gyoto library.
Definition GyotoAstrobj.h:44