31#include "excision_surf.h"
32#include "excision_hor.h"
33#include "utilitaires.h"
42 using namespace Unites ;
76 shift.set_etat_zero() ;
90 conf_fact(ih.conf_fact),
108 conf_fact(mpi,*(mpi.
get_mg()), 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: ") ;
227 -
lapse.derive_cov(gam).derive_cov(gam);
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);
335 const Mg3d* mgrid =
mp.get_mg();
336 const int nz = (*mgrid).get_nzone();
337 Valeur** devel_psi (conf_fact.asymptot(1)) ;
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.
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...
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.
Tensor field of valence 0 (or component of a tensorial field).
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...
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 .
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 .
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...
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 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.
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.
Map(const Mg3d &)
Constructor from a multi-domain 3D grid.