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
31namespace Gyoto {
32 namespace Metric {
33 class ChernSimons;
34 };
35};
36
38: public Gyoto::Metric::KerrBL {
40 protected:
41 double dzetaCS_;
42 public:
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
KerrBL metric.
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition GyotoObject.h:84
Definition GyotoChernSimons.h:38
void circularVelocity(double const pos[4], double vel[4], double dir=1.) const
Yield circular velocity at a given position.
double christoffel(const double coord[4], const int alpha, const int mu, const int nu) const
Chistoffel symbol.
double dzetaCS_
Chern-Simons coupling constant.
Definition GyotoChernSimons.h:41
virtual ChernSimons * clone() const
Virtual copy constructor.
void gmunu(double ARGOUT_ARRAY2[4][4], double const IN_ARRAY1[4]) const
Metric coefficients.
void gmunu_up(double ARGOUT_ARRAY2[4][4], double const IN_ARRAY1[4]) const
Metric contravariant coefficients.
int diff(const double y[8], const double cst[5], double res[8]) const
Used in RK4 proxies.
Metric around a Kerr black-hole in Boyer-Lindquist coordinates.
Definition GyotoKerrBL.h:48
Pointers performing reference counting.
Definition GyotoSmartPointer.h:135
Namespace for the Gyoto library.
Definition GyotoAstrobj.h:44