Lorene::Cmp Class Reference
Old tensorial fields (*** Deprecated ***)

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.
Tbl & | set (int l)
| Read/write of the value in a given domain.
const Tbl & | operator() (int l) const
| Read-only of the value in a given domain.
double & | set (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 , 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 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 in the external domain, with n strictly lower than `puis` , so that `*this` decreases at least like at infinity.
Tbl | multipole_spectrum ()
| Gives the spectrum in terms of multipolar modes l .
int | get_etat () const
| Returns the logical state.
const Map * | get_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 Cmp & | dsdr () const
| Returns of `*this` .
const Cmp & | srdsdt () const
| Returns of `*this` .
const Cmp & | srstdsdp () const
| Returns of `*this` .
const Cmp & | dsdx () const
| Returns of `*this` , where .
const Cmp & | dsdy () const
| Returns of `*this` , where .
const Cmp & | dsdz () const
| Returns of `*this` , where .
const Cmp & | deriv (int i) const
| Returns of `*this` , where .
const Cmp & | laplacien (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 .
void | mult_cost ()
| Multiplication by \f\cos\theta\f$.
void | div_rsint ()
| Division by .
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 Tbl & | integrale_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 matching of the nucleus with respect to the first shell.
void | raccord_c1_zec (int puis, int nbre, int lmax)
| Performs the matching of the external domain with respect to the last shell using function like with for each spherical harmonics with .
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 Map * | mp
| 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.
Cmp * | p_dsdr
| Pointer on of `*this`.
Cmp * | p_srdsdt
| Pointer on of `*this`.
Cmp * | p_srstdsdp
| Pointer on of `*this`.
Cmp * | p_dsdx
| Pointer on of `*this` , where .
Cmp * | p_dsdy
| Pointer on of `*this` , where .
Cmp * | p_dsdz
| Pointer on of `*this` , where .
Cmp * | p_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.
Tbl * | p_integ
| Pointer on the space integral of `*this` (values in each domain).

## Friends

ostream & | operator<< (ostream &o, const Cmp &ci)
| 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 dzpuis, etat, Lorene::get_mg(), Lorene::Map(), mp, set_der_0x0(), and va.

## Cmp() [2/4]

Lorene::Cmp::Cmp | ( | const Map * | p_map | ) |

explicit

Constructor from mapping.

Definition at line 215 of file cmp.C.

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

## Cmp() [3/4]

Lorene::Cmp::Cmp | ( | const Cmp & | a | ) |

Copy constructor.

Definition at line 225 of file cmp.C.

References Cmp(), dzpuis, etat, mp, set_der_0x0(), and va.

## 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(), mp, set_der_0x0(), and va.

## ~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 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::Mtbl::get_nzone(), 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 etat, 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 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 of the expansion

of `*this` when .

Parameters

  n | order of the expansion
  flag | : output

Returns
  Array of n+1 `Valeur` s on `mg->angu`
  describing the coefficients . This array is allocated by the routine.

Definition at line 71 of file cmp_asymptot.C.

References Lorene::Valeur::base, Lorene::Valeur::c, Cmp(), dzpuis, Lorene::Mg3d::get_angu(), 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 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 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(), etat, and va.

## deriv()

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

Returns of `*this` , where .

Note that in the external compactified domain (ZEC), it returns instead .

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 Cmp(), 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 Cmp(), del_deriv(), mp, and operator=().

## div_rsint()

void Lorene::Cmp::div_rsint | ( |  | ) |

Division by .

Definition at line 141 of file cmp_r_manip.C.

References del_deriv(), mp, and operator=().

## dsdr()

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

Returns of `*this` .

Note that in the external compactified domain (ZEC), it returns instead .

Definition at line 84 of file cmp_deriv.C.

References Cmp(), etat, mp, and p_dsdr.

## dsdx()

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

Returns of `*this` , where .

Note that in the external compactified domain (ZEC), it returns instead .

Definition at line 148 of file cmp_deriv.C.

References Cmp(), dsdr(), etat, mp, p_dsdx, srdsdt(), and srstdsdp().

## dsdy()

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

Returns of `*this` , where .

Note that in the external compactified domain (ZEC), it returns instead .

Definition at line 169 of file cmp_deriv.C.

References Cmp(), dsdr(), etat, mp, p_dsdy, srdsdt(), and srstdsdp().

## dsdz()

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

Returns of `*this` , where .

Note that in the external compactified domain (ZEC), it returns instead .

Definition at line 190 of file cmp_deriv.C.

References Cmp(), 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 etat, Lorene::Mg3d::get_nzone(), Lorene::Mg3d::get_type_r(), mp, and va.

## filtre()

void Lorene::Cmp::filtre | ( | int | n | ) |

Sets the `n` lasts coefficients in r to 0 in the external domain.

Definition at line 74 of file cmp_manip.C.

References del_deriv(), etat, mp, and va.

## filtre_phi()

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

Sets the `n` lasts coefficients in to 0 in the domain `zone` .

Definition at line 101 of file cmp_manip.C.

References del_deriv(), etat, mp, and va.

## fixe_decroissance()

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

Substracts all the components behaving like in the external domain, with n strictly lower than `puis` , so that `*this`
decreases at least like at infinity.

Definition at line 186 of file cmp_manip.C.

References Lorene::Valeur::base, Lorene::Valeur::c_cf, Cmp(), Lorene::Valeur::coef(), Lorene::cos(), dzpuis, Lorene::Map_af::get_alpha(), Lorene::Base_val::get_base_r(), 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 Lorene::Map(), and 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 Cmp(), 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 Cmp(), import_align(), import_anti(), import_gal(), Lorene::Map(), 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_cf, Cmp(), Lorene::Valeur::coef(), del_t(), dzpuis, etat, Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Map(), mp, Lorene::r, set_dzpuis(), set_etat_qcq(), set_etat_zero(), Lorene::sqrt(), Lorene::Mtbl::t, Lorene::Tbl::t, va, and Lorene::Mtbl_cf::val_point().

## 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_cf, Cmp(), Lorene::Valeur::coef(), del_t(), dzpuis, etat, Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Mg3d::get_type_p(), Lorene::Map(), mp, Lorene::r, set_dzpuis(), set_etat_qcq(), set_etat_zero(), Lorene::sqrt(), Lorene::Mtbl::t, Lorene::Tbl::t, va, and Lorene::Mtbl_cf::val_point_asymy().

## 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_cf, Cmp(), Lorene::Valeur::coef(), del_t(), dzpuis, etat, Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Mg3d::get_type_p(), Lorene::Map(), mp, Lorene::r, set_dzpuis(), set_etat_qcq(), set_etat_zero(), Lorene::sqrt(), Lorene::Mtbl::t, Lorene::Tbl::t, va, and Lorene::Mtbl_cf::val_point_symy().

## 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.

, , ).

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_cf, Cmp(), Lorene::Valeur::coef(), del_t(), dzpuis, etat, Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Map(), mp, Lorene::r, set_dzpuis(), set_etat_qcq(), set_etat_zero(), Lorene::sqrt(), Lorene::Mtbl::t, Lorene::Tbl::t, va, and Lorene::Mtbl_cf::val_point().

## 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.

, , ). 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_cf, Cmp(), Lorene::Valeur::coef(), del_t(), dzpuis, etat, Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Mg3d::get_type_p(), Lorene::Map(), mp, Lorene::r, set_dzpuis(), set_etat_qcq(), set_etat_zero(), Lorene::sqrt(), Lorene::Mtbl::t, Lorene::Tbl::t, va, and Lorene::Mtbl_cf::val_point_asymy().

## 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.

, , ). 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_cf, Cmp(), Lorene::Valeur::coef(), del_t(), dzpuis, etat, Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Mg3d::get_type_p(), Lorene::Map(), mp, Lorene::r, set_dzpuis(), set_etat_qcq(), set_etat_zero(), Lorene::sqrt(), Lorene::Mtbl::t, Lorene::Tbl::t, va, and Lorene::Mtbl_cf::val_point_symy().

## 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 Cmp(), 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 Cmp(), import_align_asymy(), import_anti_asymy(), Lorene::Map(), 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_cf, Cmp(), Lorene::Valeur::coef(), del_t(), dzpuis, etat, Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Map(), mp, Lorene::r, set_dzpuis(), set_etat_qcq(), set_etat_zero(), Lorene::sqrt(), Lorene::Mtbl::t, Lorene::Tbl::t, va, and Lorene::Mtbl_cf::val_point().

## 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 Cmp(), 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 Cmp(), import_align_symy(), import_anti_symy(), Lorene::Map(), 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 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 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` ) . 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 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` ) 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, 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 : \ zec_mult_r = 2 : \ zec_mult_r = 4 (default) :

Definition at line 242 of file cmp_deriv.C.

References Cmp(), etat, ind_lap, 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, 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(), and mp.

## 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, and operator=().

## mult_rsint()

void Lorene::Cmp::mult_rsint | ( |  | ) |

Multiplication by .

Definition at line 116 of file cmp_r_manip.C.

References del_deriv(), mp, 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 .

Definition at line 762 of file cmp.C.

References Lorene::Tbl::annule_hard(), etat, 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(), and va.

## 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] index
  j | [input] index
  i | [input] r ( ) 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 Cmp(), 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 Cmp(), 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 Cmp(), 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 Cmp(), del_deriv(), dzpuis, etat, mp, set_etat_nondef(), set_etat_qcq(), set_etat_zero(), and va.

## operator=() [2/5]

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

Assignment to a `Mtbl`.

Definition at line 486 of file cmp.C.

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

## 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::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(), va, and Lorene::x.

## 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 of the equation 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 or 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 Cmp(), and mp.

## 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 of the equation 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 or 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 Cmp(), and mp.

## 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 Cmp(), and mp.

## 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 Cmp(), and mp.

## 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 Cmp(), and mp.

## 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 of the equation is represented by the `Cmp` `*this` . The regularized source 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 or 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 where 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 Cmp(), and mp.

## 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 Cmp(), and mp.

## 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 Cmp(), and mp.

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

void Lorene::Cmp::raccord | ( | int | n | ) |

Performs the matching of the nucleus with respect to the first shell.

Definition at line 170 of file cmp_raccord.C.

References Lorene::Tbl::annule_hard(), etat, Lorene::Map_af::get_alpha(), get_mp(), Lorene::Matrice::inverse(), R_CHEBI, R_CHEBP, Lorene::Tbl::set(), and va.

## raccord_c1_zec()

void Lorene::Cmp::raccord_c1_zec | ( | int | puis,
|  | int | nbre,
|  | int | lmax )

Performs the matching of the external domain with respect to the last shell using function like with for each spherical harmonics with .

Definition at line 84 of file cmp_raccord_zec.C.

References Lorene::Tbl::annule_hard(), Lorene::Valeur::base, Lorene::Valeur::c_cf, Cmp(), Lorene::Valeur::coef(), Lorene::cos(), dec2_dzpuis(), dsdr(), etat, Lorene::Map_af::get_alpha(), Lorene::Base_val::get_base_r(), Lorene::Matrice::inverse(), mp, Lorene::pow(), R_CHEB, Lorene::Matrice::set(), Lorene::Tbl::set(), Lorene::Matrice::set_band(), set_dzpuis(), Lorene::Matrice::set_etat_qcq(), Lorene::Tbl::set_etat_qcq(), Lorene::Matrice::set_lu(), Lorene::Mtbl_cf::t, va, and Lorene::Valeur::ylm().

## raccord_externe()

void Lorene::Cmp::raccord_externe | ( | int | puis,
|  | int | nbre,
|  | int | lmax )

Matching of the external domain with the outermost shell.

Definition at line 91 of file cmp_raccord_externe.C.

References Lorene::Tbl::annule_hard(), Lorene::cos(), Lorene::Map_af::get_alpha(), Lorene::Map_af::get_beta(), mp, Lorene::pow(), Lorene::Matrice::set(), Lorene::Tbl::set(), set_dzpuis(), Lorene::Matrice::set_etat_qcq(), Lorene::Tbl::set_etat_qcq(), Lorene::sqrt(), and va.

## 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(), 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, 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] index
  j | [input] index
  i | [input] r ( ) index

Definition at line 749 of file cmp.h.

References etat, 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, 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(), del_deriv(), etat, Lorene::get_mg(), mp, 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(), del_deriv(), etat, mp, and va.

## srdsdt()

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

Returns of `*this` .

Note that in the external compactified domain (ZEC), it returns instead .

Definition at line 105 of file cmp_deriv.C.

References Cmp(), etat, mp, and p_srdsdt.

## srstdsdp()

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

Returns of `*this` .

Note that in the external compactified domain (ZEC), it returns instead .

Definition at line 127 of file cmp_deriv.C.

References Cmp(), etat, mp, and p_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 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 , 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 in that domain divided by m , where m is the maximum value of over all domains if `dzpuis` = 0} or is zero in the external compactified domain (ECD). If `dzpuis` != 0} and 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 in domain no. `l`
  - `err(2,l)` : Maximum value of in domain no. `l`

Definition at line 58 of file cmp_test_poisson.C.

References Lorene::abs(), check_dzpuis(), Cmp(), dzpuis, get_mp(), 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 , by means of the spectral expansion.

Parameters

  r | [input] value of the coordinate r
  theta | [input] value of the coordinate
  phi | [input] value of the coordinate

Returns
  value at the point of the field represented by `*this` .

Definition at line 732 of file cmp.C.

References etat, mp, Lorene::phi, Lorene::r, and va.

## Friends And Related Symbol Documentation

## operator<<

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

friend

Display.

Definition at line 577 of file cmp.C.

References Cmp(), etat, get_dzpuis(), operator<<, and va.

## 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

mutable private

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

mutable private

Pointer on of `*this`.

Definition at line 470 of file cmp.h.

## p_dsdx

Cmp* Lorene::Cmp::p_dsdx

mutable private

Pointer on of `*this` , where .

Definition at line 479 of file cmp.h.

## p_dsdy

Cmp* Lorene::Cmp::p_dsdy

mutable private

Pointer on of `*this` , where .

Definition at line 484 of file cmp.h.

## p_dsdz

Cmp* Lorene::Cmp::p_dsdz

mutable private

Pointer on of `*this` , where .

Definition at line 489 of file cmp.h.

## p_integ

Tbl* Lorene::Cmp::p_integ

mutable private

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

mutable private

Pointer on the Laplacian of `*this`.

Definition at line 493 of file cmp.h.

## p_srdsdt

Cmp* Lorene::Cmp::p_srdsdt

mutable private

Pointer on of `*this`.

Definition at line 472 of file cmp.h.

## p_srstdsdp

Cmp* Lorene::Cmp::p_srstdsdp

mutable private

Pointer on 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:

- cmp.h
- cmp.C
- cmp_arithm.C
- cmp_asymptot.C
- cmp_deriv.C
- cmp_import.C
- cmp_import_asymy.C
- cmp_import_symy.C
- cmp_integ.C
- cmp_manip.C
- cmp_pde.C
- cmp_pde_falloff.C
- cmp_pde_frontiere.C
- cmp_pde_ylm.C
- cmp_poisson_regu.C
- cmp_r_manip.C
- cmp_raccord.C
- cmp_raccord_externe.C
- cmp_raccord_zec.C
- cmp_test_poisson.C