KADATH
Kadath::Domain_nucleus Class Reference

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

#include <spheric.hpp>

Inheritance diagram for Kadath::Domain_nucleus:
Kadath::Domain

Public Member Functions

 Domain_nucleus (int num, int ttype, double radius, const Point &cr, const Dim_array &nbr)
 Standard constructor : More...
 
 Domain_nucleus (const Domain_nucleus &so)
 Copy constructor. More...
 
 Domain_nucleus (int num, FILE *ff)
 Constructor from a file. More...
 
virtual void save (FILE *) const
 Saving function. More...
 
virtual double get_rmax () const
 Returns the maximum radius. More...
 
virtual Point get_center () const
 Returns the center. 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 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_x (const Val_domain &) const
 Division by $ x$. 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 ddp (const Val_domain &) const
 Compute the second derivative with respect to $\varphi$ of a scalar field. More...
 
virtual Val_domain srdr (const Val_domain &) const
 Compute the $ f' / r$ of a scalar field $ f$. 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 double val_boundary (int, const Val_domain &, const Index &) const
 Computes the value of a field at a boundary. More...
 
virtual void find_other_dom (int, int, int &, int &) const
 Gives the informations corresponding the a touching neighboring domain. More...
 
virtual Val_domain der_normal (const Val_domain &, int) const
 Normal derivative with respect to a given surface. 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 (const Val_domain &so, int mlim, int llim) const
 Computes the number of true unknowns of a Val_domain. More...
 
int nbr_unknowns_val_domain_vr (const Val_domain &so) const
 Computes the number of true unknowns of a Val_domain. More...
 
int nbr_unknowns_val_domain_vt (const Val_domain &so) const
 Computes the number of true unknowns of a Val_domain. More...
 
int nbr_unknowns_val_domain_vp (const Val_domain &so) 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 (const Val_domain &so, int mlim, int llim, int order) const
 Computes number of discretized equations associated with a given tensorial equation in the bulk. More...
 
int nbr_conditions_val_domain_vr (const Val_domain &so, int order) const
 Computes number of discretized equations associated with a given tensorial equation in the bulk. More...
 
int nbr_conditions_val_domain_vp (const Val_domain &so, int order) const
 Computes number of discretized equations associated with a given tensorial equation in the bulk. More...
 
int nbr_conditions_val_domain_vt (const Val_domain &so, 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 (const Val_domain &eq, int mlim) const
 Computes number of discretized equations associated with a given equation on a boundary. More...
 
int nbr_conditions_val_domain_boundary_vr (const Val_domain &eq) const
 Computes number of discretized equations associated with a given equation on a boundary. More...
 
int nbr_conditions_val_domain_boundary_vt (const Val_domain &eq) const
 Computes number of discretized equations associated with a given equation on a boundary. More...
 
int nbr_conditions_val_domain_boundary_vp (const Val_domain &eq) 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 (const Val_domain &eq, int mlim, int llim, int order, Array< double > &res, int &pos_res, int ncond) const
 Exports a residual equation in the bulk. More...
 
void export_tau_val_domain_vr (const Val_domain &eq, int order, Array< double > &res, int &pos_res, int ncond) const
 Exports a residual equation in the bulk. More...
 
void export_tau_val_domain_vt (const Val_domain &eq, int order, Array< double > &res, int &pos_res, int ncond) const
 Exports a residual equation in the bulk. More...
 
void export_tau_val_domain_vp (const Val_domain &eq, 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 (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...
 
void export_tau_val_domain_boundary_vr (const Val_domain &eq, 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_vt (const Val_domain &eq, 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_vp (const Val_domain &eq, 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 (Val_domain &so, int mlim, int llim, const Array< double > &cf, int &pos_cf) const
 Affects some coefficients to a Val_domain. More...
 
void affecte_tau_val_domain_vr (Val_domain &so, const Array< double > &cf, int &pos_cf) const
 Affects some coefficients to a Val_domain. More...
 
void affecte_tau_val_domain_vt (Val_domain &so, const Array< double > &cf, int &pos_cf) const
 Affects some coefficients to a Val_domain. More...
 
void affecte_tau_val_domain_vp (Val_domain &so, 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 (Val_domain &so, int mlim, int llim, 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_vr (Val_domain &so, 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_vt (Val_domain &so, 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_vp (Val_domain &so, int cc, int &pos_cf) const
 Sets at most one coefficient of a Val_domain to 1. 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 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 double integ (const Val_domain &so, int bound) const
 Surface integral on a given 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...
 
virtual ostream & print (ostream &o) const
 Delegate function to virtualize the << operator. 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 double get_rmin () const
 Returns the minimum radius. More...
 
virtual Val_domain div_chi (const Val_domain &) const
 Division by $ \chi$. More...
 
virtual Val_domain div_xm1 (const Val_domain &) const
 Division by $ (x-1)$. More...
 
virtual Val_domain div_xp1 (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_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 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 dt (const Val_domain &so) const
 Compute the 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 double multipoles_sym (int k, int j, int bound, const Val_domain &so, const Array< double > &passage) const
 Extraction of a given multipole, at some boundary, for a symmetric scalar function. More...
 
virtual Term_eq multipoles_sym (int k, int j, int bound, const Term_eq &so, const Array< double > &passage) const
 Extraction of a given multipole, at some boundary, for a symmetric scalar function. More...
 
virtual double multipoles_asym (int k, int j, int bound, const Val_domain &so, const Array< double > &passage) const
 Extraction of a given multipole, at some boundary, for a anti-symmetric scalar function. More...
 
virtual Term_eq multipoles_asym (int k, int j, int bound, const Term_eq &so, const Array< double > &passage) const
 Extraction of a given multipole, at some boundary, for an anti-symmetric scalar function. More...
 
virtual Term_eq radial_part_sym (const Space &space, int k, int j, const Term_eq &omega, Term_eq(*f)(const Space &, int, int, const Term_eq &, const Param &), const Param &param) const
 Gives some radial fit for a given multipole, intended for symmetric scalar function. More...
 
virtual Term_eq radial_part_asym (const Space &space, int k, int j, const Term_eq &omega, Term_eq(*f)(const Space &, int, int, const Term_eq &, const Param &), const Param &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 &so, const Term_eq &omega, int bound, Term_eq(*f)(const Space &, int, int, const Term_eq &, const Param &), const Param &param, const Array< double > &passage) const
 Fit, spherical harmonic by spherical harmonic, for a symmetric function. More...
 
virtual Term_eq harmonics_asym (const Term_eq &so, const Term_eq &omega, int bound, Term_eq(*f)(const Space &, int, int, const Term_eq &, const Param &), const Param &param, const Array< double > &passage) const
 Fit, spherical harmonic by spherical harmonic, for an anti-symmetric function. More...
 
virtual Term_eq der_multipoles_sym (int k, int j, int bound, const Term_eq &so, const Array< double > &passage) 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 k, int j, int bound, const Term_eq &so, const Array< double > &passage) const
 Extraction of a given multipole, at some boundary, for the radial derivative of an anti-symmetric scalar function. More...
 
virtual Term_eq der_radial_part_asym (const Space &space, int k, int j, const Term_eq &omega, Term_eq(*f)(const Space &, int, int, const Term_eq &, const Param &), const Param &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_radial_part_sym (const Space &space, int k, int j, const Term_eq &omega, Term_eq(*f)(const Space &, int, int, const Term_eq &, const Param &param), const Param &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_harmonics_sym (const Term_eq &so, const Term_eq &omega, int bound, Term_eq(*f)(const Space &, int, int, const Term_eq &, const Param &), const Param &param, const Array< double > &passage) 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 &so, const Term_eq &omega, int bound, Term_eq(*f)(const Space &, int, int, const Term_eq &, const Param &), const Param &param, const Array< double > &passage) const
 Fit, spherical harmonic by spherical harmonic, for the radial derivative of an anti-symmetric function. 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 Term_eq derive_flat_mtz (int tipe, char ind, const Term_eq &so, const Metric *manip) const
 Computes the flat derivative of a Term_eq, in spherical coordinates where the constant radii sections have a negative curvature. 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 Val_domain div_1mrsL (const Val_domain &so) const
 Division by $ 1 - r/L$. More...
 
virtual Val_domain mult_1mrsL (const Val_domain &so) const
 Multiplication by $ 1 - r/L$. More...
 
virtual Val_domain der_partial_var (const Val_domain &so, int ind) const
 Partial derivative with respect to a coordinate. 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 void 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
 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 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...
 
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 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_cart () const
 Computes the Cartesian coordinates. More...
 
virtual void do_cart_surr () const
 Computes the Cartesian coordinates over the radius. More...
 
virtual void do_radius () const
 Computes the generalized 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...
 
Point center
 Absolute coordinates of the center. More...
 

Detailed Description

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

  • 3 dimensions.
  • centered on the point center $(X_c, Y_c, Z_c)$
  • The numerical coordinates are :

$ 0 \leq x \leq 1 $

$ 0 \leq \theta^\star \leq \pi/2 $

$ 0 \leq \varphi^\star < 2\pi $

  • Standard spherical coordinates :

$ r = \alpha x $

$ \theta = \theta^\star $

$ \varphi = \varphi^\star $

  • Standard Cartesian coordinates :

$ X = r \sin\theta \cos\varphi + Xc $

$ Y = r \sin\theta \sin\varphi + Yc $

$ Z = r \cos\theta + Zc $

Definition at line 66 of file spheric.hpp.

Constructor & Destructor Documentation

◆ Domain_nucleus() [1/3]

Kadath::Domain_nucleus::Domain_nucleus ( int  num,
int  ttype,
double  radius,
const Point cr,
const Dim_array nbr 
)

Standard constructor :

Parameters
num: number of the domain (used by the Space).
ttype: Chebyshev or Legendre type of spectral expansion.
radius: radius of the nucleus.
cr: center of the spherical coordinates.
nbr: number of points in each dimension.

Definition at line 33 of file domain_nucleus.cpp.

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

◆ Domain_nucleus() [2/3]

Kadath::Domain_nucleus::Domain_nucleus ( const Domain_nucleus so)

Copy constructor.

Definition at line 41 of file domain_nucleus.cpp.

◆ Domain_nucleus() [3/3]

Kadath::Domain_nucleus::Domain_nucleus ( 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 44 of file domain_nucleus.cpp.

References alpha, and do_coloc().

Member Function Documentation

◆ absol_to_num()

const Point Kadath::Domain_nucleus::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}}{\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.

Definition at line 177 of file domain_nucleus.cpp.

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

◆ absol_to_num_bound()

const Point Kadath::Domain_nucleus::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.

Definition at line 207 of file domain_nucleus.cpp.

References 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_nucleus::affecte_tau ( Tensor so,
int  dom,
const Array< double > &  cf,
int &  pos_cf 
) const
virtual

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 1076 of file domain_nucleus_affecte_tau.cpp.

References affecte_tau_val_domain(), affecte_tau_val_domain_vp(), affecte_tau_val_domain_vr(), affecte_tau_val_domain_vt(), Kadath::Tensor::get_basis(), Kadath::Base_tensor::get_basis(), Kadath::Space::get_domain(), Kadath::Tensor::get_n_comp(), Kadath::Tensor::get_space(), Kadath::Tensor::get_valence(), Kadath::Tensor::set(), and Kadath::Scalar::set_domain().

◆ affecte_tau_one_coef()

void Kadath::Domain_nucleus::affecte_tau_one_coef ( Tensor so,
int  dom,
int  cc,
int &  pos_cf 
) const
virtual

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 1204 of file domain_nucleus_affecte_tau_one_coef.cpp.

References affecte_tau_one_coef_val_domain(), affecte_tau_one_coef_val_domain_vp(), affecte_tau_one_coef_val_domain_vr(), affecte_tau_one_coef_val_domain_vt(), Kadath::Tensor::get_basis(), Kadath::Base_tensor::get_basis(), Kadath::Space::get_domain(), Kadath::Tensor::get_n_comp(), Kadath::Tensor::get_space(), Kadath::Tensor::get_valence(), Kadath::Tensor::set(), and Kadath::Scalar::set_domain().

◆ affecte_tau_one_coef_val_domain()

void Kadath::Domain_nucleus::affecte_tau_one_coef_val_domain ( Val_domain so,
int  mlim,
int  llim,
int  cc,
int &  pos_cf 
) const

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 (quantum number wrt $\varphi$).
llim: limit for the regularity (quantum number wrt $\theta$).
cc: location, in the overall system, of the coefficient to be set to 1.
pos_cf: current position.

Definition at line 854 of file domain_nucleus_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_vp()

void Kadath::Domain_nucleus::affecte_tau_one_coef_val_domain_vp ( Val_domain so,
int  cc,
int &  pos_cf 
) const

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). Intended for the $\varphi$ component of a vector.

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

Definition at line 456 of file domain_nucleus_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::Domain::nbr_coefs, Kadath::Array< T >::set(), Kadath::Index::set(), and Kadath::Val_domain::set_zero().

◆ affecte_tau_one_coef_val_domain_vr()

void Kadath::Domain_nucleus::affecte_tau_one_coef_val_domain_vr ( Val_domain so,
int  cc,
int &  pos_cf 
) const

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). Intended for the radial component of a vector.

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

Definition at line 27 of file domain_nucleus_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::Domain::nbr_coefs, Kadath::Array< T >::set(), Kadath::Index::set(), and Kadath::Val_domain::set_zero().

◆ affecte_tau_one_coef_val_domain_vt()

void Kadath::Domain_nucleus::affecte_tau_one_coef_val_domain_vt ( Val_domain so,
int  cc,
int &  pos_cf 
) const

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). Intended for the $\theta$ component of a vector.

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

Definition at line 196 of file domain_nucleus_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::Domain::nbr_coefs, Kadath::Array< T >::set(), Kadath::Index::set(), and Kadath::Val_domain::set_zero().

◆ affecte_tau_val_domain()

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

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 (quantum number wrt $\varphi$).
llim: limit for the regularity (quantum number wrt $\theta$).
cf: Array of the coefficients used.
pos_cf: current position in the array of coefficients.

Definition at line 771 of file domain_nucleus_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_vp()

void Kadath::Domain_nucleus::affecte_tau_val_domain_vp ( Val_domain so,
const Array< double > &  cf,
int &  pos_cf 
) const

Affects some coefficients to a Val_domain.

It takes into account the various symmetries and regularity conditions (by means of Garlekin basis). Intended for the $\varphi$ component of a vector.

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

Definition at line 419 of file domain_nucleus_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_vr()

void Kadath::Domain_nucleus::affecte_tau_val_domain_vr ( Val_domain so,
const Array< double > &  cf,
int &  pos_cf 
) const

Affects some coefficients to a Val_domain.

It takes into account the various symmetries and regularity conditions (by means of Garlekin basis). Intended for the radial component of a vector.

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

Definition at line 27 of file domain_nucleus_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_vt()

void Kadath::Domain_nucleus::affecte_tau_val_domain_vt ( Val_domain so,
const Array< double > &  cf,
int &  pos_cf 
) const

Affects some coefficients to a Val_domain.

It takes into account the various symmetries and regularity conditions (by means of Garlekin basis). Intended for the $\theta$ component of a vector.

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

Definition at line 180 of file domain_nucleus_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().

◆ change_basis_cart_to_spher()

Tensor Kadath::Domain_nucleus::change_basis_cart_to_spher ( int  dd,
const Tensor so 
) const
virtual

◆ change_basis_spher_to_cart()

Tensor Kadath::Domain_nucleus::change_basis_spher_to_cart ( int  dd,
const Tensor so 
) const
virtual

◆ connection_mtz()

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

◆ connection_spher()

◆ ddp()

Val_domain Kadath::Domain_nucleus::ddp ( const Val_domain so) const
virtual

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 242 of file domain_nucleus_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::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 in Kadath::Domain_shell.

Definition at line 1708 of file domain.cpp.

◆ der_harmonics_sym()

Term_eq Kadath::Domain::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 in Kadath::Domain_shell.

Definition at line 1701 of file domain.cpp.

◆ der_multipoles_asym()

Term_eq Kadath::Domain::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 in Kadath::Domain_shell.

Definition at line 1681 of file domain.cpp.

◆ der_multipoles_sym()

Term_eq Kadath::Domain::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 in Kadath::Domain_shell.

Definition at line 1675 of file domain.cpp.

◆ der_normal()

Val_domain Kadath::Domain_nucleus::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.

Definition at line 71 of file domain_nucleus.cpp.

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

◆ 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::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 in Kadath::Domain_compact_symphi, Kadath::Domain_shell_symphi, Kadath::Domain_compact, Kadath::Domain_shell, Kadath::Domain_oned_inf, Kadath::Domain_oned_qcq, Kadath::Domain_oned_ori, Kadath::Domain_critic_outer, and Kadath::Domain_critic_inner.

Definition at line 1423 of file domain.cpp.

◆ der_r()

Val_domain Kadath::Domain_nucleus::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.

Definition at line 238 of file domain_nucleus_ope.cpp.

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

◆ 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::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 in Kadath::Domain_shell.

Definition at line 1694 of file domain.cpp.

◆ der_radial_part_sym()

Term_eq Kadath::Domain::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 in Kadath::Domain_shell.

Definition at line 1687 of file domain.cpp.

◆ 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_nucleus::derive_flat_cart ( int  tipe,
char  ind,
const Term_eq so,
const Metric manip 
) const
virtual

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 297 of file domain_nucleus_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::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 in Kadath::Domain_shell.

Definition at line 1727 of file domain.cpp.

◆ derive_flat_spher()

Term_eq Kadath::Domain_nucleus::derive_flat_spher ( int  tipe,
char  ind,
const Term_eq so,
const Metric manip 
) const
virtual

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 29 of file domain_nucleus_for_metric.cpp.

References der_r(), Kadath::Term_eq::der_t, Kadath::Val_domain::div_r(), 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::div_1mrsL ( const Val_domain so) const
virtualinherited

Division by $ 1 - r/L$.

Parameters
so: the input
Returns
the output

Reimplemented in Kadath::Domain_shell_symphi, Kadath::Domain_shell, and Kadath::Domain_polar_periodic_shell.

Definition at line 1284 of file domain.cpp.

◆ div_1mx2()

Val_domain Kadath::Domain_nucleus::div_1mx2 ( const Val_domain ) const
virtual

◆ 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_nucleus::div_cos_theta ( const Val_domain ) const
virtual

◆ div_r()

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

Division by $ r$.

Parameters
so: the input
Returns
the output

Reimplemented from Kadath::Domain.

Definition at line 226 of file domain_nucleus_ope.cpp.

References alpha, Kadath::Val_domain::base, Kadath::Val_domain::cf, Kadath::Val_domain::coef(), Kadath::Val_domain::in_coef, and Kadath::Base_spectral::ope_1d().

◆ 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_nucleus::div_sin_theta ( const Val_domain ) const
virtual

◆ div_x()

Val_domain Kadath::Domain_nucleus::div_x ( const Val_domain ) const
virtual

◆ div_xm1()

◆ div_xp1()

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

Division by $ (x+1)$.

Reimplemented in Kadath::Domain_shell, Kadath::Domain_polar_compact, Kadath::Domain_polar_shell, and Kadath::Domain_oned_qcq.

Definition at line 1278 of file domain.cpp.

◆ do_absol()

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

Computes the absolute coordinates.

Reimplemented from Kadath::Domain.

Definition at line 86 of file domain_nucleus.cpp.

References Kadath::Domain::absol, alpha, center, Kadath::Domain::coloc, Kadath::Index::inc(), and Kadath::Domain::nbr_points.

◆ do_cart()

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

Computes the Cartesian coordinates.

Reimplemented from Kadath::Domain.

Definition at line 122 of file domain_nucleus.cpp.

References alpha, Kadath::Domain::cart, center, Kadath::Domain::coloc, Kadath::Index::inc(), and Kadath::Domain::nbr_points.

◆ do_cart_surr()

void Kadath::Domain_nucleus::do_cart_surr ( ) const
privatevirtual

Computes the Cartesian coordinates over the radius.

Reimplemented from Kadath::Domain.

Definition at line 143 of file domain_nucleus.cpp.

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

◆ do_coloc()

void Kadath::Domain_nucleus::do_coloc ( )
privatevirtual

◆ 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_nucleus::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.

Definition at line 706 of file domain_nucleus.cpp.

References alpha, Kadath::Val_domain::div_sin_theta(), div_x(), Kadath::Val_domain::mult_cos_phi(), mult_cos_phi(), Kadath::Val_domain::mult_cos_theta(), mult_cos_theta(), Kadath::Val_domain::mult_sin_phi(), mult_sin_phi(), Kadath::Val_domain::mult_sin_theta(), and mult_sin_theta().

◆ do_radius()

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

◆ do_which_points_boundary()

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

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 77 of file domain_nucleus_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::dt ( const Val_domain so) const
virtualinherited

◆ 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_nucleus::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
virtual

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 1094 of file domain_nucleus_export_tau.cpp.

References export_tau_val_domain(), export_tau_val_domain_vp(), export_tau_val_domain_vr(), export_tau_val_domain_vt(), Kadath::Tensor::get_basis(), Kadath::Base_tensor::get_basis(), Kadath::Param_tensor::get_m_order(), Kadath::Tensor::get_n_comp(), Kadath::Tensor::get_parameters(), Kadath::Tensor::get_valence(), and Kadath::Tensor::is_m_order_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_nucleus::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
virtual

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 352 of file domain_nucleus_export_tau_boundary.cpp.

References export_tau_val_domain_boundary(), export_tau_val_domain_boundary_vp(), export_tau_val_domain_boundary_vr(), export_tau_val_domain_boundary_vt(), Kadath::Tensor::get_basis(), Kadath::Base_tensor::get_basis(), Kadath::Param_tensor::get_m_order(), Kadath::Tensor::get_n_comp(), Kadath::Tensor::get_parameters(), Kadath::Tensor::get_valence(), and Kadath::Tensor::is_m_order_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::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 in Kadath::Domain_shell_symphi, Kadath::Domain_shell, and Kadath::Domain_polar_shell.

Definition at line 1550 of file domain.cpp.

◆ 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_nucleus::export_tau_val_domain ( const Val_domain eq,
int  mlim,
int  llim,
int  order,
Array< double > &  res,
int &  pos_res,
int  ncond 
) const

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 (quantum number wrt $\varphi$).
llim: limit for the regularity (quantum number wrt $\theta$).
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 765 of file domain_nucleus_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_nucleus::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.

Parameters
eq: the residual of the equation.
mlim: limit for the regularity (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 263 of file domain_nucleus_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 val_boundary().

◆ export_tau_val_domain_boundary_vp()

void Kadath::Domain_nucleus::export_tau_val_domain_boundary_vp ( const Val_domain eq,
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.

Intended for the radial component of a vector/

Parameters
eq: the $\varphi$ of the equation.
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 186 of file domain_nucleus_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 val_boundary().

◆ export_tau_val_domain_boundary_vr()

void Kadath::Domain_nucleus::export_tau_val_domain_boundary_vr ( const Val_domain eq,
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.

Intended for the radial component of a vector/

Parameters
eq: the residual of the equation.
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 28 of file domain_nucleus_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 val_boundary().

◆ export_tau_val_domain_boundary_vt()

void Kadath::Domain_nucleus::export_tau_val_domain_boundary_vt ( const Val_domain eq,
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.

Intended for the radial component of a vector/

Parameters
eq: the $\theta$ of the equation.
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 105 of file domain_nucleus_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 val_boundary().

◆ export_tau_val_domain_vp()

void Kadath::Domain_nucleus::export_tau_val_domain_vp ( const Val_domain eq,
int  order,
Array< double > &  res,
int &  pos_res,
int  ncond 
) const

Exports a residual equation in the bulk.

It makes use of the various Galerkin basis used. Intended for a $\varphi$ component of a vector.

Parameters
eq: the residual of the equation.
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 422 of file domain_nucleus_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_vr()

void Kadath::Domain_nucleus::export_tau_val_domain_vr ( const Val_domain eq,
int  order,
Array< double > &  res,
int &  pos_res,
int  ncond 
) const

Exports a residual equation in the bulk.

It makes use of the various Galerkin basis used. Intended for a radial component of a vector.

Parameters
eq: the residual of the equation.
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 27 of file domain_nucleus_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_vt()

void Kadath::Domain_nucleus::export_tau_val_domain_vt ( const Val_domain eq,
int  order,
Array< double > &  res,
int &  pos_res,
int  ncond 
) const

Exports a residual equation in the bulk.

It makes use of the various Galerkin basis used. Intended for a $\theta$ component of a vector.

Parameters
eq: the residual of the equation.
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 184 of file domain_nucleus_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_nucleus::find_other_dom ( int  dom,
int  bound,
int &  otherdom,
int &  otherbound 
) const
virtual

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_nucleus_systems.cpp.

◆ 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_nucleus::get_center ( ) const
inlinevirtual

Returns the center.

Reimplemented from Kadath::Domain.

Definition at line 170 of file spheric.hpp.

References 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_nucleus::get_rmax ( ) const
inlinevirtual

Returns the maximum radius.

Reimplemented from Kadath::Domain.

Definition at line 169 of file spheric.hpp.

References alpha.

◆ get_rmin()

double Kadath::Domain::get_rmin ( ) const
virtualinherited

Returns the minimum radius.

Reimplemented in Kadath::Domain_shell_surr, Kadath::Domain_shell_log, and Kadath::Domain_shell.

Definition at line 1375 of file domain.cpp.

◆ 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_nucleus::give_place_var ( char *  name) const
privatevirtual

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 921 of file domain_nucleus.cpp.

◆ grad_term_eq()

◆ harmonics_asym()

Term_eq Kadath::Domain::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 in Kadath::Domain_shell.

Definition at line 1668 of file domain.cpp.

◆ harmonics_sym()

Term_eq Kadath::Domain::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 in Kadath::Domain_shell.

Definition at line 1661 of file domain.cpp.

◆ 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_nucleus::import ( int  numdom,
int  bound,
int  n_ope,
const Array< int > &  other_doms,
Tensor **  parts 
) const
virtual

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_nucleus_import.cpp.

References absol_to_num(), Kadath::Tensor::cmp, Kadath::Tensor::coef(), Kadath::Domain::get_cart(), Kadath::Tensor::get_n_comp(), Kadath::Domain::get_nbr_points(), 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_nucleus::integ ( const Val_domain so,
int  bound 
) const
virtual

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 932 of file domain_nucleus.cpp.

References Kadath::Index::set().

◆ integ_term_eq()

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

◆ integ_volume()

double Kadath::Domain_nucleus::integ_volume ( const Val_domain so) const
virtual

Volume integral.

The volume element is provided by the function.

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

Reimplemented from Kadath::Domain.

Definition at line 260 of file domain_nucleus_ope.cpp.

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

◆ 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_nucleus::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.

Definition at line 162 of file domain_nucleus.cpp.

References alpha, 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_nucleus::laplacian2 ( const Val_domain so,
int  m 
) const
virtual

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 250 of file domain_nucleus_ope.cpp.

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

◆ mult()

Base_spectral Kadath::Domain_nucleus::mult ( const Base_spectral ,
const Base_spectral  
) const
virtual

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 724 of file domain_nucleus.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::mult_1mrsL ( const Val_domain so) const
virtualinherited

Multiplication by $ 1 - r/L$.

Parameters
so: the input
Returns
the output

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

Definition at line 1291 of file domain.cpp.

◆ mult_cos_phi()

◆ mult_cos_theta()

Val_domain Kadath::Domain_nucleus::mult_cos_theta ( const Val_domain ) const
virtual

◆ 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_nucleus::mult_r ( const Val_domain so) const
virtual

Multiplication by $ r$.

Parameters
so: the input
Returns
the output

Reimplemented from Kadath::Domain.

Definition at line 214 of file domain_nucleus_ope.cpp.

References alpha, Kadath::Val_domain::base, Kadath::Val_domain::cf, Kadath::Val_domain::coef(), Kadath::Val_domain::in_coef, and Kadath::Base_spectral::ope_1d().

◆ 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_nucleus::mult_sin_theta ( const Val_domain ) const
virtual

◆ 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()

◆ multipoles_asym() [1/2]

Term_eq Kadath::Domain::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 in Kadath::Domain_shell.

Definition at line 1641 of file domain.cpp.

◆ multipoles_asym() [2/2]

double Kadath::Domain::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 in Kadath::Domain_shell.

Definition at line 1629 of file domain.cpp.

◆ multipoles_sym() [1/2]

Term_eq Kadath::Domain::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 in Kadath::Domain_shell.

Definition at line 1635 of file domain.cpp.

◆ multipoles_sym() [2/2]

double Kadath::Domain::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 in Kadath::Domain_shell.

Definition at line 1623 of file domain.cpp.

◆ nbr_conditions()

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

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 403 of file domain_nucleus_nbr_conditions.cpp.

References Kadath::Tensor::get_basis(), Kadath::Base_tensor::get_basis(), Kadath::Param_tensor::get_m_order(), Kadath::Tensor::get_n_comp(), Kadath::Tensor::get_parameters(), Kadath::Tensor::get_valence(), Kadath::Tensor::is_m_order_affected(), nbr_conditions_val_domain(), nbr_conditions_val_domain_vp(), nbr_conditions_val_domain_vr(), nbr_conditions_val_domain_vt(), 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_nucleus::nbr_conditions_boundary ( const Tensor eq,
int  dom,
int  bound,
int  n_cmp = -1,
Array< int > **  p_cmp = 0x0 
) const
virtual

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 171 of file domain_nucleus_nbr_conditions_boundary.cpp.

References Kadath::Tensor::get_basis(), Kadath::Base_tensor::get_basis(), Kadath::Param_tensor::get_m_order(), Kadath::Tensor::get_n_comp(), Kadath::Tensor::get_parameters(), Kadath::Tensor::get_valence(), Kadath::Tensor::is_m_order_affected(), nbr_conditions_val_domain_boundary(), nbr_conditions_val_domain_boundary_vp(), nbr_conditions_val_domain_boundary_vr(), nbr_conditions_val_domain_boundary_vt(), 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_nucleus::nbr_conditions_val_domain ( const Val_domain so,
int  mlim,
int  llim,
int  order 
) const

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 (quantum number wrt $\varphi$).
llim: limit for the regularity (quantum number wrt $\theta$).
order: order of the equation (i.e. 2 for a Laplacian for instance)
Returns
the number of true unknowns.

Definition at line 299 of file domain_nucleus_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_nucleus::nbr_conditions_val_domain_boundary ( const Val_domain eq,
int  mlim 
) const

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
eq: the residual of the equation.
mlim: mimit for the regularity (quantum number wrt $\varphi$).
Returns
the number of true conditions.

Definition at line 130 of file domain_nucleus_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_vp()

int Kadath::Domain_nucleus::nbr_conditions_val_domain_boundary_vp ( const Val_domain eq) const

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. Intended for a $\varphi$ component of a vector.

Parameters
eq: the residual of the equation.
Returns
the number of true conditions.

Definition at line 97 of file domain_nucleus_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_vr()

int Kadath::Domain_nucleus::nbr_conditions_val_domain_boundary_vr ( const Val_domain eq) const

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. Intended for a radial component of a vector.

Parameters
eq: the residual of the equation.
Returns
the number of true conditions.

Definition at line 28 of file domain_nucleus_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_vt()

int Kadath::Domain_nucleus::nbr_conditions_val_domain_boundary_vt ( const Val_domain eq) const

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. Intended for a $\theta$ component of a vector.

Parameters
eq: the residual of the equation.
Returns
the number of true conditions.

Definition at line 62 of file domain_nucleus_nbr_conditions_boundary.cpp.

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

◆ nbr_conditions_val_domain_vp()

int Kadath::Domain_nucleus::nbr_conditions_val_domain_vp ( const Val_domain so,
int  order 
) const

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

It takes into account the various Galerkin basis used. Intended for the $\theta$ component of a vector.

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

Definition at line 203 of file domain_nucleus_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_vr()

int Kadath::Domain_nucleus::nbr_conditions_val_domain_vr ( const Val_domain so,
int  order 
) const

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

It takes into account the various Galerkin basis used. Intended for the radial component of a vector.

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

Definition at line 27 of file domain_nucleus_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_vt()

int Kadath::Domain_nucleus::nbr_conditions_val_domain_vt ( const Val_domain so,
int  order 
) const

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

It takes into account the various Galerkin basis used. Intended for the $\varphi$ component of a vector.

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

Definition at line 114 of file domain_nucleus_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_nucleus::nbr_points_boundary ( int  bound,
const Base_spectral base 
) const
virtual

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 63 of file domain_nucleus_systems.cpp.

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

◆ nbr_unknowns()

int Kadath::Domain_nucleus::nbr_unknowns ( const Tensor so,
int  dom 
) const
virtual

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 316 of file domain_nucleus_nbr_unknowns.cpp.

References Kadath::Tensor::get_basis(), Kadath::Base_tensor::get_basis(), Kadath::Space::get_domain(), Kadath::Tensor::get_n_comp(), Kadath::Tensor::get_space(), Kadath::Tensor::get_valence(), nbr_unknowns_val_domain(), nbr_unknowns_val_domain_vp(), nbr_unknowns_val_domain_vr(), and nbr_unknowns_val_domain_vt().

◆ nbr_unknowns_from_adapted()

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

◆ nbr_unknowns_val_domain()

int Kadath::Domain_nucleus::nbr_unknowns_val_domain ( const Val_domain so,
int  mlim,
int  llim 
) const

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 (quantum number wrt $\varphi$).
llimlimit for the regularity (quantum number wrt $\theta$).
Returns
the number of true unknowns.

Definition at line 242 of file domain_nucleus_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_vp()

int Kadath::Domain_nucleus::nbr_unknowns_val_domain_vp ( const Val_domain so) const

Computes the number of true unknowns of a Val_domain.

Intended for the $\theta$ component of a vector.

Parameters
so: the field.
Returns
the number of true unknowns.

Definition at line 164 of file domain_nucleus_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_vr()

int Kadath::Domain_nucleus::nbr_unknowns_val_domain_vr ( const Val_domain so) const

Computes the number of true unknowns of a Val_domain.

Intended for the radial component of a vector.

Parameters
so: the field.
Returns
the number of true unknowns.

Definition at line 27 of file domain_nucleus_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_vt()

int Kadath::Domain_nucleus::nbr_unknowns_val_domain_vt ( const Val_domain so) const

Computes the number of true unknowns of a Val_domain.

Intended for the $\theta$ component of a vector.

Parameters
so: the field.
Returns
the number of true unknowns.

Definition at line 94 of file domain_nucleus_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_nucleus::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.

Implements Kadath::Domain.

Definition at line 61 of file domain_nucleus.cpp.

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

◆ radial_part_asym()

Term_eq Kadath::Domain::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 in Kadath::Domain_shell.

Definition at line 1654 of file domain.cpp.

◆ radial_part_sym()

Term_eq Kadath::Domain::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 in Kadath::Domain_shell.

Definition at line 1647 of file domain.cpp.

◆ save()

void Kadath::Domain_nucleus::save ( FILE *  fd) const
virtual

◆ set_anti_cheb_base()

void Kadath::Domain_nucleus::set_anti_cheb_base ( Base_spectral so) const
privatevirtual

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_{2i+1} (x)$ for $ l $ even and $ T_{2i} (x)$ for $ l $ odd.

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 333 of file domain_nucleus.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_nucleus::set_anti_legendre_base ( Base_spectral so) const
privatevirtual

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_{2i+1} (x)$ for $ l $ even and $ T_{2i} (x)$ for $ l $ odd.

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 551 of file domain_nucleus.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_nucleus::set_cheb_base ( Base_spectral so) const
privatevirtual

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_{2i} (x)$ for $ l $ even and $ T_{2i+1} (x)$ for $ l $ odd.

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 272 of file domain_nucleus.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_nucleus::set_cheb_base_p_mtz ( Base_spectral so) const
privatevirtual

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 397 of file domain_nucleus.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_nucleus::set_cheb_base_p_spher ( Base_spectral so) const
privatevirtual

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 461 of file domain_nucleus.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_nucleus::set_cheb_base_r_mtz ( Base_spectral so) const
privatevirtual

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 355 of file domain_nucleus.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_nucleus::set_cheb_base_r_spher ( Base_spectral so) const
privatevirtual

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 419 of file domain_nucleus.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_nucleus::set_cheb_base_t_mtz ( Base_spectral so) const
privatevirtual

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 376 of file domain_nucleus.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_nucleus::set_cheb_base_t_spher ( Base_spectral so) const
privatevirtual

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 440 of file domain_nucleus.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_nucleus::set_cheb_base_with_m ( Base_spectral so,
int  m 
) const
privatevirtual

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 295 of file domain_nucleus.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_nucleus::set_cheb_r_base ( Base_spectral so) const
privatevirtual

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

Parameters
so[input] : the returned base.

Reimplemented from Kadath::Domain.

Definition at line 482 of file domain_nucleus.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_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_nucleus::set_legendre_base ( Base_spectral so) const
privatevirtual

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_{2i} (x)$ for $ l $ even and $ P_{2i+1} (x)$ for $ l $ odd.

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 528 of file domain_nucleus.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_nucleus::set_legendre_base_p_mtz ( Base_spectral so) const
privatevirtual

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 683 of file domain_nucleus.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_nucleus::set_legendre_base_p_spher ( Base_spectral so) const
privatevirtual

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 617 of file domain_nucleus.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_nucleus::set_legendre_base_r_mtz ( Base_spectral so) const
privatevirtual

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 639 of file domain_nucleus.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_nucleus::set_legendre_base_r_spher ( Base_spectral so) const
privatevirtual

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 573 of file domain_nucleus.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_nucleus::set_legendre_base_t_mtz ( Base_spectral so) const
privatevirtual

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 661 of file domain_nucleus.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_nucleus::set_legendre_base_t_spher ( Base_spectral so) const
privatevirtual

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 595 of file domain_nucleus.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_nucleus::set_legendre_r_base ( Base_spectral so) const
privatevirtual

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

Parameters
so[input] : the returned base.

Reimplemented from Kadath::Domain.

Definition at line 505 of file domain_nucleus.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_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_nucleus::srdr ( const Val_domain so) const
virtual

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

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

Reimplemented from Kadath::Domain.

Definition at line 246 of file domain_nucleus_ope.cpp.

References alpha, Kadath::Val_domain::der_var(), and div_x().

◆ 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_nucleus::val_boundary ( int  bound,
const Val_domain so,
const Index ind 
) const
virtual

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 39 of file domain_nucleus_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_nucleus::alpha
private

Relates the numerical to the physical radii.

Definition at line 69 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_nucleus::center
private

Absolute coordinates of the center.

Definition at line 70 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: