Gyoto
GyotoMinkowski.h
Go to the documentation of this file.
1 
9 /*
10  Copyright 2014, 2015, 2019-2020 Thibaut Paumard & Frédéric Vincent
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 
34 namespace 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 ARGOUT_ARRAY2[4][4], const double IN_ARRAY1[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  // We reimplement diff to be able to integrate Newton's law of motion
76  virtual int diff(state_t const &x, state_t &dxdt, double mass) const ;
77 
78 };
79 
80 #endif
int christoffel(double dst[4][4][4], const double x[4]) const
Chistoffel symbol.
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
Base class for metrics.
Definition: GyotoMetric.h:158
The Minkowski flat-space metric.
Definition: GyotoMinkowski.h:46
virtual Minkowski * clone() const
Virtual copy constructor.
Base class for metric description.
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.
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
Pointers performing reference counting.
Definition: GyotoProperty.h:45
virtual int diff(state_t const &x, state_t &dxdt, double mass) const
F function such as dx/dt=F(x,cst)