20 #include "headcpp.hpp"
22 #include "spheric.hpp"
24 #include "tensor_impl.hpp"
35 if ((pos(2)==1) || (pos(2)==
nbr_coefs(2)-1))
41 if ((pos(1)==0) && (pos(2)!=0))
49 cerr <<
"Unknow theta basis in Domain::nbr_unknowns_val_domain_vr" << endl ;
68 if ((pos(2)==0) && (pos(1)>1) && (pos(0)==0))
70 if ((pos(2)>0) && (pos(0)==0))
76 if ((pos(2)==0) && (pos(1)>1) && (pos(0)==0))
78 if ((pos(2)>0) && (pos(0)==0))
82 cerr <<
"Unknow radial basis in Domain::nbr_unknowns_val_domain_vr" << endl ;
102 if ((pos(2)==1) || (pos(2)==
nbr_coefs(2)-1))
108 if ((pos(1)==
nbr_coefs(1)-1) || (pos(1)==0))
114 if ((pos(1)==0) && (pos(2)>3))
118 cerr <<
"Unknow theta basis in Domain_nucleus::nbr_unknowns_val_domain_vt" << endl ;
127 if (((pos(2)==2) || (pos(2)==3)) && (pos(1)>0) && (pos(0)==0))
129 if ((pos(2)>3) && (pos(0)==0))
133 if (((pos(2)==2) || (pos(2)==3)) && (pos(1)>0) && (pos(0)==0))
135 if ((pos(2)>3) && (pos(0)==0))
151 cerr <<
"Unknow radial basis in Domain_nucleus::nbr_unknowns_val_domain_vt" << endl ;
173 if ((pos(2)==1) || (pos(2)==
nbr_coefs(2)-1))
179 if ((pos(2)>3) && (pos(1)==0))
187 cerr <<
"Unknow theta basis in Domain_nucleus::nbr_unknowns_val_domain_vp" << endl ;
196 if (((pos(2)==2) || (pos(2)==3)) && (pos(1)>0) && (pos(0)==0))
198 if ((pos(2)>3) && (pos(0)==0))
202 if (((pos(2)==2) || (pos(2)==3)) && (pos(1)>0) && (pos(0)==0))
204 if ((pos(2)>3) && (pos(0)==0))
210 if ((pos(2)==0) && (pos(1)>0) && (pos(0)==0))
212 if (((pos(2)==4) || (pos(2)==5)) && (pos(1)>0) && (pos(0)==0))
214 if ((pos(2)>5) && (pos(0)==0))
220 if ((pos(2)==0) && (pos(1)>0) && (pos(0)==0))
222 if (((pos(2)==4) || (pos(2)==5)) && (pos(1)>0) && (pos(0)==0))
224 if ((pos(2)>5) && (pos(0)==0))
228 cerr <<
"Unknow radial basis in Domain_nucleus::nbr_unknowns_val_domain_vp" << endl ;
245 int kmin = 2*mlim + 2 ;
251 if ((pos(2)==1) || (pos(2)==
nbr_coefs(2)-1))
258 if ((pos(1)==0) && (pos(2)>=kmin))
263 if ((pos(1)==
nbr_coefs(1)-1) || ((pos(1)==0) && (pos(2)>=kmin)))
265 lquant = 2*pos(1)+1 ;
268 if (((pos(1)==1) && (pos(2)>=kmin+2)) || (pos(1)==0) || (pos(1)==
nbr_coefs(1)-1))
273 if (((pos(1)==0) && (pos(2)>=kmin+2)) || (pos(1)==
nbr_coefs(1)-1))
275 lquant = 2*pos(1)+1 ;
278 cerr <<
"Unknow theta basis in Domain_nucleus::nbr_unknowns_val_domain" << endl ;
287 if ((lquant>llim) && (pos(0)==0))
291 if ((lquant>llim) && (pos(0)==0))
295 if (((lquant>llim+1) && (pos(0)==0)) || (pos(0)==
nbr_coefs(0)-1))
299 if (((lquant>llim+1) && (pos(0)==0)) || (pos(0)==
nbr_coefs(0)-1))
303 cerr <<
"Unknow radial basis in Domain_nucleus::nbr_unknowns_val_domain" << endl ;
344 cerr <<
"Unknown type of vector Domain_nucleus::nbr_unknowns" << endl ;
363 for (
int i=1 ; i<=3 ; i++)
364 for (
int j=1 ; j<=3 ; j++)
374 cerr <<
"Unknown type of 2-tensor Domain_nucleus::nbr_unknowns" << endl ;
380 cerr <<
"Valence " << val <<
" not implemented in Domain_nucleus::nbr_unknowns" << endl ;
Bases_container bases_1d
Arrays containing the various basis of decomposition.
int get_basis(int nd) const
Read only the basis in a given domain.
virtual int nbr_unknowns(const Tensor &, int) const
Computes the number of true unknowns of a Tensor, in a given domain.
int nbr_unknowns_val_domain_vp(const Val_domain &so) const
Computes the number of true unknowns of a Val_domain.
int nbr_unknowns_val_domain_vt(const Val_domain &so) const
Computes the number of true unknowns of a Val_domain.
int nbr_unknowns_val_domain_vr(const Val_domain &so) const
Computes the number of true unknowns of a Val_domain.
int nbr_unknowns_val_domain(const Val_domain &so, int mlim, int llim) const
Computes the number of true unknowns of a Val_domain.
Dim_array nbr_coefs
Number of coefficients.
Class that gives the position inside a multi-dimensional Array.
bool inc(int increm, int var=0)
Increments the position of the Index.
const Domain * get_domain(int i) const
returns a pointer on the domain.
const Base_tensor & get_basis() const
Returns the vectorial basis (triad) on which the components are defined.
int get_n_comp() const
Returns the number of stored components.
int get_valence() const
Returns the valence.
const Space & get_space() const
Returns the Space.
Class for storing the basis of decompositions of a field and its values on both the configuration and...
const Base_spectral & get_base() const
Returns the basis of decomposition.