174 #include "utilitaires.h" 175 #include "et_bin_nsbh.h" 176 #include "graphique.h" 181 rayon ((mp.get_alpha())[0]),
182 omega(0), omega_local(0), rot_state(COROT), boost (new double[3]), regul(0),
183 n_auto(mpi), n_comp(mpi), n_tot(mpi),
184 psi_auto(mpi), psi_comp(mpi), psi_tot(mpi),
185 grad_n_tot (mpi, 1, COV, mpi.get_bvect_cart()),
186 grad_psi_tot (mpi, 1, COV, mpi.get_bvect_cart()),
187 shift_auto(mpi, 1, CON, mpi.get_bvect_cart()),
188 taij_auto(mpi, 2, CON, mpi.get_bvect_cart()),
189 taij_comp(mpi, 2, CON, mpi.get_bvect_cart()),
190 taij_tot (mpi, 2, CON, mpi.get_bvect_cart()),
191 tkij_auto (mpi, 2, CON, mpi.get_bvect_cart()),
192 tkij_tot (mpi, 2, CON, mpi.get_bvect_cart()),
194 for (
int i=0 ; i<3 ; i++)
201 mp(source.mp), rayon(source.rayon), omega (source.omega), omega_local(source.omega_local), rot_state(source.rot_state),
202 boost (new double [3]), regul(source.regul), n_auto(source.n_auto),
203 n_comp(source.n_comp), n_tot(source.n_tot), psi_auto(source.psi_auto),
204 psi_comp(source.psi_comp), psi_tot(source.psi_tot),
205 grad_n_tot (source.grad_n_tot), grad_psi_tot (source.grad_psi_tot),
206 shift_auto(source.shift_auto),
207 taij_auto (source.taij_auto),
208 taij_comp(source.taij_comp), taij_tot(source.taij_tot),
209 tkij_auto(source.tkij_auto), tkij_tot(source.tkij_tot), decouple(source.decouple) {
211 for (
int i=0 ; i<3 ; i++)
223 assert (&
mp == &source.
mp) ;
229 for (
int i=0 ; i<3 ; i++)
269 Tenseur grad_comp (
mp, 1, COV, *auxi.get_triad()) ;
271 grad_comp.set(0).import_symy(auxi(0)) ;
272 grad_comp.set(1).import_asymy(auxi(1)) ;
273 grad_comp.set(2).import_symy(auxi(2)) ;
274 grad_comp.set_std_base() ;
275 grad_comp.inc2_dzpuis() ;
296 Tenseur grad_comp (
mp, 1, COV, *auxi.get_triad()) ;
298 grad_comp.set(0).import_symy(auxi(0)) ;
299 grad_comp.set(1).import_asymy(auxi(1)) ;
300 grad_comp.set(2).import_symy(auxi(2)) ;
301 grad_comp.set_std_base() ;
302 grad_comp.inc2_dzpuis() ;
326 grad_comp.set_etat_qcq() ;
328 grad_comp.set(0).import(auxi(0)) ;
329 grad_comp.set(1).import(auxi(1)) ;
330 grad_comp.set(2).import(auxi(2)) ;
333 grad_comp.set(0).import_symy(auxi(0)) ;
334 grad_comp.set(1).import_asymy(auxi(1)) ;
335 grad_comp.set(2).import_symy(auxi(2)) ;
337 grad_comp.set_std_base() ;
338 grad_comp.inc2_dzpuis() ;
339 grad_comp.set_triad( *(auxi.get_triad()) ) ;
362 grad_comp.set_etat_qcq() ;
364 grad_comp.set(0).import(auxi(0)) ;
365 grad_comp.set(1).import(auxi(1)) ;
366 grad_comp.set(2).import(auxi(2)) ;
369 grad_comp.set(0).import_symy(auxi(0)) ;
370 grad_comp.set(1).import_asymy(auxi(1)) ;
371 grad_comp.set(2).import_symy(auxi(2)) ;
373 grad_comp.set_std_base() ;
374 grad_comp.inc2_dzpuis() ;
375 grad_comp.set_triad( *(auxi.get_triad()) ) ;
389 trace = grad(0, 0)+grad(1, 1)+grad(2, 2) ;
393 for (
int i=0 ; i<3 ; i++) {
394 for (
int j=i+1 ; j<3 ; j++)
399 for (
int i=0 ; i<3 ; i++)
400 for (
int j=0 ; j<3 ; j++)
500 mp(mpi), rayon ((mp.get_alpha())[0]),
501 boost (new double[3]), n_auto(mpi), n_comp(mpi), n_tot(mpi),
502 psi_auto(mpi), psi_comp(mpi), psi_tot(mpi),
503 grad_n_tot (mpi, 1, COV, mpi.get_bvect_cart()),
504 grad_psi_tot (mpi, 1, COV, mpi.get_bvect_cart()),
505 shift_auto(mpi, 1, CON, mpi.get_bvect_cart()),
506 taij_auto(mpi, 2, CON, mpi.get_bvect_cart()),
507 taij_comp(mpi, 2, CON, mpi.get_bvect_cart()),
508 taij_tot (mpi, 2, CON, mpi.get_bvect_cart()),
509 tkij_auto (mpi, 2, CON, mpi.get_bvect_cart()) ,
510 tkij_tot (mpi, 2, CON, mpi.get_bvect_cart()) ,
563 double Bhole::local_momentum()
const {
575 for (
int i=0 ; i<3 ; i++)
577 vecteur.set_std_base() ;
582 integrant.std_base_scal() ;
Component of a tensorial field *** DEPRECATED : use class Scalar instead ***.
double integrale_surface(const Cmp &ci, double rayon) const
Performs the surface integration of ci on the sphere of radius rayon .
void dec2_dzpuis()
dzpuis -= 2 ;
Tenseur grad_n_tot
Total gradient of N .
void annule(int l)
Sets the Cmp to zero in a given domain.
void set_std_base()
Set the standard spectal basis of decomposition for each component.
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.
Bhole(Map_af &mapping)
Standard constructor.
void init_bhole_seul()
Initiates for a single the black hole.
double omega_local
local angular velocity
Tenseur psi_auto
Part of generated by the hole.
Tenseur n_comp
Part of N generated by the companion hole.
Tenseur_sym taij_tot
Total , which must be zero on the horizon of the regularisation on the shift has been done...
void fait_taij_auto()
Calculates the part of generated by shift_auto .
Tenseur_sym taij_auto
Part of generated by the hole.
void fait_n_comp(const Bhole &comp)
Imports the part of N due to the companion hole comp .
Tenseur shift_auto
Part of generated by the hole.
Tenseur_sym taij_comp
Part of generated by the companion hole.
void set_etat_zero()
Sets the logical state to ETATZERO (zero).
Cmp & set()
Read/write for a scalar (see also operator=(const Cmp&) ).
void sauve(FILE *) const
Save in a file.
void regularise_shift(const Tenseur &comp)
Corrects shift_auto in such a way that the total is equal to zero in the horizon, which should ensure the regularity of , using the stored values of the boost and the angular velocity.
Tenseur psi_comp
Part of generated by the companion hole.
double area() const
Computes the area of the throat.
Map_af & mp
Affine mapping.
const Tenseur & get_n_auto() const
Returns the part of the lapse { N} generated principaly by the star.
void set_val_inf(double val)
Sets the value of the Cmp to val at infinity.
int get_nzone() const
Returns the number of domains.
int get_etat() const
Returns the logical state.
const Tenseur & get_d_confpsi_auto() const
Returns the gradient of { confpsi_auto} (Cartesian components with respect to { ref_triad}) ...
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.
void sauve(FILE *fich) const
Write on a file.
double rayon
Radius of the horizon in LORENE's units.
Cmp pow(const Cmp &, int)
Power .
Tenseur_sym tkij_auto
Auto .
void import_symy(const Cmp &ci)
Assignment to another Cmp defined on a different mapping.
double * boost
Lapse on the horizon.
void std_base_scal()
Sets the spectral bases of the Valeur va to the standard ones for a scalar.
Tenseur_sym tkij_tot
Total .
int fread_be(int *aa, int size, int nb, FILE *fich)
Reads integer(s) from a binary file according to the big endian convention.
Tenseur grad_psi_tot
Total gradient of .
void init_bhole()
Sets the values of the fields to :
void operator=(const Bhole &)
Affectation.
const Base_vect_cart & get_bvect_cart() const
Returns the Cartesian basis associated with the coordinates (x,y,z) of the mapping, i.e.
Class for a star in a NS-BH binary system.
const Tenseur & get_confpsi_auto() const
Returns the part of the conformal factor $$ generated principaly by the star.
int rot_state
State of rotation.
Coord y
y coordinate centered on the grid
Cmp decouple
Function used to construct the part of generated by the hole from the total .
void raccord(int n)
Performs the matching of the nucleus with respect to the first shell.
Coord x
x coordinate centered on the grid
double omega
Angular velocity in LORENE's units.
void set_dzpuis(int)
Set a value to dzpuis.
Tenseur n_auto
Part of N generated by the hole.
void set_etat_qcq()
Sets the logical state to ETATQCQ (ordinary state).
void fait_psi_comp(const Bhole &comp)
Imports the part of due to the companion hole comp .
void import(const Cmp &ci)
Assignment to another Cmp defined on a different mapping.
void set_etat_zero()
Sets the logical state to ETATZERO (zero state).
Tensor handling *** DEPRECATED : use class Tensor instead ***.
double regul
Intensity of the correction on the shift vector.
const Tenseur & gradient() const
Returns the gradient of *this (Cartesian coordinates)
Coord r
r coordinate centered on the grid
const Tenseur & get_d_n_auto() const
Returns the gradient of { n_auto} (Cartesian components with respect to { ref_triad}) ...