36 #include "excised_slice.h"
38 #include "excision_surf.h"
39 #include "excision_hor.h"
40 #include "utilitaires.h"
61 field_set(scheme_type),
64 shift(mpi, CON, mpi.get_bvect_spher()),
65 hij(mpi, CON, mpi.get_bvect_spher()),
66 hatA(mpi, CON, mpi.get_bvect_spher()),
67 Xx(mpi, CON, mpi.get_bvect_spher()){
86 type_hor(ih.type_hor),
87 field_set(ih.field_set),
89 conf_fact(ih.conf_fact),
104 field_set(scheme_type),
105 lapse(mpi,*(mpi.get_mg()), fich),
106 conf_fact(mpi,*(mpi.get_mg()), fich),
107 shift(mpi, mpi.get_bvect_spher(), fich),
108 hij(mpi, mpi.get_bvect_spher(), fich),
109 hatA(mpi, mpi.get_bvect_spher(), fich),
110 Xx(mpi, mpi.get_bvect_spher(), fich){
161 assert( &(ih.
mp) == &
mp ) ;
165 conf_fact = ih.conf_fact ;
184 conf_fact.
sauve(fich) ;
196 const Metric_flat& mets = (*map).flat_met_spher() ;
200 Sym_tensor gamcon = gamtcon/(conf_fact*conf_fact*conf_fact*conf_fact);
214 ham_constr += TrK3*TrK3 -
contract(k_uu, 0, 1, k_dd, 0, 1) ;
215 maxabs(ham_constr,
"Hamiltonian constraint: ") ;
221 maxabs(mom_constr,
"Momentum constraint: ") ;
230 evol_eq +=
lapse*(TrK3*k_dd - 2*
contract(k_dd, 1, k_dd.
up(0, gam), 0) ) ;
231 maxabs(evol_eq,
"Evolution equations: ") ;
248 const Mg3d* mgrid = (*map).get_mg();
253 const Coord& rr = (*map).r;
263 const Map_af map_2(*g_angu, r_limits2);
266 const Metric_flat& mets = (*map).flat_met_spher() ;
270 Sym_tensor gamcon = gamtcon/(conf_fact*conf_fact*conf_fact*conf_fact);
283 Spheroid hor_loc(hor_pos, gam, kdd);
290 const Metric_flat& mets = (*map).flat_met_spher() ;
294 Sym_tensor gamcon = gamtcon/(conf_fact*conf_fact*conf_fact*conf_fact);
300 Scalar admintegr = conf_fact.
dsdr() + corr_adm(1);
302 double M_ADM = - (1/(2.*3.1415927*ggrav))*(*map).integrale_surface_infini(admintegr*detgam);
310 const Metric_flat& mets = (*map).flat_met_spher() ;
313 Sym_tensor gamcon = gamtcon/(conf_fact*conf_fact*conf_fact*conf_fact);
324 double angu_komar = - (1/(8.*3.1415927*ggrav))*(*map).integrale_surface_infini(detgam*contraction);
340 double erreur = (2*(*devel_psi[1])(nz-1, 0, 0, 0)
341 + (*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.
int field_set
Chose field set type.
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.
int type_hor
Chosen horizon type.
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.
double virial_residue()
Computation of the Virial residual, as difference at infinity between the ADM mass and the Komar inte...
const Scalar & dsdr() const
Returns of *this .
Sym_tensor hij
Deviation tensor( non-flat part of the conformal 3-metric on the slice; see Bonazzola et al.
virtual void set_etat_zero()
Sets the logical state of all components to ETATZERO (zero state).
const Mg3d * get_mg() const
Gives the Mg3d on which the mapping is defined.
Spheroid * p_hor
Computation of the spheroid associated with the black hole horizon.
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.
void mult_r_dzpuis(int ced_mult_r)
Multiplication by r everywhere but with the output flag dzpuis set to ced_mult_r .
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).
Cmp pow(const Cmp &, int)
Power .
double * p_komar_angmom
Computation of the Komar angular momentum w.r.t.
virtual void set_der_0x0() const
Sets to 0x0 all the pointers on derived quantities.
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...
Spheroid hor()
Spheroid at the excised boundary associated with the black hole MOTS on the slice.
Standard units of space, time and mass.
Vector shift
Shift vector.
Sym_tensor hatA
Rescaled tracefree extrinsic curvature tensor: rescaled same way as Cordero et al.
double * p_adm_mass
Computation of the ADM mass of the BH spacetime.
Valeur ** asymptot(int n, const int flag=0) const
Asymptotic expansion at r = infinity.
Active physical coordinates and mapping derivatives.
double adm_mass()
Computation of the ADM mass of the BH spacetime.
virtual void std_spectral_base()
Sets the standard spectal bases of decomposition for each component.
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.
virtual ~Excised_slice()
Destructor.
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.
Cmp sqrt(const Cmp &)
Square root.
Tensor field of valence 1.
void operator=(const Excised_slice &)
Assignment to another Excised_slice.
Tensor trace(int ind1, int ind2) const
Trace on two different type indices.
Vector Xx
Longitudinal part of the extrinsic curvature.
const Map & mp
Mapping associated with the slice.
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.
const Sym_tensor & ricci() const
Returns the Ricci tensor (given by the Connection p_connect )
Class to compute single black hole spacetime excised slices.
Scalar lapse
Lapse function.
double * p_virial_residue
Computation of the Virial residual, as difference at infinity between the ADM mass and the Komar inte...
void Einstein_errors()
Prints out errors in Einstein equations for the data obtained.
virtual void del_deriv() const
Deletes all the derived quantities.
Excised_slice(const Map &mp_i, int hor_type, int scheme_type)
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.
double komar_angmom()
Computation of the Komar angular momentum w.r.t.
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 .
virtual void sauve(FILE *) const
Save in a file.