23 #include "term_eq.hpp"
25 #include "tensor_impl.hpp"
26 #include "system_of_eqs.hpp"
27 #include "metric_tensor.hpp"
38 Metric_dirac::~Metric_dirac() {
131 bool doder = ((der_cov.
der_t==0x0) || (der_con.
der_t==0x0) || (dder_cov.
der_t==0x0)) ? false : true ;
133 Index pos (res_val) ;
141 cmpval += - 0.5 * ((*
p_met_con[dd]->val_t)(k,l)(dd)*(*dder_cov.
val_t)(k,l, pos(0)+1, pos(1)+1)(dd)
142 +(*der_con.
val_t)(pos(0)+1, k, l)(dd) * (*der_cov.
val_t)(k, pos(1)+1, l)(dd)
143 + (*der_con.
val_t)(pos(1)+1, k, l)(dd) * (*der_cov.
val_t)(k, pos(0)+1, l)(dd))
144 - (*
p_christo[dd]->val_t)(pos(0)+1,l,k)(dd)*(*
p_christo[dd]->val_t)(pos(1)+1,k,l)(dd) ;
156 cmpder += - 0.5 * ((*
p_met_con[dd]->der_t)(k,l)(dd)*(*dder_cov.
val_t)(k,l, pos(0)+1, pos(1)+1)(dd)
157 + (*
p_met_con[dd]->val_t)(k,l)(dd)*(*dder_cov.
der_t)(k,l, pos(0)+1, pos(1)+1)(dd)
158 +(*der_con.
der_t)(pos(0)+1, k, l)(dd) * (*der_cov.
val_t)(k, pos(1)+1, l)(dd)
159 +(*der_con.
val_t)(pos(0)+1, k, l)(dd) * (*der_cov.
der_t)(k, pos(1)+1, l)(dd)
160 + (*der_con.
der_t)(pos(1)+1, k, l)(dd) * (*der_cov.
val_t)(k, pos(0)+1, l)(dd)
161 + (*der_con.
val_t)(pos(1)+1, k, l)(dd) * (*der_cov.
der_t)(k, pos(0)+1, l)(dd))
163 - (*
p_christo[dd]->val_t)(pos(0)+1,l,k)(dd)*(*
p_christo[dd]->der_t)(pos(1)+1,k,l)(dd) ;
Class that gives the position inside a multi-dimensional Array.
bool inc(int increm, int var=0)
Increments the position of the Index.
Class to deal with a metric which determinant is 1.
virtual void compute_con(int) const
Computes the contravariant representation, in a given Domain.
Metric_flat fmet
Associated flat metric.
const Base_tensor & basis
The tensorial basis used.
virtual void compute_christo(int) const
Computes the Christoffel symbols, in a given Domain.
Class to deal with a conformal metric in the Dirac gauge.
virtual void compute_ricci_tensor(int) const
Computes the Ricci tensor, in a given Domain.
virtual void compute_ricci_scalar(int) const
Computes the Ricci scalar, in a given Domain.
virtual Term_eq derive(int, char, const Term_eq &) const
Computes the covariant derivative of a Term_eq (assumes Cartesian basis of decomposition).
Particular type of Tensor, dedicated to the desription of metrics.
int type_tensor
States if one works in the CON or COV representation.
MMPtr_array< Term_eq > p_ricci_tensor
Array of pointers on various Term_eq.
const Space & espace
The associated Space.
MMPtr_array< Term_eq > p_met_cov
Array of pointers on various Term_eq.
MMPtr_array< Term_eq > p_met_con
Array of pointers on various Term_eq.
MMPtr_array< Term_eq > p_christo
Array of pointers on various Term_eq.
MMPtr_array< Term_eq > p_ricci_scalar
Array of pointers on various Term_eq.
The class Scalar does not really implements scalars in the mathematical sense but rather tensorial co...
Val_domain & set_domain(int)
Read/write of a particular Val_domain.
const Domain * get_domain(int i) const
returns a pointer on the domain.
int get_ndim() const
Returns the number of dimensions.
Scalar & set(const Array< int > &ind)
Returns the value of a component (read/write version).
This class is intended to describe the manage objects appearing in the equations.
Tensor * der_t
Pointer on the variation, if the Term_eq is a Tensor.
Tensor * val_t
Pointer on the value, if the Term_eq is a Tensor.
Class for storing the basis of decompositions of a field and its values on both the configuration and...