20 #include "headcpp.hpp"
22 #include "val_domain.hpp"
23 #include "array_math.hpp"
25 int mult_cos_1d (
int, Array<double>&) ;
26 int mult_sin_1d (
int, Array<double>&) ;
27 int div_sin_1d (
int, Array<double>&) ;
28 int div_x_1d (
int, Array<double>&) ;
29 int mult_x_1d (
int, Array<double>&) ;
141 double facttheta = M_PI ;
146 res += -facttheta / (4*i*i-1)*cf(i,0) ;
151 res += (i%2==0) ? facttheta / double (2*i+2) *cf(i,0) : -facttheta/double (2*i) *cf(i,0) ;
155 res += facttheta*cf(0,0) ;
162 res += facttheta * (pm1 - pp1) /
double(4*i+3) ;
164 pp1 *= -double(2*i+3)/double(2*i+4) ;
169 cerr <<
"Case not yet implemented in Domain_polar_nucleus::integrale" << endl ;
176 double facttheta = 2./double(2*j+1) ;
181 res += -facttheta / double(4*i*i-1) * cf(i,j) ;
186 res += facttheta/2. * cf(0,j);
189 res += facttheta *(-1. + signe * double(2*i+1))/((2*i+1)*(2*i+1)-1) * cf(i,j) ;
195 res += facttheta*cf(0,j) ;
202 res += facttheta * (pm1 - pp1) /
double(4*i+3)*cf(i,j) ;
204 pp1 *= -double(2*i+3)/double(2*i+4) ;
209 cerr <<
"Case not yet implemented in Domain_polar_nucleus::integrale" << endl ;
217 cerr <<
"Case not yet implemented in Domain_polar_nucleus::integrale" << endl ;
Bases_container bases_1d
Arrays containing the various basis of decomposition.
Array< double > ope_1d(int(*function)(int, Array< double > &), int var, const Array< double > &so, Base_spectral &base) const
One-dimensional operator acting in the coefficient space.
virtual Val_domain div_sin_theta(const Val_domain &) const
Division by .
virtual Val_domain der_r(const Val_domain &) const
Compute the radial derivative of a scalar field.
virtual Val_domain div_r(const Val_domain &) const
Division by .
virtual Val_domain laplacian2(const Val_domain &, int) const
Computes the ordinary flat 2dè- Laplacian for a scalar field with an harmonic index m.
virtual Val_domain laplacian(const Val_domain &, int) const
Computes the ordinary flat Laplacian for a scalar field with an harmonic index m.
virtual Val_domain div_x(const Val_domain &) const
Division by .
virtual double integrale(const Val_domain &) const
Volume integral.
virtual Val_domain mult_sin_theta(const Val_domain &) const
Multiplication by .
virtual double integ_volume(const Val_domain &) const
Volume integral.
virtual Val_domain mult_r(const Val_domain &) const
Multiplication by .
virtual Val_domain srdr(const Val_domain &) const
Compute the of a scalar field .
virtual Val_domain dt(const Val_domain &) const
Compute the derivative with respect to of a scalar field.
virtual Val_domain mult_cos_theta(const Val_domain &) const
Multiplication by .
double alpha
Relates the numerical to the physical radii.
Dim_array nbr_coefs
Number of coefficients.
Class for storing the basis of decompositions of a field and its values on both the configuration and...
Base_spectral base
Spectral basis of the field.
Array< double > * cf
Pointer on the Array of the values in the coefficients space.
Val_domain div_sin_theta() const
Division by .
Val_domain mult_cos_theta() const
Multiplication by .
bool in_coef
Is the field known in the coefficient space ?
void coef() const
Computes the coefficients.
Val_domain der_var(int i) const
Computes the derivative with respect to a numerical coordinate.
Array< double > get_coef() const
const Base_spectral & get_base() const
Returns the basis of decomposition.