Gyoto
GyotoWorldlineIntegState.h
Go to the documentation of this file.
1 
8 /*
9  Copyright 2011 Frederic Vincent, Thibaut Paumard
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 #ifndef __GyotoWorldlineIntegState_H_
28 #define __GyotoWorldlineIntegState_H_
29 
30 #include <iostream>
31 #include <fstream>
32 
33 namespace Gyoto {
34  class WorldlineIntegState;
35 }
36 
37 #include <GyotoUtils.h>
38 #include <GyotoSmartPointer.h>
39 #include <GyotoAstrobj.h>
40 #include <GyotoMetric.h>
41 #include <GyotoWorldline.h>
42 
49  friend class SmartPointer<WorldlineIntegState>;
50 
51  private:
53 
54  protected:
55  double coord_[8];
56  double coordnew_[8];
57  double norm_;
58  double normref_;
59  double delta_;
60  double h1_;
61  double deltainit_;
62 
63  public:
64  WorldlineIntegState();
65  WorldlineIntegState(SmartPointer<Metric::Generic> gg, const double *coord, const double delta);
66 
73  virtual int nextStep(Gyoto::Worldline* line, double *coord, double delta=0.);
74  double get_delta();
75  void set_delta(double delta);
76  void setCoord(double coord[8]);
77  virtual ~WorldlineIntegState();
78 };
79 
80 #endif