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