Gyoto
GyotoMinkowski.h
Go to the documentation of this file.
1
9/*
10 Copyright 2014 Thibaut Paumard
11
12 This file is part of Gyoto.
13
14 Gyoto is free software: you can redistribute it and/or modify
15 it under the terms of the GNU General Public License as published by
16 the Free Software Foundation, either version 3 of the License, or
17 (at your option) any later version.
18
19 Gyoto is distributed in the hope that it will be useful,
20 but WITHOUT ANY WARRANTY; without even the implied warranty of
21 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 GNU General Public License for more details.
23
24 You should have received a copy of the GNU General Public License
25 along with Gyoto. If not, see <http://www.gnu.org/licenses/>.
26 */
27
28
29#ifndef __GyotoMinkowski_H_
30#define __GyotoMinkowski_H_
31
32#include <GyotoMetric.h>
33
34namespace Gyoto {
35 namespace Metric { class Minkowski; }
36}
37
48{
50
51 private:
52
53 public:
54 // Those are mere wrappers arround Generic::coordKind(), useful for
55 // declaring a boolen property using the macro GYOTO_PROPERTY_BOOL:
56 void spherical(bool);
57 bool spherical() const;
58 // This is the bare minimum of what a Metric class must implement:
60 Minkowski();
61 virtual Minkowski* clone() const ;
62
63 void gmunu(double g[4][4], const double x[4]) const ;
64 int christoffel(double dst[4][4][4], const double x[4]) const ;
65
66 // Those two are implemented as examples.
67 double gmunu(const double x[4], int mu, int nu) const ;
68 double christoffel(const double coord[4],
69 const int alpha, const int mu, const int nu) const ;
70 void observerTetrad(obskind_t obskind,
71 double const pos[4], double fourvel[4],
72 double screen1[4], double screen2[4],
73 double screen3[4]) const;
74};
75
76#endif
Base class for metric description.
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
Base class for metrics.
Definition: GyotoMetric.h:162
The Minkowski flat-space metric.
Definition: GyotoMinkowski.h:48
virtual Minkowski * clone() const
Virtual copy constructor.
int christoffel(double dst[4][4][4], const double x[4]) const
Chistoffel symbol.
void observerTetrad(obskind_t obskind, double const pos[4], double fourvel[4], double screen1[4], double screen2[4], double screen3[4]) const
Computes the orthonormal local tetrad of the observer.
void gmunu(double g[4][4], const double x[4]) const
Metric coefficients.
Pointers performing reference counting.
Definition: GyotoSmartPointer.h:135
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43