20 #include "headcpp.hpp"
21 #include "spheric_symphi.hpp"
22 #include "array_math.hpp"
24 #include "tensor_impl.hpp"
58 cerr <<
"Unknow phi basis in Domain_nucleus_symphi::nbr_unknowns_val_domain" << endl ;
67 if ((j==0) && (mquant>0))
71 if ((j==
nbr_coefs(1)-1) || ((j==0) && (mquant>0)))
75 if (((j==1) && (mquant>1)) || (j==0) || (j==
nbr_coefs(1)-1))
79 if (((j==0) && (mquant>1)) || (j==
nbr_coefs(1)-1))
83 cerr <<
"Unknow theta basis in Domain_nucleus_symphi::nbr_unknowns_val_domain" << endl ;
96 #ifndef REMOVE_ALL_CHECKS
98 if (bound!=OUTER_BC) {
99 cerr <<
"Unknown boundary in Domain_nucleus_symphi::nbr_conditions_boundary" << endl ;
104 int size = (n_cmp==-1) ? tt.
get_n_comp() : n_cmp ;
120 else for (
int i=0 ; i<n_cmp ; i++) {
121 if ((*p_cmp[i])(0)==1)
123 if ((*p_cmp[i])(0)==2)
125 if ((*p_cmp[i])(0)==3)
131 #ifndef REMOVE_ALL_CHECKS
133 cerr <<
"Unknown type of vector Domain_nucleus_symphi::nbr_conditions_boundary" << endl ;
151 else for (
int i=0 ; i<n_cmp ; i++) {
152 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==1))
154 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==2))
156 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==3))
158 if (((*p_cmp[i])(0)==2) && ((*p_cmp[i])(1)==2))
160 if (((*p_cmp[i])(0)==2) && ((*p_cmp[i])(1)==3))
162 if (((*p_cmp[i])(0)==3) && ((*p_cmp[i])(1)==3))
180 else for (
int i=0 ; i<n_cmp ; i++) {
181 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==1))
183 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==2))
185 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==3))
187 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==1))
189 if (((*p_cmp[i])(0)==2) && ((*p_cmp[i])(1)==2))
191 if (((*p_cmp[i])(0)==2) && ((*p_cmp[i])(1)==3))
193 if (((*p_cmp[i])(0)==3) && ((*p_cmp[i])(1)==1))
195 if (((*p_cmp[i])(0)==3) && ((*p_cmp[i])(1)==2))
197 if (((*p_cmp[i])(0)==3) && ((*p_cmp[i])(1)==3))
202 #ifndef REMOVE_ALL_CHECKS
204 cerr <<
"Unknown type of 2-tensor Domain_nucleus_symphi::nbr_conditions_boundary" << endl ;
211 cerr <<
"Valence " << val <<
" not implemented in Domain_nucleus_symphi::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(const Val_domain &eq) 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.
Dim_array nbr_coefs
Number of coefficients.
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.