93 #include "utilitaires.h" 101 hole1(mp1), hole2(mp2), omega(0){
111 hole1(source.hole1), hole2(source.hole2), omega(source.omega) {
182 int bound_psi,
int bound_beta,
double alpha)
const {
195 double mass_ih = mass_ih1 + mass_ih2 ;
204 assert ((orientation1 == 0) || (orientation1 == M_PI)) ;
205 int aligne1 = (orientation1 == 0) ? 1 : -1 ;
213 angular1.
set(1) = aligne1 *
omega * yya1 ;
214 angular1.set(2) = - aligne1 *
omega * xxa1 ;
217 angular1.set(1).set_spectral_va()
219 angular1.set(2).set_spectral_va()
221 angular1.set(3).set_spectral_va()
228 assert ((orientation2 == 0) || (orientation2 == M_PI)) ;
229 int aligne2 = (orientation2 == 0) ? 1 : -1 ;
237 angular2.
set(1) = aligne2 *
omega * yya2 ;
238 angular2.set(2) = - aligne2 *
omega * xxa2 ;
241 angular2.set(1).set_spectral_va()
243 angular2.set(2).set_spectral_va()
245 angular2.set(3).set_spectral_va()
263 integrand_un.std_spectral_base() ;
269 integrand_deux.std_spectral_base() ;
277 double J_smarr = (mass_komar - horizon) / 2. /
omega ;
288 ost <<
"# bound N, lim N : " << bound_nn <<
" " << lim_nn
289 <<
" - bound Psi : " << bound_psi <<
" - bound shift : " << bound_beta
290 <<
" alpha = " << alpha << endl ;
292 ost <<
"# distance omega Mass_ADM Mass_K M_area J_ADM J_hor" << endl ;
293 ost << distance <<
" " ;
294 ost <<
omega <<
" " ;
295 ost << mass_adm <<
" " ;
296 ost << mass_komar <<
" " ;
297 ost << mass_area <<
" " ;
298 ost << J_adm <<
" " ;
299 ost << J_hor << endl ;
300 ost <<
"# mass_ih1 mass_ih2 mass_ih j1 J2 omega1 omega2" << endl ;
301 ost << mass_ih1 <<
" " ;
302 ost << mass_ih2 <<
" " ;
303 ost << mass_ih <<
" " ;
306 ost << omega1 <<
" " ;
307 ost << omega2 << endl ;
308 ost <<
"# ADM_mass/M_area J/M_area2 omega*M_area" << endl ;
309 ost << mass_adm / mass_area <<
" " ;
310 ost << J_adm /mass_area / mass_area <<
" " ;
311 ost <<
omega * mass_area << endl ;
312 ost <<
"# Diff J_hor/J_ADM Diff J_ADM/J_Smarr Diff J_hor/J_smarr" 314 ost << fabs(J_adm - J_hor) / J_adm <<
" " << fabs(J_adm - J_smarr) / J_adm
315 <<
" " << fabs(J_hor - J_smarr) / J_hor << endl ;
void decouple()
Calculates decouple which is used to obtain tkij_auto and tkij_comp.
Coord xa
Absolute x coordinate.
Base_val ** std_base_vect_cart() const
Returns the standard spectral bases for the Cartesian components of a vector.
double mass_hor() const
Mass computed at the horizon.
double omega_hor() const
Orbital velocity.
double omega
Angular velocity.
double ang_mom_hor() const
Calculates the angular momentum of the black hole using the formula at the horizon.
double integrale_surface(const Cmp &ci, double rayon) const
Performs the surface integration of ci on the sphere of radius rayon .
Metric tgam
3 metric tilde
void extrinsic_curvature()
Calculation of the extrinsic curvature tensor.
int get_np(int l) const
Returns the number of points in the azimuthal direction ( ) in domain no. l.
Cmp sqrt(const Cmp &)
Square root.
double area_hor() const
Area of the horizon.
const Sym_tensor & get_k_dd() const
k_dd
const Base_vect_spher & get_bvect_spher() const
Returns the orthonormal vectorial basis associated with the coordinates of the mapping.
const Mg3d * get_mg() const
Gives the Mg3d on which the mapping is defined.
Tensor field of valence 0 (or component of a tensorial field).
double get_ori_x() const
Returns the x coordinate of the origin.
virtual double val_r(int l, double xi, double theta, double pphi) const
Returns the value of the radial coordinate r for a given in a given domain.
Single_hor hole1
Black hole one.
Tensor up_down(const Metric &gam) const
Computes a new tensor by raising or lowering all the indices of *this .
virtual const Vector & radial_vect() const
Returns the radial vector normal to a spherical slicing and pointing toward spatial infinity...
double get_rot_phi() const
Returns the angle between the x –axis and X –axis.
void set(const Map *mp, Mtbl *(*construct)(const Map *))
Semi-constructor from a mapping and a method.
Tensor field of valence 1.
void annule_hard()
Sets the Scalar to zero in a hard way.
const Map_af & get_mp() const
Returns the mapping (readonly).
void set_omega(double ome)
Sets the orbital velocity to ome.
Single_hor * holes[2]
Array on the black holes.
void operator=(const Bin_hor &)
Affectation operator.
Scalar psi
Conformal factor .
void init_bin_hor()
Initialisation of the system.
double get_radius() const
Returns the radius of the horizon.
void sauve(FILE *fich) const
Total or partial saves in a binary file.
int get_nzone() const
Returns the number of domains.
void init_bhole()
Sets the values of the fields to :
void write_global(ostream &, double lim_nn, int bound_nn, int bound_psi, int bound_beta, double alpha) const
Write global quantities in a formatted file.
int fwrite_be(const int *aa, int size, int nb, FILE *fich)
Writes integer(s) into a binary file according to the big endian convention.
Cmp pow(const Cmp &, int)
Power .
virtual void sauve(FILE *fich) const
Total or partial saves in a binary file.
Tenseur contract(const Tenseur &, int id1, int id2)
Self contraction of two indices of a Tenseur .
double komar_mass() const
Calculates the Komar mass of the system using : .
Single_hor hole2
Black hole two.
int fread_be(int *aa, int size, int nb, FILE *fich)
Reads integer(s) from a binary file according to the big endian convention.
int get_nr(int l) const
Returns the number of points in the radial direction ( ) in domain no. l.
Coord ya
Absolute y coordinate.
const Base_vect_cart & get_bvect_cart() const
Returns the Cartesian basis associated with the coordinates (x,y,z) of the mapping, i.e.
Map_af & mp
Affine mapping.
Scalar & set(const Itbl &ind)
Returns the value of a component (read/write version).
void n_comp_import(const Single_hor &comp)
Imports the part of N due to the companion hole comp .
Bin_hor(Map_af &mp1, Map_af &mp2)
Standard constructor.
void psi_comp_import(const Single_hor &comp)
Imports the part of due to the companion hole comp .
int get_nt(int l) const
Returns the number of points in the co-latitude direction ( ) in domain no. l.
double ang_mom_adm() const
Calculates the angular momentum of the black hole.
double ang_mom_hor() const
Angular momentum (modulo)
Metric_flat ff
3 metric flat
const Vector & derive_cov(const Metric &gam) const
Returns the gradient (1-form = covariant vector) of *this
double adm_mass() const
Calculates the ADM mass of the system.
const Scalar b_tilde() const
Radial component of the shift with respect to the conformal metric.
Scalar nn
Lapse function .
virtual ~Bin_hor()
Destructor.