KADATH
Kadath::Domain_shell_surr Class Reference

Class for a spherical shell and a symmetry with respect to the plane $ z=0 $. More...

#include <spheric.hpp>

Inheritance diagram for Kadath::Domain_shell_surr:
Kadath::Domain_shell Kadath::Domain

Public Member Functions

 Domain_shell_surr (int num, int ttype, double r_int, double r_ext, const Point &cr, const Dim_array &nbr)
 Standard constructor : More...
 
 Domain_shell_surr (const Domain_shell_surr &)
 Copy constructor. More...
 
 Domain_shell_surr (int num, FILE *ff)
 Constructor from a file. More...
 
virtual void save (FILE *) const
 Saving function. More...
 
virtual double get_rmin () const
 Returns the minimum radius. More...
 
virtual double get_rmax () const
 Returns the maximum radius. More...
 
virtual bool is_in (const Point &xx, double prec=1e-13) const
 Check whether a point lies inside Domain. More...
 
virtual const Point absol_to_num (const Point &xxx) const
 Computes the numerical coordinates from the physical ones. More...
 
virtual const Point absol_to_num_bound (const Point &, int) const
 Computes the numerical coordinates from the physical ones for a point lying on a boundary. More...
 
virtual void do_der_abs_from_der_var (const Val_domain *const *const der_var, Val_domain **const der_abs) const
 Computes the derivative with respect to the absolute Cartesian coordinates from the derivative with respect to the numerical coordinates. More...
 
virtual Val_domain mult_r (const Val_domain &) const
 Multiplication by $ r$. More...
 
virtual Val_domain div_r (const Val_domain &) const
 Division by $ r$. More...
 
virtual Val_domain der_r (const Val_domain &) const
 Compute the radial derivative of a scalar field. More...
 
virtual Val_domain der_normal (const Val_domain &, int) const
 Normal derivative with respect to a given surface. More...
 
virtual ostream & print (ostream &o) const
 Delegate function to virtualize the << operator. More...
 
virtual Point get_center () const
 Returns the center. More...
 
virtual Base_spectral mult (const Base_spectral &, const Base_spectral &) const
 Method for the multiplication of two Base_spectral. More...
 
virtual Val_domain mult_cos_phi (const Val_domain &) const
 Multiplication by $ \cos \varphi$. More...
 
virtual Val_domain mult_sin_phi (const Val_domain &) const
 Multiplication by $ \sin \varphi$. More...
 
virtual Val_domain mult_cos_theta (const Val_domain &) const
 Multiplication by $ \cos \theta$. More...
 
virtual Val_domain mult_sin_theta (const Val_domain &) const
 Multiplication by $ \sin \theta$. More...
 
virtual Val_domain div_sin_theta (const Val_domain &) const
 Division by $ \sin \theta$. More...
 
virtual Val_domain div_cos_theta (const Val_domain &) const
 Division by $ \cos \theta$. More...
 
virtual Tensor change_basis_cart_to_spher (int dd, const Tensor &) const
 Changes the tensorial basis from Cartsian to spherical in a given domain. More...
 
virtual Tensor change_basis_spher_to_cart (int dd, const Tensor &) const
 Changes the tensorial basis from spherical to Cartesian in a given domain. More...
 
virtual Val_domain div_xp1 (const Val_domain &) const
 Division by $ (x+1)$. More...
 
virtual Val_domain div_1mrsL (const Val_domain &) const
 Division by $ 1 - r/L$. More...
 
virtual Val_domain mult_1mrsL (const Val_domain &) const
 Multiplication by $ 1 - r/L$. More...
 
virtual Val_domain der_partial_var (const Val_domain &, int) const
 Partial derivative with respect to a coordinate. More...
 
virtual Val_domain ddp (const Val_domain &) const
 Compute the second derivative with respect to $\varphi$ of a scalar field. More...
 
virtual Val_domain div_xm1 (const Val_domain &) const
 Division by $ (x-1)$. More...
 
virtual Val_domain mult_xm1 (const Val_domain &) const
 Multiplication by $ (x-1)$. More...
 
virtual Val_domain div_1mx2 (const Val_domain &) const
 Division by $ (1-x^2)$. More...
 
virtual Val_domain laplacian2 (const Val_domain &, int) const
 Computes the ordinary flat 2dè- Laplacian for a scalar field with an harmonic index m. More...
 
virtual Val_domain dt (const Val_domain &) const
 Compute the derivative with respect to $\theta$ of a scalar field. More...
 
virtual double multipoles_sym (int, int, int, const Val_domain &, const Array< double > &) const
 Extraction of a given multipole, at some boundary, for a symmetric scalar function. More...
 
virtual Term_eq multipoles_sym (int, int, int, const Term_eq &, const Array< double > &) const
 Extraction of a given multipole, at some boundary, for a symmetric scalar function. More...
 
virtual double multipoles_asym (int, int, int, const Val_domain &, const Array< double > &) const
 Extraction of a given multipole, at some boundary, for a anti-symmetric scalar function. More...
 
virtual Term_eq multipoles_asym (int, int, int, const Term_eq &, const Array< double > &) const
 Extraction of a given multipole, at some boundary, for an anti-symmetric scalar function. More...
 
virtual Term_eq radial_part_sym (const Space &, int, int, const Term_eq &, Term_eq(*f)(const Space &, int, int, const Term_eq &, const Param &), const Param &) const
 Gives some radial fit for a given multipole, intended for symmetric scalar function. More...
 
virtual Term_eq radial_part_asym (const Space &, int, int, const Term_eq &, Term_eq(*f)(const Space &, int, int, const Term_eq &, const Param &), const Param &) const
 Gives some radial fit for a given multipole, intended for anti-symmetric scalar function. More...
 
virtual Term_eq harmonics_sym (const Term_eq &, const Term_eq &, int, Term_eq(*f)(const Space &, int, int, const Term_eq &, const Param &), const Param &, const Array< double > &) const
 Fit, spherical harmonic by spherical harmonic, for a symmetric function. More...
 
virtual Term_eq harmonics_asym (const Term_eq &, const Term_eq &, int, Term_eq(*f)(const Space &, int, int, const Term_eq &, const Param &), const Param &, const Array< double > &) const
 Fit, spherical harmonic by spherical harmonic, for an anti-symmetric function. More...
 
virtual Term_eq der_radial_part_sym (const Space &, int, int, const Term_eq &, Term_eq(*f)(const Space &, int, int, const Term_eq &, const Param &param), const Param &) const
 Gives some radial fit for a given multipole, intended for the radial derivative of a symmetric scalar function. More...
 
virtual Term_eq der_radial_part_asym (const Space &, int, int, const Term_eq &, Term_eq(*f)(const Space &, int, int, const Term_eq &, const Param &), const Param &) const
 Gives some radial fit for a given multipole, intended for the radial derivative of an anti-symmetric scalar function. More...
 
virtual Term_eq der_harmonics_sym (const Term_eq &, const Term_eq &, int, Term_eq(*f)(const Space &, int, int, const Term_eq &, const Param &), const Param &, const Array< double > &) const
 Fit, spherical harmonic by spherical harmonic, for the radial derivative of a symmetric function. More...
 
virtual Term_eq der_harmonics_asym (const Term_eq &, const Term_eq &, int, Term_eq(*f)(const Space &, int, int, const Term_eq &, const Param &), const Param &, const Array< double > &) const
 Fit, spherical harmonic by spherical harmonic, for the radial derivative of an anti-symmetric function. More...
 
virtual Term_eq der_multipoles_sym (int, int, int, const Term_eq &, const Array< double > &) const
 Extraction of a given multipole, at some boundary, for the radial derivative a symmetric scalar function. More...
 
virtual Term_eq der_multipoles_asym (int, int, int, const Term_eq &, const Array< double > &) const
 Extraction of a given multipole, at some boundary, for the radial derivative of an anti-symmetric scalar function. More...
 
Term_eq bc_waves (const Term_eq &gamma, const Term_eq &omega) const
 Gives an matching of the spatial metric, based on homogeneous solutions of outgoing waves. More...
 
Tensor bc_waves (int dom, const Tensor &gamma, const double omega, bool toinf=true) const
 Gives an matching of the spatial metric, based on homogeneous solutions of outgoing waves. More...
 
Val_domain fitschwarz (const Val_domain &, int) const
 Fit some field with a $1/r$ decay (Val_domain version). More...
 
Term_eq fitschwarz (const Term_eq &, int) const
 Fit some field with a $1/r$ decay (Term_eq version). More...
 
virtual void find_other_dom (int, int, int &, int &) const
 Gives the informations corresponding the a touching neighboring domain. More...
 
virtual double val_boundary (int, const Val_domain &, const Index &) const
 Computes the value of a field at a boundary. More...
 
virtual int nbr_unknowns (const Tensor &, int) const
 Computes the number of true unknowns of a Tensor, in a given domain. More...
 
int nbr_unknowns_val_domain_mquant (const Val_domain &so, int mquant) const
 Computes the number of true unknowns of a Val_domain. More...
 
int nbr_unknowns_val_domain (const Val_domain &so, int mlim) const
 Computes the number of true unknowns of a Val_domain. More...
 
virtual Array< int > nbr_conditions (const Tensor &, int, int, int n_cmp=-1, Array< int > **p_cmp=0x0) const
 Computes number of discretized equations associated with a given tensorial equation in the bulk. More...
 
int nbr_conditions_val_domain_mquant (const Val_domain &so, int mquant, int order) const
 Computes number of discretized equations associated with a given tensorial equation in the bulk. More...
 
int nbr_conditions_val_domain (const Val_domain &so, int mlim, int order) const
 Computes number of discretized equations associated with a given tensorial equation in the bulk. More...
 
virtual Array< int > nbr_conditions_boundary (const Tensor &, int, int, int n_cmp=-1, Array< int > **p_cmp=0x0) const
 Computes number of discretized equations associated with a given tensorial equation on a boundary. More...
 
int nbr_conditions_val_domain_boundary_mquant (const Val_domain &so, int mquant) const
 Computes number of discretized equations associated with a given equation on a boundary. More...
 
int nbr_conditions_val_domain_boundary (const Val_domain &so, int mlim) const
 Computes number of discretized equations associated with a given equation on a boundary. More...
 
virtual void export_tau (const Tensor &, int, int, Array< double > &, int &, const Array< int > &, int n_cmp=-1, Array< int > **p_cmp=0x0) const
 Exports all the residual equations corresponding to a tensorial one in the bulk. More...
 
void export_tau_val_domain_mquant (const Val_domain &eq, int mquant, int order, Array< double > &res, int &pos_res, int ncond) const
 Exports a residual equation in the bulk. More...
 
void export_tau_val_domain (const Val_domain &eq, int mlim, int order, Array< double > &res, int &pos_res, int ncond) const
 Exports a residual equation in the bulk. More...
 
virtual void export_tau_boundary (const Tensor &, int, int, Array< double > &, int &, const Array< int > &, int n_cmp=-1, Array< int > **p_cmp=0x0) const
 Exports all the residual equations corresponding to a tensorial one on a given boundary It makes use of the various Galerkin basis used. More...
 
void export_tau_val_domain_boundary_mquant (const Val_domain &eq, int mquant, int bound, Array< double > &res, int &pos_res, int ncond) const
 Exports all the residual equations corresponding to a tensorial one on a given boundary It makes use of the various Galerkin basis used. More...
 
void export_tau_val_domain_boundary (const Val_domain &eq, int mlim, int bound, Array< double > &res, int &pos_res, int ncond) const
 Exports all the residual equations corresponding to a tensorial one on a given boundary It makes use of the various Galerkin basis used. More...
 
virtual void affecte_tau (Tensor &, int, const Array< double > &, int &) const
 Affects some coefficients to a Tensor. More...
 
void affecte_tau_val_domain_mquant (Val_domain &so, int mquant, const Array< double > &cf, int &pos_cf) const
 Affects some coefficients to a Val_domain. More...
 
void affecte_tau_val_domain (Val_domain &so, int mlim, const Array< double > &cf, int &pos_cf) const
 Affects some coefficients to a Val_domain. More...
 
virtual void affecte_tau_one_coef (Tensor &, int, int, int &) const
 Sets at most one coefficient of a Tensor to 1. More...
 
void affecte_tau_one_coef_val_domain_mquant (Val_domain &so, int mquant, int cc, int &pos_cf) const
 Sets at most one coefficient of a Val_domain to 1. More...
 
void affecte_tau_one_coef_val_domain (Val_domain &so, int mlim, int cc, int &pos_cf) const
 Sets at most one coefficient of a Val_domain to 1. More...
 
virtual void export_tau_boundary_exception (const Tensor &, int, int, Array< double > &, int &, const Array< int > &, const Param &, int, const Tensor &, int n_cmp=-1, Array< int > **p_cmp=0x0) const
 Exports all the residual equations corresponding to one tensorial one on a given boundary, excepted for some coefficients where another equation is used. More...
 
void export_tau_val_domain_boundary_exception_mquant (const Val_domain &eq, int mquant, int bound, Array< double > &res, int &pos_res, int ncond, const Param &param, int type_exception, const Val_domain &exception) const
 Exports all the residual equations corresponding to one tensorial one on a given boundary, excepted for some coefficients where another equation is used. More...
 
void export_tau_val_domain_boundary_exception (const Val_domain &eq, int mlim, int bound, Array< double > &res, int &pos_res, int ncond, const Param &param, int type_exception, const Val_domain &exception) const
 Exports all the residual equations corresponding to one tensorial one on a given boundary, excepted for some coefficients where another equation is used. More...
 
virtual int nbr_points_boundary (int, const Base_spectral &) const
 Computes the number of relevant collocation points on a boundary. More...
 
virtual void do_which_points_boundary (int, const Base_spectral &, Index **, int) const
 Lists all the indices corresponding to true collocation points on a boundary. More...
 
virtual Tensor import (int, int, int, const Array< int > &, Tensor **) const
 Gets the value of a Tensor by importing data from neighboring domains, on a boundary. More...
 
Term_eq import (int numdom, int bound, int n_ope, Term_eq **parts) const
 Gets the value of a Term_eq by importing data from neighboring domains, on a boundary. More...
 
virtual double integ_volume (const Val_domain &so) const
 Volume integral. More...
 
virtual Term_eq derive_flat_spher (int, char, const Term_eq &, const Metric *) const
 Computes the flat derivative of a Term_eq, in spherical orthonormal coordinates. More...
 
virtual Term_eq derive_flat_cart (int, char, const Term_eq &, const Metric *) const
 Computes the flat derivative of a Term_eq, in Cartesian coordinates. More...
 
virtual Term_eq derive_flat_mtz (int, char, const Term_eq &, const Metric *) const
 Computes the flat derivative of a Term_eq, in spherical coordinates where the constant radii sections have a negative curvature. More...
 
virtual double integ (const Val_domain &so, int bound) const
 Surface integral on a given boundary. More...
 
int get_num () const
 Returns the index of the curent domain. More...
 
Dim_array const & get_nbr_points () const
 Returns the number of points. More...
 
Dim_array const & get_nbr_coefs () const
 Returns the number of coefficients. More...
 
int get_ndim () const
 Returns the number of dimensions. More...
 
int get_type_base () const
 Returns the type of the basis. More...
 
Array< double > const & get_coloc (int) const
 Returns the colocation points for a given variable. More...
 
virtual const Val_domainget_chi () const
 Returns the variable $ \chi $. More...
 
virtual const Val_domainget_eta () const
 Returns the variable $ \eta $. More...
 
virtual const Val_domainget_X () const
 Returns the variable $ X $. More...
 
virtual const Val_domainget_T () const
 Returns the variable $ T $. More...
 
Val_domain const & get_absol (int i) const
 Returns the absolute coordinates. More...
 
Val_domain const & get_radius () const
 Returns the generalized radius. More...
 
Val_domain const & get_cart (int i) const
 Returns a Cartesian coordinates. More...
 
Val_domain const & get_cart_surr (int i) const
 Returns a Cartesian coordinates divided by the radius. More...
 
virtual Val_domain div_x (const Val_domain &) const
 Division by $ x$. More...
 
virtual Val_domain div_chi (const Val_domain &) const
 Division by $ \chi$. More...
 
virtual Val_domain div_sin_chi (const Val_domain &) const
 Division by $ \sin \chi$ . More...
 
virtual Val_domain mult_cos_time (const Val_domain &) const
 Multiplication by $ \cos \omega t$. More...
 
virtual Val_domain mult_sin_time (const Val_domain &) const
 Multiplication by $ \sin \omega t$. More...
 
virtual Val_domain laplacian (const Val_domain &so, int m) const
 Computes the ordinary flat Laplacian for a scalar field with an harmonic index m. More...
 
virtual Val_domain der_t (const Val_domain &so) const
 Compute the derivative with respect to $ \theta$ of a scalar field. More...
 
virtual Val_domain der_p (const Val_domain &so) const
 Compute the derivative with respect to $ \varphi$ of a scalar field. More...
 
virtual Val_domain der_r_rtwo (const Val_domain &so) const
 Compute the radial derivative multiplied by $ r^2$ of a scalar field. More...
 
virtual Val_domain srdr (const Val_domain &so) const
 Compute the $ f' / r$ of a scalar field $ f$. More...
 
virtual Val_domain ddr (const Val_domain &so) const
 Compute the second radial derivative w of a scalar field. More...
 
virtual Val_domain ddt (const Val_domain &so) const
 Compute the second derivative with respect to $\theta$ of a scalar field. More...
 
virtual Val_domain dtime (const Val_domain &so) const
 Computes the time derivative of a field. More...
 
virtual Val_domain ddtime (const Val_domain &so) const
 Computes the second time derivative of a field. More...
 
virtual const Term_eqgive_normal (int bound, int tipe) const
 Returns the vector normal to a surface. More...
 
virtual Term_eq der_normal_term_eq (const Term_eq &so, int bound) const
 Returns the normal derivative of a Term_eq. More...
 
virtual Term_eq div_1mx2_term_eq (const Term_eq &) const
 Returns the division by $1-x^2$ of a Term_eq. More...
 
virtual Term_eq lap_term_eq (const Term_eq &so, int m) const
 Returns the flat Laplacian of Term_eq, for a given harmonic. More...
 
virtual Term_eq lap2_term_eq (const Term_eq &so, int m) const
 Returns the flat 2d-Laplacian of Term_eq, for a given harmonic. More...
 
virtual Term_eq mult_r_term_eq (const Term_eq &so) const
 Multiplication by $r$ of a Term_eq. More...
 
virtual Term_eq integ_volume_term_eq (const Term_eq &so) const
 Volume integral of a Term_eq. More...
 
virtual Term_eq grad_term_eq (const Term_eq &so) const
 Gradient of Term_eq. More...
 
virtual Term_eq div_r_term_eq (const Term_eq &) const
 Division by $r$ of a Term_eq. More...
 
virtual Term_eq integ_term_eq (const Term_eq &so, int bound) const
 Surface integral of a Term_eq. More...
 
virtual Term_eq dr_term_eq (const Term_eq &so) const
 Radial derivative of a Term_eq. More...
 
virtual Term_eq dtime_term_eq (const Term_eq &so) const
 Time derivative of a Term_eq. More...
 
virtual Term_eq ddtime_term_eq (const Term_eq &so) const
 Second time derivative of a Term_eq. More...
 
virtual int nbr_unknowns_from_adapted () const
 Gives the number of unknowns coming from the variable shape of the domain. More...
 
virtual void vars_to_terms () const
 The Term_eq describing the variable shape of the Domain are updated. More...
 
virtual void affecte_coef (int &conte, int cc, bool &found) const
 The variation of the functions describing the shape of the Domain are affected from the unknowns of the system. More...
 
virtual void xx_to_vars_from_adapted (Val_domain &shape, const Array< double > &xx, int &conte) const
 Computes the new boundary of a Domain from a set of values. More...
 
virtual void xx_to_vars_from_adapted (double bound, const Array< double > &xx, int &conte) const
 Computes the new boundary of a Domain from a set of values. More...
 
virtual void xx_to_ders_from_adapted (const Array< double > &xx, int &conte) const
 Affects the derivative part of variable a Domain from a set of values. More...
 
virtual void update_term_eq (Term_eq *so) const
 Update the value of a field, after the shape of the Domain has been changed by the system. More...
 
virtual void update_variable (const Val_domain &shape, const Scalar &oldval, Scalar &newval) const
 Update the value of a scalar, after the shape of the Domain has been changed by the system. More...
 
virtual void update_variable (double bound, const Scalar &oldval, Scalar &newval) const
 Update the value of a scalar, after the shape of the Domain has been changed by the system. More...
 
virtual void update_constante (const Val_domain &shape, const Scalar &oldval, Scalar &newval) const
 Update the value of a scalar, after the shape of the Domain has been changed by the system. More...
 
virtual void update_constante (double bound, const Scalar &oldval, Scalar &newval) const
 Update the value of a scalar, after the shape of the Domain has been changed by the system. More...
 
virtual void update_mapping (const Val_domain &shape)
 Updates the variables parts of the Domain. More...
 
virtual void update_mapping (double bound)
 Updates the variables parts of the Domain. More...
 
virtual void set_val_inf (Val_domain &so, double xx) const
 Sets the value at infinity of a Val_domain : not implemented for this type of Domain. More...
 
virtual Val_domain mult_x (const Val_domain &so) const
 Multiplication by $ x$. More...
 
virtual double integrale (const Val_domain &so) const
 Volume integral. More...
 
virtual Term_eq partial_spher (const Term_eq &so) const
 Computes the part of the gradient containing the partial derivative of the field, in spherical orthonormal coordinates. More...
 
virtual Term_eq partial_cart (const Term_eq &so) const
 Computes the part of the gradient containing the partial derivative of the field, in Cartesian coordinates. More...
 
virtual Term_eq partial_mtz (const Term_eq &so) const
 Computes the part of the gradient containing the partial derivative of the field, in orthonormal coordinates where the constant radius sections have negative curvature. More...
 
virtual Term_eq connection_spher (const Term_eq &so) const
 Computes the part of the gradient involving the connections, in spherical orthonormal coordinates. More...
 
virtual Term_eq connection_mtz (const Term_eq &so) const
 Computes the part of the gradient involving the connections, in spherical coordinates where the constant radius sections have negative curvature. More...
 
virtual Array< int > nbr_conditions_array (const Tensor &eq, int dom, const Array< int > &order, int n_cmp=-1, Array< int > **p_cmp=0x0) const
 Computes number of discretized equations associated with a given tensorial equation in the bulk. More...
 
virtual Array< int > nbr_conditions_boundary_array (const Tensor &eq, int dom, int bound, const Array< int > &order, int n_cmp=-1, Array< int > **p_cmp=0x0) const
 Computes number of discretized equations associated with a given tensorial equation on a boundary. More...
 
virtual void export_tau_array (const Tensor &eq, int dom, const Array< int > &order, Array< double > &res, int &pos_res, const Array< int > &ncond, int n_cmp=-1, Array< int > **p_cmp=0x0) const
 Exports all the residual equations corresponding to one tensorial one in the bulk. More...
 
virtual void export_tau_boundary_array (const Tensor &eq, int dom, int bound, const Array< int > &order, Array< double > &res, int &pos_res, const Array< int > &ncond, int n_cmp=-1, Array< int > **p_cmp=0x0) const
 Exports all the residual equations corresponding to one tensorial one on a given boundary It makes use of the various Galerkin basis used. More...
 
virtual Array< int > nbr_conditions_boundary_one_side (const Tensor &eq, int dom, int bound, int n_cmp=-1, Array< int > **p_cmp=0x0) const
 Computes number of discretized equations associated with a given tensorial equation on a boundary. More...
 
virtual void export_tau_boundary_one_side (const Tensor &eq, int dom, int bound, Array< double > &res, int &pos_res, const Array< int > &ncond, int n_cmp=-1, Array< int > **p_cmp=0x0) const
 Exports all the residual equations corresponding to one tensorial one on a given boundary. More...
 
virtual void filter (Tensor &tt, int dom, double treshold) const
 Puts to zero all the coefficients below a given treshold. More...
 

Protected Member Functions

virtual void del_deriv ()
 Destroys the derivated members (like coloc, cart and radius), when changing the type of colocation points. More...
 
Term_eq do_comp_by_comp (const Term_eq &so, Val_domain(Domain::*pfunc)(const Val_domain &) const) const
 Function used to apply the same operation to all the components of a tensor, in the current domain. More...
 
Term_eq do_comp_by_comp_with_int (const Term_eq &so, int val, Val_domain(Domain::*pfunc)(const Val_domain &, int) const) const
 Function used to apply the same operation to all the components of a tensor, in the current domain. More...
 

Protected Attributes

int num_dom
 Number of the current domain (used by the Space) More...
 
int ndim
 Number of dimensions. More...
 
Dim_array nbr_points
 Number of colocation points. More...
 
Dim_array nbr_coefs
 Number of coefficients. More...
 
int type_base
 Type of colocation point : More...
 
Memory_mapped_array< Array< double > * > coloc
 Colocation points in each dimension (stored in ndim 1d- arrays) More...
 
Memory_mapped_array< Val_domain * > absol
 Asbolute coordinates (if defined ; usually Cartesian-like) More...
 
Memory_mapped_array< Val_domain * > cart
 Cartesian coordinates. More...
 
Val_domainradius
 The generalized radius. More...
 
Memory_mapped_array< Val_domain * > cart_surr
 Cartesian coordinates divided by the radius. More...
 

Private Member Functions

virtual void do_absol () const
 Computes the absolute coordinates. More...
 
virtual void do_radius () const
 Computes the generalized radius. More...
 
virtual void do_cart () const
 Computes the Cartesian coordinates. More...
 
virtual void do_cart_surr () const
 Computes the Cartesian coordinates over the radius. More...
 
virtual void set_cheb_base (Base_spectral &so) const
 Sets the base to the standard one for Chebyshev polynomials. More...
 
virtual void set_cheb_base_with_m (Base_spectral &so, int m) const
 Gives the standard base using Chebyshev polynomials. More...
 
virtual void set_legendre_base (Base_spectral &so) const
 Sets the base to the standard one for Legendre polynomials. More...
 
virtual void set_anti_cheb_base (Base_spectral &so) const
 Sets the base to the standard one for Chebyshev polynomials for functions antisymetric in $ z=0 $ The bases are : More...
 
virtual void set_anti_legendre_base (Base_spectral &so) const
 Sets the base to the standard one for Legendre polynomials for functions antisymetric in $ z=0 $ The bases are : More...
 
virtual void set_cheb_base_r_spher (Base_spectral &) const
 Gives the base using Chebyshev polynomials, for the radial component of a vector. More...
 
virtual void set_cheb_base_t_spher (Base_spectral &) const
 Gives the base using Chebyshev polynomials, for the $ \theta$ component of a vector. More...
 
virtual void set_cheb_base_p_spher (Base_spectral &) const
 Gives the base using Chebyshev polynomials, for the $ \varphi$ component of a vector. More...
 
virtual void set_cheb_base_r_mtz (Base_spectral &) const
 Gives the base using Chebyshev polynomials, for the radial component of a vector in the MTZ setting. More...
 
virtual void set_cheb_base_t_mtz (Base_spectral &) const
 Gives the base using Chebyshev polynomials, for the $ \theta$ component of a vector in the MTZ setting. More...
 
virtual void set_cheb_base_p_mtz (Base_spectral &) const
 Gives the base using Chebyshev polynomials, for the $ \varphi$ component of a vector in the MTZ setting. More...
 
virtual void set_legendre_base_r_spher (Base_spectral &) const
 Gives the base using Legendre polynomials, for the radial component of a vector. More...
 
virtual void set_legendre_base_t_spher (Base_spectral &) const
 Gives the base using Legendre polynomials, for the $ \theta$ component of a vector. More...
 
virtual void set_legendre_base_p_spher (Base_spectral &) const
 Gives the base using Legendre polynomials, for the $ \varphi$ component of a vector. More...
 
virtual void set_legendre_base_r_mtz (Base_spectral &) const
 Gives the base using Legendre polynomials, for the radial component of a vector in the MTZ context. More...
 
virtual void set_legendre_base_t_mtz (Base_spectral &) const
 Gives the base using Legendre polynomials, for the $ \theta$ component of a vector in the MTZ context. More...
 
virtual void set_legendre_base_p_mtz (Base_spectral &) const
 Gives the base using Legendre polynomials, for the $ \varphi$ component of a vector in the MTZ context. More...
 
virtual void set_cheb_r_base (Base_spectral &) const
 Gives the base using odd Chebyshev polynomials$ for the radius. More...
 
virtual void set_legendre_r_base (Base_spectral &) const
 Gives the base using odd Legendre polynomials$ for the radius. More...
 
virtual void do_coloc ()
 Computes the colocation points. More...
 
virtual int give_place_var (char *) const
 Translates a name of a coordinate into its corresponding numerical name. More...
 
virtual void set_legendre_base_with_m (Base_spectral &so, int m) const
 Gives the stnadard base using Legendre polynomials. More...
 
virtual void set_anti_cheb_base_with_m (Base_spectral &so, int m) const
 Gives the base using Chebyshev polynomials, for functions antisymetric with respect to $z$ . More...
 
virtual void set_anti_legendre_base_with_m (Base_spectral &so, int m) const
 Gives the base using Legendre polynomials, for functions antisymetric with respect to $z$. More...
 
virtual void set_cheb_base_rt_spher (Base_spectral &so) const
 Gives the base using Chebyshev polynomials, for the $(r, \theta)$ component of a 2-tensor. More...
 
virtual void set_cheb_base_rp_spher (Base_spectral &so) const
 Gives the base using Chebyshev polynomials, for the $(r, \varphi)$ component of a 2-tensor. More...
 
virtual void set_cheb_base_tp_spher (Base_spectral &so) const
 Gives the base using Chebyshev polynomials, for the $(\theta, \varphi)$ component of a 2-tensor. More...
 
virtual void set_cheb_base_x_cart (Base_spectral &so) const
 Gives the base using Chebyshev polynomials, for the $ x$ component of a vector. More...
 
virtual void set_cheb_base_y_cart (Base_spectral &so) const
 Gives the base using Chebyshev polynomials, for the $ y$ component of a vector. More...
 
virtual void set_cheb_base_z_cart (Base_spectral &so) const
 Gives the base using Chebyshev polynomials, for the $ z$ component of a vector. More...
 
virtual void set_cheb_base_xy_cart (Base_spectral &so) const
 Gives the base using Chebyshev polynomials, for the $ (x,y) $ component of a vector. More...
 
virtual void set_cheb_base_xz_cart (Base_spectral &so) const
 Gives the base using Chebyshev polynomials, for the $ (x,z) $ component of a vector. More...
 
virtual void set_cheb_base_yz_cart (Base_spectral &so) const
 Gives the base using Chebyshev polynomials, for the $ (y, z) $ component of a vector. More...
 
virtual void set_legendre_base_x_cart (Base_spectral &so) const
 Gives the base using Legendre polynomials, for the $ x$ component of a vector. More...
 
virtual void set_legendre_base_y_cart (Base_spectral &so) const
 Gives the base using Legendre polynomials, for the $ y$ component of a vector. More...
 
virtual void set_legendre_base_z_cart (Base_spectral &so) const
 Gives the base using Legendre polynomials, for the $ z$ component of a vector. More...
 
virtual void set_cheb_xodd_base (Base_spectral &so) const
 Gives the base using Chebyshev polynomials, for odd functions in $ X$ (critic space case) More...
 
virtual void set_legendre_xodd_base (Base_spectral &so) const
 Gives the base using Legendre polynomials, for odd functions in $ X$ (critic space case) More...
 
virtual void set_cheb_todd_base (Base_spectral &so) const
 Gives the base using Chebyshev polynomials, for odd functions in $ T$ (critic space case) More...
 
virtual void set_legendre_todd_base (Base_spectral &so) const
 Gives the base using Legendre polynomials, for odd functions in $ T$ (critic space case) More...
 
virtual void set_cheb_xodd_todd_base (Base_spectral &so) const
 Gives the base using Chebyshev polynomials, for odd functions in $ X$ and in $ T$ (critic space case) More...
 
virtual void set_legendre_xodd_todd_base (Base_spectral &so) const
 Gives the base using Chebyshev polynomials, for odd functions in $ X$ and in $ T$(critic space case) More...
 
virtual void set_cheb_base_odd (Base_spectral &so) const
 Gives the base using odd Chebyshev polynomials$. More...
 
virtual void set_legendre_base_odd (Base_spectral &so) const
 Gives the base using odd Legendre polynomials$. More...
 

Private Attributes

double alpha
 Relates the numerical to the physical radii. More...
 
double beta
 Relates the numerical to the physical radii. More...
 
Point center
 Absolute coordinates of the center. More...
 

Detailed Description

Class for a spherical shell and a symmetry with respect to the plane $ z=0 $.

A mapping in $ 1/r $ is used for the radial coordinate

Definition at line 1597 of file spheric.hpp.

Constructor & Destructor Documentation

◆ Domain_shell_surr() [1/3]

Kadath::Domain_shell_surr::Domain_shell_surr ( int  num,
int  ttype,
double  r_int,
double  r_ext,
const Point cr,
const Dim_array nbr 
)

Standard constructor :

Parameters
num: index of the current domain.
ttype: Chebyshev or Legendre type of spectral expansion.
r_int[input] : inner radius of the shell.
r_ext[input] : outer radius of the shell.
cr[input] : center of the spherical coordinates.
nbr[nbr] : number of points in each dimension.

Definition at line 28 of file domain_shell_surr.cpp.

References Kadath::Domain_shell::alpha, Kadath::Domain_shell::beta, Kadath::Domain_shell::do_coloc(), Kadath::Dim_array::get_ndim(), and Kadath::Point::get_ndim().

◆ Domain_shell_surr() [2/3]

Kadath::Domain_shell_surr::Domain_shell_surr ( const Domain_shell_surr so)

Copy constructor.

Definition at line 39 of file domain_shell_surr.cpp.

References Kadath::Domain_shell::alpha, and Kadath::Domain_shell::beta.

◆ Domain_shell_surr() [3/3]

Kadath::Domain_shell_surr::Domain_shell_surr ( int  num,
FILE *  ff 
)

Constructor from a file.

Parameters
num: number of the domain (used by the Space).
fffile containd the domain, generated by the save function.

Definition at line 48 of file domain_shell_surr.cpp.

References Kadath::Domain_shell::do_coloc().

Member Function Documentation

◆ absol_to_num()

const Point Kadath::Domain_shell_surr::absol_to_num ( const Point xxx) const
virtual

Computes the numerical coordinates from the physical ones.

  • $ x = \displaystyle\frac{\sqrt{(X-X_c)^2+(Y-Y_c)^2+(Z-Z_c)^2}-\beta}{\alpha} $
  • $ \theta^\star = {\rm atan} (\displaystyle\frac{\sqrt{(X-X_c)^2+(Y-Y_c)^2}}{Z-Z_c}) $
  • $ \varphi^\star = {\rm atan} (\displaystyle\frac{Y-Y_c}{Z-Z_c}) $
    Parameters
    xxx[input] : the absolute Cartesian $ (X, Y, Z) $ coordinates of the point.
    Returns
    the numerical coordinates $ (x, \theta^\star, \varphi^\star) $.

Reimplemented from Kadath::Domain_shell.

Definition at line 158 of file domain_shell_surr.cpp.

References Kadath::Domain_shell::alpha, Kadath::Domain_shell::beta, Kadath::Domain_shell::center, is_in(), and Kadath::Point::set().

◆ absol_to_num_bound()

const Point Kadath::Domain_shell_surr::absol_to_num_bound ( const Point xxx,
int  bound 
) const
virtual

Computes the numerical coordinates from the physical ones for a point lying on a boundary.

Parameters
xxx[input] : the absolute Cartesian coordinates of the point.
bound[input] : the boundary.
Returns
the numerical coordinates.

Reimplemented from Kadath::Domain_shell.

Definition at line 188 of file domain_shell_surr.cpp.

References Kadath::Domain_shell::center, is_in(), and Kadath::Point::set().

◆ affecte_coef()

virtual void Kadath::Domain::affecte_coef ( int &  conte,
int  cc,
bool &  found 
) const
inlinevirtualinherited

The variation of the functions describing the shape of the Domain are affected from the unknowns of the system.

Parameters
conte: current position if the unknowns.
cc: position of the unknown to be set.
found: true if the index was indeed corresponding to one of the coefficients of the variable domain.

Reimplemented in Kadath::Domain_shell_outer_homothetic, Kadath::Domain_shell_inner_homothetic, Kadath::Domain_polar_shell_outer_adapted, Kadath::Domain_polar_shell_inner_adapted, Kadath::Domain_shell_outer_adapted, and Kadath::Domain_shell_inner_adapted.

Definition at line 906 of file space.hpp.

◆ affecte_tau()

void Kadath::Domain_shell::affecte_tau ( Tensor so,
int  dom,
const Array< double > &  cf,
int &  pos_cf 
) const
virtualinherited

Affects some coefficients to a Tensor.

It takes into account the various symmetries and regularity conditions (by means of Garlekin basis).

Parameters
so: the Tensor to be affected.
dom: the domain considered (should be the same as num_dom).
cf: Array of the coefficients used.
pos_cf: current position in the array of coefficients.

Reimplemented from Kadath::Domain.

Definition at line 224 of file domain_shell_affecte_tau.cpp.

References Kadath::Domain_shell::affecte_tau_val_domain(), Kadath::Domain_shell::affecte_tau_val_domain_mquant(), Kadath::Tensor::get_basis(), Kadath::Base_tensor::get_basis(), Kadath::Space::get_domain(), Kadath::Param_tensor::get_m_quant(), Kadath::Tensor::get_n_comp(), Kadath::Tensor::get_parameters(), Kadath::Tensor::get_space(), Kadath::Tensor::get_valence(), Kadath::Tensor::is_m_quant_affected(), Kadath::Tensor::set(), and Kadath::Scalar::set_domain().

◆ affecte_tau_one_coef()

void Kadath::Domain_shell::affecte_tau_one_coef ( Tensor so,
int  dom,
int  cc,
int &  pos_cf 
) const
virtualinherited

Sets at most one coefficient of a Tensor to 1.

It takes into account the various symmetries and regularity conditions (by means of Garlekin basis).

Parameters
so: the Tensor to be affected. It is set to zero if cc does not corresponds to another field.
dom: the domain considered (should be the same as num_dom).
cc: location, in the overall system, of the coefficient to be set to 1.
pos_cf: current position.

Reimplemented from Kadath::Domain.

Definition at line 179 of file domain_shell_affecte_tau_one_coef.cpp.

References Kadath::Domain_shell::affecte_tau_one_coef_val_domain(), Kadath::Domain_shell::affecte_tau_one_coef_val_domain_mquant(), Kadath::Tensor::get_basis(), Kadath::Base_tensor::get_basis(), Kadath::Space::get_domain(), Kadath::Param_tensor::get_m_quant(), Kadath::Tensor::get_n_comp(), Kadath::Tensor::get_parameters(), Kadath::Tensor::get_space(), Kadath::Tensor::get_valence(), Kadath::Tensor::is_m_quant_affected(), Kadath::Tensor::set(), and Kadath::Scalar::set_domain().

◆ affecte_tau_one_coef_val_domain()

void Kadath::Domain_shell::affecte_tau_one_coef_val_domain ( Val_domain so,
int  mlim,
int  cc,
int &  pos_cf 
) const
inherited

Sets at most one coefficient of a Val_domain to 1.

It takes into account the various symmetries and regularity conditions (by means of Garlekin basis).

Parameters
so: the Val_domain to be affected. It is set to zero if cc does not corresponds to another field.
mlim: limit for the regularity.
cc: location, in the overall system, of the coefficient to be set to 1.
pos_cf: current position.

Definition at line 98 of file domain_shell_affecte_tau_one_coef.cpp.

References Kadath::Val_domain::allocate_coef(), Kadath::Base_spectral::bases_1d, Kadath::Val_domain::cf, Kadath::Val_domain::get_base(), Kadath::Val_domain::is_zero, Kadath::Domain::nbr_coefs, Kadath::Array< T >::set(), Kadath::Index::set(), and Kadath::Val_domain::set_zero().

◆ affecte_tau_one_coef_val_domain_mquant()

void Kadath::Domain_shell::affecte_tau_one_coef_val_domain_mquant ( Val_domain so,
int  mquant,
int  cc,
int &  pos_cf 
) const
inherited

Sets at most one coefficient of a Val_domain to 1.

It takes into account the various symmetries and regularity conditions (by means of Garlekin basis).

Parameters
so: the Val_domain to be affected. It is set to zero if cc does not corresponds to another field.
mquant: limit for the regularity .
cc: location, in the overall system, of the coefficient to be set to 1.
pos_cf: current position.

Definition at line 28 of file domain_shell_affecte_tau_one_coef.cpp.

References Kadath::Val_domain::allocate_coef(), Kadath::Base_spectral::bases_1d, Kadath::Val_domain::cf, Kadath::Val_domain::get_base(), Kadath::Val_domain::is_zero, Kadath::Domain::nbr_coefs, Kadath::Array< T >::set(), Kadath::Index::set(), and Kadath::Val_domain::set_zero().

◆ affecte_tau_val_domain()

void Kadath::Domain_shell::affecte_tau_val_domain ( Val_domain so,
int  mlim,
const Array< double > &  cf,
int &  pos_cf 
) const
inherited

Affects some coefficients to a Val_domain.

It takes into account the various symmetries and regularity conditions (by means of Garlekin basis).

Parameters
so: the field to be affected.
mlim: limit for the regularity.
cf: Array of the coefficients used.
pos_cf: current position in the array of coefficients.

Definition at line 117 of file domain_shell_affecte_tau.cpp.

References Kadath::Val_domain::allocate_coef(), Kadath::Base_spectral::bases_1d, Kadath::Val_domain::cf, Kadath::Val_domain::get_base(), Kadath::Domain::nbr_coefs, Kadath::Array< T >::set(), and Kadath::Index::set().

◆ affecte_tau_val_domain_mquant()

void Kadath::Domain_shell::affecte_tau_val_domain_mquant ( Val_domain so,
int  mquant,
const Array< double > &  cf,
int &  pos_cf 
) const
inherited

Affects some coefficients to a Val_domain.

It takes into account the various symmetries and regularity conditions (by means of Garlekin basis).

Parameters
so: the field to be affected.
mquant: quantum number wrt $\varphi$.
cf: Array of the coefficients used.
pos_cf: current position in the array of coefficients.

Definition at line 28 of file domain_shell_affecte_tau.cpp.

References Kadath::Val_domain::allocate_coef(), Kadath::Base_spectral::bases_1d, Kadath::Val_domain::cf, Kadath::Val_domain::get_base(), Kadath::Domain::nbr_coefs, Kadath::Array< T >::set(), and Kadath::Index::set().

◆ bc_waves() [1/2]

◆ bc_waves() [2/2]

Tensor Kadath::Domain_shell::bc_waves ( int  dom,
const Tensor gamma,
const double  omega,
bool  toinf = true 
) const
inherited

Gives an matching of the spatial metric, based on homogeneous solutions of outgoing waves.

Tensor version

Parameters
dom: the domain (should be the same as num_dom)
gamma: the metric.
omega: the angular velocity of the helical Killing vector.
toinf: has to do where the matching is performed... (need to clarify that)
Returns
: the outgoing wave.

Definition at line 34 of file bc_waves_tensor.cpp.

References Kadath::Val_domain::allocate_coef(), Kadath::Val_domain::coef(), Kadath::Domain_shell::der_r(), Kadath::Tensor::get_basis(), Kadath::Base_tensor::get_basis(), Kadath::Val_domain::get_coef(), Kadath::Tensor::get_n_comp(), Kadath::Domain::get_radius(), Kadath::Tensor::get_valence(), Kadath::Index::inc(), Kadath::Tensor::indices(), Kadath::Domain_shell::multipoles_asym(), Kadath::Domain_shell::multipoles_sym(), Kadath::Domain::nbr_coefs, Kadath::Domain::nbr_points, Kadath::Tensor::set(), Kadath::Index::set(), Kadath::Val_domain::set_coef(), Kadath::Scalar::set_domain(), Kadath::Tensor::std_base(), and Kadath::Val_domain::std_base().

◆ change_basis_cart_to_spher()

◆ change_basis_spher_to_cart()

◆ connection_mtz()

Term_eq Kadath::Domain::connection_mtz ( const Term_eq so) const
virtualinherited

◆ connection_spher()

◆ ddp()

Val_domain Kadath::Domain_shell::ddp ( const Val_domain so) const
virtualinherited

Compute the second derivative with respect to $\varphi$ of a scalar field.

Parameters
so[input] : the input scalar field.
Returns
the result.

Reimplemented from Kadath::Domain.

Definition at line 222 of file domain_shell_ope.cpp.

References Kadath::Val_domain::der_var().

◆ ddr()

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

Compute the second radial derivative w of a scalar field.

Parameters
so[input] : the input scalar field.
Returns
the result.

Definition at line 1452 of file domain.cpp.

References Kadath::Val_domain::der_r().

◆ ddt()

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

Compute the second derivative with respect to $\theta$ of a scalar field.

Parameters
so[input] : the input scalar field.
Returns
the result.

Reimplemented in Kadath::Domain_spheric_time_compact, Kadath::Domain_spheric_time_shell, and Kadath::Domain_spheric_time_nucleus.

Definition at line 1462 of file domain.cpp.

◆ ddtime()

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

Computes the second time derivative of a field.

Parameters
so[input] : the input field.
Returns
the result

Reimplemented in Kadath::Domain_spheric_periodic_compact, Kadath::Domain_spheric_periodic_shell, and Kadath::Domain_spheric_periodic_nucleus.

Definition at line 1480 of file domain.cpp.

◆ ddtime_term_eq()

Term_eq Kadath::Domain::ddtime_term_eq ( const Term_eq so) const
virtualinherited

Second time derivative of a Term_eq.

Parameters
so: input field.
Returns
result.

Reimplemented in Kadath::Domain_polar_periodic_shell, and Kadath::Domain_polar_periodic_nucleus.

Definition at line 153 of file domain.cpp.

References Kadath::Domain::ddtime(), and Kadath::Domain::do_comp_by_comp().

◆ del_deriv()

◆ der_harmonics_asym()

Term_eq Kadath::Domain_shell::der_harmonics_asym ( const Term_eq so,
const Term_eq omega,
int  bound,
Term_eq(*)(const Space &, int, int, const Term_eq &, const Param &)  f,
const Param param,
const Array< double > &  passage 
) const
virtualinherited

Fit, spherical harmonic by spherical harmonic, for the radial derivative of an anti-symmetric function.

Parameters
so[input] : input scalar field.
omega[input] : angular velocity.
bound[input] : the boundary at which the computation is done.
f[input] : pointer on the radial function describing the radial fit.
param[input] : parameters of the radial fit.
passage[input] : passage matrix describing the spherical harmonics.
Returns
the fit.

Reimplemented from Kadath::Domain.

Definition at line 363 of file multipoles_der.cpp.

References Kadath::Domain_shell::der_multipoles_asym(), Kadath::Domain_shell::der_radial_part_asym(), Kadath::Tensor::get_space(), Kadath::Domain::nbr_coefs, and Kadath::Term_eq::val_t.

◆ der_harmonics_sym()

Term_eq Kadath::Domain_shell::der_harmonics_sym ( const Term_eq so,
const Term_eq omega,
int  bound,
Term_eq(*)(const Space &, int, int, const Term_eq &, const Param &)  f,
const Param param,
const Array< double > &  passage 
) const
virtualinherited

Fit, spherical harmonic by spherical harmonic, for the radial derivative of a symmetric function.

Parameters
so[input] : input scalar field.
omega[input] : angular velocity.
bound[input] : the boundary at which the computation is done.
f[input] : pointer on the radial function describing the radial fit.
param[input] : parameters of the radial fit.
passage[input] : passage matrix describing the spherical harmonics.
Returns
the fit.

Reimplemented from Kadath::Domain.

Definition at line 320 of file multipoles_der.cpp.

References Kadath::Domain_shell::der_multipoles_sym(), Kadath::Domain_shell::der_radial_part_sym(), Kadath::Tensor::get_space(), Kadath::Domain::nbr_coefs, and Kadath::Term_eq::val_t.

◆ der_multipoles_asym()

Term_eq Kadath::Domain_shell::der_multipoles_asym ( int  k,
int  j,
int  bound,
const Term_eq so,
const Array< double > &  passage 
) const
virtualinherited

Extraction of a given multipole, at some boundary, for the radial derivative of an anti-symmetric scalar function.

Parameters
k[input] : index of the spherical harmonic for $\varphi$.
j[input] : index of the spherical harmonic for $\theta$.
bound[input] : the boundary at which the computation is done.
so[input] : input scalar field.
passage[input] : passage matrix describing the spherical harmonics.
Returns
the multipolar coefficient.

Reimplemented from Kadath::Domain.

Definition at line 146 of file multipoles_der.cpp.

References Kadath::Val_domain::allocate_conf(), Kadath::Val_domain::c, Kadath::Term_eq::der_t, Kadath::Array< T >::dimensions, Kadath::Domain::get_coloc(), Kadath::Term_eq::get_dom(), Kadath::Tensor::get_space(), Kadath::Tensor::get_valence(), Kadath::Index::inc(), Kadath::Domain::nbr_coefs, Kadath::Domain::nbr_points, Kadath::Val_domain::set(), Kadath::Index::set(), Kadath::Val_domain::set_base(), Kadath::Scalar::set_domain(), Kadath::Val_domain::set_zero(), Kadath::Term_eq::type_data, Kadath::Domain_shell::val_boundary(), and Kadath::Term_eq::val_t.

◆ der_multipoles_sym()

Term_eq Kadath::Domain_shell::der_multipoles_sym ( int  k,
int  j,
int  bound,
const Term_eq so,
const Array< double > &  passage 
) const
virtualinherited

Extraction of a given multipole, at some boundary, for the radial derivative a symmetric scalar function.

Parameters
k[input] : index of the spherical harmonic for $\varphi$.
j[input] : index of the spherical harmonic for $\theta$.
bound[input] : the boundary at which the computation is done.
so[input] : input scalar field.
passage[input] : passage matrix describing the spherical harmonics.
Returns
the multipolar coefficient.

Reimplemented from Kadath::Domain.

Definition at line 32 of file multipoles_der.cpp.

References Kadath::Val_domain::allocate_conf(), Kadath::Val_domain::c, Kadath::Term_eq::der_t, Kadath::Array< T >::dimensions, Kadath::Domain::get_coloc(), Kadath::Term_eq::get_dom(), Kadath::Tensor::get_space(), Kadath::Tensor::get_valence(), Kadath::Index::inc(), Kadath::Domain::nbr_coefs, Kadath::Domain::nbr_points, Kadath::Val_domain::set(), Kadath::Index::set(), Kadath::Val_domain::set_base(), Kadath::Scalar::set_domain(), Kadath::Val_domain::set_zero(), Kadath::Term_eq::type_data, Kadath::Domain_shell::val_boundary(), and Kadath::Term_eq::val_t.

◆ der_normal()

Val_domain Kadath::Domain_shell_surr::der_normal ( const Val_domain so,
int  bound 
) const
virtual

Normal derivative with respect to a given surface.

Parameters
so: the input scalar field.
bound: boundary at which the normal derivative is computed.
Returns
the normal derivative.

Reimplemented from Kadath::Domain_shell.

Definition at line 76 of file domain_shell_surr.cpp.

References der_r().

◆ der_normal_term_eq()

Term_eq Kadath::Domain::der_normal_term_eq ( const Term_eq so,
int  bound 
) const
virtualinherited

Returns the normal derivative of a Term_eq.

Parameters
so: input field.
bound: the boundary.
Returns
the normal derivative.

Reimplemented in Kadath::Domain_polar_shell_outer_adapted, Kadath::Domain_polar_shell_inner_adapted, Kadath::Domain_shell_outer_adapted, and Kadath::Domain_shell_inner_adapted.

Definition at line 141 of file domain.cpp.

References Kadath::Domain::der_normal(), and Kadath::Domain::do_comp_by_comp_with_int().

◆ der_p()

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

Compute the derivative with respect to $ \varphi$ of a scalar field.

Parameters
so[input] : the input scalar field.
Returns
the derivative.

Definition at line 1440 of file domain.cpp.

◆ der_partial_var()

Val_domain Kadath::Domain_shell::der_partial_var ( const Val_domain so,
int  ind 
) const
virtualinherited

Partial derivative with respect to a coordinate.

Parameters
so: the input scalar field.
ind: index of the variable used by the derivative.
Returns
the partial derivative.

Reimplemented from Kadath::Domain.

Definition at line 253 of file domain_shell_ope.cpp.

References Kadath::Val_domain::der_r(), and Kadath::Val_domain::der_var().

◆ der_r()

Val_domain Kadath::Domain_shell_surr::der_r ( const Val_domain so) const
virtual

Compute the radial derivative of a scalar field.

Parameters
so[input] : the input scalar field.
Returns
the derivative.

Reimplemented from Kadath::Domain_shell.

Definition at line 38 of file domain_shell_surr_ope.cpp.

References Kadath::Domain_shell::alpha, Kadath::Val_domain::der_var(), and Kadath::Domain::get_radius().

◆ der_r_rtwo()

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

Compute the radial derivative multiplied by $ r^2$ of a scalar field.

Parameters
so[input] : the input scalar field.
Returns
the result.

Reimplemented in Kadath::Domain_compact_symphi, Kadath::Domain_compact, and Kadath::Domain_polar_compact.

Definition at line 1446 of file domain.cpp.

◆ der_radial_part_asym()

Term_eq Kadath::Domain_shell::der_radial_part_asym ( const Space space,
int  k,
int  j,
const Term_eq omega,
Term_eq(*)(const Space &, int, int, const Term_eq &, const Param &)  f,
const Param param 
) const
virtualinherited

Gives some radial fit for a given multipole, intended for the radial derivative of an anti-symmetric scalar function.

Parameters
space[input] : the concerned Space.
k[input] : index of the spherical harmonic for $\varphi$.
j[input] : index of the spherical harmonic for $\theta$.
omega[input] : angular velocity.
f[input] : pointer on the radial function describing the fit.
param[input] : parameters of the radial fit.
Returns
the radial fit.

Reimplemented from Kadath::Domain.

Definition at line 289 of file multipoles_der.cpp.

References Kadath::Term_eq::der_t, Kadath::Term_eq::get_der_t(), Kadath::Term_eq::get_dom(), Kadath::Term_eq::get_val_t(), Kadath::Domain::nbr_coefs, Kadath::Term_eq::type_data, and Kadath::Domain_shell::val_boundary().

◆ der_radial_part_sym()

Term_eq Kadath::Domain_shell::der_radial_part_sym ( const Space space,
int  k,
int  j,
const Term_eq omega,
Term_eq(*)(const Space &, int, int, const Term_eq &, const Param &param)  f,
const Param param 
) const
virtualinherited

Gives some radial fit for a given multipole, intended for the radial derivative of a symmetric scalar function.

Parameters
space[input] : the concerned Space.
k[input] : index of the spherical harmonic for $\varphi$.
j[input] : index of the spherical harmonic for $\theta$.
omega[input] : angular velocity.
f[input] : pointer on the radial function describing the fit.
param[input] : parameters of the radial fit.
Returns
the radial fit.

Reimplemented from Kadath::Domain.

Definition at line 259 of file multipoles_der.cpp.

References Kadath::Term_eq::der_t, Kadath::Term_eq::get_der_t(), Kadath::Term_eq::get_dom(), Kadath::Term_eq::get_val_t(), Kadath::Domain::nbr_coefs, Kadath::Term_eq::type_data, and Kadath::Domain_shell::val_boundary().

◆ der_t()

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

Compute the derivative with respect to $ \theta$ of a scalar field.

Parameters
so[input] : the input scalar field.
Returns
the derivative.

Definition at line 1435 of file domain.cpp.

◆ derive_flat_cart()

Term_eq Kadath::Domain_shell::derive_flat_cart ( int  tipe,
char  ind,
const Term_eq so,
const Metric manip 
) const
virtualinherited

Computes the flat derivative of a Term_eq, in Cartesian coordinates.

If the index of the derivative is present in the source, appropriate contraction is performed. If the contravariant version is called for, the index is raised using an arbitrary metric.

Parameters
tipe: type of derivative (COV or CON)
ind: name of the index corresponding to the derivative.
so: input field.
manip: pointer on the metric used to manipulate the derivative index, if need be.
Returns
result.

Reimplemented from Kadath::Domain.

Definition at line 299 of file domain_shell_for_metric.cpp.

References Kadath::Term_eq::der_t, Kadath::Tensor::do_summation_one_dom(), Kadath::Tensor::get_index_type(), Kadath::Tensor::get_name_ind(), Kadath::Tensor::get_space(), Kadath::Tensor::get_valence(), Kadath::Index::inc(), Kadath::Tensor::is_name_affected(), Kadath::Metric::manipulate_ind(), Kadath::Domain::num_dom, Kadath::Metric::p_met_con, Kadath::Tensor::set(), Kadath::Array< T >::set(), Kadath::Index::set(), Kadath::Scalar::set_domain(), Kadath::Tensor::set_name_affected(), Kadath::Tensor::set_name_ind(), and Kadath::Term_eq::val_t.

◆ derive_flat_mtz()

Term_eq Kadath::Domain_shell::derive_flat_mtz ( int  tipe,
char  ind,
const Term_eq so,
const Metric manip 
) const
virtualinherited

Computes the flat derivative of a Term_eq, in spherical coordinates where the constant radii sections have a negative curvature.

If the index of the derivative is present in the source, appropriate contraction is performed. If the contravariant version is called for, the index is raised using an arbitrary metric.

Parameters
tipe: type of derivative (COV or CON)
ind: name of the index corresponding to the derivative.
so: input field.
manip: pointer on the metric used to manipulate the derivative index, if need be.
Returns
result.

Reimplemented from Kadath::Domain.

Definition at line 395 of file domain_shell_for_metric.cpp.

References Kadath::Domain_shell::der_r(), Kadath::Term_eq::der_t, Kadath::Val_domain::div_r(), Kadath::Domain_shell::div_r(), Kadath::Val_domain::div_sin_theta(), Kadath::Tensor::do_summation_one_dom(), Kadath::Tensor::get_index_type(), Kadath::Tensor::get_name_ind(), Kadath::Tensor::get_space(), Kadath::Tensor::get_valence(), Kadath::Index::inc(), Kadath::Tensor::is_name_affected(), Kadath::Metric::manipulate_ind(), Kadath::Val_domain::mult_cos_theta(), Kadath::Domain::num_dom, Kadath::Tensor::set(), Kadath::Array< T >::set(), Kadath::Index::set(), Kadath::Scalar::set_domain(), Kadath::Tensor::set_name_affected(), Kadath::Tensor::set_name_ind(), and Kadath::Term_eq::val_t.

◆ derive_flat_spher()

Term_eq Kadath::Domain_shell::derive_flat_spher ( int  tipe,
char  ind,
const Term_eq so,
const Metric manip 
) const
virtualinherited

Computes the flat derivative of a Term_eq, in spherical orthonormal coordinates.

If the index of the derivative is present in the source, appropriate contraction is performed. If the contravariant version is called for, the index is raised using an arbitrary metric.

Parameters
tipe: type of derivative (COV or CON)
ind: name of the index corresponding to the derivative.
so: input field.
manip: pointer on the metric used to manipulate the derivative index, if need be.
Returns
result.

Reimplemented from Kadath::Domain.

Definition at line 30 of file domain_shell_for_metric.cpp.

References Kadath::Domain_shell::der_r(), Kadath::Term_eq::der_t, Kadath::Val_domain::div_r(), Kadath::Domain_shell::div_r(), Kadath::Val_domain::div_sin_theta(), Kadath::Tensor::do_summation_one_dom(), Kadath::Tensor::get_index_type(), Kadath::Tensor::get_name_ind(), Kadath::Tensor::get_space(), Kadath::Tensor::get_valence(), Kadath::Index::inc(), Kadath::Tensor::is_name_affected(), Kadath::Metric::manipulate_ind(), Kadath::Val_domain::mult_cos_theta(), Kadath::Domain::num_dom, Kadath::Tensor::set(), Kadath::Array< T >::set(), Kadath::Index::set(), Kadath::Scalar::set_domain(), Kadath::Tensor::set_name_affected(), Kadath::Tensor::set_name_ind(), and Kadath::Term_eq::val_t.

◆ div_1mrsL()

Val_domain Kadath::Domain_shell::div_1mrsL ( const Val_domain so) const
virtualinherited

◆ div_1mx2()

Val_domain Kadath::Domain_shell::div_1mx2 ( const Val_domain ) const
virtualinherited

◆ div_1mx2_term_eq()

Term_eq Kadath::Domain::div_1mx2_term_eq ( const Term_eq so) const
virtualinherited

Returns the division by $1-x^2$ of a Term_eq.

Parameters
so: input field.
Returns
the result of the division.

Definition at line 1765 of file domain.cpp.

References Kadath::Domain::div_1mx2(), and Kadath::Domain::do_comp_by_comp().

◆ div_chi()

Val_domain Kadath::Domain::div_chi ( const Val_domain ) const
virtualinherited

◆ div_cos_theta()

Val_domain Kadath::Domain_shell::div_cos_theta ( const Val_domain ) const
virtualinherited

◆ div_r()

Val_domain Kadath::Domain_shell_surr::div_r ( const Val_domain so) const
virtual

Division by $ r$.

Parameters
so: the input
Returns
the output

Reimplemented from Kadath::Domain_shell.

Definition at line 32 of file domain_shell_surr_ope.cpp.

References Kadath::Val_domain::base, and Kadath::Domain::get_radius().

◆ div_r_term_eq()

Term_eq Kadath::Domain::div_r_term_eq ( const Term_eq so) const
virtualinherited

Division by $r$ of a Term_eq.

Parameters
so: input field.
Returns
result.

Reimplemented in Kadath::Domain_polar_shell_outer_adapted, and Kadath::Domain_polar_shell_inner_adapted.

Definition at line 169 of file domain.cpp.

References Kadath::Domain::div_r(), and Kadath::Domain::do_comp_by_comp().

◆ div_sin_chi()

Val_domain Kadath::Domain::div_sin_chi ( const Val_domain ) const
virtualinherited

◆ div_sin_theta()

Val_domain Kadath::Domain_shell::div_sin_theta ( const Val_domain ) const
virtualinherited

◆ div_x()

◆ div_xm1()

Val_domain Kadath::Domain_shell::div_xm1 ( const Val_domain ) const
virtualinherited

◆ div_xp1()

Val_domain Kadath::Domain_shell::div_xp1 ( const Val_domain ) const
virtualinherited

◆ do_absol()

void Kadath::Domain_shell_surr::do_absol ( ) const
privatevirtual

◆ do_cart()

void Kadath::Domain_shell_surr::do_cart ( ) const
privatevirtual

◆ do_cart_surr()

void Kadath::Domain_shell::do_cart_surr ( ) const
privatevirtualinherited

Computes the Cartesian coordinates over the radius.

Reimplemented from Kadath::Domain.

Definition at line 149 of file domain_shell.cpp.

References Kadath::Domain::cart_surr, Kadath::Domain::coloc, Kadath::Index::inc(), and Kadath::Domain::nbr_points.

◆ do_coloc()

void Kadath::Domain_shell::do_coloc ( )
privatevirtualinherited

◆ do_comp_by_comp()

Term_eq Kadath::Domain::do_comp_by_comp ( const Term_eq so,
Val_domain(Domain::*)(const Val_domain &) const  pfunc 
) const
protectedinherited

Function used to apply the same operation to all the components of a tensor, in the current domain.

It works at the Term_eq level and the same operation is applied to both the value and the variation of the tensor.

Parameters
so: the source tensor.
pfunc: pointer onf the function to be applied.
Returns
the resulting Term_eq.

Definition at line 283 of file domain.cpp.

References Kadath::Val_domain::check_if_zero(), Kadath::Term_eq::der_t, Kadath::Term_eq::get_der_t(), Kadath::Tensor::get_n_comp(), Kadath::Tensor::get_parameters(), Kadath::Term_eq::get_val_t(), Kadath::Tensor::get_valence(), Kadath::Tensor::indices(), Kadath::Tensor::is_name_affected(), Kadath::Tensor::name_indice, Kadath::Domain::num_dom, Kadath::Tensor::set(), Kadath::Scalar::set_domain(), Kadath::Tensor::set_name_affected(), Kadath::Tensor::set_parameters(), Kadath::Val_domain::set_zero(), and Kadath::Term_eq::val_t.

◆ do_comp_by_comp_with_int()

Term_eq Kadath::Domain::do_comp_by_comp_with_int ( const Term_eq so,
int  val,
Val_domain(Domain::*)(const Val_domain &, int) const  pfunc 
) const
protectedinherited

Function used to apply the same operation to all the components of a tensor, in the current domain.

The operation applied depends on an integer parameter. It works at the Term_eq level and the same operation is applied to both the value and the variation of the tensor.

Parameters
so: the source tensor.
val: the integer parameter.
pfunc: pointer onf the function to be applied.
Returns
the resulting Term_eq.

Definition at line 228 of file domain.cpp.

References Kadath::Val_domain::check_if_zero(), Kadath::Term_eq::der_t, Kadath::Term_eq::get_der_t(), Kadath::Tensor::get_n_comp(), Kadath::Tensor::get_parameters(), Kadath::Term_eq::get_val_t(), Kadath::Tensor::get_valence(), Kadath::Tensor::indices(), Kadath::Tensor::is_name_affected(), Kadath::Tensor::name_indice, Kadath::Domain::num_dom, Kadath::Tensor::set(), Kadath::Scalar::set_domain(), Kadath::Tensor::set_name_affected(), Kadath::Tensor::set_parameters(), Kadath::Val_domain::set_zero(), and Kadath::Term_eq::val_t.

◆ do_der_abs_from_der_var()

void Kadath::Domain_shell_surr::do_der_abs_from_der_var ( const Val_domain *const *const  der_var,
Val_domain **const  der_abs 
) const
virtual

Computes the derivative with respect to the absolute Cartesian coordinates from the derivative with respect to the numerical coordinates.

  • $ \displaystyle\frac{\partial f}{\partial X} = (\sin\theta \displaystyle\frac{\partial f}{\alpha\partial x} + \cos\theta \displaystyle\frac{\partial f}{r\partial \theta^\star}) \cos\varphi - \sin\varphi \displaystyle\frac{\partial f}{r\sin\theta \partial \varphi^\star} $
  • $ \displaystyle\frac{\partial f}{\partial Y} = (\sin\theta \displaystyle\frac{\partial f}{\alpha\partial x} + \cos\theta \displaystyle\frac{\partial f}{r\partial \theta^\star}) \sin\varphi + \cos\varphi \displaystyle\frac{\partial f}{r\sin\theta \partial \varphi^\star} $
  • $ \displaystyle\frac{\partial f}{\partial Z} = \cos\theta \displaystyle\frac{\partial f}{\alpha\partial x} - \sin\theta\displaystyle\frac{\partial f}{r\partial \theta^\star}$
    Parameters
    der_var[input] : the ndim derivatives with respect to the numerical coordinates.
    der_abs[output] : the ndim derivatives with respect to the absolute Cartesian coordinates.

Reimplemented from Kadath::Domain_shell.

Definition at line 229 of file domain_shell_surr.cpp.

References Kadath::Domain_shell::alpha, Kadath::Val_domain::div_sin_theta(), Kadath::Val_domain::get_base(), Kadath::Domain::get_radius(), Kadath::Val_domain::mult_cos_phi(), Kadath::Domain_shell::mult_cos_phi(), Kadath::Val_domain::mult_cos_theta(), Kadath::Domain_shell::mult_cos_theta(), Kadath::Val_domain::mult_sin_phi(), Kadath::Domain_shell::mult_sin_phi(), Kadath::Val_domain::mult_sin_theta(), Kadath::Domain_shell::mult_sin_theta(), and Kadath::Val_domain::set_base().

◆ do_radius()

void Kadath::Domain_shell_surr::do_radius ( ) const
privatevirtual

◆ do_which_points_boundary()

void Kadath::Domain_shell::do_which_points_boundary ( int  bound,
const Base_spectral base,
Index **  ind,
int  start 
) const
virtualinherited

Lists all the indices corresponding to true collocation points on a boundary.

Parameters
boundthe boundary.
base: the spect basis. Its symmetries are used to get the right result.
ind: the list of indices.
start: states where the indices are stored in ind. The first is in ind[start]

Reimplemented from Kadath::Domain.

Definition at line 90 of file domain_shell_systems.cpp.

References Kadath::Base_spectral::bases_1d, Kadath::Domain::nbr_points, and Kadath::Index::set().

◆ dr_term_eq()

Term_eq Kadath::Domain::dr_term_eq ( const Term_eq so) const
virtualinherited

◆ dt()

Val_domain Kadath::Domain_shell::dt ( const Val_domain so) const
virtualinherited

Compute the derivative with respect to $\theta$ of a scalar field.

Parameters
so[input] : the input scalar field.
Returns
the result.

Reimplemented from Kadath::Domain.

Definition at line 248 of file domain_shell_ope.cpp.

References Kadath::Val_domain::der_var().

◆ dtime()

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

Computes the time derivative of a field.

Parameters
so[input] : the input field.
Returns
the result.

Reimplemented in Kadath::Domain_spheric_periodic_compact, Kadath::Domain_spheric_periodic_shell, Kadath::Domain_spheric_periodic_nucleus, Kadath::Domain_polar_periodic_shell, and Kadath::Domain_polar_periodic_nucleus.

Definition at line 1474 of file domain.cpp.

◆ dtime_term_eq()

Term_eq Kadath::Domain::dtime_term_eq ( const Term_eq so) const
virtualinherited

Time derivative of a Term_eq.

Parameters
so: input field.
Returns
result.

Reimplemented in Kadath::Domain_polar_periodic_shell, and Kadath::Domain_polar_periodic_nucleus.

Definition at line 149 of file domain.cpp.

References Kadath::Domain::do_comp_by_comp(), and Kadath::Domain::dtime().

◆ export_tau()

void Kadath::Domain_shell::export_tau ( const Tensor eq,
int  dom,
int  order,
Array< double > &  res,
int &  pos_res,
const Array< int > &  ncond,
int  n_cmp = -1,
Array< int > **  p_cmp = 0x0 
) const
virtualinherited

Exports all the residual equations corresponding to a tensorial one in the bulk.

It makes use of the various Galerkin basis used.

Parameters
eq: the residual of the equation.
dom: the domain considered (should be the same as num_dom).
order: describes the order of the equation (2 for a Laplacian for instance).
res: The Array where the discretized equations are stored.
pos_res: current position in res.
ncond: Array containing the number of equations corresponding to each component. It is used when some of the components are null.
n_cmp: number of components of eq to be considered. All the components are used of it is -1.
p_cmp: pointer on the indexes of the components to be considered. Not used of n_cmp = -1 .

Reimplemented from Kadath::Domain.

Definition at line 212 of file domain_shell_export_tau.cpp.

References Kadath::Domain_shell::export_tau_val_domain(), Kadath::Domain_shell::export_tau_val_domain_mquant(), Kadath::Tensor::get_basis(), Kadath::Base_tensor::get_basis(), Kadath::Param_tensor::get_m_order(), Kadath::Param_tensor::get_m_quant(), Kadath::Tensor::get_n_comp(), Kadath::Tensor::get_parameters(), Kadath::Tensor::get_valence(), Kadath::Tensor::is_m_order_affected(), and Kadath::Tensor::is_m_quant_affected().

◆ export_tau_array()

void Kadath::Domain::export_tau_array ( const Tensor eq,
int  dom,
const Array< int > &  order,
Array< double > &  res,
int &  pos_res,
const Array< int > &  ncond,
int  n_cmp = -1,
Array< int > **  p_cmp = 0x0 
) const
virtualinherited

Exports all the residual equations corresponding to one tensorial one in the bulk.

It makes use of the various Galerkin basis used.

Parameters
eq: the residual of the equation.
dom: the domain considered (should be the same as num_dom).
order: describes the order of the equation, with respect to each variable.
res: The Array where the discretized equations are stored.
pos_res: current position in res.
ncond: Array containing the number of equations corresponding to each component. It is used when some of the components are null.
n_cmp: number of components of eq to be considered. All the components are used of it is -1.
p_cmp: pointer on the indexes of the components to be considered. Not used of n_cmp = -1 .

Reimplemented in Kadath::Domain_spheric_time_compact, Kadath::Domain_spheric_time_shell, and Kadath::Domain_spheric_time_nucleus.

Definition at line 1539 of file domain.cpp.

◆ export_tau_boundary()

void Kadath::Domain_shell::export_tau_boundary ( const Tensor eq,
int  dom,
int  bound,
Array< double > &  res,
int &  pos_res,
const Array< int > &  ncond,
int  n_cmp = -1,
Array< int > **  p_cmp = 0x0 
) const
virtualinherited

Exports all the residual equations corresponding to a tensorial one on a given boundary It makes use of the various Galerkin basis used.

Parameters
eq: the residual of the equation.
dom: the domain considered (should be the same as num_dom).
bound: the boundary at which the equation is enforced.
res: The Array where the discretized equations are stored.
pos_res: current position in res.
ncond: Array containing the number of equations corresponding to each component. It is used when some of the components are null.
n_cmp: number of components of eq to be considered. All the components are used of it is -1.
p_cmp: pointer on the indexes of the components to be considered. Not used of n_cmp = -1 .

Reimplemented from Kadath::Domain.

Definition at line 200 of file domain_shell_export_tau_boundary.cpp.

References Kadath::Domain_shell::export_tau_val_domain_boundary(), Kadath::Domain_shell::export_tau_val_domain_boundary_mquant(), Kadath::Tensor::get_basis(), Kadath::Base_tensor::get_basis(), Kadath::Param_tensor::get_m_order(), Kadath::Param_tensor::get_m_quant(), Kadath::Tensor::get_n_comp(), Kadath::Tensor::get_parameters(), Kadath::Tensor::get_valence(), Kadath::Tensor::is_m_order_affected(), and Kadath::Tensor::is_m_quant_affected().

◆ export_tau_boundary_array()

void Kadath::Domain::export_tau_boundary_array ( const Tensor eq,
int  dom,
int  bound,
const Array< int > &  order,
Array< double > &  res,
int &  pos_res,
const Array< int > &  ncond,
int  n_cmp = -1,
Array< int > **  p_cmp = 0x0 
) const
virtualinherited

Exports all the residual equations corresponding to one tensorial one on a given boundary It makes use of the various Galerkin basis used.

Parameters
eq: the residual of the equation.
dom: the domain considered (should be the same as num_dom).
bound: the boundary at which the equation is enforced.
order: describes the order of the equation, with respect to each variable. The one normal to the surface is irrelevant.
res: The Array where the discretized equations are stored.
pos_res: current position in res.
ncond: Array containing the number of equations corresponding to each component. It is used when some of the components are null.
n_cmp: number of components of eq to be considered. All the components are used of it is -1.
p_cmp: pointer on the indexes of the components to be considered. Not used of n_cmp = -1 .

Reimplemented in Kadath::Domain_spheric_time_compact, Kadath::Domain_spheric_time_shell, and Kadath::Domain_spheric_time_nucleus.

Definition at line 1557 of file domain.cpp.

◆ export_tau_boundary_exception()

void Kadath::Domain_shell::export_tau_boundary_exception ( const Tensor eq,
int  dom,
int  bound,
Array< double > &  res,
int &  pos_res,
const Array< int > &  ncond,
const Param param,
int  type_exception,
const Tensor exception,
int  n_cmp = -1,
Array< int > **  p_cmp = 0x0 
) const
virtualinherited

Exports all the residual equations corresponding to one tensorial one on a given boundary, excepted for some coefficients where another equation is used.

Parameters
eq: the residual of the equation.
dom: the domain considered (should be the same as num_dom).
bound: the boundary at which the equation is enforced.
res: The Array where the discretized equations are stored.
pos_res: current position in res.
ncond: Array containing the number of equations corresponding to each component. It is used when some of the components are null.
param: parameters describing the coefficients where the alternative condition is enforced.
type_exception: states which type of exception (value or derivative ; current domain or the other one). Highly specialized...
exception: the equation used for the alternative condition.
n_cmp: number of components of eq to be considered. All the components are used of it is -1.
p_cmp: pointer on the indexes of the components to be considered. Not used of n_cmp = -1 .
Returns
the number of true conditions.

Reimplemented from Kadath::Domain.

Definition at line 550 of file domain_shell_export_tau_boundary_exception.cpp.

References Kadath::Domain_shell::export_tau_val_domain_boundary_exception(), Kadath::Domain_shell::export_tau_val_domain_boundary_exception_mquant(), Kadath::Param_tensor::get_m_quant(), Kadath::Tensor::get_parameters(), Kadath::Tensor::get_valence(), and Kadath::Tensor::is_m_quant_affected().

◆ export_tau_boundary_one_side()

void Kadath::Domain::export_tau_boundary_one_side ( const Tensor eq,
int  dom,
int  bound,
Array< double > &  res,
int &  pos_res,
const Array< int > &  ncond,
int  n_cmp = -1,
Array< int > **  p_cmp = 0x0 
) const
virtualinherited

Exports all the residual equations corresponding to one tensorial one on a given boundary.

The boundary is assumed to also have boundaries. (Used for bispherical coordinates). It makes use of the various Galerkin basis used.

Parameters
eq: the residual of the equation.
dom: the domain considered (should be the same as num_dom).
bound: the boundary at which the equation is enforced.
res: The Array where the discretized equations are stored.
pos_res: current position in res.
ncond: Array containing the number of equations corresponding to each component. It is used when some of the components are null.
n_cmp: number of components of eq to be considered. All the components are used of it is -1.
p_cmp: pointer on the indexes of the components to be considered. Not used of n_cmp = -1 .

Reimplemented in Kadath::Domain_bispheric_eta_first, Kadath::Domain_bispheric_chi_first, and Kadath::Domain_bispheric_rect.

Definition at line 1563 of file domain.cpp.

◆ export_tau_val_domain()

void Kadath::Domain_shell::export_tau_val_domain ( const Val_domain eq,
int  mlim,
int  order,
Array< double > &  res,
int &  pos_res,
int  ncond 
) const
inherited

Exports a residual equation in the bulk.

It makes use of the various Galerkin basis used.

Parameters
eq: the residual of the equation.
mlim: limit for the regularity .
order: describes the order of the equation (2 for a Laplacian for instance).
res: The Array where the discretized equations are stored.
pos_res: current position in res.
ncond: the corresponding number of equations. It is used when the equation is null.

Definition at line 117 of file domain_shell_export_tau.cpp.

References Kadath::Base_spectral::bases_1d, Kadath::Val_domain::cf, Kadath::Val_domain::check_if_zero(), Kadath::Val_domain::coef(), Kadath::Val_domain::get_base(), Kadath::Domain::nbr_coefs, Kadath::Array< T >::set(), and Kadath::Index::set().

◆ export_tau_val_domain_boundary()

void Kadath::Domain_shell::export_tau_val_domain_boundary ( const Val_domain eq,
int  mlim,
int  bound,
Array< double > &  res,
int &  pos_res,
int  ncond 
) const
inherited

Exports all the residual equations corresponding to a tensorial one on a given boundary It makes use of the various Galerkin basis used.

Parameters
eq: the residual of the equation.
mlim: limit for the regularity.
bound: the boundary at which the equation is enforced.
res: The Array where the discretized equations are stored.
pos_res: current position in res.
ncond: the corresponding number of equations. It is used when the residual is null.

Definition at line 109 of file domain_shell_export_tau_boundary.cpp.

References Kadath::Base_spectral::bases_1d, Kadath::Val_domain::check_if_zero(), Kadath::Val_domain::coef(), Kadath::Val_domain::get_base(), Kadath::Domain::nbr_coefs, Kadath::Array< T >::set(), Kadath::Index::set(), and Kadath::Domain_shell::val_boundary().

◆ export_tau_val_domain_boundary_exception()

void Kadath::Domain_shell::export_tau_val_domain_boundary_exception ( const Val_domain eq,
int  mlim,
int  bound,
Array< double > &  res,
int &  pos_res,
int  ncond,
const Param param,
int  type_exception,
const Val_domain exception 
) const
inherited

Exports all the residual equations corresponding to one tensorial one on a given boundary, excepted for some coefficients where another equation is used.

Parameters
eq: the residual of the equation.
mlim: limit for the regularity.
bound: the boundary at which the equation is enforced.
res: The Array where the discretized equations are stored.
pos_res: current position in res.
ncond: the corresponding number of equations. It is used when the equation is null.
param: parameters describing the coefficients where the alternative condition is enforced.
type_exception: states which type of exception (value or derivative ; current domain or the other one). Highly specialized...
exception: the equation used for the alternative condition.
Returns
the number of true conditions.

Definition at line 287 of file domain_shell_export_tau_boundary_exception.cpp.

References Kadath::Base_spectral::bases_1d, Kadath::Val_domain::check_if_zero(), Kadath::Val_domain::coef(), Kadath::Val_domain::get_base(), Kadath::Param::get_double(), Kadath::Param::get_int(), Kadath::Domain::nbr_coefs, Kadath::Array< T >::set(), Kadath::Index::set(), and Kadath::Domain_shell::val_boundary().

◆ export_tau_val_domain_boundary_exception_mquant()

void Kadath::Domain_shell::export_tau_val_domain_boundary_exception_mquant ( const Val_domain eq,
int  mquant,
int  bound,
Array< double > &  res,
int &  pos_res,
int  ncond,
const Param param,
int  type_exception,
const Val_domain exception 
) const
inherited

Exports all the residual equations corresponding to one tensorial one on a given boundary, excepted for some coefficients where another equation is used.

Parameters
eq: the residual of the equation.
mquant: quantum number wrt $\varphi$.
bound: the boundary at which the equation is enforced.
res: The Array where the discretized equations are stored.
pos_res: current position in res.
ncond: the corresponding number of equations. It is used when the equation is null.
param: parameters describing the coefficients where the alternative condition is enforced.
type_exception: states which type of exception (value or derivative ; current domain or the other one). Highly specialized...
exception: the equation used for the alternative condition.
Returns
the number of true conditions.

Definition at line 30 of file domain_shell_export_tau_boundary_exception.cpp.

References Kadath::Base_spectral::bases_1d, Kadath::Val_domain::check_if_zero(), Kadath::Val_domain::coef(), Kadath::Val_domain::get_base(), Kadath::Param::get_double(), Kadath::Param::get_int(), Kadath::Domain::nbr_coefs, Kadath::Array< T >::set(), Kadath::Index::set(), and Kadath::Domain_shell::val_boundary().

◆ export_tau_val_domain_boundary_mquant()

void Kadath::Domain_shell::export_tau_val_domain_boundary_mquant ( const Val_domain eq,
int  mquant,
int  bound,
Array< double > &  res,
int &  pos_res,
int  ncond 
) const
inherited

Exports all the residual equations corresponding to a tensorial one on a given boundary It makes use of the various Galerkin basis used.

Parameters
eq: the residual of the equation.
mquant: quantum number wrt $\varphi$.
bound: the boundary at which the equation is enforced.
res: The Array where the discretized equations are stored.
pos_res: current position in res.
ncond: the corresponding number of equations. It is used when the residual is null.

Definition at line 29 of file domain_shell_export_tau_boundary.cpp.

References Kadath::Base_spectral::bases_1d, Kadath::Val_domain::check_if_zero(), Kadath::Val_domain::coef(), Kadath::Val_domain::get_base(), Kadath::Domain::nbr_coefs, Kadath::Array< T >::set(), Kadath::Index::set(), and Kadath::Domain_shell::val_boundary().

◆ export_tau_val_domain_mquant()

void Kadath::Domain_shell::export_tau_val_domain_mquant ( const Val_domain eq,
int  mquant,
int  order,
Array< double > &  res,
int &  pos_res,
int  ncond 
) const
inherited

Exports a residual equation in the bulk.

It makes use of the various Galerkin basis used.

Parameters
eq: the residual of the equation.
mquant: quantum number wrt $\varphi$.
order: describes the order of the equation (2 for a Laplacian for instance).
res: The Array where the discretized equations are stored.
pos_res: current position in res.
ncond: the corresponding number of equations. It is used when the equation is null.

Definition at line 29 of file domain_shell_export_tau.cpp.

References Kadath::Base_spectral::bases_1d, Kadath::Val_domain::cf, Kadath::Val_domain::check_if_zero(), Kadath::Val_domain::coef(), Kadath::Val_domain::get_base(), Kadath::Domain::nbr_coefs, Kadath::Array< T >::set(), and Kadath::Index::set().

◆ filter()

void Kadath::Domain::filter ( Tensor tt,
int  dom,
double  treshold 
) const
virtualinherited

Puts to zero all the coefficients below a given treshold.

Regularity is maintained by dealing properly with the various Galerkin basis

Parameters
tt: the Tensor to be filtered.
dom: the domain considered (should be the same as num_dom).
treshold: all coefficients below this are set to zero.

Reimplemented in Kadath::Domain_nucleus_symphi.

Definition at line 1759 of file domain.cpp.

◆ find_other_dom()

void Kadath::Domain_shell::find_other_dom ( int  dom,
int  bound,
int &  otherdom,
int &  otherbound 
) const
virtualinherited

Gives the informations corresponding the a touching neighboring domain.

Parameters
dom: index of the currect domain (deprecated, should be the same as num_dom)
bound: the boundary between the two domains.
otherdom: index of the other domain.
otherbound: name of the boundary, as seen by the other domain.

Reimplemented from Kadath::Domain.

Definition at line 26 of file domain_shell_systems.cpp.

◆ fitschwarz() [1/2]

◆ fitschwarz() [2/2]

Val_domain Kadath::Domain_shell::fitschwarz ( const Val_domain so,
int  dim 
) const
inherited

◆ get_absol()

Val_domain const & Kadath::Domain::get_absol ( int  i) const
inlineinherited

Returns the absolute coordinates.

Definition at line 1457 of file space.hpp.

References Kadath::Domain::absol, Kadath::Domain::do_absol(), and Kadath::Domain::ndim.

◆ get_cart()

Val_domain const & Kadath::Domain::get_cart ( int  i) const
inlineinherited

Returns a Cartesian coordinates.

Parameters
i[input] : composant ( $ 0 \leq i < $ ndim).

Definition at line 1471 of file space.hpp.

References Kadath::Domain::cart, Kadath::Domain::do_cart(), and Kadath::Domain::ndim.

◆ get_cart_surr()

Val_domain const & Kadath::Domain::get_cart_surr ( int  i) const
inlineinherited

Returns a Cartesian coordinates divided by the radius.

Parameters
i[input] : composant ( $ 0 \leq i < $ ndim).

Definition at line 1479 of file space.hpp.

References Kadath::Domain::cart_surr, Kadath::Domain::do_cart_surr(), and Kadath::Domain::ndim.

◆ get_center()

virtual Point Kadath::Domain_shell::get_center ( ) const
inlinevirtualinherited

Returns the center.

Reimplemented from Kadath::Domain.

Definition at line 664 of file spheric.hpp.

References Kadath::Domain_shell::center.

◆ get_chi()

const Val_domain & Kadath::Domain::get_chi ( ) const
virtualinherited

Returns the variable $ \chi $.

Reimplemented in Kadath::Domain_bispheric_eta_first, Kadath::Domain_bispheric_chi_first, and Kadath::Domain_bispheric_rect.

Definition at line 1387 of file domain.cpp.

◆ get_coloc()

Array< double > const & Kadath::Domain::get_coloc ( int  i) const
inlineinherited

Returns the colocation points for a given variable.

Definition at line 1486 of file space.hpp.

References Kadath::Domain::coloc, and Kadath::Domain::ndim.

◆ get_eta()

const Val_domain & Kadath::Domain::get_eta ( ) const
virtualinherited

Returns the variable $ \eta $.

Reimplemented in Kadath::Domain_bispheric_eta_first, Kadath::Domain_bispheric_chi_first, and Kadath::Domain_bispheric_rect.

Definition at line 1393 of file domain.cpp.

◆ get_nbr_coefs()

Dim_array const& Kadath::Domain::get_nbr_coefs ( ) const
inlineinherited

Returns the number of coefficients.

Definition at line 94 of file space.hpp.

References Kadath::Domain::nbr_coefs.

◆ get_nbr_points()

Dim_array const& Kadath::Domain::get_nbr_points ( ) const
inlineinherited

Returns the number of points.

Definition at line 92 of file space.hpp.

References Kadath::Domain::nbr_points.

◆ get_ndim()

int Kadath::Domain::get_ndim ( ) const
inlineinherited

Returns the number of dimensions.

Definition at line 96 of file space.hpp.

References Kadath::Domain::ndim.

◆ get_num()

int Kadath::Domain::get_num ( ) const
inlineinherited

Returns the index of the curent domain.

Definition at line 90 of file space.hpp.

References Kadath::Domain::num_dom.

◆ get_radius()

Val_domain const & Kadath::Domain::get_radius ( ) const
inlineinherited

Returns the generalized radius.

Definition at line 1465 of file space.hpp.

References Kadath::Domain::do_radius(), and Kadath::Domain::radius.

◆ get_rmax()

virtual double Kadath::Domain_shell_surr::get_rmax ( ) const
inlinevirtual

Returns the maximum radius.

Reimplemented from Kadath::Domain_shell.

Definition at line 1629 of file spheric.hpp.

References Kadath::Domain_shell::alpha, and Kadath::Domain_shell::beta.

◆ get_rmin()

virtual double Kadath::Domain_shell_surr::get_rmin ( ) const
inlinevirtual

Returns the minimum radius.

Reimplemented from Kadath::Domain_shell.

Definition at line 1628 of file spheric.hpp.

References Kadath::Domain_shell::alpha, and Kadath::Domain_shell::beta.

◆ get_T()

const Val_domain & Kadath::Domain::get_T ( ) const
virtualinherited

Returns the variable $ T $.

Reimplemented in Kadath::Domain_critic_outer, and Kadath::Domain_critic_inner.

Definition at line 1405 of file domain.cpp.

◆ get_type_base()

int Kadath::Domain::get_type_base ( ) const
inlineinherited

Returns the type of the basis.

Definition at line 98 of file space.hpp.

References Kadath::Domain::type_base.

◆ get_X()

const Val_domain & Kadath::Domain::get_X ( ) const
virtualinherited

Returns the variable $ X $.

Reimplemented in Kadath::Domain_critic_outer, and Kadath::Domain_critic_inner.

Definition at line 1399 of file domain.cpp.

◆ give_normal()

const Term_eq * Kadath::Domain::give_normal ( int  bound,
int  tipe 
) const
virtualinherited

Returns the vector normal to a surface.

Must be a Term_eq because the dmain can be a variable one.

Parameters
bound[input] : the boundary where the normal is computed.
tipe[input] : tensorial coordinates used. (Cartesian or spherical basis)
Returns
the normal derivative.

Reimplemented in Kadath::Domain_polar_shell_outer_adapted, Kadath::Domain_polar_shell_inner_adapted, Kadath::Domain_shell_outer_adapted, and Kadath::Domain_shell_inner_adapted.

Definition at line 1715 of file domain.cpp.

◆ give_place_var()

int Kadath::Domain_shell::give_place_var ( char *  name) const
privatevirtualinherited

Translates a name of a coordinate into its corresponding numerical name.

Parameters
name: name of the variable (like 'R', for the radius).
Returns
the corresponding number (1 for 'R' for instance). The result is -1 if the name is not recognized.

Reimplemented from Kadath::Domain.

Definition at line 891 of file domain_shell.cpp.

◆ grad_term_eq()

◆ harmonics_asym()

Term_eq Kadath::Domain_shell::harmonics_asym ( const Term_eq so,
const Term_eq omega,
int  bound,
Term_eq(*)(const Space &, int, int, const Term_eq &, const Param &)  f,
const Param param,
const Array< double > &  passage 
) const
virtualinherited

Fit, spherical harmonic by spherical harmonic, for an anti-symmetric function.

Parameters
so[input] : input scalar field.
omega[input] : angular velocity.
bound[input] : the boundary at which the computation is done.
f[input] : pointer on the radial function describing the radial fit.
param[input] : parameters of the radial fit.
passage[input] : passage matrix describing the spherical harmonics.
Returns
the fit.

Reimplemented from Kadath::Domain.

Definition at line 579 of file multipoles.cpp.

References Kadath::Tensor::get_space(), Kadath::Domain_shell::multipoles_asym(), Kadath::Domain::nbr_coefs, Kadath::Domain_shell::radial_part_asym(), and Kadath::Term_eq::val_t.

◆ harmonics_sym()

Term_eq Kadath::Domain_shell::harmonics_sym ( const Term_eq so,
const Term_eq omega,
int  bound,
Term_eq(*)(const Space &, int, int, const Term_eq &, const Param &)  f,
const Param param,
const Array< double > &  passage 
) const
virtualinherited

Fit, spherical harmonic by spherical harmonic, for a symmetric function.

Parameters
so[input] : input scalar field.
omega[input] : angular velocity.
bound[input] : the boundary at which the computation is done.
f[input] : pointer on the radial function describing the radial fit.
param[input] : parameters of the radial fit.
passage[input] : passage matrix describing the spherical harmonics.
Returns
the fit.

Reimplemented from Kadath::Domain.

Definition at line 539 of file multipoles.cpp.

References Kadath::Tensor::get_space(), Kadath::Domain_shell::multipoles_sym(), Kadath::Domain::nbr_coefs, Kadath::Domain_shell::radial_part_sym(), and Kadath::Term_eq::val_t.

◆ import() [1/2]

Term_eq Kadath::Domain::import ( int  numdom,
int  bound,
int  n_ope,
Term_eq **  parts 
) const
inherited

Gets the value of a Term_eq by importing data from neighboring domains, on a boundary.

This makes use of the spectral summation.

Parameters
numdom: the domain considered (should be the same as num_dom).
bound: the boundary where the values from the other domains are computed.
n_ope: number of other domains touching the current one at the given boundary.
parts: pointers on the various Term_eq that have to be imported.
Returns
the imported field. Assumed to be constant in the direction normal to the boundary.

Definition at line 107 of file domain.cpp.

References Kadath::Domain::der_t(), Kadath::Term_eq::get_dom(), and Kadath::Array< T >::set().

◆ import() [2/2]

Tensor Kadath::Domain_shell::import ( int  numdom,
int  bound,
int  n_ope,
const Array< int > &  other_doms,
Tensor **  parts 
) const
virtualinherited

Gets the value of a Tensor by importing data from neighboring domains, on a boundary.

This makes use of the spectral summation.

Parameters
numdom: the domain considered (should be the same as num_dom).
bound: the boundary where the values from the other domains are computed.
n_ope: number of other domains touching the current one at the given boundary.
other_doms: numbers of the other pertinent domains.
parts: pointers on the various Tensors that have to be imported.
Returns
the imported field. Assumed to be constant in the direction normal to the boundary.

Reimplemented from Kadath::Domain.

Definition at line 30 of file domain_shell_import.cpp.

References Kadath::Domain_shell::absol_to_num(), Kadath::Tensor::cmp, Kadath::Tensor::coef(), Kadath::Domain::get_cart(), Kadath::Tensor::get_n_comp(), Kadath::Domain::get_nbr_points(), Kadath::Domain_shell::is_in(), Kadath::Domain::nbr_points, Kadath::Index::set(), Kadath::Point::set(), Kadath::Tensor::set_basis(), and Kadath::Tensor::std_base().

◆ integ()

double Kadath::Domain_shell::integ ( const Val_domain so,
int  bound 
) const
virtualinherited

Surface integral on a given boundary.

Parameters
so: the input scalar field.
bound: boundary at which the integral is computed.
Returns
the surface integral.

Reimplemented from Kadath::Domain.

Definition at line 902 of file domain_shell.cpp.

References Kadath::Base_spectral::bases_1d, Kadath::Val_domain::check_if_zero(), Kadath::Val_domain::get_base(), Kadath::Domain_shell::mult_r(), Kadath::Domain_shell::mult_sin_theta(), Kadath::Domain::nbr_coefs, Kadath::Index::set(), and Kadath::Domain_shell::val_boundary().

◆ integ_term_eq()

Term_eq Kadath::Domain::integ_term_eq ( const Term_eq so,
int  bound 
) const
virtualinherited

◆ integ_volume()

double Kadath::Domain_shell::integ_volume ( const Val_domain so) const
virtualinherited

◆ integ_volume_term_eq()

Term_eq Kadath::Domain::integ_volume_term_eq ( const Term_eq so) const
virtualinherited

◆ integrale()

double Kadath::Domain::integrale ( const Val_domain so) const
virtualinherited

Volume integral.

The volume element is provided by the function (need some cleaning : same as integ_volume)

Parameters
so: the input scalar field.
Returns
the integral.

Reimplemented in Kadath::Domain_polar_compact, Kadath::Domain_polar_shell, Kadath::Domain_polar_nucleus, Kadath::Domain_oned_inf, Kadath::Domain_oned_qcq, and Kadath::Domain_oned_ori.

Definition at line 1492 of file domain.cpp.

◆ is_in()

bool Kadath::Domain_shell_surr::is_in ( const Point xx,
double  prec = 1e-13 
) const
virtual

Check whether a point lies inside Domain.

Parameters
xx[input] : the point.
prec[input] : precision of the computation (used when comparing doubles).
Returns
a true if the point is in the domain and false otherwise.

Reimplemented from Kadath::Domain_shell.

Definition at line 144 of file domain_shell_surr.cpp.

References Kadath::Domain_shell::alpha, Kadath::Domain_shell::beta, Kadath::Domain_shell::center, and Kadath::Point::get_ndim().

◆ lap2_term_eq()

Term_eq Kadath::Domain::lap2_term_eq ( const Term_eq so,
int  m 
) const
virtualinherited

Returns the flat 2d-Laplacian of Term_eq, for a given harmonic.

Parameters
so: input field.
m: the index of the harmonic.
Returns
the 2d-Laplacian.

Reimplemented in Kadath::Domain_polar_shell_outer_adapted, and Kadath::Domain_polar_shell_inner_adapted.

Definition at line 161 of file domain.cpp.

References Kadath::Domain::do_comp_by_comp_with_int(), and Kadath::Domain::laplacian2().

◆ lap_term_eq()

Term_eq Kadath::Domain::lap_term_eq ( const Term_eq so,
int  m 
) const
virtualinherited

Returns the flat Laplacian of Term_eq, for a given harmonic.

Parameters
so: input field.
m: the index of the harmonic.
Returns
the Laplacian.

Reimplemented in Kadath::Domain_polar_shell_outer_adapted, Kadath::Domain_polar_shell_inner_adapted, Kadath::Domain_shell_outer_adapted, and Kadath::Domain_shell_inner_adapted.

Definition at line 157 of file domain.cpp.

References Kadath::Domain::do_comp_by_comp_with_int(), and Kadath::Domain::laplacian().

◆ laplacian()

◆ laplacian2()

Val_domain Kadath::Domain_shell::laplacian2 ( const Val_domain so,
int  m 
) const
virtualinherited

Computes the ordinary flat 2dè- Laplacian for a scalar field with an harmonic index m.

Parameters
so[input] : the input scalar field.
m[input] : harmonic index.
Returns
the 2d-Laplacian.

Reimplemented from Kadath::Domain.

Definition at line 271 of file domain_shell_ope.cpp.

References Kadath::Domain_shell::alpha, Kadath::Val_domain::der_var(), Kadath::Domain_shell::div_r(), and Kadath::Val_domain::div_sin_theta().

◆ mult()

Base_spectral Kadath::Domain_shell::mult ( const Base_spectral ,
const Base_spectral  
) const
virtualinherited

Method for the multiplication of two Base_spectral.

Returns
the output base is undefined if the result is not implemented (i.e. if one tries to multiply cosines with Chebyshev polynomials for instance).

Reimplemented from Kadath::Domain.

Definition at line 725 of file domain_shell.cpp.

References Kadath::Base_spectral::bases_1d, Kadath::Base_spectral::def, Kadath::Index::inc(), and Kadath::Base_spectral::ndim.

◆ mult_1mrsL()

Val_domain Kadath::Domain_shell::mult_1mrsL ( const Val_domain so) const
virtualinherited

Multiplication by $ 1 - r/L$.

Parameters
so: the input
Returns
the output

Reimplemented from Kadath::Domain.

Definition at line 167 of file domain_shell_ope.cpp.

References Kadath::Domain_shell::alpha, Kadath::Val_domain::base, Kadath::Domain_shell::beta, Kadath::Val_domain::check_if_zero(), and Kadath::Domain::get_radius().

◆ mult_cos_phi()

◆ mult_cos_theta()

Val_domain Kadath::Domain_shell::mult_cos_theta ( const Val_domain ) const
virtualinherited

◆ mult_cos_time()

Val_domain Kadath::Domain::mult_cos_time ( const Val_domain ) const
virtualinherited

Multiplication by $ \cos \omega t$.

Reimplemented in Kadath::Domain_polar_periodic_shell, and Kadath::Domain_polar_periodic_nucleus.

Definition at line 1315 of file domain.cpp.

◆ mult_r()

Val_domain Kadath::Domain_shell_surr::mult_r ( const Val_domain so) const
virtual

Multiplication by $ r$.

Parameters
so: the input
Returns
the output

Reimplemented from Kadath::Domain_shell.

Definition at line 26 of file domain_shell_surr_ope.cpp.

References Kadath::Val_domain::base, and Kadath::Domain::get_radius().

◆ mult_r_term_eq()

Term_eq Kadath::Domain::mult_r_term_eq ( const Term_eq so) const
virtualinherited

◆ mult_sin_phi()

◆ mult_sin_theta()

Val_domain Kadath::Domain_shell::mult_sin_theta ( const Val_domain ) const
virtualinherited

◆ mult_sin_time()

Val_domain Kadath::Domain::mult_sin_time ( const Val_domain ) const
virtualinherited

Multiplication by $ \sin \omega t$.

Reimplemented in Kadath::Domain_polar_periodic_shell, and Kadath::Domain_polar_periodic_nucleus.

Definition at line 1321 of file domain.cpp.

◆ mult_x()

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

Multiplication by $ x$.

Parameters
so: the input
Returns
the output

Reimplemented in Kadath::Domain_oned_inf.

Definition at line 1309 of file domain.cpp.

◆ mult_xm1()

Val_domain Kadath::Domain_shell::mult_xm1 ( const Val_domain ) const
virtualinherited

◆ multipoles_asym() [1/2]

Term_eq Kadath::Domain_shell::multipoles_asym ( int  k,
int  j,
int  bound,
const Term_eq so,
const Array< double > &  passage 
) const
virtualinherited

Extraction of a given multipole, at some boundary, for an anti-symmetric scalar function.

Parameters
k[input] : index of the spherical harmonic for $\varphi$.
j[input] : index of the spherical harmonic for $\theta$.
bound[input] : the boundary at which the computation is done.
so[input] : input scalar field.
passage[input] : passage matrix describing the spherical harmonics.
Returns
the multipolar coefficient.

Reimplemented from Kadath::Domain.

Definition at line 402 of file multipoles.cpp.

References Kadath::Val_domain::allocate_conf(), Kadath::Val_domain::c, Kadath::Term_eq::der_t, Kadath::Array< T >::dimensions, Kadath::Domain::get_coloc(), Kadath::Term_eq::get_dom(), Kadath::Tensor::get_space(), Kadath::Tensor::get_valence(), Kadath::Index::inc(), Kadath::Domain::nbr_coefs, Kadath::Domain::nbr_points, Kadath::Val_domain::set(), Kadath::Index::set(), Kadath::Val_domain::set_base(), Kadath::Scalar::set_domain(), Kadath::Val_domain::set_zero(), Kadath::Term_eq::type_data, Kadath::Domain_shell::val_boundary(), and Kadath::Term_eq::val_t.

◆ multipoles_asym() [2/2]

double Kadath::Domain_shell::multipoles_asym ( int  k,
int  j,
int  bound,
const Val_domain so,
const Array< double > &  passage 
) const
virtualinherited

Extraction of a given multipole, at some boundary, for a anti-symmetric scalar function.

Parameters
k[input] : index of the spherical harmonic for $\varphi$.
j[input] : index of the spherical harmonic for $\theta$.
bound[input] : the boundary at which the computation is done.
so[input] : input scalar field.
passage[input] : passage matrix describing the spherical harmonics.
Returns
the multipolar coefficient.

Reimplemented from Kadath::Domain.

Definition at line 76 of file multipoles_valdomain.cpp.

References Kadath::Array< T >::dimensions, Kadath::Domain::nbr_coefs, Kadath::Index::set(), and Kadath::Domain_shell::val_boundary().

◆ multipoles_sym() [1/2]

Term_eq Kadath::Domain_shell::multipoles_sym ( int  k,
int  j,
int  bound,
const Term_eq so,
const Array< double > &  passage 
) const
virtualinherited

Extraction of a given multipole, at some boundary, for a symmetric scalar function.

Parameters
k[input] : index of the spherical harmonic for $\varphi$.
j[input] : index of the spherical harmonic for $\theta$.
bound[input] : the boundary at which the computation is done.
so[input] : input scalar field.
passage[input] : passage matrix describing the spherical harmonics.
Returns
the multipolar coefficient.

Reimplemented from Kadath::Domain.

Definition at line 291 of file multipoles.cpp.

References Kadath::Val_domain::allocate_conf(), Kadath::Val_domain::c, Kadath::Term_eq::der_t, Kadath::Array< T >::dimensions, Kadath::Domain::get_coloc(), Kadath::Term_eq::get_dom(), Kadath::Tensor::get_space(), Kadath::Tensor::get_valence(), Kadath::Index::inc(), Kadath::Domain::nbr_coefs, Kadath::Domain::nbr_points, Kadath::Val_domain::set(), Kadath::Index::set(), Kadath::Val_domain::set_base(), Kadath::Scalar::set_domain(), Kadath::Val_domain::set_zero(), Kadath::Term_eq::type_data, Kadath::Domain_shell::val_boundary(), and Kadath::Term_eq::val_t.

◆ multipoles_sym() [2/2]

double Kadath::Domain_shell::multipoles_sym ( int  k,
int  j,
int  bound,
const Val_domain so,
const Array< double > &  passage 
) const
virtualinherited

Extraction of a given multipole, at some boundary, for a symmetric scalar function.

Parameters
k[input] : index of the spherical harmonic for $\varphi$.
j[input] : index of the spherical harmonic for $\theta$.
bound[input] : the boundary at which the computation is done.
so[input] : input scalar field.
passage[input] : passage matrix describing the spherical harmonics.
Returns
the multipolar coefficient.

Reimplemented from Kadath::Domain.

Definition at line 38 of file multipoles_valdomain.cpp.

References Kadath::Array< T >::dimensions, Kadath::Domain::nbr_coefs, Kadath::Index::set(), and Kadath::Domain_shell::val_boundary().

◆ nbr_conditions()

Array< int > Kadath::Domain_shell::nbr_conditions ( const Tensor eq,
int  dom,
int  order,
int  n_cmp = -1,
Array< int > **  p_cmp = 0x0 
) const
virtualinherited

Computes number of discretized equations associated with a given tensorial equation in the bulk.

It takes into account the various Galerkin basis used.

Parameters
eq: the residual of the equation.
dom: the domain considered (should be the same as num_dom).
order: describes the order of the equation (2 for a Laplacian for instance).
n_cmp: number of components of eq to be considered. All the components are used of it is -1.
p_cmp: pointer on the indexes of the components to be considered. Not used of n_cmp = -1 .
Returns
the number of true conditions, component by component.

Reimplemented from Kadath::Domain.

Definition at line 118 of file domain_shell_nbr_conditions.cpp.

References Kadath::Tensor::get_basis(), Kadath::Base_tensor::get_basis(), Kadath::Param_tensor::get_m_order(), Kadath::Param_tensor::get_m_quant(), Kadath::Tensor::get_n_comp(), Kadath::Tensor::get_parameters(), Kadath::Tensor::get_valence(), Kadath::Tensor::is_m_order_affected(), Kadath::Tensor::is_m_quant_affected(), Kadath::Domain_shell::nbr_conditions_val_domain(), Kadath::Domain_shell::nbr_conditions_val_domain_mquant(), and Kadath::Array< T >::set().

◆ nbr_conditions_array()

Array< int > Kadath::Domain::nbr_conditions_array ( const Tensor eq,
int  dom,
const Array< int > &  order,
int  n_cmp = -1,
Array< int > **  p_cmp = 0x0 
) const
virtualinherited

Computes number of discretized equations associated with a given tensorial equation in the bulk.

It takes into account the various Galerkin basis used.

Parameters
eq: the residual of the equation.
dom: the domain considered (should be the same as num_dom).
order: describes the order of the equation, with respect to each variable.
n_cmp: number of components of eq to be considered. All the components are used of it is -1.
p_cmp: pointer on the indexes of the components to be considered. Not used of n_cmp = -1 .
Returns
the number of true conditions, component by component.

Reimplemented in Kadath::Domain_spheric_time_compact, Kadath::Domain_spheric_time_shell, and Kadath::Domain_spheric_time_nucleus.

Definition at line 1510 of file domain.cpp.

◆ nbr_conditions_boundary()

Array< int > Kadath::Domain_shell::nbr_conditions_boundary ( const Tensor eq,
int  dom,
int  bound,
int  n_cmp = -1,
Array< int > **  p_cmp = 0x0 
) const
virtualinherited

Computes number of discretized equations associated with a given tensorial equation on a boundary.

It takes into account the various Galerkin basis used. It is used for implementing boundary conditions and matching ones.

Parameters
eq: the residual of the equation.
dom: the domain considered (should be the same as num_dom).
bound: the boundary at which the equation is enforced.
n_cmp: number of components of eq to be considered. All the components are used of it is -1.
p_cmp: pointer on the indexes of the components to be considered. Not used of n_cmp = -1 .
Returns
the number of true conditions, component by component.

Reimplemented from Kadath::Domain.

Definition at line 103 of file domain_shell_nbr_conditions_boundary.cpp.

References Kadath::Tensor::get_basis(), Kadath::Base_tensor::get_basis(), Kadath::Param_tensor::get_m_order(), Kadath::Param_tensor::get_m_quant(), Kadath::Tensor::get_n_comp(), Kadath::Tensor::get_parameters(), Kadath::Tensor::get_valence(), Kadath::Tensor::is_m_order_affected(), Kadath::Tensor::is_m_quant_affected(), Kadath::Domain_shell::nbr_conditions_val_domain_boundary(), Kadath::Domain_shell::nbr_conditions_val_domain_boundary_mquant(), and Kadath::Array< T >::set().

◆ nbr_conditions_boundary_array()

Array< int > Kadath::Domain::nbr_conditions_boundary_array ( const Tensor eq,
int  dom,
int  bound,
const Array< int > &  order,
int  n_cmp = -1,
Array< int > **  p_cmp = 0x0 
) const
virtualinherited

Computes number of discretized equations associated with a given tensorial equation on a boundary.

It takes into account the various Galerkin basis used. It is used for implementing boundary conditions and matching ones.

Parameters
eq: the residual of the equation.
dom: the domain considered (should be the same as num_dom).
bound: the boundary at which the equation is enforced.
order: describes the order of the equation, with respect to each variable. The one normal to the surface is irrelevant.
n_cmp: number of components of eq to be considered. All the components are used of it is -1.
p_cmp: pointer on the indexes of the components to be considered. Not used of n_cmp = -1 .
Returns
the number of true conditions, component by component.

Reimplemented in Kadath::Domain_spheric_time_compact, Kadath::Domain_spheric_time_shell, and Kadath::Domain_spheric_time_nucleus.

Definition at line 1522 of file domain.cpp.

◆ nbr_conditions_boundary_one_side()

Array< int > Kadath::Domain::nbr_conditions_boundary_one_side ( const Tensor eq,
int  dom,
int  bound,
int  n_cmp = -1,
Array< int > **  p_cmp = 0x0 
) const
virtualinherited

Computes number of discretized equations associated with a given tensorial equation on a boundary.

The boundary is assumed to also have boundaries. (Used for bispherical coordinates). It takes into account the various Galerkin basis used. It is used for implementing boundary conditions and matching ones.

Parameters
eq: the residual of the equation.
dom: the domain considered (should be the same as num_dom).
bound: the boundary at which the equation is enforced.
n_cmp: number of components of eq to be considered. All the components are used of it is -1.
p_cmp: pointer on the indexes of the components to be considered. Not used of n_cmp = -1 .
Returns
the number of true conditions, component by component.

Reimplemented in Kadath::Domain_bispheric_eta_first, Kadath::Domain_bispheric_chi_first, and Kadath::Domain_bispheric_rect.

Definition at line 1527 of file domain.cpp.

◆ nbr_conditions_val_domain()

int Kadath::Domain_shell::nbr_conditions_val_domain ( const Val_domain so,
int  mlim,
int  order 
) const
inherited

Computes number of discretized equations associated with a given tensorial equation in the bulk.

It takes into account the various Galerkin basis used.

Parameters
so: the residual of the equation.
mlim: limit for the regularity.
order: order of the equation (i.e. 2 for a Laplacian for instance)
Returns
the number of true unknowns.

Definition at line 72 of file domain_shell_nbr_conditions.cpp.

References Kadath::Base_spectral::bases_1d, Kadath::Val_domain::get_base(), Kadath::Index::inc(), and Kadath::Domain::nbr_coefs.

◆ nbr_conditions_val_domain_boundary()

int Kadath::Domain_shell::nbr_conditions_val_domain_boundary ( const Val_domain so,
int  mlim 
) const
inherited

Computes number of discretized equations associated with a given equation on a boundary.

It takes into account the various Galerkin basis used. It is used for implementing boundary conditions and matching ones.

Parameters
so: the residual of the equation.
mlim: limit for the regularity.
Returns
the number of true conditions.

Definition at line 62 of file domain_shell_nbr_conditions_boundary.cpp.

References Kadath::Base_spectral::bases_1d, Kadath::Val_domain::get_base(), and Kadath::Domain::nbr_coefs.

◆ nbr_conditions_val_domain_boundary_mquant()

int Kadath::Domain_shell::nbr_conditions_val_domain_boundary_mquant ( const Val_domain so,
int  mquant 
) const
inherited

Computes number of discretized equations associated with a given equation on a boundary.

It takes into account the various Galerkin basis used. It is used for implementing boundary conditions and matching ones.

Parameters
so: the residual of the equation.
mquant: quantum number wrt $\varphi$.
Returns
the number of true conditions.

Definition at line 27 of file domain_shell_nbr_conditions_boundary.cpp.

References Kadath::Base_spectral::bases_1d, Kadath::Val_domain::get_base(), and Kadath::Domain::nbr_coefs.

◆ nbr_conditions_val_domain_mquant()

int Kadath::Domain_shell::nbr_conditions_val_domain_mquant ( const Val_domain so,
int  mquant,
int  order 
) const
inherited

Computes number of discretized equations associated with a given tensorial equation in the bulk.

It takes into account the various Galerkin basis used.

Parameters
so: the residual of the equation.
mquant: quantum number wrt $\varphi$.
order: order of the equation (i.e. 2 for a Laplacian for instance)
Returns
the number of true unknowns.

Definition at line 29 of file domain_shell_nbr_conditions.cpp.

References Kadath::Base_spectral::bases_1d, Kadath::Val_domain::get_base(), Kadath::Index::inc(), and Kadath::Domain::nbr_coefs.

◆ nbr_points_boundary()

int Kadath::Domain_shell::nbr_points_boundary ( int  bound,
const Base_spectral base 
) const
virtualinherited

Computes the number of relevant collocation points on a boundary.

Parameters
bound: the boundary.
base: the spectral basis. Its symmetries are used to get the right result.
Returns
the true number of degrees of freedom on the boundary.

Reimplemented from Kadath::Domain.

Definition at line 76 of file domain_shell_systems.cpp.

References Kadath::Base_spectral::bases_1d, and Kadath::Domain::nbr_points.

◆ nbr_unknowns()

int Kadath::Domain_shell::nbr_unknowns ( const Tensor so,
int  dom 
) const
virtualinherited

Computes the number of true unknowns of a Tensor, in a given domain.

It takes into account the various symmetries and regularity conditions to determine the precise number of degrees of freedom.

Parameters
so: the tensorial field.
dom: the domain considered (should be the same as num_dom).
Returns
the number of true unknowns.

Reimplemented from Kadath::Domain.

Definition at line 108 of file domain_shell_nbr_unknowns.cpp.

References Kadath::Tensor::get_basis(), Kadath::Base_tensor::get_basis(), Kadath::Space::get_domain(), Kadath::Param_tensor::get_m_quant(), Kadath::Tensor::get_n_comp(), Kadath::Tensor::get_parameters(), Kadath::Tensor::get_space(), Kadath::Tensor::get_valence(), Kadath::Tensor::is_m_quant_affected(), Kadath::Domain_shell::nbr_unknowns_val_domain(), and Kadath::Domain_shell::nbr_unknowns_val_domain_mquant().

◆ nbr_unknowns_from_adapted()

virtual int Kadath::Domain::nbr_unknowns_from_adapted ( ) const
inlinevirtualinherited

◆ nbr_unknowns_val_domain()

int Kadath::Domain_shell::nbr_unknowns_val_domain ( const Val_domain so,
int  mlim 
) const
inherited

Computes the number of true unknowns of a Val_domain.

It takes into account the various symmetries and regularity conditions to determine the precise number of degrees of freedom.

Parameters
so: the field.
mlimlimit for the regularity.
Returns
the number of true unknowns.

Definition at line 66 of file domain_shell_nbr_unknowns.cpp.

References Kadath::Base_spectral::bases_1d, Kadath::Val_domain::get_base(), Kadath::Index::inc(), and Kadath::Domain::nbr_coefs.

◆ nbr_unknowns_val_domain_mquant()

int Kadath::Domain_shell::nbr_unknowns_val_domain_mquant ( const Val_domain so,
int  mquant 
) const
inherited

Computes the number of true unknowns of a Val_domain.

It takes into account the various symmetries and regularity conditions to determine the precise number of degrees of freedom.

Parameters
so: the field.
mquantquantum number wrt $\varphi$.
Returns
the number of true unknowns.

Definition at line 28 of file domain_shell_nbr_unknowns.cpp.

References Kadath::Base_spectral::bases_1d, Kadath::Val_domain::get_base(), Kadath::Index::inc(), and Kadath::Domain::nbr_coefs.

◆ partial_cart()

◆ partial_mtz()

Term_eq Kadath::Domain::partial_mtz ( const Term_eq so) const
virtualinherited

◆ partial_spher()

◆ print()

ostream & Kadath::Domain_shell_surr::print ( ostream &  o) const
virtual

Delegate function to virtualize the << operator.

Parameters
oreference toward the output stream.
Returns
the reference toward output stream that was passed as argument.

Reimplemented from Kadath::Domain_shell.

Definition at line 65 of file domain_shell_surr.cpp.

References Kadath::Domain_shell::alpha, Kadath::Domain_shell::beta, Kadath::Domain_shell::center, and Kadath::Domain::nbr_points.

◆ radial_part_asym()

Term_eq Kadath::Domain_shell::radial_part_asym ( const Space space,
int  k,
int  j,
const Term_eq omega,
Term_eq(*)(const Space &, int, int, const Term_eq &, const Param &)  f,
const Param param 
) const
virtualinherited

Gives some radial fit for a given multipole, intended for anti-symmetric scalar function.

Parameters
space[input] : the concerned Space.
k[input] : index of the spherical harmonic for $\varphi$.
j[input] : index of the spherical harmonic for $\theta$.
omega[input] : angular velocity.
f[input] : pointer on the radial function describing the fit.
param[input] : parameters of the radial fit.
Returns
the radial fit.

Reimplemented from Kadath::Domain.

Definition at line 524 of file multipoles.cpp.

References Kadath::Term_eq::type_data.

◆ radial_part_sym()

Term_eq Kadath::Domain_shell::radial_part_sym ( const Space space,
int  k,
int  j,
const Term_eq omega,
Term_eq(*)(const Space &, int, int, const Term_eq &, const Param &)  f,
const Param param 
) const
virtualinherited

Gives some radial fit for a given multipole, intended for symmetric scalar function.

Parameters
space[input] : the concerned Space.
k[input] : index of the spherical harmonic for $\varphi$.
j[input] : index of the spherical harmonic for $\theta$.
omega[input] : angular velocity.
f[input] : pointer on the radial function describing the fit.
param[input] : parameters of the radial fit.
Returns
the radial fit.

Reimplemented from Kadath::Domain.

Definition at line 510 of file multipoles.cpp.

References Kadath::Term_eq::type_data.

◆ save()

◆ set_anti_cheb_base()

void Kadath::Domain_shell::set_anti_cheb_base ( Base_spectral so) const
privatevirtualinherited

Sets the base to the standard one for Chebyshev polynomials for functions antisymetric in $ z=0 $ The bases are :

  • $ cos(m\varphi^\star)$ and $ sin(m\varphi^\star)$ .
  • $ cos((2j+1)\theta^\star)$ for $ m $ even ( $ l = 2j+1 $) and $ sin((2j) \theta^\star)$ for $ m $ odd ( $ l = 2j $).
  • $ T_{i} (x)$.

If type_coloc changes, coloc is uupdated and the derivative members destroyed.

Parameters
so[output] : the returned base.

Reimplemented from Kadath::Domain.

Definition at line 360 of file domain_shell.cpp.

References Kadath::Base_spectral::allocate(), Kadath::Base_spectral::bases_1d, Kadath::Base_spectral::def, Kadath::Domain::nbr_coefs, Kadath::Index::set(), and Kadath::Domain::type_base.

◆ set_anti_cheb_base_with_m()

void Kadath::Domain::set_anti_cheb_base_with_m ( Base_spectral so,
int  m 
) const
privatevirtualinherited

Gives the base using Chebyshev polynomials, for functions antisymetric with respect to $z$ .

Used for a spherical harmonic $ m$.

Parameters
so[input] : the returned base.
m[input] : index of the spherical harmonic.

Reimplemented in Kadath::Domain_polar_periodic_shell, Kadath::Domain_polar_periodic_nucleus, Kadath::Domain_polar_compact, Kadath::Domain_polar_shell, Kadath::Domain_polar_nucleus, Kadath::Domain_polar_shell_outer_adapted, and Kadath::Domain_polar_shell_inner_adapted.

Definition at line 1024 of file domain.cpp.

◆ set_anti_legendre_base()

void Kadath::Domain_shell::set_anti_legendre_base ( Base_spectral so) const
privatevirtualinherited

Sets the base to the standard one for Legendre polynomials for functions antisymetric in $ z=0 $ The bases are :

  • $ cos(m\varphi^\star)$ and $ sin(m\varphi^\star)$ .
  • $ cos((2j+1)\theta^\star)$ for $ m $ even ( $ l = 2j+1 $) and $ sin((2j) \theta^\star)$ for $ m $ odd ( $ l = 2j $).
  • $ T_{i} (x)$.

If type_coloc changes, coloc is uupdated and the derivative members destroyed.

Parameters
so[output] : the returned base.

Reimplemented from Kadath::Domain.

Definition at line 544 of file domain_shell.cpp.

References Kadath::Base_spectral::allocate(), Kadath::Base_spectral::bases_1d, Kadath::Base_spectral::def, Kadath::Domain::nbr_coefs, Kadath::Index::set(), and Kadath::Domain::type_base.

◆ set_anti_legendre_base_with_m()

void Kadath::Domain::set_anti_legendre_base_with_m ( Base_spectral so,
int  m 
) const
privatevirtualinherited

Gives the base using Legendre polynomials, for functions antisymetric with respect to $z$.

Used for a spherical harmonic $ m$.

Parameters
so[input] : the returned base.
m[input] : index of the spherical harmonic.

Reimplemented in Kadath::Domain_polar_periodic_shell, Kadath::Domain_polar_periodic_nucleus, Kadath::Domain_polar_compact, Kadath::Domain_polar_shell, Kadath::Domain_polar_nucleus, Kadath::Domain_polar_shell_outer_adapted, and Kadath::Domain_polar_shell_inner_adapted.

Definition at line 1030 of file domain.cpp.

◆ set_cheb_base()

void Kadath::Domain_shell::set_cheb_base ( Base_spectral so) const
privatevirtualinherited

Sets the base to the standard one for Chebyshev polynomials.

The bases are :

  • $ cos(m\varphi^\star)$ and $ sin(m\varphi^\star)$ .
  • $ cos((2j)\theta^\star)$ for $ m $ even ( $ l = 2j $) and $ sin((2j+1) \theta^\star)$ for $ m $ odd ( $ l = 2j+1 $).
  • $ T_{i} (x)$.

If type_coloc changes, coloc is uupdated and the derivative members destroyed.

Parameters
so[output] : the returned base.

Reimplemented from Kadath::Domain.

Definition at line 288 of file domain_shell.cpp.

References Kadath::Base_spectral::allocate(), Kadath::Base_spectral::bases_1d, Kadath::Base_spectral::def, Kadath::Domain::nbr_coefs, Kadath::Index::set(), and Kadath::Domain::type_base.

◆ set_cheb_base_odd()

void Kadath::Domain::set_cheb_base_odd ( Base_spectral so) const
privatevirtualinherited

Gives the base using odd Chebyshev polynomials$.

Parameters
so[input] : the returned base.

Reimplemented in Kadath::Domain_spheric_periodic_compact, Kadath::Domain_spheric_periodic_shell, Kadath::Domain_spheric_periodic_nucleus, Kadath::Domain_oned_inf, Kadath::Domain_oned_qcq, and Kadath::Domain_oned_ori.

Definition at line 1158 of file domain.cpp.

◆ set_cheb_base_p_mtz()

void Kadath::Domain_shell::set_cheb_base_p_mtz ( Base_spectral so) const
privatevirtualinherited

Gives the base using Chebyshev polynomials, for the $ \varphi$ component of a vector in the MTZ setting.

Parameters
so[input] : the returned base.

Reimplemented from Kadath::Domain.

Definition at line 497 of file domain_shell.cpp.

References Kadath::Base_spectral::allocate(), Kadath::Base_spectral::bases_1d, Kadath::Base_spectral::def, Kadath::Domain::nbr_coefs, Kadath::Index::set(), and Kadath::Domain::type_base.

◆ set_cheb_base_p_spher()

void Kadath::Domain_shell::set_cheb_base_p_spher ( Base_spectral so) const
privatevirtualinherited

Gives the base using Chebyshev polynomials, for the $ \varphi$ component of a vector.

Parameters
so[input] : the returned base.

Reimplemented from Kadath::Domain.

Definition at line 429 of file domain_shell.cpp.

References Kadath::Base_spectral::allocate(), Kadath::Base_spectral::bases_1d, Kadath::Base_spectral::def, Kadath::Domain::nbr_coefs, Kadath::Index::set(), and Kadath::Domain::type_base.

◆ set_cheb_base_r_mtz()

void Kadath::Domain_shell::set_cheb_base_r_mtz ( Base_spectral so) const
privatevirtualinherited

Gives the base using Chebyshev polynomials, for the radial component of a vector in the MTZ setting.

Parameters
so[input] : the returned base.

Reimplemented from Kadath::Domain.

Definition at line 451 of file domain_shell.cpp.

References Kadath::Base_spectral::allocate(), Kadath::Base_spectral::bases_1d, Kadath::Base_spectral::def, Kadath::Domain::nbr_coefs, Kadath::Index::set(), and Kadath::Domain::type_base.

◆ set_cheb_base_r_spher()

void Kadath::Domain_shell::set_cheb_base_r_spher ( Base_spectral so) const
privatevirtualinherited

Gives the base using Chebyshev polynomials, for the radial component of a vector.

Parameters
so[input] : the returned base.

Reimplemented from Kadath::Domain.

Definition at line 383 of file domain_shell.cpp.

References Kadath::Base_spectral::allocate(), Kadath::Base_spectral::bases_1d, Kadath::Base_spectral::def, Kadath::Domain::nbr_coefs, Kadath::Index::set(), and Kadath::Domain::type_base.

◆ set_cheb_base_rp_spher()

void Kadath::Domain::set_cheb_base_rp_spher ( Base_spectral so) const
privatevirtualinherited

Gives the base using Chebyshev polynomials, for the $(r, \varphi)$ component of a 2-tensor.

Parameters
so[input] : the returned base.

Reimplemented in Kadath::Domain_shell_symphi, and Kadath::Domain_nucleus_symphi.

Definition at line 1112 of file domain.cpp.

◆ set_cheb_base_rt_spher()

void Kadath::Domain::set_cheb_base_rt_spher ( Base_spectral so) const
privatevirtualinherited

Gives the base using Chebyshev polynomials, for the $(r, \theta)$ component of a 2-tensor.

Parameters
so[input] : the returned base.

Reimplemented in Kadath::Domain_shell_symphi, and Kadath::Domain_nucleus_symphi.

Definition at line 1106 of file domain.cpp.

◆ set_cheb_base_t_mtz()

void Kadath::Domain_shell::set_cheb_base_t_mtz ( Base_spectral so) const
privatevirtualinherited

Gives the base using Chebyshev polynomials, for the $ \theta$ component of a vector in the MTZ setting.

Parameters
so[input] : the returned base.

Reimplemented from Kadath::Domain.

Definition at line 474 of file domain_shell.cpp.

References Kadath::Base_spectral::allocate(), Kadath::Base_spectral::bases_1d, Kadath::Base_spectral::def, Kadath::Domain::nbr_coefs, Kadath::Index::set(), and Kadath::Domain::type_base.

◆ set_cheb_base_t_spher()

void Kadath::Domain_shell::set_cheb_base_t_spher ( Base_spectral so) const
privatevirtualinherited

Gives the base using Chebyshev polynomials, for the $ \theta$ component of a vector.

Parameters
so[input] : the returned base.

Reimplemented from Kadath::Domain.

Definition at line 406 of file domain_shell.cpp.

References Kadath::Base_spectral::allocate(), Kadath::Base_spectral::bases_1d, Kadath::Base_spectral::def, Kadath::Domain::nbr_coefs, Kadath::Index::set(), and Kadath::Domain::type_base.

◆ set_cheb_base_tp_spher()

void Kadath::Domain::set_cheb_base_tp_spher ( Base_spectral so) const
privatevirtualinherited

Gives the base using Chebyshev polynomials, for the $(\theta, \varphi)$ component of a 2-tensor.

Parameters
so[input] : the returned base.

Reimplemented in Kadath::Domain_shell_symphi, and Kadath::Domain_nucleus_symphi.

Definition at line 1118 of file domain.cpp.

◆ set_cheb_base_with_m()

void Kadath::Domain_shell::set_cheb_base_with_m ( Base_spectral so,
int  m 
) const
privatevirtualinherited

Gives the standard base using Chebyshev polynomials.

Used for a spherical harmonic $ m$.

Parameters
so[input] : the returned base.
m[input] : index of the spherical harmonic.

Reimplemented from Kadath::Domain.

Definition at line 311 of file domain_shell.cpp.

References Kadath::Base_spectral::allocate(), Kadath::Base_spectral::bases_1d, Kadath::Base_spectral::def, Kadath::Domain::nbr_coefs, Kadath::Index::set(), and Kadath::Domain::type_base.

◆ set_cheb_base_x_cart()

void Kadath::Domain::set_cheb_base_x_cart ( Base_spectral so) const
privatevirtualinherited

Gives the base using Chebyshev polynomials, for the $ x$ component of a vector.

Parameters
so[input] : the returned base.

Reimplemented in Kadath::Domain_fourD_periodic_shell, Kadath::Domain_compact_symphi, Kadath::Domain_shell_symphi, and Kadath::Domain_nucleus_symphi.

Definition at line 1188 of file domain.cpp.

References Kadath::Domain::set_cheb_base().

◆ set_cheb_base_xy_cart()

void Kadath::Domain::set_cheb_base_xy_cart ( Base_spectral so) const
privatevirtualinherited

Gives the base using Chebyshev polynomials, for the $ (x,y) $ component of a vector.

Parameters
so[input] : the returned base.

Reimplemented in Kadath::Domain_shell_symphi, and Kadath::Domain_nucleus_symphi.

Definition at line 1169 of file domain.cpp.

◆ set_cheb_base_xz_cart()

void Kadath::Domain::set_cheb_base_xz_cart ( Base_spectral so) const
privatevirtualinherited

Gives the base using Chebyshev polynomials, for the $ (x,z) $ component of a vector.

Parameters
so[input] : the returned base.

Reimplemented in Kadath::Domain_shell_symphi, and Kadath::Domain_nucleus_symphi.

Definition at line 1176 of file domain.cpp.

◆ set_cheb_base_y_cart()

void Kadath::Domain::set_cheb_base_y_cart ( Base_spectral so) const
privatevirtualinherited

Gives the base using Chebyshev polynomials, for the $ y$ component of a vector.

Parameters
so[input] : the returned base.

Reimplemented in Kadath::Domain_fourD_periodic_shell, Kadath::Domain_compact_symphi, Kadath::Domain_shell_symphi, and Kadath::Domain_nucleus_symphi.

Definition at line 1194 of file domain.cpp.

References Kadath::Domain::set_cheb_base().

◆ set_cheb_base_yz_cart()

void Kadath::Domain::set_cheb_base_yz_cart ( Base_spectral so) const
privatevirtualinherited

Gives the base using Chebyshev polynomials, for the $ (y, z) $ component of a vector.

Parameters
so[input] : the returned base.

Reimplemented in Kadath::Domain_shell_symphi, and Kadath::Domain_nucleus_symphi.

Definition at line 1183 of file domain.cpp.

◆ set_cheb_base_z_cart()

void Kadath::Domain::set_cheb_base_z_cart ( Base_spectral so) const
privatevirtualinherited

Gives the base using Chebyshev polynomials, for the $ z$ component of a vector.

Parameters
so[input] : the returned base.

Reimplemented in Kadath::Domain_compact_symphi, Kadath::Domain_shell_symphi, and Kadath::Domain_nucleus_symphi.

Definition at line 1200 of file domain.cpp.

References Kadath::Domain::set_anti_cheb_base().

◆ set_cheb_r_base()

void Kadath::Domain_shell::set_cheb_r_base ( Base_spectral so) const
privatevirtualinherited

Gives the base using odd Chebyshev polynomials$ for the radius.

Parameters
so[input] : the returned base.

Reimplemented from Kadath::Domain.

Definition at line 351 of file domain_shell.cpp.

References Kadath::Domain_shell::set_cheb_base().

◆ set_cheb_todd_base()

void Kadath::Domain::set_cheb_todd_base ( Base_spectral so) const
privatevirtualinherited

Gives the base using Chebyshev polynomials, for odd functions in $ T$ (critic space case)

Parameters
so[input] : the returned base.

Reimplemented in Kadath::Domain_critic_outer, and Kadath::Domain_critic_inner.

Definition at line 1048 of file domain.cpp.

◆ set_cheb_xodd_base()

void Kadath::Domain::set_cheb_xodd_base ( Base_spectral so) const
privatevirtualinherited

Gives the base using Chebyshev polynomials, for odd functions in $ X$ (critic space case)

Parameters
so[input] : the returned base.

Reimplemented in Kadath::Domain_critic_inner.

Definition at line 1036 of file domain.cpp.

◆ set_cheb_xodd_todd_base()

void Kadath::Domain::set_cheb_xodd_todd_base ( Base_spectral so) const
privatevirtualinherited

Gives the base using Chebyshev polynomials, for odd functions in $ X$ and in $ T$ (critic space case)

Parameters
so[input] : the returned base.

Reimplemented in Kadath::Domain_critic_inner.

Definition at line 1060 of file domain.cpp.

◆ set_legendre_base()

void Kadath::Domain_shell::set_legendre_base ( Base_spectral so) const
privatevirtualinherited

Sets the base to the standard one for Legendre polynomials.

The bases are :

  • $ cos(m\varphi^\star)$ and $ sin(m\varphi^\star)$ .
  • $ cos((2j)\theta^\star)$ for $ m $ even ( $ l = 2j $) and $ sin((2j+1) \theta^\star)$ for $ m $ odd ( $ l = 2j+1 $).
  • $ P_{i} (x)$.

If type_coloc changes, coloc is uupdated and the derivative members destroyed.

Parameters
so[output] : the returned base.

Reimplemented from Kadath::Domain.

Definition at line 521 of file domain_shell.cpp.

References Kadath::Base_spectral::allocate(), Kadath::Base_spectral::bases_1d, Kadath::Base_spectral::def, Kadath::Domain::nbr_coefs, Kadath::Index::set(), and Kadath::Domain::type_base.

◆ set_legendre_base_odd()

void Kadath::Domain::set_legendre_base_odd ( Base_spectral so) const
privatevirtualinherited

Gives the base using odd Legendre polynomials$.

Parameters
so[input] : the returned base.

Reimplemented in Kadath::Domain_spheric_periodic_compact, Kadath::Domain_spheric_periodic_shell, Kadath::Domain_spheric_periodic_nucleus, Kadath::Domain_oned_inf, Kadath::Domain_oned_qcq, and Kadath::Domain_oned_ori.

Definition at line 1164 of file domain.cpp.

◆ set_legendre_base_p_mtz()

void Kadath::Domain_shell::set_legendre_base_p_mtz ( Base_spectral so) const
privatevirtualinherited

Gives the base using Legendre polynomials, for the $ \varphi$ component of a vector in the MTZ context.

Parameters
so[input] : the returned base.

Reimplemented from Kadath::Domain.

Definition at line 681 of file domain_shell.cpp.

References Kadath::Base_spectral::allocate(), Kadath::Base_spectral::bases_1d, Kadath::Base_spectral::def, Kadath::Domain::nbr_coefs, Kadath::Index::set(), and Kadath::Domain::type_base.

◆ set_legendre_base_p_spher()

void Kadath::Domain_shell::set_legendre_base_p_spher ( Base_spectral so) const
privatevirtualinherited

Gives the base using Legendre polynomials, for the $ \varphi$ component of a vector.

Parameters
so[input] : the returned base.

Reimplemented from Kadath::Domain.

Definition at line 612 of file domain_shell.cpp.

References Kadath::Base_spectral::allocate(), Kadath::Base_spectral::bases_1d, Kadath::Base_spectral::def, Kadath::Domain::nbr_coefs, Kadath::Index::set(), and Kadath::Domain::type_base.

◆ set_legendre_base_r_mtz()

void Kadath::Domain_shell::set_legendre_base_r_mtz ( Base_spectral so) const
privatevirtualinherited

Gives the base using Legendre polynomials, for the radial component of a vector in the MTZ context.

Parameters
so[input] : the returned base.

Reimplemented from Kadath::Domain.

Definition at line 635 of file domain_shell.cpp.

References Kadath::Base_spectral::allocate(), Kadath::Base_spectral::bases_1d, Kadath::Base_spectral::def, Kadath::Domain::nbr_coefs, Kadath::Index::set(), and Kadath::Domain::type_base.

◆ set_legendre_base_r_spher()

void Kadath::Domain_shell::set_legendre_base_r_spher ( Base_spectral so) const
privatevirtualinherited

Gives the base using Legendre polynomials, for the radial component of a vector.

Parameters
so[input] : the returned base.

Reimplemented from Kadath::Domain.

Definition at line 566 of file domain_shell.cpp.

References Kadath::Base_spectral::allocate(), Kadath::Base_spectral::bases_1d, Kadath::Base_spectral::def, Kadath::Domain::nbr_coefs, Kadath::Index::set(), and Kadath::Domain::type_base.

◆ set_legendre_base_t_mtz()

void Kadath::Domain_shell::set_legendre_base_t_mtz ( Base_spectral so) const
privatevirtualinherited

Gives the base using Legendre polynomials, for the $ \theta$ component of a vector in the MTZ context.

Parameters
so[input] : the returned base.

Reimplemented from Kadath::Domain.

Definition at line 658 of file domain_shell.cpp.

References Kadath::Base_spectral::allocate(), Kadath::Base_spectral::bases_1d, Kadath::Base_spectral::def, Kadath::Domain::nbr_coefs, Kadath::Index::set(), and Kadath::Domain::type_base.

◆ set_legendre_base_t_spher()

void Kadath::Domain_shell::set_legendre_base_t_spher ( Base_spectral so) const
privatevirtualinherited

Gives the base using Legendre polynomials, for the $ \theta$ component of a vector.

Parameters
so[input] : the returned base.

Reimplemented from Kadath::Domain.

Definition at line 589 of file domain_shell.cpp.

References Kadath::Base_spectral::allocate(), Kadath::Base_spectral::bases_1d, Kadath::Base_spectral::def, Kadath::Domain::nbr_coefs, Kadath::Index::set(), and Kadath::Domain::type_base.

◆ set_legendre_base_with_m()

void Kadath::Domain::set_legendre_base_with_m ( Base_spectral so,
int  m 
) const
privatevirtualinherited

Gives the stnadard base using Legendre polynomials.

Used for a spherical harmonic $ m$.

Parameters
so[input] : the returned base.
m[input] : index of the spherical harmonic.

Reimplemented in Kadath::Domain_polar_periodic_shell, Kadath::Domain_polar_periodic_nucleus, Kadath::Domain_polar_compact, Kadath::Domain_polar_shell, Kadath::Domain_polar_nucleus, Kadath::Domain_polar_shell_outer_adapted, and Kadath::Domain_polar_shell_inner_adapted.

Definition at line 1018 of file domain.cpp.

◆ set_legendre_base_x_cart()

void Kadath::Domain::set_legendre_base_x_cart ( Base_spectral so) const
privatevirtualinherited

Gives the base using Legendre polynomials, for the $ x$ component of a vector.

Parameters
so[input] : the returned base.

Reimplemented in Kadath::Domain_fourD_periodic_shell, Kadath::Domain_compact_symphi, Kadath::Domain_shell_symphi, and Kadath::Domain_nucleus_symphi.

Definition at line 1206 of file domain.cpp.

References Kadath::Domain::set_legendre_base().

◆ set_legendre_base_y_cart()

void Kadath::Domain::set_legendre_base_y_cart ( Base_spectral so) const
privatevirtualinherited

Gives the base using Legendre polynomials, for the $ y$ component of a vector.

Parameters
so[input] : the returned base.

Reimplemented in Kadath::Domain_fourD_periodic_shell, Kadath::Domain_compact_symphi, Kadath::Domain_shell_symphi, and Kadath::Domain_nucleus_symphi.

Definition at line 1212 of file domain.cpp.

References Kadath::Domain::set_legendre_base().

◆ set_legendre_base_z_cart()

void Kadath::Domain::set_legendre_base_z_cart ( Base_spectral so) const
privatevirtualinherited

Gives the base using Legendre polynomials, for the $ z$ component of a vector.

Parameters
so[input] : the returned base.

Reimplemented in Kadath::Domain_compact_symphi, Kadath::Domain_shell_symphi, and Kadath::Domain_nucleus_symphi.

Definition at line 1218 of file domain.cpp.

References Kadath::Domain::set_anti_legendre_base().

◆ set_legendre_r_base()

void Kadath::Domain_shell::set_legendre_r_base ( Base_spectral so) const
privatevirtualinherited

Gives the base using odd Legendre polynomials$ for the radius.

Parameters
so[input] : the returned base.

Reimplemented from Kadath::Domain.

Definition at line 355 of file domain_shell.cpp.

References Kadath::Domain_shell::set_legendre_base().

◆ set_legendre_todd_base()

void Kadath::Domain::set_legendre_todd_base ( Base_spectral so) const
privatevirtualinherited

Gives the base using Legendre polynomials, for odd functions in $ T$ (critic space case)

Parameters
so[input] : the returned base.

Reimplemented in Kadath::Domain_critic_outer, and Kadath::Domain_critic_inner.

Definition at line 1054 of file domain.cpp.

◆ set_legendre_xodd_base()

void Kadath::Domain::set_legendre_xodd_base ( Base_spectral so) const
privatevirtualinherited

Gives the base using Legendre polynomials, for odd functions in $ X$ (critic space case)

Parameters
so[input] : the returned base.

Reimplemented in Kadath::Domain_critic_inner.

Definition at line 1042 of file domain.cpp.

◆ set_legendre_xodd_todd_base()

void Kadath::Domain::set_legendre_xodd_todd_base ( Base_spectral so) const
privatevirtualinherited

Gives the base using Chebyshev polynomials, for odd functions in $ X$ and in $ T$(critic space case)

Parameters
so[input] : the returned base.

Reimplemented in Kadath::Domain_critic_inner.

Definition at line 1066 of file domain.cpp.

◆ set_val_inf()

void Kadath::Domain::set_val_inf ( Val_domain so,
double  xx 
) const
virtualinherited

Sets the value at infinity of a Val_domain : not implemented for this type of Domain.

Parameters
so[input/output] : the Val_domain.
xx[input] : value at infinity.

Reimplemented in Kadath::Domain_compact_symphi, Kadath::Domain_spheric_periodic_compact, Kadath::Domain_polar_compact, Kadath::Domain_oned_inf, and Kadath::Domain_compact.

Definition at line 1266 of file domain.cpp.

◆ srdr()

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

Compute the $ f' / r$ of a scalar field $ f$.

Parameters
so[input] : the input scalar field.
Returns
the result.

Reimplemented in Kadath::Domain_spheric_time_nucleus, Kadath::Domain_nucleus_symphi, Kadath::Domain_spheric_periodic_nucleus, Kadath::Domain_nucleus, Kadath::Domain_polar_periodic_nucleus, and Kadath::Domain_polar_nucleus.

Definition at line 1333 of file domain.cpp.

◆ update_constante() [1/2]

virtual void Kadath::Domain::update_constante ( const Val_domain shape,
const Scalar oldval,
Scalar newval 
) const
inlinevirtualinherited

Update the value of a scalar, after the shape of the Domain has been changed by the system.

This is intended for constant field and the new valued is computed using a true spectral summation.

Parameters
shape: modification to the shape of the Domain.
oldval: old value of the scalar field.
newval: new value of the scalar field.

Reimplemented in Kadath::Domain_shell_outer_homothetic, Kadath::Domain_shell_inner_homothetic, Kadath::Domain_polar_shell_outer_adapted, Kadath::Domain_polar_shell_inner_adapted, Kadath::Domain_shell_outer_adapted, and Kadath::Domain_shell_inner_adapted.

Definition at line 961 of file space.hpp.

◆ update_constante() [2/2]

virtual void Kadath::Domain::update_constante ( double  bound,
const Scalar oldval,
Scalar newval 
) const
inlinevirtualinherited

Update the value of a scalar, after the shape of the Domain has been changed by the system.

This is intended for constant field and the new valued is computed using a true spectral summation.

Parameters
bound: modification to the bound of the Domain.
oldval: old value of the scalar field.
newval: new value of the scalar field.

Definition at line 970 of file space.hpp.

◆ update_mapping() [1/2]

virtual void Kadath::Domain::update_mapping ( const Val_domain shape)
inlinevirtualinherited

Updates the variables parts of the Domain.

Parameters
shape: correction to the variable boundary.

Reimplemented in Kadath::Domain_polar_shell_outer_adapted, Kadath::Domain_polar_shell_inner_adapted, Kadath::Domain_shell_outer_adapted, and Kadath::Domain_shell_inner_adapted.

Definition at line 977 of file space.hpp.

◆ update_mapping() [2/2]

virtual void Kadath::Domain::update_mapping ( double  bound)
inlinevirtualinherited

Updates the variables parts of the Domain.

Parameters
bound: correction to the variable boundary.

Definition at line 982 of file space.hpp.

◆ update_term_eq()

void Kadath::Domain::update_term_eq ( Term_eq so) const
virtualinherited

Update the value of a field, after the shape of the Domain has been changed by the system.

Parameters
so: pointer on the Term_eq to be updated.

Reimplemented in Kadath::Domain_polar_shell_outer_adapted, Kadath::Domain_polar_shell_inner_adapted, Kadath::Domain_shell_outer_adapted, and Kadath::Domain_shell_inner_adapted.

Definition at line 1749 of file domain.cpp.

References Kadath::Term_eq::set_der_zero().

◆ update_variable() [1/2]

virtual void Kadath::Domain::update_variable ( const Val_domain shape,
const Scalar oldval,
Scalar newval 
) const
inlinevirtualinherited

Update the value of a scalar, after the shape of the Domain has been changed by the system.

This is intended for variable fields and the new valued is computed using a first order Taylor expansion.

Parameters
shape: modification to the shape of the Domain.
oldval: old value of the scalar field.
newval: new value of the scalar field.

Reimplemented in Kadath::Domain_polar_shell_outer_adapted, Kadath::Domain_polar_shell_inner_adapted, Kadath::Domain_shell_outer_adapted, and Kadath::Domain_shell_inner_adapted.

Definition at line 942 of file space.hpp.

◆ update_variable() [2/2]

virtual void Kadath::Domain::update_variable ( double  bound,
const Scalar oldval,
Scalar newval 
) const
inlinevirtualinherited

Update the value of a scalar, after the shape of the Domain has been changed by the system.

This is intended for variable fields and the new valued is computed using a first order Taylor expansion.

Parameters
bound: modification of the bound of the Domain.
oldval: old value of the scalar field.
newval: new value of the scalar field.

Definition at line 952 of file space.hpp.

◆ val_boundary()

double Kadath::Domain_shell::val_boundary ( int  bound,
const Val_domain so,
const Index ind 
) const
virtualinherited

Computes the value of a field at a boundary.

The result correspond to one particular coefficient.

Parameters
bound: name of the boundary at which the result is computed.
so: input scalar field.
ind: indexes describing which coefficient is computed. The index corresponding the surface is irrelevant.
Returns
one of the coefficients of the field, on the surface (given by ind).

Reimplemented from Kadath::Domain.

Definition at line 43 of file domain_shell_systems.cpp.

References Kadath::Val_domain::check_if_zero(), Kadath::Val_domain::coef(), Kadath::Val_domain::get_coef(), Kadath::Domain::nbr_coefs, and Kadath::Index::set().

◆ vars_to_terms()

virtual void Kadath::Domain::vars_to_terms ( ) const
inlinevirtualinherited

The Term_eq describing the variable shape of the Domain are updated.

Reimplemented in Kadath::Domain_polar_shell_outer_adapted, Kadath::Domain_polar_shell_inner_adapted, Kadath::Domain_shell_outer_adapted, and Kadath::Domain_shell_inner_adapted.

Definition at line 899 of file space.hpp.

◆ xx_to_ders_from_adapted()

virtual void Kadath::Domain::xx_to_ders_from_adapted ( const Array< double > &  xx,
int &  conte 
) const
inlinevirtualinherited

Affects the derivative part of variable a Domain from a set of values.

Parameters
xx: set of values used by the affectation
conte: current position in the values vector.

Reimplemented in Kadath::Domain_shell_outer_homothetic, Kadath::Domain_shell_inner_homothetic, Kadath::Domain_polar_shell_outer_adapted, Kadath::Domain_polar_shell_inner_adapted, Kadath::Domain_shell_outer_adapted, and Kadath::Domain_shell_inner_adapted.

Definition at line 928 of file space.hpp.

◆ xx_to_vars_from_adapted() [1/2]

virtual void Kadath::Domain::xx_to_vars_from_adapted ( double  bound,
const Array< double > &  xx,
int &  conte 
) const
inlinevirtualinherited

Computes the new boundary of a Domain from a set of values.

Parameters
bound: Variable boundary of the Domain.
xx: set of values used by the affectation
conte: current position in the values vector.

Definition at line 921 of file space.hpp.

◆ xx_to_vars_from_adapted() [2/2]

virtual void Kadath::Domain::xx_to_vars_from_adapted ( Val_domain shape,
const Array< double > &  xx,
int &  conte 
) const
inlinevirtualinherited

Computes the new boundary of a Domain from a set of values.

Parameters
shape: Val_domain describing the variable boundary of the Domain.
xx: set of values used by the affectation
conte: current position in the values vector.

Reimplemented in Kadath::Domain_shell_outer_homothetic, Kadath::Domain_shell_inner_homothetic, Kadath::Domain_polar_shell_outer_adapted, Kadath::Domain_polar_shell_inner_adapted, Kadath::Domain_shell_outer_adapted, and Kadath::Domain_shell_inner_adapted.

Definition at line 913 of file space.hpp.

Member Data Documentation

◆ absol

Memory_mapped_array<Val_domain*> Kadath::Domain::absol
mutableprotectedinherited

Asbolute coordinates (if defined ; usually Cartesian-like)

Definition at line 76 of file space.hpp.

◆ alpha

double Kadath::Domain_shell::alpha
privateinherited

Relates the numerical to the physical radii.

Definition at line 558 of file spheric.hpp.

◆ beta

double Kadath::Domain_shell::beta
privateinherited

Relates the numerical to the physical radii.

Definition at line 559 of file spheric.hpp.

◆ cart

Memory_mapped_array<Val_domain*> Kadath::Domain::cart
mutableprotectedinherited

Cartesian coordinates.

Definition at line 77 of file space.hpp.

◆ cart_surr

Memory_mapped_array<Val_domain*> Kadath::Domain::cart_surr
mutableprotectedinherited

Cartesian coordinates divided by the radius.

Definition at line 79 of file space.hpp.

◆ center

Point Kadath::Domain_shell::center
privateinherited

Absolute coordinates of the center.

Definition at line 560 of file spheric.hpp.

◆ coloc

Memory_mapped_array<Array<double>*> Kadath::Domain::coloc
protectedinherited

Colocation points in each dimension (stored in ndim 1d- arrays)

Definition at line 75 of file space.hpp.

◆ nbr_coefs

Dim_array Kadath::Domain::nbr_coefs
mutableprotectedinherited

Number of coefficients.

Definition at line 66 of file space.hpp.

◆ nbr_points

Dim_array Kadath::Domain::nbr_points
protectedinherited

Number of colocation points.

Definition at line 65 of file space.hpp.

◆ ndim

int Kadath::Domain::ndim
protectedinherited

Number of dimensions.

Definition at line 64 of file space.hpp.

◆ num_dom

int Kadath::Domain::num_dom
protectedinherited

Number of the current domain (used by the Space)

Definition at line 63 of file space.hpp.

◆ radius

Val_domain* Kadath::Domain::radius
mutableprotectedinherited

The generalized radius.

Definition at line 78 of file space.hpp.

◆ type_base

int Kadath::Domain::type_base
protectedinherited

Type of colocation point :

  • CHEB_TYPE : Gauss-Lobato of Chebyshev polynomials.
  • LEG_TYPE : Gauss-Lobato of Legendre polynomials.

Definition at line 73 of file space.hpp.


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