20 #include "spheric.hpp"
21 #include "val_domain.hpp"
22 #include "array_math.hpp"
24 int mult_cos_1d (
int, Array<double>&) ;
25 int mult_sin_1d (
int, Array<double>&) ;
26 int div_sin_1d (
int, Array<double>&) ;
27 int div_cos_1d (
int, Array<double>&) ;
28 int div_x_1d (
int, Array<double>&) ;
29 int mult_x_1d (
int, Array<double>&) ;
30 int div_1mx2_1d (
int, Array<double>&) ;
56 cout <<
"Unknown case in Domain_nucleus::mult_cos_phi" << endl ;
60 while (index_t.
inc()) ;
79 cout <<
"Unknown case in Domain_nucleus::mult_cos_phi" << endl ;
83 while (index_r.
inc()) ;
115 cout <<
"Unknown case in Domain_nucleus::mult_sin_phi" << endl ;
119 while (index_t.
inc()) ;
138 cout <<
"Unknown case in Domain_nucleus::mult_sin_phi" << endl ;
142 while (index_r.
inc()) ;
272 assert(baset==SIN_ODD) ;
277 assert (baser==CHEB_EVEN) ;
284 val += 2./(2.*j+1) * integral_1d(CHEB_EVEN, cf) ;
287 return val * 2*M_PI ;
reference set(const Index &pos)
Read/write of an element.
Bases_container bases_1d
Arrays containing the various basis of decomposition.
void allocate(const Dim_array &nbr_coefs)
Allocates the various arrays, for a given number of coefficients.
bool def
true if the Base_spectral is defined and false otherwise.
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_x(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 srdr(const Val_domain &) const
Compute the of a scalar field .
virtual Val_domain div_sin_theta(const Val_domain &) const
Division by .
virtual Val_domain ddp(const Val_domain &) const
Compute the second derivative with respect to of a scalar field.
virtual Val_domain mult_sin_theta(const Val_domain &) const
Multiplication by .
virtual Val_domain mult_cos_theta(const Val_domain &) const
Multiplication by .
virtual double integ_volume(const Val_domain &so) const
Volume integral.
virtual Val_domain div_cos_theta(const Val_domain &) const
Division by .
virtual Val_domain mult_sin_phi(const Val_domain &) const
Multiplication by .
virtual Val_domain mult_r(const Val_domain &) const
Multiplication by .
double alpha
Relates the numerical to the physical radii.
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 mult_cos_phi(const Val_domain &) const
Multiplication by .
virtual Val_domain div_1mx2(const Val_domain &) const
Division by .
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.
bool inc(int increm, int var=0)
Increments the position of the Index.
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.
bool check_if_zero() const
Check whether the logical state is zero or not.
Array< double > * cf
Pointer on the Array of the values in the coefficients space.
Val_domain div_sin_theta() const
Division 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.