80 #include "time_slice.h" 84 #include "graphique.h" 121 const Scalar* ptrace = 0x0 ;
161 "Max. of absolute value of deviation from det tgam = 1") ;
165 maxabs(tgam_j0.determinant() - 1,
166 "Max. of absolute value of deviation from det tgam = 1") ;
178 const Scalar* ptrace = 0x0 ;
215 "Max. of absolute value of deviation from det tgam = 1") ;
231 if (p_strain_tens != 0x0)
232 strain_tens = *(p_strain_tens) ;
265 for (
int i=1; i<=3; i++)
266 for (
int j=i; j<=3; j++)
286 + 1.666666666666667*a_hat*div_beta ;
297 for (
int i=1; i<=3; i++) {
298 for (
int j=1; j<=i; j++) {
300 for (
int k=1; k<=3; k++) {
301 for (
int l=1; l<=3; l++) {
302 tmp += dhh(i,k,l) * dhh(j,l,k) ;
305 ricci_star.
set(i,j) -= tmp ;
309 for (
int i=1; i<=3; i++) {
310 for (
int j=1; j<=i; j++) {
312 for (
int k=1; k<=3; k++) {
313 for (
int l=1; l<=3; l++) {
314 for (
int m=1; m<=3; m++) {
315 for (
int n=1; n<=3; n++) {
317 tmp += 0.5 * tgam_uu(i,k)* tgam_uu(j,l)
318 * dhh(m,n,k) * dtgam(m,n,l)
319 + tgam_dd(n,l) * dhh(m,n,k)
320 * (tgam_uu(i,k) * dhh(j,l,m) + tgam_uu(j,k) * dhh(i,l,m) )
321 - tgam_dd(k,l) *tgam_uu(m,n) * dhh(i,k,m) * dhh(j,l,n) ;
326 sym_tmp.
set(i,j) = tmp ;
329 ricci_star += sym_tmp ;
336 contract(dhh, 0, 1, dtgam, 0, 1), 0, 1 )
338 contract(dhh, 0, 1, dtgam, 0, 2), 0, 1 ) ;
349 source_aij += (0.5*(qq - 1.))*laplace_h + qq*(0.5*ricci_star + 8.*tdln_psi_u * tdln_psi_u
350 + 4.*( tdln_psi_u * tdlnn_u + tdlnn_u * tdln_psi_u )
351 - 0.3333333333333333 * (tricci_scal + 8.*(
contract(dln_psi, 0, tdln_psi_u, 0)
352 +
contract(dln_psi, 0, tdlnn_u, 0) )
358 for (
int i=1; i<=3; i++) {
359 for (
int j=1; j<=i; j++) {
361 for (
int k=1; k<=3; k++) {
362 for (
int l=1; l<=3; l++) {
363 tmp += ( tgam_uu(i,k)*dhh(l,j,k) + tgam_uu(k,j)*dhh(i,l,k)
364 - tgam_uu(k,l)*dhh(i,j,k) ) * dqq(l) ;
367 sym_tmp.
set(i,j) += 0.5 * tmp ;
371 source_aij -= sym_tmp
374 for (
int i=1; i<=3; i++) {
375 for (
int j=1; j<=i; j++) {
377 for (
int k=1; k<=3; k++) {
378 for (
int l=1; l<=3; l++) {
379 tmp += tgam_dd(k,l) * a_hat(i,k) * aij(j,l) ;
382 sym_tmp.
set(i,j) = tmp ;
388 source_aij += (2.*
nn())
390 sym_tmp - qpig*psi6*(
psi4()* strain_tens - (0.3333333333333333 * tmp) * tgam_uu )
394 for (
int i=1; i<=3; i++)
395 for (
int j=i; j<=3; j++)
398 maxabs(source_aij,
"source_aij tot") ;
401 tmp = 0.5*lap_A + source_aij.
compute_A(
true) ;
432 for (
int j=jtime1; j <=
jtime; j++) {
virtual const Vector & beta() const
shift vector at the current time step (jtime )
void initialize_sources_copy() const
Copy the sources source_A_XXX_evol and source_B_XXX_evol to all time-steps.
void annule_domain(int l)
Sets the Tensor to zero in a given domain.
virtual const Scalar & psi() const
Conformal factor relating the physical metric to the conformal one: .
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 Scalar & psi4() const
Factor at the current time step (jtime ).
Metric for tensor calculation.
Cmp log(const Cmp &)
Neperian logarithm.
virtual const Sym_tensor & con() const
Read-only access to the contravariant representation.
virtual const Metric & tgam() const
Conformal metric Returns the value at the current time step (jtime ).
Evolution_full< Tbl > adm_mass_evol
ADM mass at each time step, since the creation of the slice.
Standard units of space, time and mass.
void ylm()
Computes the coefficients of *this.
const Mg3d * get_mg() const
Gives the Mg3d on which the mapping is defined.
Tensor field of valence 0 (or component of a tensorial field).
Evolution_std< Scalar > A_hata_evol
Potential A associated with the symmetric tensor .
Base class for coordinate mappings.
const Base_vect * get_triad() const
Returns the vectorial basis (triad) on which the metric is defined.
int jtime
Time step index of the latest slice.
virtual void std_spectral_base()
Sets the spectral bases of the Valeur va to the standard ones for a scalar field. ...
Evolution_std< Sym_tensor > gam_dd_evol
Values at successive time steps of the covariant components of the induced metric ...
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.
const Tensor_sym & derive_cov(const Metric &gam) const
Returns the covariant derivative of this with respect to some metric .
Vectorial bases (triads) with respect to which the tensorial components are defined.
Vector * p_hdirac
Pointer on the vector (which vanishes in Dirac gauge), at the current time step (jtime).
Evolution_std< Scalar > B_hata_evol
Potential associated with the symmetric tensor .
void set_dzpuis(int)
Modifies the dzpuis flag.
Sym_tensor ope_killing_conf(const Metric &gam) const
Computes the conformal Killing operator associated with a given metric.
void set_A_tildeB(const Scalar &a_in, const Scalar &tb_in, Param *par_bc=0x0, Param *par_mat=0x0)
Assigns the derived members A and .
virtual const Sym_tensor & con() const
Read-only access to the contravariant representation.
void set_AtBtt_det_one(const Scalar &a_in, const Scalar &tbtt_in, const Scalar *h_prev=0x0, Param *par_bc=0x0, Param *par_mat=0x0, double precis=1.e-14, int it_max=100)
Assigns the derived member A and computes from its TT-part (see Sym_tensor::compute_tilde_B_tt() )...
const Base_vect * get_triad() const
Returns the vectorial basis (triad) on which the components are defined.
Evolution_std< Scalar > source_A_hata_evol
The potential A of the source of equation for .
Evolution_std< Scalar > source_A_hh_evol
The A potential of the source of equation for .
const Scalar & ln_psi() const
Logarithm of at the current time step (jtime ).
const Scalar & compute_A(bool output_ylm=true, Param *par=0x0) const
Gives the field A (see member p_aaa ).
Evolution_std< Sym_tensor > gam_uu_evol
Values at successive time steps of the contravariant components of the induced metric ...
void set_tt_part_det_one(const Sym_tensor_tt &hijtt, const Scalar *h_prev=0x0, Param *par_mat=0x0, double precis=1.e-14, int it_max=100)
Assignes the TT-part of the tensor.
int get_nzone() const
Returns the number of domains.
const Scalar & divergence(const Metric &) const
The divergence of this with respect to a Metric .
virtual void set_AB_hh(const Scalar &A_in, const Scalar &B_in)
Sets the potentials A and of the TT part of (see the documentation of Sym_tensor for details)...
Evolution_std< Scalar > source_B_hh_evol
The potential of the source of equation for .
Metric * p_gamma
Pointer on the induced metric at the current time step (jtime)
virtual Sym_tensor aa() const
Conformal representation of the traceless part of the extrinsic curvature: .
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 .
Transverse symmetric tensors of rank 2.
Metric * p_tgamma
Pointer on the conformal metric at the current time step (jtime)
virtual const Sym_tensor & hata() const
Conformal representation of the traceless part of the extrinsic curvature: .
Evolution_std< double > the_time
Time label of each slice.
virtual void inc_dzpuis(int inc=1)
Increases by inc units the value of dzpuis and changes accordingly the values in the compactified ext...
void compute_sources(const Sym_tensor *strain_tensor=0x0) const
Computes the sources source_A_XXX_evol and source_B_XXX_evol , for the solution of the evolution equa...
virtual const Sym_tensor & cov() const
Read-only access to the covariant representation.
const Metric_flat & ff
Pointer on the flat metric with respect to which the conformal decomposition is performed.
Scalar & set(const Itbl &ind)
Returns the value of a component (read/write version).
Evolution_std< Scalar > B_hh_evol
The potential of .
void set_longit_trans(const Vector &v, const Sym_tensor_trans &a)
Assigns the derived members p_longit_pot and p_transverse and updates the components accordingly...
Scalar compute_tilde_B_tt(bool output_ylm=true, Param *par=0x0) const
Gives the field (see member p_tilde_b ) associated with the TT-part of the Sym_tensor ...
virtual void set_etat_zero()
Sets the logical state of all components to ETATZERO (zero state).
Valeur & set_spectral_va()
Returns va (read/write version)
virtual const Sym_tensor & hh(Param *par_bc=0x0, Param *par_mat=0x0) const
Deviation of the conformal metric from the flat metric : .
Symmetric tensors (with respect to two of their arguments).
void hh_det_one(int j, Param *par_bc=0x0, Param *par_mat=0x0) const
Computes from the values of A and and using the condition , which fixes the trace of ...
Evolution_std< Scalar > trh_evol
The trace, with respect to the flat metric ff , of .
const Vector & derive_cov(const Metric &gam) const
Returns the gradient (1-form = covariant vector) of *this
const Map & get_mp() const
Returns the mapping.
int depth
Number of stored time slices.
const Scalar & the_trace() const
Returns the trace of the tensor with respect to metric *met_div.
Evolution_std< Sym_tensor > hh_evol
Values at successive time steps of the components .
Sym_tensor derive_lie(const Vector &v) const
Computes the Lie derivative of this with respect to some vector field v.
Class intended to describe valence-2 symmetric tensors.
Evolution_std< Scalar > source_B_hata_evol
The potential of the source of equation for .
Transverse and traceless symmetric tensors of rank 2.
Tensor trace(int ind1, int ind2) const
Trace on two different type indices.
Evolution_std< Scalar > A_hh_evol
The A potential of .
virtual const Scalar & nn() const
Lapse function N at the current time step (jtime )