20 #include "headcpp.hpp"
22 #include "spheric.hpp"
24 #include "tensor_impl.hpp"
50 cerr <<
"Unknow theta basis in Domain_nucleus::nbr_conditions_val_domain_boundary_vr" << endl ;
86 cerr <<
"Unknow theta basis in Domain_nucleus::nbr_conditions_val_domain_boundary_vt" << endl ;
120 cerr <<
"Unknow theta basis in Domain_nucleus::nbr_conditions_val_domain_boundary_vp" << endl ;
133 int kmin = 2*mlim + 2 ;
145 if ((j==0) && (k>=kmin))
149 if ((j==
nbr_coefs(1)-1) || ((j==0) && (k>=kmin)))
153 if (((j==1) && (k>=kmin+2)) || (j==0) || (j==
nbr_coefs(1)-1))
157 if (((j==0) && (k>=kmin+2)) || (j==
nbr_coefs(1)-1))
161 cerr <<
"Unknow theta basis in Domain_nucleus::nbr_conditions_val_boundary" << endl ;
174 if (bound!=OUTER_BC) {
175 cerr <<
"Unknown boundary in Domain_nucleus::nbr_conditions_boundary" << endl ;
179 int size = (n_cmp==-1) ? tt.
get_n_comp() : n_cmp ;
198 else for (
int i=0 ; i<n_cmp ; i++) {
199 if ((*p_cmp[i])(0)==1)
201 if ((*p_cmp[i])(0)==2)
203 if ((*p_cmp[i])(0)==3)
215 else for (
int i=0 ; i<n_cmp ; i++) {
216 if ((*p_cmp[i])(0)==1)
218 if ((*p_cmp[i])(0)==2)
220 if ((*p_cmp[i])(0)==3)
226 cerr <<
"Unknown type of vector Domain_nucleus::nbr_conditions_boundary" << endl ;
243 else for (
int i=0 ; i<n_cmp ; i++) {
244 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==1))
246 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==2))
248 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==3))
250 if (((*p_cmp[i])(0)==2) && ((*p_cmp[i])(1)==2))
252 if (((*p_cmp[i])(0)==2) && ((*p_cmp[i])(1)==3))
254 if (((*p_cmp[i])(0)==3) && ((*p_cmp[i])(1)==3))
272 else for (
int i=0 ; i<n_cmp ; i++) {
273 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==1))
275 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==2))
277 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==3))
279 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==1))
281 if (((*p_cmp[i])(0)==2) && ((*p_cmp[i])(1)==2))
283 if (((*p_cmp[i])(0)==2) && ((*p_cmp[i])(1)==3))
285 if (((*p_cmp[i])(0)==3) && ((*p_cmp[i])(1)==1))
287 if (((*p_cmp[i])(0)==3) && ((*p_cmp[i])(1)==2))
289 if (((*p_cmp[i])(0)==3) && ((*p_cmp[i])(1)==3))
304 else for (
int i=0 ; i<n_cmp ; i++) {
305 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==1))
307 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==2))
309 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==3))
311 if (((*p_cmp[i])(0)==2) && ((*p_cmp[i])(1)==2))
313 if (((*p_cmp[i])(0)==2) && ((*p_cmp[i])(1)==3))
315 if (((*p_cmp[i])(0)==3) && ((*p_cmp[i])(1)==3))
334 else for (
int i=0 ; i<n_cmp ; i++) {
335 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==1))
337 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==2))
339 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==3))
341 if (((*p_cmp[i])(0)==2) && ((*p_cmp[i])(1)==1))
343 if (((*p_cmp[i])(0)==2) && ((*p_cmp[i])(1)==2))
345 if (((*p_cmp[i])(0)==2) && ((*p_cmp[i])(1)==3))
347 if (((*p_cmp[i])(0)==3) && ((*p_cmp[i])(1)==1))
349 if (((*p_cmp[i])(0)==3) && ((*p_cmp[i])(1)==2))
351 if (((*p_cmp[i])(0)==3) && ((*p_cmp[i])(1)==3))
357 cerr <<
"Unknown type of 2-tensor Domain_nucleus::nbr_conditions_boundary" << endl ;
363 cerr <<
"Valence " << val <<
" not implemented in Domain_nucleus::nbr_conditions_boundary" << endl ;
reference set(const Index &pos)
Read/write of an element.
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.
int nbr_conditions_val_domain_boundary_vt(const Val_domain &eq) const
Computes number of discretized equations associated with a given equation on a boundary.
int nbr_conditions_val_domain_boundary(const Val_domain &eq, int mlim) const
Computes number of discretized equations associated with a given equation on a boundary.
virtual Array< int > nbr_conditions_boundary(const Tensor &, int, int, int n_cmp=-1, Array< int > **p_cmp=0x0) const
Computes number of discretized equations associated with a given tensorial equation on a boundary.
int nbr_conditions_val_domain_boundary_vr(const Val_domain &eq) const
Computes number of discretized equations associated with a given equation on a boundary.
int nbr_conditions_val_domain_boundary_vp(const Val_domain &eq) const
Computes number of discretized equations associated with a given equation on a boundary.
Dim_array nbr_coefs
Number of coefficients.
int get_m_order() const
Returns .
bool is_m_order_affected() const
Checks whether the additional parameter order is affected (not very used).
const Param_tensor & get_parameters() const
Returns a pointer on the possible additional parameter.
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.
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.