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)) ;
Active physical coordinates and mapping derivatives.
Class to compute quasistationary single black hole spacetimes in vacuum.
Spheroid hor()
Spheroid at the excised boundary associated with the black hole MOTS on the slice.
double * p_adm_mass
Computation of the ADM mass of the BH spacetime.
double * p_komar_angmom
Computation of the Komar angular momentum w.r.t.
virtual ~Isol_hole()
Destructor.
void Einstein_errors()
Prints out errors in Einstein equations for the data obtained.
Scalar boundNoK
Indicates if the boundary value for the lapse or the surface gravity is used.
virtual void del_deriv() const
Deletes all the derived quantities.
Scalar lapse
Lapse function.
bool NorKappa
Rotation rate of the horizon in the azimuthal direction.
Sym_tensor hij
Deviation tensor( non-flat part of the conformal 3-metric on the slice; see Bonazzola et al.
double * p_virial_residue
Computation of the Virial residual, as difference at infinity between the ADM mass and the Komar inte...
void operator=(const Isol_hole &)
Assignment to another Isol_hole.
Vector shift
Shift vector.
virtual void sauve(FILE *) const
Save in a file.
Sym_tensor hatA
Rescaled tracefree extrinsic curvature tensor: see Cordero et al.
const Map & mp
Mapping associated with the star.
virtual void set_der_0x0() const
Sets to 0x0 all the pointers on derived quantities.
bool isCF
Stores the boundary value of the lapse or surface gravity.
double adm_mass()
Computation of the ADM mass of the BH spacetime.
Spheroid * p_hor
Computation of the spheroid associated with the black hole horizon.
Isol_hole(const Map &mp_i, double Omega_i, bool NorKappa_i, Scalar NoK_i, bool isCF_i=false)
Standard constructor.
double komar_angmom()
Computation of the Komar angular momentum w.r.t.
double virial_residue()
Computation of the Virial residual, as difference at infinity between the ADM mass and the Komar inte...
Base class for coordinate mappings.
const Mg3d * get_mg() const
Gives the Mg3d on which the mapping is defined.
Flat metric for tensor calculation.
virtual const Sym_tensor & con() const
Read-only access to the contravariant representation.
Metric for tensor calculation.
virtual const Sym_tensor & cov() const
Read-only access to the covariant representation.
const Sym_tensor & ricci() const
Returns the Ricci tensor (given by the Connection p_connect )
virtual const Scalar & ricci_scal() const
Returns the Ricci scalar.
const Mg3d * get_angu_1dom() const
Returns the pointer on the associated mono-domain angular grid.
int get_nzone() const
Returns the number of domains.
Tensor field of valence 0 (or component of a tensorial field).
virtual void sauve(FILE *) const
Save in a file.
const Vector & derive_cov(const Metric &gam) const
Returns the gradient (1-form = covariant vector) of *this
virtual void std_spectral_base()
Sets the spectral bases of the Valeur va to the standard ones for a scalar field.
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 Scalar & dsdr() const
Returns of *this .
void mult_sint()
Multiplication by .
void mult_r_dzpuis(int ced_mult_r)
Multiplication by r everywhere but with the output flag dzpuis set to ced_mult_r .
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 dec_dzpuis(int dec=1)
Decreases by dec units the value of dzpuis and changes accordingly the values of the Scalar in the co...
Valeur ** asymptot(int n, const int flag=0) const
Asymptotic expansion at r = infinity.
Spheroidal 2-surfaces embedded in a time-slice of the 3+1 formalism.
Class intended to describe valence-2 symmetric tensors.
Sym_tensor derive_lie(const Vector &v) const
Computes the Lie derivative of this with respect to some vector field v.
const Vector & divergence(const Metric &) const
Returns the divergence of this with respect to a Metric .
Values and coefficients of a (real-value) function.
Tensor field of valence 1.
Cmp sqrt(const Cmp &)
Square root.
Cmp pow(const Cmp &, int)
Power .
const Map & get_mp() const
Returns the mapping.
virtual void sauve(FILE *) const
Save in a binary file.
virtual void dec_dzpuis(int dec=1)
Decreases by dec units the value of dzpuis and changes accordingly the values in the compactified ext...
Tensor up_down(const Metric &gam) const
Computes a new tensor by raising or lowering all the indices of *this .
virtual void sauve(FILE *) const
Save in a binary file.
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...
const Tensor & derive_cov(const Metric &gam) const
Returns the covariant derivative of this with respect to some metric .
Tensor up(int ind, const Metric &gam) const
Computes a new tensor by raising an index of *this.
Tensor trace(int ind1, int ind2) const
Trace on two different type indices.
virtual void set_etat_zero()
Sets the logical state of all components to ETATZERO (zero state).
virtual void std_spectral_base()
Sets the standard spectal bases of decomposition for each component.
Tenseur contract(const Tenseur &, int id1, int id2)
Self contraction of two indices of a Tenseur .
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.
Standard units of space, time and mass.