20 #include "headcpp.hpp"
21 #include "polar_periodic.hpp"
23 #include "array_math.hpp"
25 #include "tensor_impl.hpp"
54 cerr <<
"Unknown basis in Domain_polar_periodic_nucleus_affecte_tau_val_domain" << endl ;
58 for (
int k=mink ; k<maxk ; k++) {
83 cerr <<
"Unknown theta basis in Domain_polar_periodic_nucleus_affecte_tau_val_domain" << endl ;
87 for (
int j=minj ; j<maxj ; j++) {
106 cerr <<
"Unknown theta basis in Domain_polar_periodic_nucleus_affecte_tau_val_domain" << endl ;
115 minr=(lquant<=llim) ? 0 : 1 ;
119 minr= (lquant<=llim) ? 0 : 1;
123 minr=(lquant<=llim) ? 0 : 1 ;
127 minr=(lquant<=llim) ? 0 : 1 ;
131 cerr <<
"Unknown r basis in Domain_polar_periodic_nucleus_affecte_tau_val_domain" << endl ;
136 for (
int i=minr ; i<maxr ; i++) {
142 so.
cf->
set(pos_cf) = 1. ;
146 else {
if (conte==cc) {
150 pos_gal_r.
set(0) = 0 ;
153 fact_r = - pow(-1, i) ;
157 for (
int t=0 ; t<i ; t++)
158 fact_r *= -
double(2*t+1)/double(2*t+2) ;
162 fact_r = - (2*i+1) * pow(-1, i) ;
166 for (
int t=0 ; t<i ; t++)
167 fact_r *= -
double(2*t+3)/double(2*t+2) ;
172 cerr <<
"Strange base in Domain_polar_periodic_nucleus::affecte_tau_val_domain" << endl ;
175 so.
cf->
set(pos_cf) = 1 ;
176 so.
cf->
set(pos_gal_r) += fact_r ;
228 cerr <<
"Valence " << val <<
" not implemented in Domain_polar_nucleus::affecte_tau" << endl ;
reference set(const Index &pos)
Read/write of an element.
Bases_container bases_1d
Arrays containing the various basis of decomposition.
virtual void affecte_tau_one_coef(Tensor &, int, int, int &) const
Sets at most one coefficient of a Tensor to 1.
void affecte_tau_one_coef_val_domain(Val_domain &so, int llim, int cc, int &pos_cf) const
Sets at most one coefficient of a Val_domain to 1.
Dim_array nbr_coefs
Number of coefficients.
Class that gives the position inside a multi-dimensional Array.
int & set(int i)
Read/write of the position in a given dimension.
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.
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.
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...
void set_zero()
Sets the Val_domain to zero (logical state to zero and arrays destroyed).
void allocate_coef()
Allocates the values in the coefficient space and destroys the values in the configuration space.
Array< double > * cf
Pointer on the Array of the values in the coefficients space.
bool is_zero
Indicator used for null fields (for speed issues).
const Base_spectral & get_base() const
Returns the basis of decomposition.