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)) ;
Active physical coordinates and mapping derivatives.
Class to compute single black hole spacetime excised slices.
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.
double komar_angmom()
Computation of the Komar angular momentum w.r.t.
int type_hor
Chosen horizon type.
void Einstein_errors()
Prints out errors in Einstein equations for the data obtained.
double * p_komar_angmom
Computation of the Komar angular momentum w.r.t.
virtual void del_deriv() const
Deletes all the derived quantities.
Spheroid * p_hor
Computation of the spheroid associated with the black hole horizon.
double virial_residue()
Computation of the Virial residual, as difference at infinity between the ADM mass and the Komar inte...
Sym_tensor hij
Deviation tensor( non-flat part of the conformal 3-metric on the slice; see Bonazzola et al.
virtual void set_der_0x0() const
Sets to 0x0 all the pointers on derived quantities.
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 operator=(const Excised_slice &)
Assignment to another Excised_slice.
virtual ~Excised_slice()
Destructor.
const Map & mp
Mapping associated with the slice.
int field_set
Chose field set type.
Vector shift
Shift vector.
virtual void sauve(FILE *) const
Save in a file.
Excised_slice(const Map &mp_i, int hor_type, int scheme_type)
Standard constructor.
double adm_mass()
Computation of the ADM mass of the BH spacetime.
Vector Xx
Longitudinal part of the extrinsic curvature.
Spheroid hor()
Spheroid at the excised boundary associated with the black hole MOTS on the slice.
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 .
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.