Gyoto
GyotoRotStar3_1.h
Go to the documentation of this file.
1 
8 /*
9  Copyright 2011 Frederic Vincent
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 
28 #ifndef __GyotoRotStar3_1_H_
29 #define __GyotoRotStar3_1_H_
30 
31 #include <iostream>
32 #include <fstream>
33 
34 class Star_rot;
35 
36 namespace Gyoto {
37  namespace Metric { class RotStar3_1; }
38 }
39 
40 #include <GyotoMetric.h>
41 #include <GyotoWorldline.h>
42 #include <GyotoSmartPointer.h>
43 
44 #ifdef GYOTO_USE_XERCES
45 #include <GyotoRegister.h>
46 #endif
47 
53  friend class Gyoto::SmartPointer<Gyoto::Metric::RotStar3_1>;
54 
55  private:
56  char* filename_;
57  Star_rot * star_;
59 
60  public:
61 
62  RotStar3_1();
63  RotStar3_1(const RotStar3_1& ) ;
64  virtual ~RotStar3_1() ;
65  virtual RotStar3_1* clone() const ;
67 
68  void setFileName(char const *);
69  char const * getFileName() const;
70 
71  void setIntegKind(int);
72  int getIntegKind() const ;
73 
75 
76 
83  int myrk4(const double coord[6], double h, double res[6]) const;
84 
85 
91  int myrk4_adaptive(Gyoto::Worldline* line, const double coord[8], double lastnorm, double normref, double coordnew[8], double h0, double& h1) const;
92 
98  int myrk4_adaptive(const double coor[6], double lastnorm, double normref, double coornew[6], double cst[2], double& tdot_used, double h0, double& h1, double& hused) const;
99 
103  int diff(const double coord[8], double res[8]) const ;
104 
112  int diff(const double y[6], double res[6], int) const ;
113 
114 
118  void Normalize4v(const double coordin[6], double coordout[6], const double cst[2], double& tdot_used) const;
119 
120  double gmunu(const double * x, int mu, int nu) const ;
121 
122  double christoffel(const double coord[8], const int alpha, const int mu,
123  const int nu) const ;
124 
125  double ScalarProd(const double pos[4],
126  const double u1[4], const double u2[4]) const ;
127 
128  virtual void setParameter(std::string, std::string, std::string);
129 #ifdef GYOTO_USE_XERCES
130  virtual void fillElement(FactoryMessenger *fmp);
131  virtual void setParameters(Gyoto::FactoryMessenger *fmp) ;
132 #endif
133 
134 };
135 
136 #endif
int myrk4(const double coord[6], double h, double res[6]) const
RK4 integrator.
int integ_kind_
1 if RotStar3_1::myrk4(), 0 if Metric::myrk4()
Definition: GyotoRotStar3_1.h:58
Numerical metric around a rotating star in 3+1 formalism.
Definition: GyotoRotStar3_1.h:52
Gyoto registers.
void setFileName(char const *)
Set filename_.
Base class for metrics.
Definition: GyotoMetric.h:142
Reference-counting pointers.
int myrk4_adaptive(Gyoto::Worldline *line, const double coord[8], double lastnorm, double normref, double coordnew[8], double h0, double &h1) const
Adaptive RK4 integrator.
char const * getFileName() const
Get filename_.
char * filename_
Lorene output file name.
Definition: GyotoRotStar3_1.h:56
virtual void setParameter(std::string, std::string, std::string)
Set parameter by name.
void Normalize4v(const double coordin[6], double coordout[6], const double cst[2], double &tdot_used) const
Tweak coordinates to insure conservation of cst.
void setIntegKind(int)
Set integ_kind_.
double ScalarProd(const double pos[4], const double u1[4], const double u2[4]) const
Scalar product.
virtual void fillElement(FactoryMessenger *fmp)
called from Factory
Star_rot * star_
Pointer to underlying Lorene Star_rot instance.
Definition: GyotoRotStar3_1.h:57
Timelike or null geodesics.
Base class for metric description.
int getIntegKind() const
Get integ_kind_.
virtual void setParameters(Gyoto::FactoryMessenger *fmp)
Main loop in Subcontractor_t function.
Pointers performing reference counting.
Definition: GyotoSmartPointer.h:51
double christoffel(const double coord[8], const int alpha, const int mu, const int nu) const
Chistoffel symbol.
double gmunu(const double *x, int mu, int nu) const
Metric coefficients.
virtual int myrk4(Worldline *line, const double coord[8], double h, double res[8]) const
RK4 integrator.
int diff(const double coord[8], double res[8]) const
F function such as dy/dtau=F(y,cst)
virtual RotStar3_1 * clone() const
Cloner (uses RotStar3_1(file, integ_kind))