21 #include "adapted.hpp"
22 #include "array_math.hpp"
24 #include "tensor_impl.hpp"
26 int mult_cos_1d (
int, Array<double>&) ;
27 int mult_sin_1d (
int, Array<double>&) ;
28 int div_sin_1d (
int, Array<double>&) ;
29 int div_cos_1d (
int, Array<double>&) ;
30 int mult_x_1d (
int, Array<double>&) ;
59 cout <<
"Unknown case in Domain_shell_inner_adapted::mult_cos_phi" << endl ;
63 while (index_t.
inc()) ;
99 cout <<
"Unknown case in Domain_shell_inner_adapted::mult_sin_phi" << endl ;
103 while (index_t.
inc()) ;
226 assert(baset==SIN_ODD) ;
231 assert (baser==CHEB) ;
238 val += 2./(2.*j+1) * integral_1d(CHEB, cf) ;
241 return val * 2*M_PI ;
Version of the Index class optimized for incremental access to Array components.
bool inc(int increm, int var=0)
Increments the position of the Array_iterator.
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_sin_theta(const Val_domain &) const
Division by .
Term_eq * der_rad_term_eq
Pointer on the Term_eq containing the .
virtual Val_domain div_cos_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.
double outer_radius
The outer radius .
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 div_r(const Val_domain &) const
Division by .
virtual Val_domain der_r(const Val_domain &) const
Compute the radial derivative of a scalar field.
Val_domain * inner_radius
Pointer on the inner boundary , as a Val_domain.
virtual Val_domain mult_sin_theta(const Val_domain &) const
Multiplication by .
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 mult_cos_phi(const Val_domain &) const
Multiplication by .
virtual double integ_volume(const Val_domain &) const
Volume integral.
virtual Val_domain mult_sin_phi(const Val_domain &) const
Multiplication by .
virtual Val_domain mult_cos_theta(const Val_domain &) const
Multiplication by .
int num_dom
Number of the current domain (used by the Space)
Dim_array nbr_coefs
Number of coefficients.
Val_domain const & get_radius() const
Returns the generalized radius.
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.
Tensor * val_t
Pointer on the value, if the Term_eq is a Tensor.
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.
void std_base()
Sets the standard basis of decomposition.
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.