LORENE

Component of a tensorial field *** DEPRECATED : use class Scalar instead ***. More...

#include <cmp.h>

Public Member Functions

 Cmp (const Map &map)
 Constructor from mapping.
 
 Cmp (const Map *p_map)
 Constructor from mapping.
 
 Cmp (const Cmp &a)
 Copy constructor.
 
 Cmp (const Map &, const Mg3d &, FILE *)
 Constructor from a file (see sauve(FILE*) )
 
 ~Cmp ()
 Destructor.
 
void operator= (const Cmp &a)
 Assignment to another Cmp defined on the same mapping.
 
void operator= (const Valeur &a)
 Assignment to a Valeur.
 
void operator= (const Mtbl &a)
 Assignment to a Mtbl.
 
void operator= (double)
 Assignment to a double.
 
void operator= (int)
 Assignment to an int.
 
void import (const Cmp &ci)
 Assignment to another Cmp defined on a different mapping.
 
void import_symy (const Cmp &ci)
 Assignment to another Cmp defined on a different mapping.
 
void import_asymy (const Cmp &ci)
 Assignment to another Cmp defined on a different mapping.
 
void import (int nzet, const Cmp &ci)
 Assignment to another Cmp defined on a different mapping.
 
void import_symy (int nzet, const Cmp &ci)
 Assignment to another Cmp defined on a different mapping.
 
void import_asymy (int nzet, const Cmp &ci)
 Assignment to another Cmp defined on a different mapping.
 
Tblset (int l)
 Read/write of the value in a given domain.
 
const Tbloperator() (int l) const
 Read-only of the value in a given domain.
 
doubleset (int l, int k, int j, int i)
 Read/write of a particular element.
 
double operator() (int l, int k, int j, int i) const
 Read-only of a particular element.
 
double val_point (double r, double theta, double phi) const
 Computes the value of the field represented by *this at an arbitrary point $(r, \theta, \phi)$, by means of the spectral expansion.
 
void set_etat_nondef ()
 Sets the logical state to ETATNONDEF (undefined).
 
void set_etat_zero ()
 Sets the logical state to ETATZERO (zero).
 
void set_etat_qcq ()
 Sets the logical state to ETATQCQ (ordinary state).
 
void allocate_all ()
 Sets the logical state to ETATQCQ (ordinary state) and performs the memory allocation of all the elements, down to the double arrays of the Tbl s.
 
void annule_hard ()
 Sets the Cmp to zero in a hard way.
 
void annule (int l)
 Sets the Cmp to zero in a given domain.
 
void annule (int l_min, int l_max)
 Sets the Cmp to zero in several domains.
 
void filtre (int n)
 Sets the n lasts coefficients in r to 0 in the external domain.
 
void filtre_phi (int n, int zone)
 Sets the n lasts coefficients in $\Phi$ to 0 in the domain zone .
 
void set_val_inf (double val)
 Sets the value of the Cmp to val at infinity.
 
void set_val_hor (double val, int zone)
 Sets the value of the Cmp to val on the inner boudary of the shell number zone .This is usefull for dealing with undefined values.
 
void fixe_decroissance (int puis)
 Substracts all the components behaving like $r^{-n}$ in the external domain, with n strictly lower than puis , so that *this
decreases at least like $r^{\tt puis} $ at infinity.
 
Tbl multipole_spectrum ()
 Gives the spectrum in terms of multipolar modes l .
 
int get_etat () const
 Returns the logical state.
 
const Mapget_mp () const
 Returns the mapping.
 
int get_dzpuis () const
 Returns dzpuis.
 
bool dz_nonzero () const
 Returns true if the last domain is compactified and *this is not zero in this domain.
 
bool check_dzpuis (int dzi) const
 Returns false if the last domain is compactified and *this is not zero in this domain and dzpuis is not equal to dzi , otherwise return true.
 
void sauve (FILE *) const
 Save in a file.
 
void affiche_seuil (ostream &ostr, int type=0, int precision=4, double threshold=1.e-7) const
 Prints only the values greater than a given threshold.
 
void operator+= (const Cmp &)
 += Cmp
 
void operator-= (const Cmp &)
 -= Cmp
 
void operator*= (const Cmp &)
 *= Cmp
 
void std_base_scal ()
 Sets the spectral bases of the Valeur va to the standard ones for a scalar.
 
const Cmpdsdr () const
 Returns $\partial / \partial r$ of *this .
 
const Cmpsrdsdt () const
 Returns $1/r \partial / \partial \theta$ of *this .
 
const Cmpsrstdsdp () const
 Returns $1/(r\sin\theta) \partial / \partial \phi$ of *this .
 
const Cmpdsdx () const
 Returns $\partial/\partial x$ of *this , where $x=r\sin\theta \cos\phi$.
 
const Cmpdsdy () const
 Returns $\partial/\partial y$ of *this , where $y=r\sin\theta \sin\phi$.
 
const Cmpdsdz () const
 Returns $\partial/\partial z$ of *this , where $z=r\cos\theta$.
 
const Cmpderiv (int i) const
 Returns $\partial/\partial x_i$ of *this , where $x_i = (x, y, z)$.
 
const Cmplaplacien (int zec_mult_r=4) const
 Returns the Laplacian of *this.
 
void div_r ()
 Division by r everywhere.
 
void mult_r ()
 Multiplication by r everywhere.
 
void mult_r_zec ()
 Multiplication by r in the external compactified domain (ZEC)
 
void mult_rsint ()
 Multiplication by $r\sin\theta$.
 
void mult_cost ()
 Multiplication by \f\cos\theta\f$.
 
Division by f$r sin theta f$ void div_rsint ()
 
void dec_dzpuis ()
 Decreases by 1 the value of dzpuis and changes accordingly the values of the Cmp in the external compactified domain (ZEC).
 
void inc_dzpuis ()
 Increases by the value of dzpuis and changes accordingly the values of the Cmp in the external compactified domain (ZEC).
 
void dec2_dzpuis ()
 Decreases by 2 the value of dzpuis and changes accordingly the values of the Cmp in the external compactified domain (ZEC).
 
void inc2_dzpuis ()
 Increases by 2 the value of dzpuis and changes accordingly the values of the Cmp in the external compactified domain (ZEC).
 
void set_dzpuis (int)
 Set a value to dzpuis.
 
double integrale () const
 Computes the integral over all space of *this .
 
const Tblintegrale_domains () const
 Computes the integral in each domain of *this .
 
Valeur ** asymptot (int n, const int flag=0) const
 Asymptotic expansion at r = infinity.
 
Cmp poisson () const
 Solves the scalar Poisson equation with *this as a source.
 
Cmp poisson_tau () const
 Same as Poisson with a Tau method.
 
Cmp poisson_falloff (int k_falloff) const
 
Cmp poisson_ylm (int nylm, double *intvec) const
 
void poisson (Param &par, Cmp &uu) const
 Solves the scalar Poisson equation with *this as a source (version with parameters to control the resolution).
 
void poisson_tau (Param &par, Cmp &uu) const
 Same as Poisson with a Tau method.
 
void poisson_falloff (Param &par, Cmp &uu, int k_falloff) const
 
void poisson_ylm (Param &par, Cmp &uu, int nylm, double *intvec) const
 
Cmp poisson_dirichlet (const Valeur &limite, int num) const
 Is identicall to Cmp::poisson() .
 
Cmp poisson_neumann (const Valeur &, int) const
 Idem as Cmp::poisson_dirichlet , the boundary condition being on the radial derivative of the solution.
 
Cmp poisson_neumann_interne (const Valeur &, Param &par, Cmp &resu) const
 Idem as Cmp::poisson_neumann , the boundary condition is on the radial derivative of the solution.
 
Cmp poisson_frontiere_double (const Valeur &, const Valeur &, int) const
 
void poisson_regular (int k_div, int nzet, double unsgam1, Param &par, Cmp &uu, Cmp &uu_regu, Cmp &uu_div, Tenseur &duu_div, Cmp &source_regu, Cmp &source_div) const
 Solves the scalar Poisson equation with *this as a source (version with parameters to control the resolution).
 
Tbl test_poisson (const Cmp &uu, ostream &ostr, bool detail=false) const
 Checks if a Poisson equation with *this as a source has been correctly solved.
 
void raccord (int n)
 Performs the $C^n$ matching of the nucleus with respect to the first shell.
 
void raccord_c1_zec (int puis, int nbre, int lmax)
 Performs the $C^1$ matching of the external domain with respect to the last shell using function like $\frac{1}{r^i}$ with ${\tt puis} \leq i \leq {\tt puis+nbre}$ for each spherical harmonics with $l \leq {\tt lmax}$.
 
void raccord_externe (int puis, int nbre, int lmax)
 Matching of the external domain with the outermost shell.
 

Public Attributes

Valeur va
 The numerical value of the Cmp

 

Private Member Functions

void import_gal (int nzet, const Cmp &ci)
 Assignment to another Cmp defined on a different mapping, when the two mappings do not have a particular relative orientation.
 
void import_align (int nzet, const Cmp &ci)
 Assignment to another Cmp defined on a different mapping, when the two mappings have aligned Cartesian axis.
 
void import_anti (int nzet, const Cmp &ci)
 Assignment to another Cmp defined on a different mapping, when the two mappings have anti-aligned Cartesian axis (i.e.
 
void import_align_symy (int nzet, const Cmp &ci)
 Assignment to another Cmp defined on a different mapping, when the two mappings have aligned Cartesian axis.
 
void import_anti_symy (int nzet, const Cmp &ci)
 Assignment to another Cmp defined on a different mapping, when the two mappings have anti-aligned Cartesian axis (i.e.
 
void import_align_asymy (int nzet, const Cmp &ci)
 Assignment to another Cmp defined on a different mapping, when the two mappings have aligned Cartesian axis.
 
void import_anti_asymy (int nzet, const Cmp &ci)
 Assignment to another Cmp defined on a different mapping, when the two mappings have anti-aligned Cartesian axis (i.e.
 
void del_t ()
 Logical destructor.
 
void del_deriv ()
 Logical destructor of the derivatives.
 
void set_der_0x0 ()
 Sets the pointers for derivatives to 0x0.
 

Private Attributes

const Mapmp
 Reference mapping.
 
int etat
 Logical state (ETATNONDEF , ETATQCQ or ETATZERO ).
 
int dzpuis
 Power of r by which the quantity represented by this
must be divided in the external compactified zone in order to get the correct physical values.
 
Cmpp_dsdr
 Pointer on $\partial/\partial r$ of *this.
 
Cmpp_srdsdt
 Pointer on $1/r \partial/\partial \theta$ of *this.
 
Cmpp_srstdsdp
 Pointer on $1/(r\sin\theta) \partial/\partial \phi$ of *this.
 
Cmpp_dsdx
 Pointer on $\partial/\partial x$ of *this , where $x=r\sin\theta \cos\phi$.
 
Cmpp_dsdy
 Pointer on $\partial/\partial y$ of *this , where $y=r\sin\theta \sin\phi$.
 
Cmpp_dsdz
 Pointer on $\partial/\partial z$ of *this , where $z=r\cos\theta$.
 
Cmpp_lap
 Pointer on the Laplacian of *this.
 
int ind_lap
 Power of r by which the last computed Laplacian has been multiplied in the external compactified domain.
 
Tblp_integ
 Pointer on the space integral of *this (values in each domain)
 

Friends

ostreamoperator<< (ostream &, const Cmp &)
 Display.
 

Detailed Description

Component of a tensorial field *** DEPRECATED : use class Scalar instead ***.

()

Definition at line 446 of file cmp.h.

Constructor & Destructor Documentation

◆ Cmp() [1/4]

Lorene::Cmp::Cmp ( const Map map)
explicit

Constructor from mapping.

Definition at line 208 of file cmp.C.

References set_der_0x0().

◆ Cmp() [2/4]

Lorene::Cmp::Cmp ( const Map p_map)
explicit

Constructor from mapping.

Definition at line 215 of file cmp.C.

References set_der_0x0().

◆ Cmp() [3/4]

Lorene::Cmp::Cmp ( const Cmp a)

Copy constructor.

Definition at line 225 of file cmp.C.

References set_der_0x0().

◆ Cmp() [4/4]

Lorene::Cmp::Cmp ( const Map mpi,
const Mg3d mgi,
FILE fd 
)

Constructor from a file (see sauve(FILE*) )

Definition at line 234 of file cmp.C.

References dzpuis, etat, Lorene::fread_be(), Lorene::Map::get_mg(), and set_der_0x0().

◆ ~Cmp()

Lorene::Cmp::~Cmp ( )

Destructor.

Definition at line 250 of file cmp.C.

References del_t().

Member Function Documentation

◆ affiche_seuil()

void Lorene::Cmp::affiche_seuil ( ostream ostr,
int  type = 0,
int  precision = 4,
double  threshold = 1.e-7 
) const

Prints only the values greater than a given threshold.

Parameters
ostr[input] Output stream used for the printing
type[input] Type of display : 0 = prints only the coefficients, 1 = prints only the values in configuration space, 2 = prints both
precision[input] Number of printed digits (default: 4)
threshold[input] Value above which an array element is printed (default: 1.e-7)

Definition at line 612 of file cmp.C.

References Lorene::Valeur::affiche_seuil(), dzpuis, etat, and va.

◆ allocate_all()

void Lorene::Cmp::allocate_all ( )

Sets the logical state to ETATQCQ (ordinary state) and performs the memory allocation of all the elements, down to the double arrays of the Tbl s.

This function performs in fact recursive calls to set_etat_qcq() on each element of the chain Cmp -> Valeur -> Mtbl -> Tbl .

Definition at line 323 of file cmp.C.

References Lorene::Valeur::c, Lorene::Mtbl::get_nzone(), Lorene::Valeur::set_etat_c_qcq(), set_etat_qcq(), Lorene::Mtbl::set_etat_qcq(), Lorene::Tbl::set_etat_qcq(), Lorene::Mtbl::t, and va.

◆ annule() [1/2]

void Lorene::Cmp::annule ( int  l)

Sets the Cmp to zero in a given domain.

Parameters
l[input] Index of the domain in which the Cmp will be set (logically) to zero.

Definition at line 348 of file cmp.C.

References annule().

◆ annule() [2/2]

void Lorene::Cmp::annule ( int  l_min,
int  l_max 
)

Sets the Cmp to zero in several domains.

Parameters
l_min[input] The Cmp will be set (logically) to zero in the domains whose indices are in the range [l_min,l_max].
l_max[input] see the comments for l_min .

Note that annule(0,va.mg->get_nzone()-1) is equivalent to set_etat_zero() .

Definition at line 357 of file cmp.C.

References annule(), Lorene::Valeur::annule(), etat, Lorene::Mg3d::get_nzone(), Lorene::Valeur::mg, p_dsdr, p_dsdx, p_dsdy, p_dsdz, p_integ, p_lap, p_srdsdt, p_srstdsdp, set_etat_zero(), and va.

◆ annule_hard()

void Lorene::Cmp::annule_hard ( )

Sets the Cmp to zero in a hard way.

1/ Sets the logical state to ETATQCQ , i.e. to an ordinary state. 2/ Fills the Valeur va with zeros. NB: this function must be used for debugging purposes only. For other operations, the functions set_etat_zero() or annule(int, int) must be perferred.

Definition at line 338 of file cmp.C.

References Lorene::Valeur::annule_hard(), del_deriv(), etat, and va.

◆ asymptot()

Valeur ** Lorene::Cmp::asymptot ( int  n,
const int  flag = 0 
) const

Asymptotic expansion at r = infinity.

Determines the coefficients $a_k(\theta, \phi)$ of the expansion

\[
\sum_{k=0}^n {a_k(\theta, \phi) \over r^k}
\]

of *this when $r \rightarrow \infty$.

Parameters
norder of the expansion
flag: output
Returns
Array of n+1 Valeur s on mg->angu
describing the coefficients $a_k(\theta, \phi)$. This array is allocated by the routine.

Definition at line 71 of file cmp_asymptot.C.

References Lorene::Valeur::base, Lorene::Valeur::c, dzpuis, Lorene::Mg3d::get_angu(), Lorene::Map::get_mg(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Mg3d::get_type_r(), mp, mult_r_zec(), set(), Lorene::Valeur::set(), Lorene::Valeur::set_base(), Lorene::Valeur::set_etat_c_qcq(), Lorene::Mtbl::set_etat_qcq(), Lorene::Tbl::set_etat_qcq(), Lorene::Tbl::set_etat_zero(), Lorene::Valeur::set_etat_zero(), Lorene::Mtbl::t, and va.

◆ check_dzpuis()

bool Lorene::Cmp::check_dzpuis ( int  dzi) const

Returns false if the last domain is compactified and *this is not zero in this domain and dzpuis is not equal to dzi , otherwise return true.

Definition at line 715 of file cmp.C.

References dz_nonzero(), and dzpuis.

◆ dec2_dzpuis()

void Lorene::Cmp::dec2_dzpuis ( )

Decreases by 2 the value of dzpuis and changes accordingly the values of the Cmp in the external compactified domain (ZEC).

Definition at line 180 of file cmp_r_manip.C.

References Lorene::Map::dec2_dzpuis(), mp, and operator=().

◆ dec_dzpuis()

void Lorene::Cmp::dec_dzpuis ( )

Decreases by 1 the value of dzpuis and changes accordingly the values of the Cmp in the external compactified domain (ZEC).

Definition at line 154 of file cmp_r_manip.C.

References Lorene::Map::dec_dzpuis(), mp, and operator=().

◆ del_deriv()

void Lorene::Cmp::del_deriv ( )
private

Logical destructor of the derivatives.

Definition at line 265 of file cmp.C.

References p_dsdr, p_dsdx, p_dsdy, p_dsdz, p_integ, p_lap, p_srdsdt, and p_srstdsdp.

◆ del_t()

void Lorene::Cmp::del_t ( )
private

Logical destructor.

Definition at line 259 of file cmp.C.

References del_deriv(), Lorene::Valeur::del_t(), etat, and va.

◆ deriv()

const Cmp & Lorene::Cmp::deriv ( int  i) const

Returns $\partial/\partial x_i$ of *this , where $x_i = (x, y, z)$.

Note that in the external compactified domain (ZEC), it returns instead $r^2 \partial/ \partial x_i$.

Parameters
i[input] i=0 for x , i=1 for y , i=2 for z .

Definition at line 211 of file cmp_deriv.C.

References dsdx(), dsdy(), and dsdz().

◆ div_r()

void Lorene::Cmp::div_r ( )

Division by r everywhere.

Definition at line 78 of file cmp_r_manip.C.

References del_deriv(), Lorene::Map::div_r(), mp, and operator=().

◆ div_rsint()

void Lorene::Cmp::div_rsint ( )

Definition at line 141 of file cmp_r_manip.C.

◆ dsdr()

const Cmp & Lorene::Cmp::dsdr ( ) const

Returns $\partial / \partial r$ of *this .

Note that in the external compactified domain (ZEC), it returns instead $r^2 \partial/ \partial r$.

Definition at line 84 of file cmp_deriv.C.

References Lorene::Map::dsdr(), etat, mp, and p_dsdr.

◆ dsdx()

const Cmp & Lorene::Cmp::dsdx ( ) const

Returns $\partial/\partial x$ of *this , where $x=r\sin\theta \cos\phi$.

Note that in the external compactified domain (ZEC), it returns instead $r^2 \partial/ \partial x$.

Definition at line 148 of file cmp_deriv.C.

References Lorene::Map::comp_x_from_spherical(), dsdr(), etat, mp, p_dsdx, srdsdt(), and srstdsdp().

◆ dsdy()

const Cmp & Lorene::Cmp::dsdy ( ) const

Returns $\partial/\partial y$ of *this , where $y=r\sin\theta \sin\phi$.

Note that in the external compactified domain (ZEC), it returns instead $r^2 \partial/ \partial y$.

Definition at line 169 of file cmp_deriv.C.

References Lorene::Map::comp_y_from_spherical(), dsdr(), etat, mp, p_dsdy, srdsdt(), and srstdsdp().

◆ dsdz()

const Cmp & Lorene::Cmp::dsdz ( ) const

Returns $\partial/\partial z$ of *this , where $z=r\cos\theta$.

Note that in the external compactified domain (ZEC), it returns instead $r^2 \partial/ \partial z$.

Definition at line 190 of file cmp_deriv.C.

References Lorene::Map::comp_z_from_spherical(), dsdr(), etat, mp, p_dsdz, and srdsdt().

◆ dz_nonzero()

bool Lorene::Cmp::dz_nonzero ( ) const

Returns true if the last domain is compactified and *this is not zero in this domain.

Definition at line 660 of file cmp.C.

References Lorene::Valeur::c, Lorene::Valeur::c_cf, etat, Lorene::Valeur::etat, Lorene::Map::get_mg(), Lorene::Mg3d::get_nzone(), Lorene::Mg3d::get_type_r(), mp, and va.

◆ filtre()

◆ filtre_phi()

void Lorene::Cmp::filtre_phi ( int  n,
int  zone 
)

◆ fixe_decroissance()

void Lorene::Cmp::fixe_decroissance ( int  puis)

Substracts all the components behaving like $r^{-n}$ in the external domain, with n strictly lower than puis , so that *this
decreases at least like $r^{\tt puis} $ at infinity.

Definition at line 186 of file cmp_manip.C.

References Lorene::Valeur::base, Lorene::Valeur::c_cf, Lorene::Valeur::coef(), Lorene::cos(), dzpuis, Lorene::Map_af::get_alpha(), Lorene::Base_val::get_base_r(), Lorene::Map::get_mg(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), mp, mult_r_zec(), Lorene::pow(), R_CHEBU, Lorene::Mtbl_cf::set(), Lorene::Valeur::set_etat_cf_qcq(), and va.

◆ get_dzpuis()

int Lorene::Cmp::get_dzpuis ( ) const
inline

Returns dzpuis.

Definition at line 903 of file cmp.h.

References dzpuis.

◆ get_etat()

int Lorene::Cmp::get_etat ( ) const
inline

Returns the logical state.

Definition at line 899 of file cmp.h.

References etat.

◆ get_mp()

const Map * Lorene::Cmp::get_mp ( ) const
inline

Returns the mapping.

Definition at line 901 of file cmp.h.

References mp.

◆ import() [1/2]

void Lorene::Cmp::import ( const Cmp ci)

Assignment to another Cmp defined on a different mapping.

This assignment is performed point to point by means of the spectral expansion of the original Cmp .

Parameters
ci[input] Cmp to be imported.

Definition at line 73 of file cmp_import.C.

References Lorene::Map::get_mg(), Lorene::Mg3d::get_nzone(), and mp.

◆ import() [2/2]

void Lorene::Cmp::import ( int  nzet,
const Cmp ci 
)

Assignment to another Cmp defined on a different mapping.

This assignment is performed point to point by means of the spectral expansion of the original Cmp .

Parameters
nzet[input] Number of domains of the destination mapping (i.e. this->mp ) where the importation is performed: the assignment is done for the domains whose indices are between 0 and nzet-1 . In the other domains, *this is set to zero.
ci[input] Cmp to be imported.

Definition at line 85 of file cmp_import.C.

References Lorene::Map::get_bvect_cart(), import_align(), import_anti(), import_gal(), and mp.

◆ import_align()

void Lorene::Cmp::import_align ( int  nzet,
const Cmp ci 
)
private

Assignment to another Cmp defined on a different mapping, when the two mappings have aligned Cartesian axis.

This assignment is performed point to point by means of the spectral expansion of the original Cmp .

Parameters
nzet[input] Number of domains of the destination mapping (i.e. this->mp ) where the importation is performed: the assignment is done for the domains whose indices are between 0 and nzet-1 . In the other domains, *this is set to zero.
ci[input] Cmp to be imported.

Definition at line 527 of file cmp_import.C.

References Lorene::Param::add_double(), Lorene::Param::add_int(), Lorene::Param::add_int_mod(), annule(), Lorene::Valeur::c, Lorene::Valeur::c_cf, Lorene::Valeur::coef(), del_t(), dzpuis, etat, Lorene::Map::get_bvect_cart(), Lorene::Map::get_mg(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Map::get_ori_x(), Lorene::Map::get_ori_y(), Lorene::Map::get_ori_z(), mp, Lorene::Map::phi, Lorene::Map::r, set_dzpuis(), Lorene::Valeur::set_etat_c_qcq(), set_etat_qcq(), Lorene::Mtbl::set_etat_qcq(), set_etat_zero(), Lorene::sqrt(), Lorene::Mtbl::t, Lorene::Tbl::t, Lorene::Map::tet, va, Lorene::Map::val_lx(), Lorene::Mtbl_cf::val_point(), Lorene::Map::x, Lorene::Map::y, and Lorene::Map::z.

◆ import_align_asymy()

void Lorene::Cmp::import_align_asymy ( int  nzet,
const Cmp ci 
)
private

Assignment to another Cmp defined on a different mapping, when the two mappings have aligned Cartesian axis.

Case where the Cmp is antisymmetric with respect to the plane y=0.

This assignment is performed point to point by means of the spectral expansion of the original Cmp .

Parameters
nzet[input] Number of domains of the destination mapping (i.e. this->mp ) where the importation is performed: the assignment is done for the domains whose indices are between 0 and nzet-1 . In the other domains, *this is set to zero.
ci[input] Cmp to be imported.

Definition at line 369 of file cmp_import_asymy.C.

References Lorene::Param::add_double(), Lorene::Param::add_int(), Lorene::Param::add_int_mod(), annule(), Lorene::Valeur::c, Lorene::Valeur::c_cf, Lorene::Valeur::coef(), del_t(), dzpuis, etat, Lorene::Map::get_bvect_cart(), Lorene::Map::get_mg(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Map::get_ori_x(), Lorene::Map::get_ori_y(), Lorene::Map::get_ori_z(), Lorene::Mg3d::get_type_p(), mp, Lorene::Map::phi, Lorene::Map::r, set_dzpuis(), Lorene::Valeur::set_etat_c_qcq(), set_etat_qcq(), Lorene::Mtbl::set_etat_qcq(), set_etat_zero(), Lorene::sqrt(), Lorene::Mtbl::t, Lorene::Tbl::t, Lorene::Map::tet, va, Lorene::Map::val_lx(), Lorene::Mtbl_cf::val_point_asymy(), Lorene::Map::x, Lorene::Map::y, and Lorene::Map::z.

◆ import_align_symy()

void Lorene::Cmp::import_align_symy ( int  nzet,
const Cmp ci 
)
private

Assignment to another Cmp defined on a different mapping, when the two mappings have aligned Cartesian axis.

Case where the Cmp is symmetric with respect to the plane y=0.

This assignment is performed point to point by means of the spectral expansion of the original Cmp .

Parameters
nzet[input] Number of domains of the destination mapping (i.e. this->mp ) where the importation is performed: the assignment is done for the domains whose indices are between 0 and nzet-1 . In the other domains, *this is set to zero.
ci[input] Cmp to be imported.

Definition at line 340 of file cmp_import_symy.C.

References Lorene::Param::add_double(), Lorene::Param::add_int(), Lorene::Param::add_int_mod(), annule(), Lorene::Valeur::c, Lorene::Valeur::c_cf, Lorene::Valeur::coef(), del_t(), dzpuis, etat, Lorene::Map::get_bvect_cart(), Lorene::Map::get_mg(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Map::get_ori_x(), Lorene::Map::get_ori_y(), Lorene::Map::get_ori_z(), Lorene::Mg3d::get_type_p(), mp, Lorene::Map::phi, Lorene::Map::r, set_dzpuis(), Lorene::Valeur::set_etat_c_qcq(), set_etat_qcq(), Lorene::Mtbl::set_etat_qcq(), set_etat_zero(), Lorene::sqrt(), Lorene::Mtbl::t, Lorene::Tbl::t, Lorene::Map::tet, va, Lorene::Map::val_lx(), Lorene::Mtbl_cf::val_point_symy(), Lorene::Map::x, Lorene::Map::y, and Lorene::Map::z.

◆ import_anti()

void Lorene::Cmp::import_anti ( int  nzet,
const Cmp ci 
)
private

Assignment to another Cmp defined on a different mapping, when the two mappings have anti-aligned Cartesian axis (i.e.

$x_1 = - x_2$, $y_1 = - y_2$, $z_1 = z_2$).

This assignment is performed point to point by means of the spectral expansion of the original Cmp .

Parameters
nzet[input] Number of domains of the destination mapping (i.e. this->mp ) where the importation is performed: the assignment is done for the domains whose indices are between 0 and nzet-1 . In the other domains, *this is set to zero.
ci[input] Cmp to be imported.

Definition at line 335 of file cmp_import.C.

References Lorene::Param::add_double(), Lorene::Param::add_int(), Lorene::Param::add_int_mod(), annule(), Lorene::Valeur::c, Lorene::Valeur::c_cf, Lorene::Valeur::coef(), del_t(), dzpuis, etat, Lorene::Map::get_bvect_cart(), Lorene::Map::get_mg(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Map::get_ori_x(), Lorene::Map::get_ori_y(), Lorene::Map::get_ori_z(), mp, Lorene::Map::phi, Lorene::Map::r, set_dzpuis(), Lorene::Valeur::set_etat_c_qcq(), set_etat_qcq(), Lorene::Mtbl::set_etat_qcq(), set_etat_zero(), Lorene::sqrt(), Lorene::Mtbl::t, Lorene::Tbl::t, Lorene::Map::tet, va, Lorene::Map::val_lx(), Lorene::Mtbl_cf::val_point(), Lorene::Map::x, Lorene::Map::y, and Lorene::Map::z.

◆ import_anti_asymy()

void Lorene::Cmp::import_anti_asymy ( int  nzet,
const Cmp ci 
)
private

Assignment to another Cmp defined on a different mapping, when the two mappings have anti-aligned Cartesian axis (i.e.

$x_1 = - x_2$, $y_1 = - y_2$, $z_1 = z_2$). Case where the Cmp is antisymmetric with respect to the plane y=0.

This assignment is performed point to point by means of the spectral expansion of the original Cmp .

Parameters
nzet[input] Number of domains of the destination mapping (i.e. this->mp ) where the importation is performed: the assignment is done for the domains whose indices are between 0 and nzet-1 . In the other domains, *this is set to zero.
ci[input] Cmp to be imported.

Definition at line 126 of file cmp_import_asymy.C.

References Lorene::Param::add_double(), Lorene::Param::add_int(), Lorene::Param::add_int_mod(), annule(), Lorene::Valeur::c, Lorene::Valeur::c_cf, Lorene::Valeur::coef(), del_t(), dzpuis, etat, Lorene::Map::get_bvect_cart(), Lorene::Map::get_mg(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Map::get_ori_x(), Lorene::Map::get_ori_y(), Lorene::Map::get_ori_z(), Lorene::Mg3d::get_type_p(), mp, Lorene::Map::phi, Lorene::Map::r, set_dzpuis(), Lorene::Valeur::set_etat_c_qcq(), set_etat_qcq(), Lorene::Mtbl::set_etat_qcq(), set_etat_zero(), Lorene::sqrt(), Lorene::Mtbl::t, Lorene::Tbl::t, Lorene::Map::tet, va, Lorene::Map::val_lx(), Lorene::Mtbl_cf::val_point_asymy(), Lorene::Map::x, Lorene::Map::y, and Lorene::Map::z.

◆ import_anti_symy()

void Lorene::Cmp::import_anti_symy ( int  nzet,
const Cmp ci 
)
private

Assignment to another Cmp defined on a different mapping, when the two mappings have anti-aligned Cartesian axis (i.e.

$x_1 = - x_2$, $y_1 = - y_2$, $z_1 = z_2$). Case where the Cmp is symmetric with respect to the plane y=0.

This assignment is performed point to point by means of the spectral expansion of the original Cmp .

Parameters
nzet[input] Number of domains of the destination mapping (i.e. this->mp ) where the importation is performed: the assignment is done for the domains whose indices are between 0 and nzet-1 . In the other domains, *this is set to zero.
ci[input] Cmp to be imported.

Definition at line 126 of file cmp_import_symy.C.

References Lorene::Param::add_double(), Lorene::Param::add_int(), Lorene::Param::add_int_mod(), annule(), Lorene::Valeur::c, Lorene::Valeur::c_cf, Lorene::Valeur::coef(), del_t(), dzpuis, etat, Lorene::Map::get_bvect_cart(), Lorene::Map::get_mg(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Map::get_ori_x(), Lorene::Map::get_ori_y(), Lorene::Map::get_ori_z(), Lorene::Mg3d::get_type_p(), mp, Lorene::Map::phi, Lorene::Map::r, set_dzpuis(), Lorene::Valeur::set_etat_c_qcq(), set_etat_qcq(), Lorene::Mtbl::set_etat_qcq(), set_etat_zero(), Lorene::sqrt(), Lorene::Mtbl::t, Lorene::Tbl::t, Lorene::Map::tet, va, Lorene::Map::val_lx(), Lorene::Mtbl_cf::val_point_symy(), Lorene::Map::x, Lorene::Map::y, and Lorene::Map::z.

◆ import_asymy() [1/2]

void Lorene::Cmp::import_asymy ( const Cmp ci)

Assignment to another Cmp defined on a different mapping.

Case where the Cmp is antisymmetric with respect to the plane y=0. This assignment is performed point to point by means of the spectral expansion of the original Cmp .

Parameters
ci[input] Cmp to be imported.

Definition at line 67 of file cmp_import_asymy.C.

References Lorene::Map::get_mg(), Lorene::Mg3d::get_nzone(), import_asymy(), and mp.

◆ import_asymy() [2/2]

void Lorene::Cmp::import_asymy ( int  nzet,
const Cmp ci 
)

Assignment to another Cmp defined on a different mapping.

Case where the Cmp is antisymmetric with respect to the plane y=0. This assignment is performed point to point by means of the spectral expansion of the original Cmp .

Parameters
nzet[input] Number of domains of the destination mapping (i.e. this->mp ) where the importation is performed: the assignment is done for the domains whose indices are between 0 and nzet-1 . In the other domains, *this is set to zero.
ci[input] Cmp to be imported.

Definition at line 79 of file cmp_import_asymy.C.

References Lorene::Map::get_bvect_cart(), import_align_asymy(), import_anti_asymy(), and mp.

◆ import_gal()

void Lorene::Cmp::import_gal ( int  nzet,
const Cmp ci 
)
private

Assignment to another Cmp defined on a different mapping, when the two mappings do not have a particular relative orientation.

This assignment is performed point to point by means of the spectral expansion of the original Cmp .

Parameters
nzet[input] Number of domains of the destination mapping (i.e. this->mp ) where the importation is performed: the assignment is done for the domains whose indices are between 0 and nzet-1 . In the other domains, *this is set to zero.
ci[input] Cmp to be imported.

Definition at line 136 of file cmp_import.C.

References Lorene::Param::add_double(), Lorene::Param::add_int(), Lorene::Param::add_int_mod(), annule(), Lorene::Valeur::c, Lorene::Valeur::c_cf, Lorene::Valeur::coef(), del_t(), dzpuis, etat, Lorene::Map::get_mg(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Map::get_ori_x(), Lorene::Map::get_ori_y(), Lorene::Map::get_ori_z(), Lorene::Map::get_rot_phi(), mp, Lorene::Map::phi, Lorene::Map::r, set_dzpuis(), Lorene::Valeur::set_etat_c_qcq(), set_etat_qcq(), Lorene::Mtbl::set_etat_qcq(), set_etat_zero(), Lorene::sqrt(), Lorene::Mtbl::t, Lorene::Tbl::t, Lorene::Map::tet, va, Lorene::Map::val_lx(), Lorene::Mtbl_cf::val_point(), Lorene::Map::xa, Lorene::Map::ya, and Lorene::Map::za.

◆ import_symy() [1/2]

void Lorene::Cmp::import_symy ( const Cmp ci)

Assignment to another Cmp defined on a different mapping.

Case where the Cmp is symmetric with respect to the plane y=0. This assignment is performed point to point by means of the spectral expansion of the original Cmp .

Parameters
ci[input] Cmp to be imported.

Definition at line 67 of file cmp_import_symy.C.

References Lorene::Map::get_mg(), Lorene::Mg3d::get_nzone(), import_symy(), and mp.

◆ import_symy() [2/2]

void Lorene::Cmp::import_symy ( int  nzet,
const Cmp ci 
)

Assignment to another Cmp defined on a different mapping.

Case where the Cmp is symmetric with respect to the plane y=0. This assignment is performed point to point by means of the spectral expansion of the original Cmp .

Parameters
nzet[input] Number of domains of the destination mapping (i.e. this->mp ) where the importation is performed: the assignment is done for the domains whose indices are between 0 and nzet-1 . In the other domains, *this is set to zero.
ci[input] Cmp to be imported.

Definition at line 79 of file cmp_import_symy.C.

References Lorene::Map::get_bvect_cart(), import_align_symy(), import_anti_symy(), and mp.

◆ inc2_dzpuis()

void Lorene::Cmp::inc2_dzpuis ( )

Increases by 2 the value of dzpuis and changes accordingly the values of the Cmp in the external compactified domain (ZEC).

Definition at line 192 of file cmp_r_manip.C.

References Lorene::Map::inc2_dzpuis(), mp, and operator=().

◆ inc_dzpuis()

void Lorene::Cmp::inc_dzpuis ( )

Increases by the value of dzpuis and changes accordingly the values of the Cmp in the external compactified domain (ZEC).

Definition at line 166 of file cmp_r_manip.C.

References Lorene::Map::inc_dzpuis(), mp, and operator=().

◆ integrale()

double Lorene::Cmp::integrale ( ) const

Computes the integral over all space of *this .

The computed quantity is (u being the field represented by *this ) $\int u \, r^2 \sin\theta \,  dr\, d\theta \, d\phi$. Note that in the external compactified domain (ZEC), dzpuis
must be 4 for the computation to take place.

Definition at line 55 of file cmp_integ.C.

References Lorene::Map::get_mg(), Lorene::Mg3d::get_nzone(), integrale_domains(), and mp.

◆ integrale_domains()

const Tbl & Lorene::Cmp::integrale_domains ( ) const

Computes the integral in each domain of *this .

The computed quantity is (u being the field represented by *this ) $\int u \, r^2 \sin\theta \,  dr\, d\theta \, d\phi$ in each domain. The result is returned a Tbl on the various domains. Note that in the external compactified domain (ZEC), dzpuis
must be 4 for the computation to take place.

Definition at line 73 of file cmp_integ.C.

References etat, Lorene::Map::integrale(), mp, and p_integ.

◆ laplacien()

const Cmp & Lorene::Cmp::laplacien ( int  zec_mult_r = 4) const

Returns the Laplacian of *this.

Parameters
zec_mult_r[input] Determines the quantity computed in the external compactified domain (ZEC) (u in the field represented by *this ) : \ zec_mult_r = 0 : $\Delta u$ \ zec_mult_r = 2 : $r^2 \,  \Delta u$ \ zec_mult_r = 4 (default) : $r^4 \, \Delta u$

Definition at line 242 of file cmp_deriv.C.

References etat, ind_lap, Lorene::Map::laplacien(), mp, and p_lap.

◆ mult_cost()

void Lorene::Cmp::mult_cost ( )

Multiplication by \f\cos\theta\f$.

Definition at line 128 of file cmp_r_manip.C.

References del_deriv(), mp, Lorene::Map::mult_cost(), and operator=().

◆ mult_r()

void Lorene::Cmp::mult_r ( )

Multiplication by r everywhere.

Definition at line 91 of file cmp_r_manip.C.

References del_deriv(), mp, and Lorene::Map::mult_r().

◆ mult_r_zec()

void Lorene::Cmp::mult_r_zec ( )

Multiplication by r in the external compactified domain (ZEC)

Definition at line 103 of file cmp_r_manip.C.

References del_deriv(), mp, Lorene::Map::mult_r_zec(), and operator=().

◆ mult_rsint()

void Lorene::Cmp::mult_rsint ( )

Multiplication by $r\sin\theta$.

Definition at line 116 of file cmp_r_manip.C.

References del_deriv(), mp, Lorene::Map::mult_rsint(), and operator=().

◆ multipole_spectrum()

Tbl Lorene::Cmp::multipole_spectrum ( )

Gives the spectrum in terms of multipolar modes l .

Returns
a Tbl of size (nzone, lmax), where lmax is the maximal multipolar momentum over all domains. The l -th element contains the L1 norm of the l -th multipole (i.e. a sum over all m of the norms (coefficient space) of the component of a given $Y_l^m$.

Definition at line 762 of file cmp.C.

References Lorene::Tbl::annule_hard(), Lorene::Mtbl_cf::base, Lorene::Valeur::c_cf, Lorene::Valeur::coef(), etat, Lorene::Map::get_mg(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), mp, Lorene::Tbl::set(), Lorene::Tbl::set_etat_zero(), va, and Lorene::Valeur::ylm().

◆ operator()() [1/2]

const Tbl & Lorene::Cmp::operator() ( int  l) const
inline

Read-only of the value in a given domain.

Parameters
l[input] domain index
Returns
Tbl containing the value of the field in domain l .

Definition at line 733 of file cmp.h.

References etat, and va.

◆ operator()() [2/2]

double Lorene::Cmp::operator() ( int  l,
int  k,
int  j,
int  i 
) const
inline

Read-only of a particular element.

Parameters
l[input] domain index
k[input] $\phi$ index
j[input] $\theta$ index
i[input] r ( $\xi$) index

Definition at line 761 of file cmp.h.

References etat, and va.

◆ operator*=()

void Lorene::Cmp::operator*= ( const Cmp ci)

*= Cmp

Definition at line 668 of file cmp_arithm.C.

References del_deriv(), dzpuis, etat, get_etat(), get_mp(), mp, set_etat_nondef(), set_etat_zero(), and va.

◆ operator+=()

void Lorene::Cmp::operator+= ( const Cmp ci)

+= Cmp

Definition at line 575 of file cmp_arithm.C.

References del_deriv(), dz_nonzero(), dzpuis, etat, get_etat(), get_mp(), mp, set_dzpuis(), set_etat_nondef(), and va.

◆ operator-=()

void Lorene::Cmp::operator-= ( const Cmp ci)

-= Cmp

Definition at line 623 of file cmp_arithm.C.

References del_deriv(), dz_nonzero(), dzpuis, etat, get_etat(), get_mp(), mp, set_dzpuis(), set_etat_nondef(), and va.

◆ operator=() [1/5]

void Lorene::Cmp::operator= ( const Cmp a)

Assignment to another Cmp defined on the same mapping.

Definition at line 398 of file cmp.C.

References del_deriv(), Lorene::Valeur::del_t(), dzpuis, etat, mp, set_etat_nondef(), set_etat_qcq(), set_etat_zero(), and va.

◆ operator=() [2/5]

void Lorene::Cmp::operator= ( const Mtbl a)

◆ operator=() [3/5]

void Lorene::Cmp::operator= ( const Valeur a)

Assignment to a Valeur.

Definition at line 443 of file cmp.C.

References del_deriv(), Lorene::Valeur::del_t(), Lorene::Valeur::get_etat(), set_etat_qcq(), set_etat_zero(), and va.

◆ operator=() [4/5]

void Lorene::Cmp::operator= ( double  x)

Assignment to a double.

Definition at line 526 of file cmp.C.

References del_deriv(), dzpuis, set_etat_qcq(), set_etat_zero(), and va.

◆ operator=() [5/5]

void Lorene::Cmp::operator= ( int  n)

Assignment to an int.

Definition at line 542 of file cmp.C.

References del_deriv(), dzpuis, set_etat_qcq(), set_etat_zero(), and va.

◆ poisson() [1/2]

Cmp Lorene::Cmp::poisson ( ) const

Solves the scalar Poisson equation with *this as a source.

The source $\sigma$ of the equation $\Delta u = \sigma$ is represented by the Cmp *this . Note that dzpuis must be equal to 2, 3 or 4, i.e. that the quantity stored in *this is in fact $r^2 \sigma$ or $r^4 \sigma$ in the external compactified domain. The solution u with the boundary condition u =0 at spatial infinity is the returned Cmp .

Definition at line 94 of file cmp_pde.C.

References mp, and Lorene::Map::poisson().

◆ poisson() [2/2]

void Lorene::Cmp::poisson ( Param par,
Cmp uu 
) const

Solves the scalar Poisson equation with *this as a source (version with parameters to control the resolution).

The source $\sigma$ of the equation $\Delta u = \sigma$ is represented by the Cmp *this . Note that dzpuis must be equal to 2 or 4, i.e. that the quantity stored in *this is in fact $r^2 \sigma$ or $r^4 \sigma$ in the external compactified domain.

Parameters
par[input/output] possible parameters
uu[input/output] solution u with the boundary condition u =0 at spatial infinity.

Definition at line 107 of file cmp_pde.C.

References mp, and Lorene::Map::poisson().

◆ poisson_dirichlet()

Cmp Lorene::Cmp::poisson_dirichlet ( const Valeur limite,
int  num 
) const

Is identicall to Cmp::poisson() .

The regularity condition at the origin is replace by a boundary condition of the Dirichlet type.

Parameters
limite[input] : angular function. The boundary condition is given by limite[num] .
num[input] : index of the boudary at which the condition is to be fullfilled.

More precisely we impose the solution is equal to limite[num] at the boundary between the domains num and num+1 (the latter one being a shell).

Definition at line 95 of file cmp_pde_frontiere.C.

References mp, and Lorene::Map::poisson_frontiere().

◆ poisson_falloff() [1/2]

Cmp Lorene::Cmp::poisson_falloff ( int  k_falloff) const

Definition at line 58 of file cmp_pde_falloff.C.

◆ poisson_falloff() [2/2]

void Lorene::Cmp::poisson_falloff ( Param par,
Cmp uu,
int  k_falloff 
) const

Definition at line 71 of file cmp_pde_falloff.C.

◆ poisson_frontiere_double()

Cmp Lorene::Cmp::poisson_frontiere_double ( const Valeur lim_func,
const Valeur lim_der,
int  num_zone 
) const

Definition at line 117 of file cmp_pde_frontiere.C.

◆ poisson_neumann()

Cmp Lorene::Cmp::poisson_neumann ( const Valeur limite,
int  num_front 
) const

Idem as Cmp::poisson_dirichlet , the boundary condition being on the radial derivative of the solution.

Definition at line 103 of file cmp_pde_frontiere.C.

References mp, and Lorene::Map::poisson_frontiere().

◆ poisson_neumann_interne()

Cmp Lorene::Cmp::poisson_neumann_interne ( const Valeur limite,
Param par,
Cmp resu 
) const

Idem as Cmp::poisson_neumann , the boundary condition is on the radial derivative of the solution.

But in this method, the poisson equation is solved in the shell only. We have so to impose a boundary condition on the surface of the star. This is used for example to solve the continuity equation for the fluid in the star.

Definition at line 110 of file cmp_pde_frontiere.C.

References mp, and Lorene::Map::poisson_interne().

◆ poisson_regular()

void Lorene::Cmp::poisson_regular ( int  k_div,
int  nzet,
double  unsgam1,
Param par,
Cmp uu,
Cmp uu_regu,
Cmp uu_div,
Tenseur duu_div,
Cmp source_regu,
Cmp source_div 
) const

Solves the scalar Poisson equation with *this as a source (version with parameters to control the resolution).

The source $\sigma$ of the equation $\Delta u = \sigma$ is represented by the Cmp *this . The regularized source $\sigma_{\rm regu} = \sigma - \sigma_{\rm div}$ is constructed and solved. Note that dzpuis must be equal to 2 or 4, i.e. that the quantity stored in *this is in fact $r^2 \sigma$ or $r^4 \sigma$ in the external compactified domain.

Parameters
k_div[input] regularization degree of the procedure
nzet[input] number of domains covering the star
unsgam1[input] parameter $1/(\gamma-1)$ where $\gamma$ denotes the adiabatic index
par[input/output] possible parameters
uu[input/output] solution
uu_regu[output] solution of the regular part of the source.
uu_div[output] solution of the diverging part of the source.
duu_div[output] derivative of the diverging potential.
source_regu[output] regularized source
source_div[output] diverging part of the source

Definition at line 88 of file cmp_poisson_regu.C.

References mp, and Lorene::Map::poisson_regular().

◆ poisson_tau() [1/2]

Cmp Lorene::Cmp::poisson_tau ( ) const

Same as Poisson with a Tau method.

Definition at line 120 of file cmp_pde.C.

References mp, and Lorene::Map::poisson_tau().

◆ poisson_tau() [2/2]

void Lorene::Cmp::poisson_tau ( Param par,
Cmp uu 
) const

Same as Poisson with a Tau method.

Definition at line 133 of file cmp_pde.C.

References mp, and Lorene::Map::poisson_tau().

◆ poisson_ylm() [1/2]

Cmp Lorene::Cmp::poisson_ylm ( int  nylm,
double intvec 
) const

Definition at line 58 of file cmp_pde_ylm.C.

◆ poisson_ylm() [2/2]

void Lorene::Cmp::poisson_ylm ( Param par,
Cmp uu,
int  nylm,
double intvec 
) const

Definition at line 71 of file cmp_pde_ylm.C.

◆ raccord()

◆ raccord_c1_zec()

◆ raccord_externe()

◆ sauve()

void Lorene::Cmp::sauve ( FILE fd) const

Save in a file.

Definition at line 561 of file cmp.C.

References dzpuis, etat, Lorene::fwrite_be(), Lorene::Valeur::sauve(), and va.

◆ set() [1/2]

Tbl & Lorene::Cmp::set ( int  l)
inline

Read/write of the value in a given domain.

NB: to gain in efficiency, the method del_deriv() (to delete the derived members) is not called by this function. It must thus be invoqued by the user.

Parameters
l[input] domain index
Returns
Tbl containing the value of the field in domain l .

Definition at line 724 of file cmp.h.

References etat, Lorene::Valeur::set(), and va.

◆ set() [2/2]

double & Lorene::Cmp::set ( int  l,
int  k,
int  j,
int  i 
)
inline

Read/write of a particular element.

NB: to gain in efficiency, the method del_deriv() (to delete the derived members) is not called by this function. It must thus be invoqued by the user.

Parameters
l[input] domain index
k[input] $\phi$ index
j[input] $\theta$ index
i[input] r ( $\xi$) index

Definition at line 749 of file cmp.h.

References etat, Lorene::Valeur::set(), and va.

◆ set_der_0x0()

void Lorene::Cmp::set_der_0x0 ( )
private

Sets the pointers for derivatives to 0x0.

Definition at line 276 of file cmp.C.

References ind_lap, p_dsdr, p_dsdx, p_dsdy, p_dsdz, p_integ, p_lap, p_srdsdt, and p_srstdsdp.

◆ set_dzpuis()

void Lorene::Cmp::set_dzpuis ( int  dzi)

Set a value to dzpuis.

Definition at line 654 of file cmp.C.

References dzpuis.

◆ set_etat_nondef()

void Lorene::Cmp::set_etat_nondef ( )

Sets the logical state to ETATNONDEF (undefined).

Calls the logical destructor of the Valeur va and deallocates the memory occupied by all the derivatives.

Definition at line 297 of file cmp.C.

References del_t(), and etat.

◆ set_etat_qcq()

void Lorene::Cmp::set_etat_qcq ( )

Sets the logical state to ETATQCQ (ordinary state).

If the state is already ETATQCQ , this function does nothing. Otherwise, it calls the logical destructor of the Valeur va and deallocates the memory occupied by all the derivatives.

Definition at line 304 of file cmp.C.

References del_deriv(), del_t(), and etat.

◆ set_etat_zero()

void Lorene::Cmp::set_etat_zero ( )

Sets the logical state to ETATZERO (zero).

Calls the logical destructor of the Valeur va and deallocates the memory occupied by all the derivatives.

Definition at line 289 of file cmp.C.

References del_deriv(), etat, Lorene::Valeur::set_etat_zero(), and va.

◆ set_val_hor()

void Lorene::Cmp::set_val_hor ( double  val,
int  zone 
)

Sets the value of the Cmp to val on the inner boudary of the shell number zone .This is usefull for dealing with undefined values.

Definition at line 159 of file cmp_manip.C.

References annule_hard(), Lorene::Valeur::coef_i(), del_deriv(), etat, Lorene::Map::get_mg(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nt(), mp, Lorene::Valeur::set(), Lorene::Valeur::set_etat_c_qcq(), and va.

◆ set_val_inf()

void Lorene::Cmp::set_val_inf ( double  val)

Sets the value of the Cmp to val at infinity.

This is usefull for dealing with undefined values. The external domain must be compactified.

Definition at line 126 of file cmp_manip.C.

References annule_hard(), Lorene::Valeur::coef_i(), del_deriv(), etat, Lorene::Map::get_mg(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Mg3d::get_type_r(), mp, Lorene::Valeur::set(), Lorene::Valeur::set_etat_c_qcq(), and va.

◆ srdsdt()

const Cmp & Lorene::Cmp::srdsdt ( ) const

Returns $1/r \partial / \partial \theta$ of *this .

Note that in the external compactified domain (ZEC), it returns instead $r \partial/ \partial \theta$.

Definition at line 105 of file cmp_deriv.C.

References etat, mp, p_srdsdt, and Lorene::Map::srdsdt().

◆ srstdsdp()

const Cmp & Lorene::Cmp::srstdsdp ( ) const

Returns $1/(r\sin\theta) \partial / \partial \phi$ of *this .

Note that in the external compactified domain (ZEC), it returns instead $r/\sin\theta \partial/ \partial \phi$.

Definition at line 127 of file cmp_deriv.C.

References etat, mp, p_srstdsdp, and Lorene::Map::srstdsdp().

◆ std_base_scal()

void Lorene::Cmp::std_base_scal ( )

Sets the spectral bases of the Valeur va to the standard ones for a scalar.

Definition at line 644 of file cmp.C.

References Lorene::Valeur::std_base_scal(), and va.

◆ test_poisson()

Tbl Lorene::Cmp::test_poisson ( const Cmp uu,
ostream ostr,
bool  detail = false 
) const

Checks if a Poisson equation with *this as a source has been correctly solved.

Parameters
uu[input] Solution u of the Poisson equation $\Delta u = \sigma$, $\sigma$ being represented by the Cmp *this .
ostr[input/output] Output stream used for displaying err .
detail[input]
  • if true displays err(0,*) , err(1,*) and err(2,*)
  • if false (default), displays only the relative error err(0,*).
Returns
2-D Tbl err decribing the errors in each domain:
  • err(0,l) : Relative error in domain no. l , defined as the maximum value of $|\Delta u - \sigma|$ in that domain divided by m , where m is the maximum value of $|\sigma|$ over all domains if dzpuis = 0} or $\sigma$ is zero in the external compactified domain (ECD). If dzpuis != 0} and $\sigma$ does not vanish in the ECD, the value of m used in the non-compactified domains is the maximum value over these domains, whereas the value of m used in the external compactified domain is the maximum value on that particular domain.
  • err(1,l) : Maximum value of the absolute error $|\Delta u - \sigma|$ in domain no. l
  • err(2,l) : Maximum value of $|\sigma|$ in domain no. l

Definition at line 58 of file cmp_test_poisson.C.

References Lorene::abs(), check_dzpuis(), dzpuis, Lorene::Map::get_mg(), get_mp(), Lorene::Mg3d::get_nzone(), laplacien(), Lorene::max(), mp, Lorene::Tbl::set(), and Lorene::Tbl::set_etat_qcq().

◆ val_point()

double Lorene::Cmp::val_point ( double  r,
double  theta,
double  phi 
) const

Computes the value of the field represented by *this at an arbitrary point $(r, \theta, \phi)$, by means of the spectral expansion.

Parameters
r[input] value of the coordinate r
theta[input] value of the coordinate $\theta$
phi[input] value of the coordinate $\phi$
Returns
value at the point $(r, \theta, \phi)$ of the field represented by *this .

Definition at line 732 of file cmp.C.

References etat, mp, va, Lorene::Map::val_lx(), and Lorene::Valeur::val_point().

Friends And Related Symbol Documentation

◆ operator<<

ostream & operator<< ( ostream o,
const Cmp ci 
)
friend

Display.

Definition at line 577 of file cmp.C.

Member Data Documentation

◆ dzpuis

int Lorene::Cmp::dzpuis
private

Power of r by which the quantity represented by this
must be divided in the external compactified zone in order to get the correct physical values.

Definition at line 461 of file cmp.h.

◆ etat

int Lorene::Cmp::etat
private

Logical state (ETATNONDEF , ETATQCQ or ETATZERO ).

Definition at line 454 of file cmp.h.

◆ ind_lap

int Lorene::Cmp::ind_lap
mutableprivate

Power of r by which the last computed Laplacian has been multiplied in the external compactified domain.


Definition at line 498 of file cmp.h.

◆ mp

const Map* Lorene::Cmp::mp
private

Reference mapping.

Definition at line 451 of file cmp.h.

◆ p_dsdr

Cmp* Lorene::Cmp::p_dsdr
mutableprivate

Pointer on $\partial/\partial r$ of *this.

Definition at line 470 of file cmp.h.

◆ p_dsdx

Cmp* Lorene::Cmp::p_dsdx
mutableprivate

Pointer on $\partial/\partial x$ of *this , where $x=r\sin\theta \cos\phi$.

Definition at line 479 of file cmp.h.

◆ p_dsdy

Cmp* Lorene::Cmp::p_dsdy
mutableprivate

Pointer on $\partial/\partial y$ of *this , where $y=r\sin\theta \sin\phi$.

Definition at line 484 of file cmp.h.

◆ p_dsdz

Cmp* Lorene::Cmp::p_dsdz
mutableprivate

Pointer on $\partial/\partial z$ of *this , where $z=r\cos\theta$.

Definition at line 489 of file cmp.h.

◆ p_integ

Tbl* Lorene::Cmp::p_integ
mutableprivate

Pointer on the space integral of *this (values in each domain)

Definition at line 503 of file cmp.h.

◆ p_lap

Cmp* Lorene::Cmp::p_lap
mutableprivate

Pointer on the Laplacian of *this.

Definition at line 493 of file cmp.h.

◆ p_srdsdt

Cmp* Lorene::Cmp::p_srdsdt
mutableprivate

Pointer on $1/r \partial/\partial \theta$ of *this.

Definition at line 472 of file cmp.h.

◆ p_srstdsdp

Cmp* Lorene::Cmp::p_srstdsdp
mutableprivate

Pointer on $1/(r\sin\theta) \partial/\partial \phi$ of *this.

Definition at line 474 of file cmp.h.

◆ va

Valeur Lorene::Cmp::va

The numerical value of the Cmp

Definition at line 464 of file cmp.h.


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