29 #include "isol_hole.h"
31 #include "excision_surf.h"
32 #include "excision_hor.h"
33 #include "utilitaires.h"
59 shift(mpi, CON, mpi.get_bvect_spher()),
60 hij(mpi, CON, mpi.get_bvect_spher()),
61 hatA(mpi, CON, mpi.get_bvect_spher()){
86 NorKappa(ih.NorKappa),
87 boundNoK(ih.boundNoK),
90 conf_fact(ih.conf_fact),
104 NorKappa(NorKappa_i),
107 lapse(mpi,*(mpi.get_mg()), fich),
108 conf_fact(mpi,*(mpi.get_mg()), fich),
109 shift(mpi, mpi.get_bvect_spher(), fich),
110 hij(mpi, mpi.get_bvect_spher(), fich),
111 hatA(mpi, mpi.get_bvect_spher(), fich){
162 assert( &(ih.
mp) == &
mp ) ;
168 conf_fact = ih.conf_fact ;
186 conf_fact.
sauve(fich) ;
197 const Metric_flat& mets = (*map).flat_met_spher() ;
201 Sym_tensor gamcon = gamtcon/(conf_fact*conf_fact*conf_fact*conf_fact);
215 ham_constr += TrK3*TrK3 -
contract(k_uu, 0, 1, k_dd, 0, 1) ;
216 maxabs(ham_constr,
"Hamiltonian constraint: ") ;
222 maxabs(mom_constr,
"Momentum constraint: ") ;
231 evol_eq +=
lapse*(TrK3*k_dd - 2*
contract(k_dd, 1, k_dd.
up(0, gam), 0) ) ;
232 maxabs(evol_eq,
"Evolution equations: ") ;
249 const Mg3d* mgrid = (*map).get_mg();
254 const Coord& rr = (*map).r;
264 const Map_af map_2(*g_angu, r_limits2);
267 const Metric_flat& mets = (*map).flat_met_spher() ;
271 Sym_tensor gamcon = gamtcon/(conf_fact*conf_fact*conf_fact*conf_fact);
284 Spheroid hor_loc(hor_pos, gam, kdd);
291 const Metric_flat& mets = (*map).flat_met_spher() ;
295 Sym_tensor gamcon = gamtcon/(conf_fact*conf_fact*conf_fact*conf_fact);
301 Scalar admintegr = conf_fact.
dsdr() + corr_adm(1);
303 double M_ADM = - (1/(2.*3.1415927*ggrav))*(*map).integrale_surface_infini(admintegr*detgam);
311 const Metric_flat& mets = (*map).flat_met_spher() ;
314 Sym_tensor gamcon = gamtcon/(conf_fact*conf_fact*conf_fact*conf_fact);
325 double angu_komar = - (1/(8.*3.1415927*ggrav))*(*map).integrale_surface_infini(detgam*contraction);
341 double erreur = (2*(*devel_psi[1])(nz-1, 0, 0, 0)
342 + (*devel_n[1])(nz-1, 0, 0, 0))/fabs ((*devel_n[1])(nz-1, 0, 0, 0)) ;
virtual const Sym_tensor & con() const
Read-only access to the contravariant representation.
bool NorKappa
Rotation rate of the horizon in the azimuthal direction.
virtual const Scalar & ricci_scal() const
Returns the Ricci scalar.
virtual void sauve(FILE *) const
Save in a binary file.
virtual void sauve(FILE *) const
Save in a file.
Tensor up(int ind, const Metric &gam) const
Computes a new tensor by raising an index of *this.
Values and coefficients of a (real-value) function.
virtual void del_deriv() const
Deletes all the derived quantities.
Class intended to describe valence-2 symmetric tensors.
const Tensor & derive_cov(const Metric &gam) const
Returns the covariant derivative of this with respect to some metric .
Metric for tensor calculation.
virtual void sauve(FILE *) const
Save in a file.
double * p_komar_angmom
Computation of the Komar angular momentum w.r.t.
const Scalar & dsdr() const
Returns of *this .
Scalar boundNoK
Indicates if the boundary value for the lapse or the surface gravity is used.
double * p_adm_mass
Computation of the ADM mass of the BH spacetime.
double virial_residue()
Computation of the Virial residual, as difference at infinity between the ADM mass and the Komar inte...
virtual void set_etat_zero()
Sets the logical state of all components to ETATZERO (zero state).
void Einstein_errors()
Prints out errors in Einstein equations for the data obtained.
const Mg3d * get_mg() const
Gives the Mg3d on which the mapping is defined.
Vector shift
Shift vector.
Scalar lapse
Lapse function.
virtual void dec_dzpuis(int dec=1)
Decreases by dec units the value of dzpuis and changes accordingly the values in the compactified ext...
const Vector & derive_cov(const Metric &gam) const
Returns the gradient (1-form = covariant vector) of *this
virtual const Sym_tensor & cov() const
Read-only access to the covariant representation.
double komar_angmom()
Computation of the Komar angular momentum w.r.t.
void mult_r_dzpuis(int ced_mult_r)
Multiplication by r everywhere but with the output flag dzpuis set to ced_mult_r .
Spheroid hor()
Spheroid at the excised boundary associated with the black hole MOTS on the slice.
Tensor up_down(const Metric &gam) const
Computes a new tensor by raising or lowering all the indices of *this .
Flat metric for tensor calculation.
Spheroidal 2-surfaces embedded in a time-slice of the 3+1 formalism.
Tensor field of valence 0 (or component of a tensorial field).
const Map & get_mp() const
Returns the mapping.
Cmp pow(const Cmp &, int)
Power .
virtual void dec_dzpuis(int dec=1)
Decreases by dec units the value of dzpuis and changes accordingly the values of the Scalar in the co...
Standard units of space, time and mass.
virtual void set_der_0x0() const
Sets to 0x0 all the pointers on derived quantities.
Valeur ** asymptot(int n, const int flag=0) const
Asymptotic expansion at r = infinity.
Active physical coordinates and mapping derivatives.
Sym_tensor hij
Deviation tensor( non-flat part of the conformal 3-metric on the slice; see Bonazzola et al.
const Map & mp
Mapping associated with the star.
bool isCF
Stores the boundary value of the lapse or surface gravity.
virtual ~Isol_hole()
Destructor.
Class to compute quasistationary single black hole spacetimes in vacuum.
virtual void std_spectral_base()
Sets the standard spectal bases of decomposition for each component.
Sym_tensor hatA
Rescaled tracefree extrinsic curvature tensor: see Cordero et al.
const Mg3d * get_angu_1dom() const
Returns the pointer on the associated mono-domain angular grid.
void mult_sint()
Multiplication by .
Sym_tensor derive_lie(const Vector &v) const
Computes the Lie derivative of this with respect to some vector field v.
int get_nzone() const
Returns the number of domains.
const Tensor_sym & derive_con(const Metric &gam) const
Returns the "contravariant" derivative of this with respect to some metric , by raising the last inde...
Tbl maxabs(const Tensor &aa, const char *comment=0x0, ostream &ost=cout, bool verb=true)
Maxima in each domain of the absolute values of the tensor components.
Spheroid * p_hor
Computation of the spheroid associated with the black hole horizon.
Cmp sqrt(const Cmp &)
Square root.
Tensor field of valence 1.
Tensor trace(int ind1, int ind2) const
Trace on two different type indices.
double adm_mass()
Computation of the ADM mass of the BH spacetime.
const Vector & derive_con(const Metric &gam) const
Returns the "contravariant" derivative of *this with respect to some metric , by raising the index of...
virtual void std_spectral_base()
Sets the spectral bases of the Valeur va to the standard ones for a scalar field.
double * p_virial_residue
Computation of the Virial residual, as difference at infinity between the ADM mass and the Komar inte...
const Sym_tensor & ricci() const
Returns the Ricci tensor (given by the Connection p_connect )
Isol_hole(const Map &mp_i, double Omega_i, bool NorKappa_i, Scalar NoK_i, bool isCF_i=false)
Standard constructor.
double val_grid_point(int l, int k, int j, int i) const
Returns the value of the field at a specified grid point.
const Vector & divergence(const Metric &) const
Returns the divergence of this with respect to a Metric .
Base class for coordinate mappings.
virtual void sauve(FILE *) const
Save in a binary file.
Tenseur contract(const Tenseur &, int id1, int id2)
Self contraction of two indices of a Tenseur .
void operator=(const Isol_hole &)
Assignment to another Isol_hole.