22 #include "metric_nophi.hpp"
23 #include "term_eq.hpp"
25 #include "tensor_impl.hpp"
26 #include "system_of_eqs.hpp"
27 #include "metric_tensor.hpp"
28 #include "name_tools.hpp"
38 for (
int i=1 ; i<=3 ; i++)
48 Metric_conf_factor_const::~Metric_conf_factor_const() {
71 detval = (*
syst->
cst[place]->val_t)(1,1)(dd)*(*
syst->
cst[place]->val_t)(2,2)(dd)*(*
syst->
cst[place]->val_t)(3,3)(dd)
72 + (*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd)*(*
syst->
cst[place]->val_t)(1,3)(dd)
73 + (*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd)
74 - (*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(2,2)(dd)
75 - (*
syst->
cst[place]->val_t)(2,3)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd)*(*
syst->
cst[place]->val_t)(1,1)(dd)
76 - (*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(3,3)(dd) ;
81 cmpval = (*
syst->
cst[place]->val_t)(2,2)(dd)*(*
syst->
cst[place]->val_t)(3,3)(dd)
82 -(*
syst->
cst[place]->val_t)(2,3)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd) ;
84 res[0] =
new Term_eq (dd, val) ;
87 cmpval = (*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd)
88 -(*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(3,3)(dd) ;
90 res[1] =
new Term_eq (dd, val) ;
93 cmpval = (*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd)
94 -(*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(2,2)(dd) ;
96 res[2] =
new Term_eq (dd, val) ;
99 cmpval = (*
syst->
cst[place]->val_t)(1,1)(dd)*(*
syst->
cst[place]->val_t)(3,3)(dd)
100 -(*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(1,3)(dd) ;
102 res[3] =
new Term_eq (dd, val) ;
105 cmpval = (*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(1,2)(dd)
106 -(*
syst->
cst[place]->val_t)(1,1)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd) ;
108 res[4] =
new Term_eq (dd, val) ;
111 cmpval = (*
syst->
cst[place]->val_t)(1,1)(dd)*(*
syst->
cst[place]->val_t)(2,2)(dd)
112 -(*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(1,2)(dd) ;
114 res[5] =
new Term_eq (dd, val) ;
127 for (
int i=1 ; i<=3 ; i++)
128 for (
int j=i ; j<=3 ; j++)
163 detval = (*
syst->
cst[place]->val_t)(1,1)(dd)*(*
syst->
cst[place]->val_t)(2,2)(dd)*(*
syst->
cst[place]->val_t)(3,3)(dd)
164 + (*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd)*(*
syst->
cst[place]->val_t)(1,3)(dd)
165 + (*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd)
166 - (*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(2,2)(dd)
167 - (*
syst->
cst[place]->val_t)(2,3)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd)*(*
syst->
cst[place]->val_t)(1,1)(dd)
168 - (*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(3,3)(dd) ;
172 cmpval = (*
syst->
cst[place]->val_t)(2,2)(dd)*(*
syst->
cst[place]->val_t)(3,3)(dd)
173 -(*
syst->
cst[place]->val_t)(2,3)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd) ;
175 res[0] =
new Term_eq (dd, val) ;
178 cmpval = (*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd)
179 -(*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(3,3)(dd) ;
181 res[1] =
new Term_eq (dd, val) ;
184 cmpval = (*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd)
185 -(*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(2,2)(dd) ;
187 res[2] =
new Term_eq (dd, val) ;
190 cmpval = (*
syst->
cst[place]->val_t)(1,1)(dd)*(*
syst->
cst[place]->val_t)(3,3)(dd)
191 -(*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(1,3)(dd) ;
193 res[3] =
new Term_eq (dd, val) ;
196 cmpval = (*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(1,2)(dd)
197 -(*
syst->
cst[place]->val_t)(1,1)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd) ;
199 res[4] =
new Term_eq (dd, val) ;
202 cmpval = (*
syst->
cst[place]->val_t)(1,1)(dd)*(*
syst->
cst[place]->val_t)(2,2)(dd)
203 -(*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(1,2)(dd) ;
205 res[5] =
new Term_eq (dd, val) ;
217 for (
int i=1 ; i<=3 ; i++)
218 for (
int j=i ; j<=3 ; j++)
244 cerr <<
"Metric already set for the system" << endl ;
250 trim_spaces (ss.
name_met, name_met) ;
virtual void set_system(System_of_eqs &syst, const char *name)
Associate the metric to a given system of equations.
virtual void compute_cov(int) const
Computes the covariant representation, in a given Domain.
virtual void compute_con(int) const
Computes the contravariant representation, in a given Domain.
Metric_conf_factor_const(Metric_tensor &, const Scalar &conf)
Constructor from a Metric_tensor and a conformal factor.
Class to deal with a metric with a conformal decomposition (mainly used for AADS spacetimes) The true...
Metric_flat fmet
Associated flat metric.
Vector grad_conf
flat gradient of the conformal factor
Metric_tensor * p_met
Pointer on the Metric_tensor describing the coformal metric.
int place_syst
Gives the location of the metric amongst the various unknowns of the associated System_of_eqs.
Scalar conformal
The conformal factor (must be a purely radial function)
const Base_tensor & basis
The tensorial basis used.
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.
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.
const System_of_eqs * syst
Pointer of the system of equations where the metric is used (only one for now).
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_nbr_domains() const
Returns the number of Domains.
Class used to describe and solve a system of equations.
virtual void add_cst(const char *name, double cst)
Addition of a constant (number case)
int ndom
Number of domains used.
MMPtr_array< Term_eq > cst
Pointers on the Term_eq coming from the constants passed by the user.
char * name_met
Name by which the metric is recognized.
int ncst
Number of constants passed by the user.
int dom_min
Smallest domain number.
Metric * met
Pointer on the associated Metric, if defined.
Scalar & set(const Array< int > &ind)
Returns the value of a component (read/write version).
int get_n_comp() const
Returns the number of stored components.
This class is intended to describe the manage objects appearing in the equations.
Tensor const & get_val_t() const
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...
Scalar & set(int)
Read/write access to a component.