KADATH
Kadath::Val_domain Class Reference

Class for storing the basis of decompositions of a field and its values on both the configuration and coefficients spaces, in a given Domain. More...

#include <val_domain.hpp>

Inheritance diagram for Kadath::Val_domain:

Public Member Functions

 Val_domain (const Domain *so)
 Constructor from a Domain. More...
 
 Val_domain (const Val_domain &so, bool const copy=true)
 Copy constructor. More...
 
 Val_domain (Val_domain &&) noexcept
 Move constructor. More...
 
 Val_domain (const Domain *so, FILE *)
 Constructor from a file (generated by save). More...
 
 ~Val_domain ()
 Destructor. More...
 
void save (FILE *) const
 Saving on a file. More...
 
const Domainget_domain () const
 
void swap (Val_domain &so) noexcept
 Swaps the content with the source. More...
 
void operator= (const Val_domain &)
 Assignement to another Val_domain. More...
 
Val_domainoperator= (Val_domain &&) noexcept
 Move assignment operator. More...
 
void operator= (double)
 Assignement to a double , in the configuration space. More...
 
void annule_hard ()
 Sets all the arrays to zero (the logical state is NOT set to zero). More...
 
void annule_hard_coef ()
 Sets all the arrays to zero in the coefficient space (the logical state is NOT set to zero). More...
 
const Base_spectralget_base () const
 Returns the basis of decomposition. More...
 
Base_spectralset_base ()
 Sets the basis of decomposition. More...
 
Array< double > get_conf () const
 
Array< double > get_coef () const
 
void set_zero ()
 Sets the Val_domain to zero (logical state to zero and arrays destroyed). More...
 
bool check_if_zero () const
 Check whether the logical state is zero or not. More...
 
void set_in_conf ()
 Destroys the values in the coefficient space. More...
 
void set_in_coef ()
 Destroys the values in the configuration space. More...
 
void allocate_conf ()
 Allocates the values in the configuration space and destroys the values in the coefficients space. More...
 
void allocate_coef ()
 Allocates the values in the coefficient space and destroys the values in the configuration space. More...
 
void std_base ()
 Sets the standard basis of decomposition. More...
 
void std_anti_base ()
 Sets the standard, anti-symetric, basis of decomposition. More...
 
void std_base (int m)
 Sets the standard basis of decomposition. More...
 
void std_anti_base (int m)
 Sets the standard, anti-symetric, basis of decomposition. More...
 
void std_base_r_spher ()
 Sets the basis for the radial component of a vector in orthonormal spherical coordinates. More...
 
void std_base_t_spher ()
 Sets the basis for the $\theta$ component of a vector in orthonormal spherical coordinates. More...
 
void std_base_p_spher ()
 Sets the basis for the $\varphi$ component of a vector in orthonormal spherical coordinates. More...
 
void std_base_x_cart ()
 Sets the basis for the X-component of a vector in Cartesian coordinates. More...
 
void std_base_y_cart ()
 Sets the basis for the Y-component of a vector in Cartesian coordinates. More...
 
void std_base_z_cart ()
 Sets the basis for the Z-component of a vector in Cartesian coordinates. More...
 
void std_r_base ()
 Sets the basis for the radius. More...
 
void std_base_rt_spher ()
 Sets the basis for the $(r,\theta)$ component of a 2-tensor in orthonormal spherical coordinates. More...
 
void std_base_rp_spher ()
 Sets the basis for the $(r,\varphi)$ component of a 2-tensor in orthonormal spherical coordinates. More...
 
void std_base_tp_spher ()
 Sets the basis for the $(\theta, \varphi)$ component of a 2-tensor in orthonormal spherical coordinates. More...
 
void std_base_xy_cart ()
 Sets the basis for the XY component of a 2-tensor in Cartesian coordinates. More...
 
void std_base_xz_cart ()
 Sets the basis for the XZ component of a 2-tensor in Cartesian coordinates. More...
 
void std_base_yz_cart ()
 Sets the basis for the YZ component of a 2-tensor in Cartesian coordinates. More...
 
void std_xodd_base ()
 Sets the basis for an odd function in $X$ (Critic case). More...
 
void std_todd_base ()
 Sets the basis for an odd function in $T$ (Critic case). More...
 
void std_xodd_todd_base ()
 Sets the basis for an odd function in $X$ and $T$ (Critic case). More...
 
void std_base_odd ()
 Sets the basis in odd polynomials. More...
 
void std_base_r_mtz ()
 Sets the basis for the radial component of a vector in orthonormal coordinates in the MTZ context. More...
 
void std_base_t_mtz ()
 Sets the basis for the $\theta$ component of a vector in orthonormal coordinates in the MTZ context. More...
 
void std_base_p_mtz ()
 Sets the basis for the $\varphi$ component of a vector in orthonormal coordinates in the MTZ context. More...
 
double & set (const Index &pos)
 Read/write the value of the field in the configuration space. More...
 
double & set_coef (const Index &pos)
 Read/write the value of the field in the coefficient space. More...
 
double get_coef (const Index &pos) const
 Read only value of the field in the coefficient space. More...
 
double operator() (const Index &pos) const
 Read only value of the field in the configuration space. More...
 
void coef () const
 Computes the coefficients. More...
 
void coef_i () const
 Computes the values in the configuration space. More...
 
Val_domain der_var (int i) const
 Computes the derivative with respect to a numerical coordinate. More...
 
Val_domain der_abs (int i) const
 Computes the derivative with respect to an absolute coordinate (typically Cartesian). More...
 
Val_domain der_spher (int i) const
 Computes the derivative with respect to the spherical coordinates (if defined). More...
 
Val_domain der_r () const
 
Val_domain der_t () const
 
Val_domain der_p () const
 
Val_domain mult_sin_theta () const
 Multiplication by $ \sin \theta $. More...
 
Val_domain mult_cos_theta () const
 Multiplication by $ \cos \theta $. More...
 
Val_domain mult_sin_phi () const
 Multiplication by $ \sin \varphi $. More...
 
Val_domain mult_cos_phi () const
 Multiplication by $ \cos \varphi $. More...
 
Val_domain div_sin_theta () const
 Division by $ \sin \theta $. More...
 
Val_domain div_cos_theta () const
 Division by $ \cos \theta $. More...
 
Val_domain div_x () const
 Division by $ x $. More...
 
Val_domain div_xm1 () const
 Division by $ x-1 $. More...
 
Val_domain div_xp1 () const
 Division by $ x-1 $. More...
 
Val_domain mult_xm1 () const
 Multiplication by $ x-1 $. More...
 
Val_domain div_1mx2 () const
 Division by $ 1-x^2 $. More...
 
Val_domain div_1mrsL () const
 Division by $ 1-x^2 $. More...
 
Val_domain div_sin_chi () const
 Division by $ \sin \chi $. More...
 
Val_domain div_chi () const
 Division by $ \chi^\star $. More...
 
Val_domain div_r () const
 Division by the radius. More...
 
Val_domain mult_r () const
 Multiplication by the radius. More...
 
Val_domain der_r_rtwo () const
 
Val_domain mult_cos_time () const
 
Val_domain mult_sin_time () const
 
double integrale () const
 
double integ_volume () const
 
void operator+= (const Val_domain &)
 Operator +=. More...
 
void operator-= (const Val_domain &)
 Operator -=. More...
 
void operator*= (const Val_domain &)
 Operator *=. More...
 
void operator/= (const Val_domain &)
 Operator /=. More...
 
void operator+= (double)
 Operator +=. More...
 
void operator-= (double)
 Operator -=. More...
 
void operator*= (double)
 Operator *=. More...
 
void operator/= (double)
 Operator /=. More...
 

Protected Attributes

const Domainzone
 Pointer to the associated Domain. More...
 
Base_spectral base
 Spectral basis of the field. More...
 
bool is_zero
 Indicator used for null fields (for speed issues). More...
 
Array< double > * c
 Pointer on the Array of the values in the configuration space. More...
 
Array< double > * cf
 Pointer on the Array of the values in the coefficients space. More...
 
bool in_conf
 Is the field known in the configuration space ? More...
 
bool in_coef
 Is the field known in the coefficient space ? More...
 
Memory_mapped_array< Val_domain * > p_der_var
 Pointers on the derivatives of the field with respect to the numerical coordinates. More...
 
Memory_mapped_array< Val_domain * > p_der_abs
 Pointers on the derivatives of the field with respect to the absolute Cartesian coordinates. More...
 

Private Member Functions

void del_deriv () const
 Delete the derived quantities. More...
 
void compute_der_var () const
 Computes the derivatives with respect to the numerical coordinates. More...
 
void compute_der_abs () const
 Computes the derivatives with respect to the absolute Cartesian coordinates. More...
 

Friends

class Space
 
class Space_spheric
 
class Scalar
 
class Domain_nucleus
 
class Domain_shell
 
class Domain_shell_log
 
class Domain_shell_surr
 
class Domain_compact
 
class Domain_bispheric_rect
 
class Domain_bispheric_chi_first
 
class Domain_bispheric_eta_first
 
class Domain_critic_inner
 
class Domain_critic_outer
 
class Domain_polar_nucleus
 
class Domain_polar_shell
 
class Domain_polar_shell_inner_adapted
 
class Domain_polar_shell_outer_adapted
 
class Domain_polar_compact
 
class Domain_oned_ori
 
class Domain_oned_qcq
 
class Domain_oned_inf
 
class Domain_spheric_periodic_nucleus
 
class Domain_spheric_periodic_shell
 
class Domain_spheric_periodic_compact
 
class Domain_spheric_time_nucleus
 
class Domain_spheric_time_shell
 
class Domain_spheric_time_compact
 
class Domain_shell_outer_adapted
 
class Domain_shell_inner_adapted
 
class Domain_shell_inner_homothetic
 
class Domain_shell_outer_homothetic
 
class Domain_nucleus_symphi
 
class Domain_shell_symphi
 
class Domain_compact_symphi
 
class Domain_polar_periodic_nucleus
 
class Domain_polar_periodic_shell
 
class Domain_fourD_periodic_nucleus
 
class Domain_fourD_periodic_shell
 
class Eq_matching_non_std
 
ostream & operator<< (ostream &, const Val_domain &)
 Output operator. More...
 
Val_domain sin (const Val_domain &)
 Sine operator. More...
 
Val_domain cos (const Val_domain &)
 Cosine operator. More...
 
Val_domain sinh (const Val_domain &)
 Hyperbolic sine operator. More...
 
Val_domain cosh (const Val_domain &)
 Hyperbolic cosine operator. More...
 
Val_domain operator+ (const Val_domain &)
 Operator + (unitary version) More...
 
Val_domain operator- (const Val_domain &)
 Operator - (unitary version) More...
 
Val_domain operator+ (const Val_domain &, const Val_domain &)
 Operator +. More...
 
Val_domain operator+ (const Val_domain &, double)
 Operator +. More...
 
Val_domain operator+ (double, const Val_domain &)
 Operator +. More...
 
Val_domain operator- (const Val_domain &, const Val_domain &)
 Operator -. More...
 
Val_domain operator- (const Val_domain &, double)
 Operator -. More...
 
Val_domain operator- (double, const Val_domain &)
 Operator -. More...
 
Val_domain operator* (const Val_domain &, const Val_domain &)
 Operator *. More...
 
Val_domain operator* (const Val_domain &, double)
 Operator *. More...
 
Val_domain operator* (double, const Val_domain &)
 Operator *. More...
 
Val_domain operator* (const Val_domain &, int)
 Operator *. More...
 
Val_domain operator* (int, const Val_domain &)
 Operator *. More...
 
Val_domain operator* (const Val_domain &, long int)
 Operator *. More...
 
Val_domain operator* (long int, const Val_domain &)
 Operator *. More...
 
Val_domain operator/ (const Val_domain &, const Val_domain &)
 Operator /. More...
 
Val_domain operator/ (const Val_domain &, double)
 Operator /. More...
 
Val_domain operator/ (double, const Val_domain &)
 Operator /. More...
 
Val_domain pow (const Val_domain &, int)
 Operator power (integer version) More...
 
Val_domain pow (const Val_domain &, double)
 Operator power (double version) More...
 
Val_domain sqrt (const Val_domain &)
 Operator square root. More...
 
Val_domain exp (const Val_domain &)
 Operator exponential. More...
 
Val_domain log (const Val_domain &)
 Operator logarithm. More...
 
Val_domain atanh (const Val_domain &)
 Operator atanh. More...
 
Val_domain bessel_jl (const Val_domain &, int)
 Operator Bessel function. More...
 
Val_domain bessel_yl (const Val_domain &, int)
 Operator Bessel function. More...
 
Val_domain atan (const Val_domain &)
 Operator arctangent. More...
 
double diffmax (const Val_domain &, const Val_domain &)
 Maximal difference. More...
 
double maxval (const Val_domain &)
 Maximal value. More...
 

Detailed Description

Class for storing the basis of decompositions of a field and its values on both the configuration and coefficients spaces, in a given Domain.

Definition at line 69 of file val_domain.hpp.

Constructor & Destructor Documentation

◆ Val_domain() [1/4]

Kadath::Val_domain::Val_domain ( const Domain so)

Constructor from a Domain.

Nothing is initialized otherwise.

Parameters
so[input] : pointer on the Domain.

Definition at line 23 of file val_domain.cpp.

References Kadath::Domain::get_ndim(), p_der_abs, p_der_var, and zone.

◆ Val_domain() [2/4]

Kadath::Val_domain::Val_domain ( const Val_domain so,
bool const  copy = true 
)

Copy constructor.

Parameters
so[input] : Val_domain to be copied.
copy[input] : if true then all the so is copied otherwise the arrays are not initialized.

Definition at line 33 of file val_domain.cpp.

References c, cf, Kadath::Domain::get_ndim(), p_der_abs, p_der_var, Val_domain(), and zone.

◆ Val_domain() [3/4]

Kadath::Val_domain::Val_domain ( Val_domain &&  so)
noexcept

Move constructor.

Definition at line 59 of file val_domain.cpp.

◆ Val_domain() [4/4]

Kadath::Val_domain::Val_domain ( const Domain so,
FILE *  fd 
)

Constructor from a file (generated by save).

Definition at line 81 of file val_domain.cpp.

References c, cf, Kadath::Domain::get_ndim(), in_coef, in_conf, is_zero, p_der_abs, p_der_var, and zone.

◆ ~Val_domain()

Kadath::Val_domain::~Val_domain ( )

Destructor.

Definition at line 102 of file val_domain.cpp.

References c, cf, and del_deriv().

Member Function Documentation

◆ allocate_coef()

void Kadath::Val_domain::allocate_coef ( )

Allocates the values in the coefficient space and destroys the values in the configuration space.

Definition at line 216 of file val_domain.cpp.

References cf, Kadath::Domain::get_nbr_coefs(), is_zero, set_in_coef(), and zone.

◆ allocate_conf()

void Kadath::Val_domain::allocate_conf ( )

Allocates the values in the configuration space and destroys the values in the coefficients space.

Definition at line 209 of file val_domain.cpp.

References c, Kadath::Domain::get_nbr_points(), is_zero, set_in_conf(), and zone.

◆ annule_hard()

void Kadath::Val_domain::annule_hard ( )

Sets all the arrays to zero (the logical state is NOT set to zero).

Definition at line 159 of file val_domain.cpp.

References allocate_conf(), c, and del_deriv().

◆ annule_hard_coef()

void Kadath::Val_domain::annule_hard_coef ( )

Sets all the arrays to zero in the coefficient space (the logical state is NOT set to zero).

Definition at line 165 of file val_domain.cpp.

References allocate_coef(), cf, and del_deriv().

◆ check_if_zero()

bool Kadath::Val_domain::check_if_zero ( ) const
inline

Check whether the logical state is zero or not.

Definition at line 142 of file val_domain.hpp.

References is_zero.

◆ coef()

void Kadath::Val_domain::coef ( ) const

◆ coef_i()

void Kadath::Val_domain::coef_i ( ) const

Computes the values in the configuration space.

Definition at line 637 of file val_domain.cpp.

References base, c, cf, Kadath::Base_spectral::coef_i(), Kadath::Domain::get_nbr_points(), in_coef, in_conf, Kadath::Base_spectral::is_def(), is_zero, and zone.

◆ compute_der_abs()

void Kadath::Val_domain::compute_der_abs ( ) const
private

Computes the derivatives with respect to the absolute Cartesian coordinates.

Definition at line 783 of file val_domain.cpp.

References compute_der_var(), Kadath::Domain::do_der_abs_from_der_var(), Kadath::Domain::get_ndim(), p_der_abs, p_der_var, and zone.

◆ compute_der_var()

void Kadath::Val_domain::compute_der_var ( ) const
private

Computes the derivatives with respect to the numerical coordinates.

Definition at line 771 of file val_domain.cpp.

References base, cf, coef(), Kadath::Domain::get_ndim(), in_coef, Kadath::Base_spectral::ope_1d(), p_der_var, and zone.

◆ del_deriv()

void Kadath::Val_domain::del_deriv ( ) const
private

Delete the derived quantities.

Definition at line 124 of file val_domain.cpp.

References p_der_abs, and p_der_var.

◆ der_abs()

Val_domain Kadath::Val_domain::der_abs ( int  i) const

Computes the derivative with respect to an absolute coordinate (typically Cartesian).

Parameters
i[input] : the coordinate index.
Returns
: the result, in the coefficient space.

Definition at line 681 of file val_domain.cpp.

References compute_der_abs(), get_domain(), is_zero, and p_der_abs.

◆ der_p()

Val_domain Kadath::Val_domain::der_p ( ) const
Returns
the derivative wrt $\varphi$.

Definition at line 734 of file val_domain.cpp.

References Kadath::Domain::der_p(), and zone.

◆ der_r()

Val_domain Kadath::Val_domain::der_r ( ) const
Returns
the radial derivative

Definition at line 726 of file val_domain.cpp.

References Kadath::Domain::der_r(), and zone.

◆ der_r_rtwo()

Val_domain Kadath::Val_domain::der_r_rtwo ( ) const
Returns
the radial derivative multiplied by $r^2$ (defined in a compactified domain).

Definition at line 739 of file val_domain.cpp.

References Kadath::Domain::der_r_rtwo(), and zone.

◆ der_spher()

Val_domain Kadath::Val_domain::der_spher ( int  i) const

Computes the derivative with respect to the spherical coordinates (if defined).

Parameters
i[input] : the coordinate index.
Returns
: the result, in the coefficient space.

Definition at line 699 of file val_domain.cpp.

References der_p(), der_r(), der_t(), is_zero, and zone.

◆ der_t()

Val_domain Kadath::Val_domain::der_t ( ) const
Returns
the derivative wrt $\theta$.

Definition at line 730 of file val_domain.cpp.

References Kadath::Domain::der_t(), and zone.

◆ der_var()

Val_domain Kadath::Val_domain::der_var ( int  i) const

Computes the derivative with respect to a numerical coordinate.

Parameters
i[input] : the coordinate index.
Returns
: the result, in the coefficient space.

Definition at line 670 of file val_domain.cpp.

References compute_der_var(), is_zero, and p_der_var.

◆ div_1mrsL()

Val_domain Kadath::Val_domain::div_1mrsL ( ) const

Division by $ 1-x^2 $.

Definition at line 92 of file val_domain_ope.cpp.

References Kadath::Domain::div_1mrsL(), is_zero, and zone.

◆ div_1mx2()

Val_domain Kadath::Val_domain::div_1mx2 ( ) const

Division by $ 1-x^2 $.

Definition at line 85 of file val_domain_ope.cpp.

References Kadath::Domain::div_1mx2(), is_zero, and zone.

◆ div_chi()

Val_domain Kadath::Val_domain::div_chi ( ) const

Division by $ \chi^\star $.

Definition at line 71 of file val_domain_ope.cpp.

References Kadath::Domain::div_chi(), is_zero, and zone.

◆ div_cos_theta()

Val_domain Kadath::Val_domain::div_cos_theta ( ) const

Division by $ \cos \theta $.

Definition at line 57 of file val_domain_ope.cpp.

References Kadath::Domain::div_cos_theta(), is_zero, and zone.

◆ div_r()

Val_domain Kadath::Val_domain::div_r ( ) const

Division by the radius.

Definition at line 743 of file val_domain.cpp.

References Kadath::Domain::div_r(), is_zero, and zone.

◆ div_sin_chi()

Val_domain Kadath::Val_domain::div_sin_chi ( ) const

Division by $ \sin \chi $.

Definition at line 113 of file val_domain_ope.cpp.

References Kadath::Domain::div_sin_chi(), is_zero, and zone.

◆ div_sin_theta()

Val_domain Kadath::Val_domain::div_sin_theta ( ) const

Division by $ \sin \theta $.

Definition at line 50 of file val_domain_ope.cpp.

References Kadath::Domain::div_sin_theta(), is_zero, and zone.

◆ div_x()

Val_domain Kadath::Val_domain::div_x ( ) const

Division by $ x $.

Definition at line 64 of file val_domain_ope.cpp.

References Kadath::Domain::div_x(), is_zero, and zone.

◆ div_xm1()

Val_domain Kadath::Val_domain::div_xm1 ( ) const

Division by $ x-1 $.

Definition at line 78 of file val_domain_ope.cpp.

References Kadath::Domain::div_xm1(), is_zero, and zone.

◆ div_xp1()

Val_domain Kadath::Val_domain::div_xp1 ( ) const

Division by $ x-1 $.

Definition at line 99 of file val_domain_ope.cpp.

References Kadath::Domain::div_xp1(), is_zero, and zone.

◆ get_base()

const Base_spectral& Kadath::Val_domain::get_base ( ) const
inline

Returns the basis of decomposition.

Definition at line 122 of file val_domain.hpp.

References base.

◆ get_coef() [1/2]

Array<double> Kadath::Val_domain::get_coef ( ) const
inline
Returns
the values in the coefficient space.

Definition at line 136 of file val_domain.hpp.

References cf.

◆ get_coef() [2/2]

double Kadath::Val_domain::get_coef ( const Index pos) const

Read only value of the field in the coefficient space.

Parameters
pos[input] : coefficient concerned.

Definition at line 183 of file val_domain.cpp.

References cf, in_coef, is_zero, and Kadath::Array< T >::set().

◆ get_conf()

Array<double> Kadath::Val_domain::get_conf ( ) const
inline
Returns
the values in the configuration space.

Definition at line 131 of file val_domain.hpp.

References c.

◆ get_domain()

const Domain* Kadath::Val_domain::get_domain ( ) const
inline
Returns
a pointer on the Domain.

Definition at line 111 of file val_domain.hpp.

References zone.

◆ integ_volume()

double Kadath::Val_domain::integ_volume ( ) const
Returns
integral in the whole domain.

Definition at line 763 of file val_domain.cpp.

References Kadath::Domain::integ_volume(), is_zero, and zone.

◆ integrale()

double Kadath::Val_domain::integrale ( ) const
Returns
integral in the whole domain.

Definition at line 756 of file val_domain.cpp.

References Kadath::Domain::integrale(), is_zero, and zone.

◆ mult_cos_phi()

Val_domain Kadath::Val_domain::mult_cos_phi ( ) const

Multiplication by $ \cos \varphi $.

Definition at line 22 of file val_domain_ope.cpp.

References is_zero, Kadath::Domain::mult_cos_phi(), and zone.

◆ mult_cos_theta()

Val_domain Kadath::Val_domain::mult_cos_theta ( ) const

Multiplication by $ \cos \theta $.

Definition at line 36 of file val_domain_ope.cpp.

References is_zero, Kadath::Domain::mult_cos_theta(), and zone.

◆ mult_cos_time()

Val_domain Kadath::Val_domain::mult_cos_time ( ) const
Returns
the multiplication by $\cos \omega t$.

Definition at line 120 of file val_domain_ope.cpp.

References is_zero, Kadath::Domain::mult_cos_time(), and zone.

◆ mult_r()

Val_domain Kadath::Val_domain::mult_r ( ) const

Multiplication by the radius.

Definition at line 750 of file val_domain.cpp.

References is_zero, Kadath::Domain::mult_r(), and zone.

◆ mult_sin_phi()

Val_domain Kadath::Val_domain::mult_sin_phi ( ) const

Multiplication by $ \sin \varphi $.

Definition at line 29 of file val_domain_ope.cpp.

References is_zero, Kadath::Domain::mult_sin_phi(), and zone.

◆ mult_sin_theta()

Val_domain Kadath::Val_domain::mult_sin_theta ( ) const

Multiplication by $ \sin \theta $.

Definition at line 43 of file val_domain_ope.cpp.

References is_zero, Kadath::Domain::mult_sin_theta(), and zone.

◆ mult_sin_time()

Val_domain Kadath::Val_domain::mult_sin_time ( ) const
Returns
the multiplication by $\sin \omega t$.

Definition at line 127 of file val_domain_ope.cpp.

References is_zero, Kadath::Domain::mult_sin_time(), and zone.

◆ mult_xm1()

Val_domain Kadath::Val_domain::mult_xm1 ( ) const

Multiplication by $ x-1 $.

Definition at line 106 of file val_domain_ope.cpp.

References is_zero, Kadath::Domain::mult_xm1(), and zone.

◆ operator()()

double Kadath::Val_domain::operator() ( const Index pos) const

Read only value of the field in the configuration space.

Parameters
pos[input] : point concerned.

Definition at line 192 of file val_domain.cpp.

References c, and coef_i().

◆ operator*=() [1/2]

void Kadath::Val_domain::operator*= ( const Val_domain so)

Operator *=.

Definition at line 34 of file val_domain_math.cpp.

◆ operator*=() [2/2]

void Kadath::Val_domain::operator*= ( double  xx)

Operator *=.

Definition at line 51 of file val_domain_math.cpp.

◆ operator+=() [1/2]

void Kadath::Val_domain::operator+= ( const Val_domain so)

Operator +=.

Definition at line 26 of file val_domain_math.cpp.

◆ operator+=() [2/2]

void Kadath::Val_domain::operator+= ( double  xx)

Operator +=.

Definition at line 42 of file val_domain_math.cpp.

◆ operator-=() [1/2]

void Kadath::Val_domain::operator-= ( const Val_domain so)

Operator -=.

Definition at line 30 of file val_domain_math.cpp.

◆ operator-=() [2/2]

void Kadath::Val_domain::operator-= ( double  xx)

Operator -=.

Definition at line 46 of file val_domain_math.cpp.

◆ operator/=() [1/2]

void Kadath::Val_domain::operator/= ( const Val_domain so)

Operator /=.

Definition at line 38 of file val_domain_math.cpp.

◆ operator/=() [2/2]

void Kadath::Val_domain::operator/= ( double  xx)

Operator /=.

Definition at line 56 of file val_domain_math.cpp.

◆ operator=() [1/3]

void Kadath::Val_domain::operator= ( const Val_domain so)

◆ operator=() [2/3]

void Kadath::Val_domain::operator= ( double  xx)

Assignement to a double , in the configuration space.

Definition at line 148 of file val_domain.cpp.

References allocate_conf(), c, del_deriv(), is_zero, and set_zero().

◆ operator=() [3/3]

Val_domain & Kadath::Val_domain::operator= ( Val_domain &&  so)
noexcept

Move assignment operator.

Definition at line 67 of file val_domain.cpp.

◆ save()

void Kadath::Val_domain::save ( FILE *  fd) const

Saving on a file.

Definition at line 110 of file val_domain.cpp.

References base, c, cf, in_coef, in_conf, is_zero, Kadath::Base_spectral::save(), and Kadath::Array< T >::save().

◆ set()

double & Kadath::Val_domain::set ( const Index pos)

Read/write the value of the field in the configuration space.

The coefficients are destroyed.

Parameters
pos[input] : point concerned.

Definition at line 171 of file val_domain.cpp.

References c, del_deriv(), Kadath::Array< T >::set(), and set_in_conf().

◆ set_base()

Base_spectral& Kadath::Val_domain::set_base ( )
inline

Sets the basis of decomposition.

Definition at line 126 of file val_domain.hpp.

References base.

◆ set_coef()

double & Kadath::Val_domain::set_coef ( const Index pos)

Read/write the value of the field in the coefficient space.

The values at collocation points are destroyed.

Parameters
pos[input] : coefficient concerned.

Definition at line 177 of file val_domain.cpp.

References cf, del_deriv(), Kadath::Array< T >::set(), and set_in_coef().

◆ set_in_coef()

void Kadath::Val_domain::set_in_coef ( )

Destroys the values in the configuration space.

Definition at line 203 of file val_domain.cpp.

References c, in_coef, and in_conf.

◆ set_in_conf()

void Kadath::Val_domain::set_in_conf ( )

Destroys the values in the coefficient space.

Definition at line 197 of file val_domain.cpp.

References cf, in_coef, and in_conf.

◆ set_zero()

void Kadath::Val_domain::set_zero ( )

Sets the Val_domain to zero (logical state to zero and arrays destroyed).

Definition at line 223 of file val_domain.cpp.

References base, c, cf, del_deriv(), in_coef, in_conf, is_zero, and Kadath::Base_spectral::set_non_def().

◆ std_anti_base() [1/2]

void Kadath::Val_domain::std_anti_base ( )

Sets the standard, anti-symetric, basis of decomposition.

Definition at line 279 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_anti_cheb_base(), Kadath::Domain::set_anti_legendre_base(), and zone.

◆ std_anti_base() [2/2]

void Kadath::Val_domain::std_anti_base ( int  m)

Sets the standard, anti-symetric, basis of decomposition.

Definition at line 312 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_anti_cheb_base_with_m(), Kadath::Domain::set_anti_legendre_base_with_m(), and zone.

◆ std_base() [1/2]

void Kadath::Val_domain::std_base ( )

Sets the standard basis of decomposition.

Definition at line 246 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_base(), Kadath::Domain::set_legendre_base(), and zone.

◆ std_base() [2/2]

void Kadath::Val_domain::std_base ( int  m)

Sets the standard basis of decomposition.

Definition at line 295 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_base_with_m(), Kadath::Domain::set_legendre_base_with_m(), and zone.

◆ std_base_odd()

void Kadath::Val_domain::std_base_odd ( )

Sets the basis in odd polynomials.

Definition at line 605 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_base_odd(), Kadath::Domain::set_legendre_base_odd(), and zone.

◆ std_base_p_mtz()

void Kadath::Val_domain::std_base_p_mtz ( )

Sets the basis for the $\varphi$ component of a vector in orthonormal coordinates in the MTZ context.

Definition at line 540 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_base_p_mtz(), Kadath::Domain::set_legendre_base_p_mtz(), and zone.

◆ std_base_p_spher()

void Kadath::Val_domain::std_base_p_spher ( )

Sets the basis for the $\varphi$ component of a vector in orthonormal spherical coordinates.

Definition at line 444 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_base_p_spher(), Kadath::Domain::set_legendre_base_p_spher(), and zone.

◆ std_base_r_mtz()

void Kadath::Val_domain::std_base_r_mtz ( )

Sets the basis for the radial component of a vector in orthonormal coordinates in the MTZ context.

Definition at line 508 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_base_r_mtz(), Kadath::Domain::set_legendre_base_r_mtz(), and zone.

◆ std_base_r_spher()

void Kadath::Val_domain::std_base_r_spher ( )

Sets the basis for the radial component of a vector in orthonormal spherical coordinates.

Definition at line 412 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_base_r_spher(), Kadath::Domain::set_legendre_base_r_spher(), and zone.

◆ std_base_rp_spher()

void Kadath::Val_domain::std_base_rp_spher ( )

Sets the basis for the $(r,\varphi)$ component of a 2-tensor in orthonormal spherical coordinates.

Definition at line 342 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_base_rp_spher(), and zone.

◆ std_base_rt_spher()

void Kadath::Val_domain::std_base_rt_spher ( )

Sets the basis for the $(r,\theta)$ component of a 2-tensor in orthonormal spherical coordinates.

Definition at line 328 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_base_rt_spher(), and zone.

◆ std_base_t_mtz()

void Kadath::Val_domain::std_base_t_mtz ( )

Sets the basis for the $\theta$ component of a vector in orthonormal coordinates in the MTZ context.

Definition at line 524 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_base_t_mtz(), Kadath::Domain::set_legendre_base_t_mtz(), and zone.

◆ std_base_t_spher()

void Kadath::Val_domain::std_base_t_spher ( )

Sets the basis for the $\theta$ component of a vector in orthonormal spherical coordinates.

Definition at line 428 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_base_t_spher(), Kadath::Domain::set_legendre_base_t_spher(), and zone.

◆ std_base_tp_spher()

void Kadath::Val_domain::std_base_tp_spher ( )

Sets the basis for the $(\theta, \varphi)$ component of a 2-tensor in orthonormal spherical coordinates.

Definition at line 356 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_base_tp_spher(), and zone.

◆ std_base_x_cart()

void Kadath::Val_domain::std_base_x_cart ( )

Sets the basis for the X-component of a vector in Cartesian coordinates.

Definition at line 460 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_base_x_cart(), Kadath::Domain::set_legendre_base_x_cart(), and zone.

◆ std_base_xy_cart()

void Kadath::Val_domain::std_base_xy_cart ( )

Sets the basis for the XY component of a 2-tensor in Cartesian coordinates.

Definition at line 370 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_base_xy_cart(), and zone.

◆ std_base_xz_cart()

void Kadath::Val_domain::std_base_xz_cart ( )

Sets the basis for the XZ component of a 2-tensor in Cartesian coordinates.

Definition at line 384 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_base_xz_cart(), and zone.

◆ std_base_y_cart()

void Kadath::Val_domain::std_base_y_cart ( )

Sets the basis for the Y-component of a vector in Cartesian coordinates.

Definition at line 476 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_base_y_cart(), Kadath::Domain::set_legendre_base_y_cart(), and zone.

◆ std_base_yz_cart()

void Kadath::Val_domain::std_base_yz_cart ( )

Sets the basis for the YZ component of a 2-tensor in Cartesian coordinates.

Definition at line 398 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_base_yz_cart(), and zone.

◆ std_base_z_cart()

void Kadath::Val_domain::std_base_z_cart ( )

Sets the basis for the Z-component of a vector in Cartesian coordinates.

Definition at line 492 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_base_z_cart(), Kadath::Domain::set_legendre_base_z_cart(), and zone.

◆ std_r_base()

void Kadath::Val_domain::std_r_base ( )

Sets the basis for the radius.

Definition at line 262 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_r_base(), Kadath::Domain::set_legendre_r_base(), and zone.

◆ std_todd_base()

void Kadath::Val_domain::std_todd_base ( )

Sets the basis for an odd function in $T$ (Critic case).

Definition at line 573 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_todd_base(), Kadath::Domain::set_legendre_todd_base(), and zone.

◆ std_xodd_base()

void Kadath::Val_domain::std_xodd_base ( )

Sets the basis for an odd function in $X$ (Critic case).

Definition at line 557 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_xodd_base(), Kadath::Domain::set_legendre_xodd_base(), and zone.

◆ std_xodd_todd_base()

void Kadath::Val_domain::std_xodd_todd_base ( )

Sets the basis for an odd function in $X$ and $T$ (Critic case).

Definition at line 589 of file val_domain.cpp.

References base, Kadath::Domain::get_type_base(), Kadath::Domain::set_cheb_xodd_todd_base(), Kadath::Domain::set_legendre_xodd_todd_base(), and zone.

◆ swap()

void Kadath::Val_domain::swap ( Val_domain so)
noexcept

Swaps the content with the source.

Definition at line 47 of file val_domain.cpp.

Friends And Related Function Documentation

◆ atan

Val_domain atan ( const Val_domain so)
friend

Operator arctangent.

Definition at line 581 of file val_domain_math.cpp.

◆ atanh

Val_domain atanh ( const Val_domain so)
friend

Operator atanh.

Definition at line 504 of file val_domain_math.cpp.

◆ bessel_jl

Val_domain bessel_jl ( const Val_domain so,
int  l 
)
friend

Operator Bessel function.

Definition at line 521 of file val_domain_math.cpp.

◆ bessel_yl

Val_domain bessel_yl ( const Val_domain so,
int  l 
)
friend

Operator Bessel function.

Definition at line 535 of file val_domain_math.cpp.

◆ cos

Val_domain cos ( const Val_domain so)
friend

Cosine operator.

Definition at line 74 of file val_domain_math.cpp.

◆ cosh

Val_domain cosh ( const Val_domain so)
friend

Hyperbolic cosine operator.

Definition at line 93 of file val_domain_math.cpp.

◆ diffmax

double diffmax ( const Val_domain aa,
const Val_domain bb 
)
friend

Maximal difference.

Definition at line 515 of file val_domain_math.cpp.

◆ exp

Val_domain exp ( const Val_domain so)
friend

Operator exponential.

Definition at line 474 of file val_domain_math.cpp.

◆ log

Val_domain log ( const Val_domain so)
friend

Operator logarithm.

Definition at line 493 of file val_domain_math.cpp.

◆ maxval

double maxval ( const Val_domain target)
friend

Maximal value.

Definition at line 592 of file val_domain_math.cpp.

◆ operator* [1/7]

Val_domain operator* ( const Val_domain a,
const Val_domain b 
)
friend

Operator *.

Definition at line 300 of file val_domain_math.cpp.

◆ operator* [2/7]

Val_domain operator* ( const Val_domain so,
double  x 
)
friend

Operator *.

Definition at line 318 of file val_domain_math.cpp.

◆ operator* [3/7]

Val_domain operator* ( const Val_domain so,
int  nn 
)
friend

Operator *.

Definition at line 335 of file val_domain_math.cpp.

◆ operator* [4/7]

Val_domain operator* ( const Val_domain so,
long int  nn 
)
friend

Operator *.

Definition at line 358 of file val_domain_math.cpp.

◆ operator* [5/7]

Val_domain operator* ( double  x,
const Val_domain so 
)
friend

Operator *.

Definition at line 331 of file val_domain_math.cpp.

◆ operator* [6/7]

Val_domain operator* ( int  nn,
const Val_domain so 
)
friend

Operator *.

Definition at line 354 of file val_domain_math.cpp.

◆ operator* [7/7]

Val_domain operator* ( long int  nn,
const Val_domain so 
)
friend

Operator *.

Definition at line 377 of file val_domain_math.cpp.

◆ operator+ [1/4]

Val_domain operator+ ( const Val_domain so)
friend

Operator + (unitary version)

Definition at line 133 of file val_domain_math.cpp.

◆ operator+ [2/4]

Val_domain operator+ ( const Val_domain a,
const Val_domain b 
)
friend

Operator +.

Definition at line 148 of file val_domain_math.cpp.

◆ operator+ [3/4]

Val_domain operator+ ( const Val_domain so,
double  x 
)
friend

Operator +.

Definition at line 195 of file val_domain_math.cpp.

◆ operator+ [4/4]

Val_domain operator+ ( double  x,
const Val_domain so 
)
friend

Operator +.

Definition at line 214 of file val_domain_math.cpp.

◆ operator- [1/4]

Val_domain operator- ( const Val_domain so)
friend

Operator - (unitary version)

Definition at line 138 of file val_domain_math.cpp.

◆ operator- [2/4]

Val_domain operator- ( const Val_domain a,
const Val_domain b 
)
friend

Operator -.

Definition at line 218 of file val_domain_math.cpp.

◆ operator- [3/4]

Val_domain operator- ( const Val_domain so,
double  x 
)
friend

Operator -.

Definition at line 263 of file val_domain_math.cpp.

◆ operator- [4/4]

Val_domain operator- ( double  x,
const Val_domain so 
)
friend

Operator -.

Definition at line 282 of file val_domain_math.cpp.

◆ operator/ [1/3]

Val_domain operator/ ( const Val_domain a,
const Val_domain b 
)
friend

Operator /.

Definition at line 380 of file val_domain_math.cpp.

◆ operator/ [2/3]

Val_domain operator/ ( const Val_domain so,
double  x 
)
friend

Operator /.

Definition at line 399 of file val_domain_math.cpp.

◆ operator/ [3/3]

Val_domain operator/ ( double  x,
const Val_domain so 
)
friend

Operator /.

Definition at line 412 of file val_domain_math.cpp.

◆ operator<<

ostream& operator<< ( ostream &  o,
const Val_domain so 
)
friend

Output operator.

Definition at line 653 of file val_domain.cpp.

◆ pow [1/2]

Val_domain pow ( const Val_domain so,
double  nn 
)
friend

Operator power (double version)

Definition at line 448 of file val_domain_math.cpp.

◆ pow [2/2]

Val_domain pow ( const Val_domain so,
int  n 
)
friend

Operator power (integer version)

Definition at line 428 of file val_domain_math.cpp.

◆ sin

Val_domain sin ( const Val_domain so)
friend

Sine operator.

Definition at line 61 of file val_domain_math.cpp.

◆ sinh

Val_domain sinh ( const Val_domain so)
friend

Hyperbolic sine operator.

Definition at line 113 of file val_domain_math.cpp.

◆ sqrt

Val_domain sqrt ( const Val_domain so)
friend

Operator square root.

Definition at line 460 of file val_domain_math.cpp.

Member Data Documentation

◆ base

Base_spectral Kadath::Val_domain::base
protected

Spectral basis of the field.

Definition at line 72 of file val_domain.hpp.

◆ c

Array<double>* Kadath::Val_domain::c
mutableprotected

Pointer on the Array of the values in the configuration space.

Definition at line 76 of file val_domain.hpp.

◆ cf

Array<double>* Kadath::Val_domain::cf
mutableprotected

Pointer on the Array of the values in the coefficients space.

Definition at line 77 of file val_domain.hpp.

◆ in_coef

bool Kadath::Val_domain::in_coef
mutableprotected

Is the field known in the coefficient space ?

Definition at line 79 of file val_domain.hpp.

◆ in_conf

bool Kadath::Val_domain::in_conf
mutableprotected

Is the field known in the configuration space ?

Definition at line 78 of file val_domain.hpp.

◆ is_zero

bool Kadath::Val_domain::is_zero
protected

Indicator used for null fields (for speed issues).

Definition at line 74 of file val_domain.hpp.

◆ p_der_abs

Memory_mapped_array<Val_domain*> Kadath::Val_domain::p_der_abs
mutableprotected

Pointers on the derivatives of the field with respect to the absolute Cartesian coordinates.

Definition at line 82 of file val_domain.hpp.

◆ p_der_var

Memory_mapped_array<Val_domain*> Kadath::Val_domain::p_der_var
mutableprotected

Pointers on the derivatives of the field with respect to the numerical coordinates.

Definition at line 81 of file val_domain.hpp.

◆ zone

const Domain* Kadath::Val_domain::zone
protected

Pointer to the associated Domain.

Definition at line 71 of file val_domain.hpp.


The documentation for this class was generated from the following files: