GremlinEq
TidalH.h
1 //---------------------------------------------------------------------------
2 //
3 // $Id: TidalH.h,v 1.13 2019/01/27 09:43:08 sahughes Exp $
4 //
5 //---------------------------------------------------------------------------
6 //
7 // All the stuff we need for doing analyses of tidally distorted
8 // horizons, including embeddings.
9 //
10 // Scott A. Hughes, 30 May 2014 (started)
11 //
12 #ifndef _TIDALHORIZ_H
13 #define _TIDALHORIZ_H
14 
15 #include "Globals.h"
16 #include "SWSH.h"
17 
18 #define mRq_IGRND 1
19 #define mD_C_IGRND 2
20 #define mD_D_IGRND 3
21 
23 class TidalH {
24 public:
25  TidalH(const Real spin, const int ellmax);
26  ~TidalH();
27  Real a, rp, eps, Kph;
28  int lmax;
29  SWSH **swshp;
30  Complex **ZH, **Clm, **Epslm;
31  Real *w, *p, **lamb;
32 
33  // Global variables k, l, m
34  int Gq, Gl, Gm;
35 
36  int INTEGRAND;
37 
38  void loadClm();
39  void loadEpslm();
40  Complex mR_vector(const int q, const int m);
41  Real mD_matrix(const int q, const int ell, const int m);
42 
43  Real R1lm(const int l, const int m, const Real x, const Real psi);
44  Real epsr(const int l, const int m, const Real x, const Real psi);
45 
46  Real C0(const Real x), C1(const Real x);
47  Real D(const Real x);
48 
49  Complex IGRND(const Real x);
50  //
51 /* Real IGRNDre(Real x); */
52  static Real IGRNDre_wrapper(Real x, void *params) {
53  return static_cast<TidalH*>(params)->IGRND(x).real();
54  };
55  //
56 /* Real IGRNDim(Real x); */
57  static Real IGRNDim_wrapper(Real x, void *params) {
58  return static_cast<TidalH*>(params)->IGRND(x).imag();
59  };
60  //
61 };
62 #endif
Spin-Weighted Spheroidal Harmonics Class.
Definition: SWSH.h:55
Tidal Horizon Class.
Definition: TidalH.h:23