Gyoto
GyotoChernSimons.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 __GyotoChernSimons_h
27 #define __GyotoChernSimons_h
28 
29 #include <GyotoKerrBL.h>
30 
31 namespace Gyoto {
32  namespace Metric {
33  class ChernSimons;
34  };
35 };
36 
38 : public Gyoto::Metric::KerrBL {
40  protected:
41  double dzetaCS_;
42  public:
44  ChernSimons();
45  ChernSimons(const ChernSimons &o);
46  virtual ~ChernSimons();
47  virtual ChernSimons * clone() const ;
48 
49  void dzetaCS(double d);
50  double dzetaCS() const;
51 
52  // need to reimplement both, else KerrBL version can be called!
53  void gmunu(double ARGOUT_ARRAY2[4][4], double const IN_ARRAY1[4]) const;
54  double gmunu(double const x[4], int mu, int nu) const ;
55 
56  // Wrap the Generic version else the KerrBL can be called
57  double christoffel(const double coord[4],
58  const int alpha, const int mu, const int nu) const;
59  int christoffel(double dst[4][4][4], double const x[4]) const ;
60 
61  void gmunu_up(double ARGOUT_ARRAY2[4][4], double const IN_ARRAY1[4]) const;
62  double gmunu_up(double const x[4], int mu, int nu) const ;
63  int diff(const double y[8], const double cst[5], double res[8]) const ;
64  void circularVelocity(double const pos[4], double vel [4],
65  double dir=1.) const ;
66 };
67 #endif
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
double dzetaCS_
Chern-Simons coupling constant.
Definition: GyotoChernSimons.h:41
Metric around a Kerr black-hole in Boyer-Lindquist coordinates.
Definition: GyotoKerrBL.h:48
void gmunu(double ARGOUT_ARRAY2[4][4], double const IN_ARRAY1[4]) const
Metric coefficients.
void circularVelocity(double const pos[4], double vel [4], double dir=1.) const
Yield circular velocity at a given position.
int diff(const double y[8], const double cst[5], double res[8]) const
Used in RK4 proxies.
double christoffel(const double coord[4], const int alpha, const int mu, const int nu) const
Chistoffel symbol.
KerrBL metric.
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
Definition: GyotoChernSimons.h:37
virtual ChernSimons * clone() const
Virtual copy constructor.
Pointers performing reference counting.
Definition: GyotoProperty.h:45