Logo coherent WaveBurst  
Library Reference Guide
Logo
geodesics.hh
Go to the documentation of this file.
1 /*
2 # Copyright (C) 2019 Sergey Klimenko, Valentin Necula
3 #
4 # This program is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation, either version 3 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <https://www.gnu.org/licenses/>.
16 */
17 
18 
19 #ifndef GEODESICS_HH
20 #define GEODESICS_HH
21 
22 #include "cvode/cvode.h"
23 #include "nvector/nvector_serial.h" /* serial N_Vector types, fcts., macros */
24 
25 void printfutil(double *y);
26 void f_util(double* y, double Jspin, double mu);
27 
28 class geodesic{
29 public:
30  geodesic(double r0, double phi0, double E0, double L0,
31  int dir, double Jspin, double mu=0, double dt=1);
32  ~geodesic();
33 
34  bool integrate(double D_t, int& N, double rmin=0, bool stop_alr=false);
35  //returns "success" and the variables below:
36  double* r, *pr, *phi, *tau, *t, *Et, *Lt, *hplus, *hcross;
37 
38 private:
39  N_Vector y;
40  realtype udata[2], tret; //udata[0] = Jspin, udata[1] = mu
41  realtype* ydata;
42  void* cvode_mem;
43 
44 };
45 
46 #endif
double * Et
Definition: geodesics.hh:36
geodesic(double r0, double phi0, double E0, double L0, int dir, double Jspin, double mu=0, double dt=1)
Definition: geodesics.cc:203
void * cvode_mem
Definition: geodesics.hh:42
double * hcross
Definition: geodesics.hh:36
bool integrate(double D_t, int &N, double rmin=0, bool stop_alr=false)
Definition: geodesics.cc:270
#define N
double * t
Definition: geodesics.hh:36
double * hplus
Definition: geodesics.hh:36
void f_util(double *y, double Jspin, double mu)
Definition: geodesics.cc:138
realtype tret
Definition: geodesics.hh:40
double * r
Definition: geodesics.hh:36
void printfutil(double *y)
Definition: geodesics.cc:341
double dt
double * phi
Definition: geodesics.hh:36
double * Lt
Definition: geodesics.hh:36
N_Vector y
Definition: geodesics.hh:39
realtype udata[2]
Definition: geodesics.hh:40
double * tau
Definition: geodesics.hh:36
wavearray< double > y
Definition: Test10.C:31
realtype * ydata
Definition: geodesics.hh:41
double * pr
Definition: geodesics.hh:36