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"
39 Metric_nophi_AADS_const::~Metric_nophi_AADS_const() {
47 cerr <<
"Metric already set for the system" << endl ;
58 trim_spaces (ss.
name_met, name_met) ;
67 cerr <<
"Function only implemented for dimension 3" << endl ;
89 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)
90 + (*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd)*(*
syst->
cst[place]->val_t)(1,3)(dd)
91 + (*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd)
92 - (*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(2,2)(dd)
93 - (*
syst->
cst[place]->val_t)(2,3)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd)*(*
syst->
cst[place]->val_t)(1,1)(dd)
94 - (*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(3,3)(dd) ;
97 cmpval = (*
syst->
cst[place]->val_t)(2,2)(dd)*(*
syst->
cst[place]->val_t)(3,3)(dd)
98 -(*
syst->
cst[place]->val_t)(2,3)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd) ;
100 res[0] =
new Term_eq (dd, val) ;
104 cmpval = (*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd)
105 -(*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(3,3)(dd) ;
107 res[1] =
new Term_eq (dd, val) ;
110 cmpval = (*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd)
111 -(*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(2,2)(dd) ;
113 res[2] =
new Term_eq (dd, val) ;
117 cmpval = (*
syst->
cst[place]->val_t)(1,1)(dd)*(*
syst->
cst[place]->val_t)(3,3)(dd)
118 -(*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(1,3)(dd) ;
120 res[3] =
new Term_eq (dd, val) ;
123 cmpval = (*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(1,2)(dd)
124 -(*
syst->
cst[place]->val_t)(1,1)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd) ;
126 res[4] =
new Term_eq (dd, val) ;
130 cmpval = (*
syst->
cst[place]->val_t)(1,1)(dd)*(*
syst->
cst[place]->val_t)(2,2)(dd)
131 -(*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(1,2)(dd) ;
133 res[5] =
new Term_eq (dd, val) ;
146 for (
int i=1 ; i<=3 ; i++)
147 for (
int j=i ; j<=3 ; j++)
164 cerr <<
"Function only implemented for dimension 3" << endl ;
186 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)
187 + (*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd)*(*
syst->
cst[place]->val_t)(1,3)(dd)
188 + (*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd)
189 - (*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(2,2)(dd)
190 - (*
syst->
cst[place]->val_t)(2,3)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd)*(*
syst->
cst[place]->val_t)(1,1)(dd)
191 - (*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(3,3)(dd) ;
194 cmpval = (*
syst->
cst[place]->val_t)(2,2)(dd)*(*
syst->
cst[place]->val_t)(3,3)(dd)
195 -(*
syst->
cst[place]->val_t)(2,3)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd) ;
197 res[0] =
new Term_eq (dd, val) ;
200 cmpval = (*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd)
201 -(*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(3,3)(dd) ;
203 res[1] =
new Term_eq (dd, val) ;
206 cmpval = (*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd)
207 -(*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(2,2)(dd) ;
209 res[2] =
new Term_eq (dd, val) ;
212 cmpval = (*
syst->
cst[place]->val_t)(1,1)(dd)*(*
syst->
cst[place]->val_t)(3,3)(dd)
213 -(*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(1,3)(dd) ;
215 res[3] =
new Term_eq (dd, val) ;
218 cmpval = (*
syst->
cst[place]->val_t)(1,3)(dd)*(*
syst->
cst[place]->val_t)(1,2)(dd)
219 -(*
syst->
cst[place]->val_t)(1,1)(dd)*(*
syst->
cst[place]->val_t)(2,3)(dd) ;
221 res[4] =
new Term_eq (dd, val) ;
224 cmpval = (*
syst->
cst[place]->val_t)(1,1)(dd)*(*
syst->
cst[place]->val_t)(2,2)(dd)
225 -(*
syst->
cst[place]->val_t)(1,2)(dd)*(*
syst->
cst[place]->val_t)(1,2)(dd) ;
227 res[5] =
new Term_eq (dd, val) ;
239 for (
int i=1 ; i<=3 ; i++)
240 for (
int j=i ; j<=3 ; j++)
Class to deal with a metric independant of with a conformal decomposition and constant.
virtual void set_system(System_of_eqs &syst, const char *name)
Associate the metric to a given system of equations.
virtual void compute_con(int) const
Computes the contravariant representation, in a given Domain.
Metric_nophi_AADS_const(Metric_tensor &, const Scalar &)
Constructor from a Metric_tensor.
virtual void compute_cov(int) const
Computes the covariant representation, in a given Domain.
Class to deal with a metric independant of with a conformal decomposition (mainly used for AADS spac...
Metric_tensor * p_met
Pointer on the Metric_tensor describing the coformal metric.
const Base_tensor & basis
The tensorial basis used.
int place_syst
Gives the location of the metric amongst the various unknowns of the associated System_of_eqs.
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_ndim() const
Returns the number of dimensions.
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
Class for storing the basis of decompositions of a field and its values on both the configuration and...