LORENE
isol_hole.h
1/*
2 * Definition of Lorene class Isol_hole
3 *
4 */
5
6/*
7 * Copyright (c) 2009 Nicolas Vasset
8 */
9
10
11#ifndef __ISOLHOLE_H_
12#define __ISOLHOLE_H_
13
14
15// Headers Lorene
16#include "tensor.h"
17#include "metric.h"
18#include "spheroid.h"
19#include "excision_surf.h"
20#include "excision_hor.h"
21
22 class Eos ;
23
24 //---------------------------//
25 // Class Isol_hole //
26 //---------------------------//
27
28namespace Lorene {
50class Isol_hole {
51
52 // Data :
53 // -----
54 protected:
55 const Map& mp ;
56
57 double Omega ;
61 bool NorKappa ;
69 bool isCF ;
70
71
72 // Metric data
73 // -----------------
74
77
78 // Conformal factor
79 Scalar conf_fact;
80
83
88
93
94 // Derived data :
95 // ------------
96 protected:
97
98
100
101 mutable Spheroid* p_hor ;
103 mutable double* p_adm_mass ;
104
108 mutable double* p_komar_angmom ;
109
113 mutable double* p_virial_residue ;
114
115
116
117
118
119 // Constructors - Destructor
120 // -------------------------
121 public:
122
135 Isol_hole(const Map& mp_i, double Omega_i, bool NorKappa_i, Scalar NoK_i, bool isCF_i = false) ;
136
137
138 Isol_hole(const Isol_hole& ) ;
139
154 Isol_hole(const Map& mp_i, double Omega_i, bool NorKappa_i, Scalar NoK_i, bool isCF_i, FILE* fich) ;
155
156 virtual ~Isol_hole() ;
157
158
159 // Memory management
160 // -----------------
161 protected:
163 virtual void del_deriv() const ;
164
166 virtual void set_der_0x0() const ;
167
168
169 // Mutators / assignment
170 // ---------------------
171 public:
173 void operator=(const Isol_hole&) ;
174
181 void compute_stat_metric(double precis, double relax, int mer_max, int mer_max2, bool isvoid = true) ;
182
188 void secmembre_kerr(Sym_tensor& source_hh);
189
190
191
192 // Accessors
193 // ---------
194 public:
196 const Map& get_mp() const {return mp; } ;
197
199 double get_Omega() const {return Omega ;} ;
200
202 const Scalar& get_boundN() const{
203 if (NorKappa == false){
204 return boundNoK;
205 }
206 else cout << "The boundary condition is imposed on the surface gravity!" << endl;
207 }
209
210 const Scalar& get_Kappa() const{
211 if(NorKappa == true){
212 return boundNoK;
213 }
214 else cout << "The boundary condition is imposed on the lapse!" <<endl;
215 }
216
217
219 const Scalar& get_lapse() const {return lapse;} ;
220
222 const Scalar& get_conf_fact() const {return conf_fact;};
223
225 const Vector& get_shift() const {return shift;} ;
226
228 const Sym_tensor& get_hij() const {return hij;} ;
229
231 const Sym_tensor& get_hatA() const {return hatA;} ;
232
233
234
235
236 // Outputs
237 // -------
238 public:
239 virtual void sauve(FILE* ) const ;
240
241 void Einstein_errors();
242
243
244 // Global quantities
245 // -----------------
246 public:
247
248
253 Spheroid hor() ;
254
256 double adm_mass() ;
257
261 double komar_angmom() ;
262
266 double virial_residue() ;
267
268
269
270};
271
272}
273#endif
Class to compute quasistationary single black hole spacetimes in vacuum.
Definition isol_hole.h:50
Spheroid hor()
Spheroid at the excised boundary associated with the black hole MOTS on the slice.
Definition isol_hole.C:247
double * p_adm_mass
Computation of the ADM mass of the BH spacetime.
Definition isol_hole.h:103
double * p_komar_angmom
Computation of the Komar angular momentum w.r.t.
Definition isol_hole.h:108
double get_Omega() const
Returns the rotation rate.
Definition isol_hole.h:199
const Map & get_mp() const
Returns the mapping.
Definition isol_hole.h:196
virtual ~Isol_hole()
Destructor.
Definition isol_hole.C:125
void Einstein_errors()
Prints out errors in Einstein equations for the data obtained.
Definition isol_hole.C:194
Scalar boundNoK
Indicates if the boundary value for the lapse or the surface gravity is used.
Definition isol_hole.h:65
virtual void del_deriv() const
Deletes all the derived quantities.
Definition isol_hole.C:136
const Sym_tensor & get_hatA() const
Returns the rescaled tracefree extrinsic curvature .
Definition isol_hole.h:231
Scalar lapse
Lapse function.
Definition isol_hole.h:76
bool NorKappa
Rotation rate of the horizon in the azimuthal direction.
Definition isol_hole.h:61
Sym_tensor hij
Deviation tensor( non-flat part of the conformal 3-metric on the slice; see Bonazzola et al.
Definition isol_hole.h:87
const Sym_tensor & get_hij() const
Returns the deviation tensor .
Definition isol_hole.h:228
double * p_virial_residue
Computation of the Virial residual, as difference at infinity between the ADM mass and the Komar inte...
Definition isol_hole.h:113
void operator=(const Isol_hole &)
Assignment to another Isol_hole.
Definition isol_hole.C:160
const Scalar & get_boundN() const
Returns the boundary value used for the lapse (if it is the one used)
Definition isol_hole.h:202
void secmembre_kerr(Sym_tensor &source_hh)
Computes the rhs of hyperbolic equation for conformal metric assuming statioarity; WARNING; up to now...
Vector shift
Shift vector.
Definition isol_hole.h:82
virtual void sauve(FILE *) const
Save in a file.
Definition isol_hole.C:183
Sym_tensor hatA
Rescaled tracefree extrinsic curvature tensor: see Cordero et al.
Definition isol_hole.h:92
const Map & mp
Mapping associated with the star.
Definition isol_hole.h:55
virtual void set_der_0x0() const
Sets to 0x0 all the pointers on derived quantities.
Definition isol_hole.C:145
const Scalar & get_lapse() const
Returns the lapse function N.
Definition isol_hole.h:219
bool isCF
Stores the boundary value of the lapse or surface gravity.
Definition isol_hole.h:69
const Scalar & get_conf_fact() const
Returns the conformal factor.
Definition isol_hole.h:222
double adm_mass()
Computation of the ADM mass of the BH spacetime.
Definition isol_hole.C:289
Spheroid * p_hor
Computation of the spheroid associated with the black hole horizon.
Definition isol_hole.h:101
void compute_stat_metric(double precis, double relax, int mer_max, int mer_max2, bool isvoid=true)
Computes a quasi-stationary 3-slice from the chosen parameters.
double komar_angmom()
Computation of the Komar angular momentum w.r.t.
Definition isol_hole.C:309
const Vector & get_shift() const
Returns the shift vector .
Definition isol_hole.h:225
const Scalar & get_Kappa() const
Returns the surface gravity value at the boundary (if it is the one used)
Definition isol_hole.h:210
double virial_residue()
Computation of the Virial residual, as difference at infinity between the ADM mass and the Komar inte...
Definition isol_hole.C:334
Base class for coordinate mappings.
Definition map.h:670
Tensor field of valence 0 (or component of a tensorial field).
Definition scalar.h:387
Spheroidal 2-surfaces embedded in a time-slice of the 3+1 formalism.
Definition spheroid.h:84
Class intended to describe valence-2 symmetric tensors.
Definition sym_tensor.h:223
Tensor field of valence 1.
Definition vector.h:188
Lorene prototypes.
Definition app_hor.h:64