Lorene::Scalar Class Reference
Tensorial fields

Tensor field of valence 0 (or component of a tensorial field). More...

`#include <scalar.h>`

Inheritance diagram for Lorene::Scalar:

## Public Member Functions

| Scalar (const Map &mpi)
| Constructor from mapping.
| Scalar (const Tensor &a)
| Constructor from a Tensor (must be of valence 0).
| Scalar (const Scalar &a)
| Copy constructor.
| Scalar (const Cmp &a)
| Constructor by conversion of a Cmp.
| Scalar (const Map &, const Mg3d &, FILE *)
| Constructor from a file (see `sauve(FILE*)` ).
virtual | ~Scalar ()
| Destructor.
virtual void | set_etat_nondef ()
| Sets the logical state to `ETATNONDEF` (undefined).
virtual void | set_etat_zero ()
| Sets the logical state to `ETATZERO` (zero).
virtual void | set_etat_qcq ()
| Sets the logical state to `ETATQCQ` (ordinary state).
void | set_etat_one ()
| Sets the logical state to `ETATUN` (one).
virtual 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 `Scalar` to zero in a hard way.
int | get_etat () const
| Returns the logical state `ETATNONDEF` (undefined), `ETATZERO` (null) or `ETATQCQ` (ordinary).
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.
bool | is_nan (bool verbose=false) const
| Looks for NaNs (not a number) in the scalar field.
void | operator= (const Scalar &a)
| Assignment to another `Scalar` defined on the same mapping.
virtual void | operator= (const Tensor &a)
| Assignment to a `Tensor` (of valence 0).
void | operator= (const Cmp &a)
| Assignment to a `Cmp`.
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`.
| operator Cmp () const
| Conversion to a `Cmp`.
const Valeur & | get_spectral_va () const
| Returns `va` (read only version).
Valeur & | set_spectral_va ()
| Returns `va` (read/write version).
Tbl & | set_domain (int l)
| Read/write of the value in a given domain.
const Tbl & | domain (int l) const
| Read-only of the value in a given domain.
double | val_grid_point (int l, int k, int j, int i) const
| Returns the value of the field at a specified grid point.
double | val_point (double r, double theta, double phi) const
| Computes the value of the field at an arbitrary point , by means of the spectral expansion.
double & | set_grid_point (int l, int k, int j, int i)
| Setting the value of the field at a given grid point.
virtual void | annule (int l_min, int l_max)
| Sets the `Scalar` to zero in several domains.
void | set_inner_boundary (int l, double x)
| Sets the value of the `Scalar` at the inner boundary of a given domain.
void | set_outer_boundary (int l, double x)
| Sets the value of the `Scalar` at the outer boundary of a given domain.
Tbl | multipole_spectrum () const
| Gives the spectrum in terms of multipolar modes l .
Tbl | tbl_out_bound (int l_dom, bool leave_ylm=false)
| Returns the `Tbl` containing the values of angular coefficients at the outer boundary.
Tbl | tbl_in_bound (int n, bool leave_ylm=false)
| Returns the `Tbl` containing the values of angular coefficients at the inner boundary.
Scalar | scalar_out_bound (int n, bool leave_ylm=false)
| Returns the `Scalar` containing the values of angular coefficients at the outer boundary.
const Scalar & | dsdr () const
| Returns of `*this` .
const Scalar & | srdsdt () const
| Returns of `*this` .
const Scalar & | srstdsdp () const
| Returns of `*this` .
const Scalar & | dsdt () const
| Returns of `*this` .
const Scalar & | dsdradial () const
| Returns of `*this` if the mapping is affine (class `Map_af`) and of `*this` if the mapping is logarithmic (class `Map_log`).
const Scalar & | dsdrho () const
| Returns of `*this` .
const Scalar & | stdsdp () const
| Returns of `*this` .
const Scalar & | dsdx () const
| Returns of `*this` , where .
const Scalar & | dsdy () const
| Returns of `*this` , where .
const Scalar & | dsdz () const
| Returns of `*this` , where .
const Scalar & | deriv (int i) const
| Returns of `*this` , where .
const Vector & | derive_cov (const Metric &gam) const
| Returns the gradient (1-form = covariant vector) of `*this`.
const Vector & | derive_con (const Metric &gam) const
| Returns the "contravariant" derivative of `*this` with respect to some metric , by raising the index of the gradient (cf.
Scalar | derive_lie (const Vector &v) const
| Computes the derivative of `this` along a vector field `v`.
const Scalar & | laplacian (int ced_mult_r=4) const
| Returns the Laplacian of `*this`.
const Scalar & | lapang () const
| Returns the angular Laplacian of `*this` , where .
void | div_r ()
| Division by r everywhere; `dzpuis` is not changed.
void | div_r_dzpuis (int ced_mult_r)
| Division by r everywhere but with the output flag `dzpuis` set to `ced_mult_r` .
void | div_r_ced ()
| Division by r in the compactified external domain (CED), the `dzpuis` flag is not changed.
void | mult_r ()
| Multiplication by r everywhere; `dzpuis` is not changed.
void | mult_r_dzpuis (int ced_mult_r)
| Multiplication by r everywhere but with the output flag `dzpuis` set to `ced_mult_r` .
void | mult_r_ced ()
| Multiplication by r in the compactified external domain (CED), the `dzpuis` flag is not changed.
void | mult_rsint ()
| Multiplication by everywhere; `dzpuis` is not changed.
void | mult_rsint_dzpuis (int ced_mult_r)
| Multiplication by but with the output flag `dzpuis` set to `ced_mult_r` .
void | div_rsint ()
| Division by everywhere; `dzpuis` is not changed.
void | div_rsint_dzpuis (int ced_mult_r)
| Division by but with the output flag `dzpuis` set to `ced_mult_r` .
void | mult_cost ()
| Multiplication by .
void | div_cost ()
| Division by .
void | mult_sint ()
| Multiplication by .
void | div_sint ()
| Division by .
void | div_tant ()
| Division by .
Scalar | primr (bool null_infty=true) const
| Computes the radial primitive which vanishes for .
double | integrale () const
| Computes the integral over all space of `*this` .
const Tbl & | integrale_domains () const
| Computes the integral in each domain of `*this` .
virtual void | dec_dzpuis (int dec=1)
| Decreases by `dec` units the value of `dzpuis` and changes accordingly the values of the `Scalar` in the compactified external domain (CED).
virtual void | inc_dzpuis (int inc=1)
| Increases by `inc` units the value of `dzpuis` and changes accordingly the values of the `Scalar` in the compactified external domain (CED).
virtual void | change_triad (const Base_vect &new_triad)
| Sets a new vectorial basis (triad) of decomposition and modifies the components accordingly.
void | filtre (int n)
| Sets the `n` lasts coefficients in r to 0 in the external domain.
void | filtre_r (int *nn)
| Sets the `n` lasts coefficients in r to 0 in all domains.
void | filtre_r (int n, int nzone)
| Sets the `n` last coefficients in r to 0 in the domain `nzone` .
virtual void | exponential_filter_r (int lzmin, int lzmax, int p, double alpha=-16.)
| Applies an exponential filter to the spectral coefficients in the radial direction.
void | sarra_filter_r (int lzmin, int lzmax, double p, double alpha=-1E-16)
| Applies an exponential filter to the spectral coefficients in the radial direction.
void | exp_filter_r_all_domains (Scalar &ss, int p, double alpha=-16.)
| Applies an exponential filter in radial direction in all domains.
void | sarra_filter_r_all_domains (double p, double alpha=1E-16)
| Applies an exponential filter in radial direction in all domains for the case where p is a double (see `Scalar:sarra_filter_r` ).
virtual void | exponential_filter_ylm (int lzmin, int lzmax, int p, double alpha=-16.)
| Applies an exponential filter to the spectral coefficients in the angular directions.
void | annule_l (int l_min, int l_max, bool ylm_output=false)
| Sets all the multipolar components between `l_min` and `l_max` to zero.
void | filtre_phi (int n, int zone)
| Sets the `n` lasts coefficients in to 0 in the domain `zone` .
void | filtre_tp (int nn, int nz1, int nz2)
| Sets the `n` lasts coefficients in to 0 in the domain `nz1` to `nz2` when expressed in spherical harmonics.
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.
void | smooth_decay (int k, int n)
| Performs a matching of the last non-compactified shell with a decaying function where is the spherical harmonic index and n is some specifiable parameter.
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.
void | match_tau (Param &par_bc, Param *par_mat=0x0)
| Method for matching accross domains and imposing boundary condition.
void | match_tau_shell (Param &par_bc, Param *par_mat=0x0)
| Method for matching accross domains and imposing boundary condition.
void | match_collocation (Param &par_bc, Param *par_mat=0x0)
| Method for matching accross domains and imposing boundary condition.
virtual void | sauve (FILE *) const
| Save in a file.
virtual void | spectral_display (const char *comment=0x0, double threshold=1.e-7, int precision=4, ostream &ostr=cout) const
| Displays the spectral coefficients and the associated basis functions.
void | visu_section (const char section_type, double aa, double umin, double umax, double vmin, double vmax, const char *title=0x0, const char *filename=0x0, bool start_dx=true, int nu=200, int nv=200) const
| 3D visualization via a plane section.
void | visu_section (const Tbl &plane, double umin, double umax, double vmin, double vmax, const char *title=0x0, const char *filename=0x0, bool start_dx=true, int nu=200, int nv=200) const
| 3D visualization via a plane section.
void | visu_section_anim (const char section_type, double aa, double umin, double umax, double vmin, double vmax, int jtime, double ttime, int jgraph=1, const char *title=0x0, const char *filename_root=0x0, bool start_dx=false, int nu=200, int nv=200) const
| 3D visualization via time evolving plane section (animation).
void | visu_box (double xmin, double xmax, double ymin, double ymax, double zmin, double zmax, const char *title0=0x0, const char *filename0=0x0, bool start_dx=true, int nx=40, int ny=40, int nz=40) const
| 3D visualization (volume rendering) via OpenDX.
void | operator+= (const Scalar &)
| += Scalar
void | operator-= (const Scalar &)
| -= Scalar
void | operator*= (const Scalar &)
| *= Scalar
virtual void | std_spectral_base ()
| Sets the spectral bases of the `Valeur` `va` to the standard ones for a scalar field.
virtual void | std_spectral_base_odd ()
| Sets the spectral bases of the `Valeur` `va` to the standard odd ones for a scalar field.
void | set_spectral_base (const Base_val &)
| Sets the spectral bases of the `Valeur` `va`.
const Base_val & | get_spectral_base () const
| Returns the spectral bases of the `Valeur` `va`.
void | set_dzpuis (int)
| Modifies the `dzpuis` flag.
Valeur ** | asymptot (int n, const int flag=0) const
| Asymptotic expansion at r = infinity.
Scalar | poisson () const
| Solves the scalar Poisson equation with `*this` as a source.
void | poisson (Param &par, Scalar &uu) const
| Solves the scalar Poisson equation with `*this` as a source (version with parameters to control the resolution).
Scalar | poisson_tau () const
| Solves the scalar Poisson equation with `*this` as a source using a real Tau method The source of the equation is represented by the `Scalar` `*this` .
void | poisson_tau (Param &par, Scalar &uu) const
| Solves the scalar Poisson equation with `*this` as a source using a real Tau method (version with parameters to control the resolution) The source of the equation is represented by the `Scalar` `*this` .
Scalar | poisson_dirichlet (const Valeur &limite, int num) const
| Is identicall to `Scalar::poisson()` .
Scalar | poisson_neumann (const Valeur &, int) const
| Idem as `Scalar::poisson_dirichlet` , the boundary condition being on the radial derivative of the solution.
Scalar | poisson_dir_neu (const Valeur &limite, int num, double fact_dir, double fact_neu) const
| Is identicall to `Scalar::poisson()` .
Scalar | poisson_frontiere_double (const Valeur &, const Valeur &, int) const
| Idem as `Scalar::poisson_dirichlet` , the boundary condition being on both the function and its radial derivative.
void | poisson_regular (int k_div, int nzet, double unsgam1, Param &par, Scalar &uu, Scalar &uu_regu, Scalar &uu_div, Tensor &duu_div, Scalar &source_regu, Scalar &source_div) const
| Solves the scalar Poisson equation with `*this` as a source (version with parameters to control the resolution).
Tbl | test_poisson (const Scalar &uu, ostream &ostr, bool detail=false) const
| Checks if a Poisson equation with `*this` as a source has been correctly solved.
Scalar | poisson_angu (double lambda=0) const
| Solves the (generalized) angular Poisson equation with `*this` as source.
Scalar | avance_dalembert (Param &par, const Scalar &fJm1, const Scalar &source) const
| Performs one time-step integration (from ) of the scalar d'Alembert equation with `*this` being the value of the function f at time J .
Scalar | sol_elliptic (Param_elliptic &params) const
| Resolution of a general elliptic equation, putting zero at infinity.
Scalar | sol_elliptic_boundary (Param_elliptic &params, const Mtbl_cf &bound, double fact_dir, double fact_neu) const
| Resolution of a general elliptic equation, putting zero at infinity and with inner boundary conditions.
Scalar | sol_elliptic_boundary (Param_elliptic &params, const Scalar &bound, double fact_dir, double fact_neu) const
| Resolution of general elliptic equation, with inner boundary conditions as Scalars on mono-domain angulare grids.
Scalar | sol_elliptic_2d (Param_elliptic &) const
| Solves the scalar 2-dimensional elliptic equation with `*this` as a source.
Scalar | sol_elliptic_pseudo_1d (Param_elliptic &) const
| Solves a pseudo-1d elliptic equation with `*this` as a source.
Scalar | sol_elliptic_no_zec (Param_elliptic &params, double val=0) const
| Resolution of a general elliptic equation, putting a given value at the outermost shell and not solving in the compactified domain.
Scalar | sol_elliptic_only_zec (Param_elliptic &params, double val) const
| Resolution of a general elliptic equation solving in the compactified domain and putting a given value at the inner boundary.
Scalar | sol_elliptic_sin_zec (Param_elliptic &params, double *coefs, double *phases) const
| General elliptic solver.
Scalar | sol_elliptic_fixe_der_zero (double val, Param_elliptic &params) const
| Resolution of a general elliptic equation fixing the dericative at the origin and relaxing one continuity condition.
Scalar | sol_divergence (int n) const
| Resolution of a divergence-like equation.
void | import (const Scalar &ci)
| Assignment to another `Scalar` defined on a different mapping.
void | import_symy (const Scalar &ci)
| Assignment to another `Scalar` defined on a different mapping.
void | import_asymy (const Scalar &ci)
| Assignment to another `Scalar` defined on a different mapping.
void | import (int nzet, const Scalar &ci)
| Assignment to another `Scalar` defined on a different mapping.
void | import_symy (int nzet, const Scalar &ci)
| Assignment to another `Scalar` defined on a different mapping.
void | import_asymy (int nzet, const Scalar &ci)
| Assignment to another `Scalar` defined on a different mapping.
void | set_triad (const Base_vect &new_triad)
| Assigns a new vectorial basis (triad) of decomposition.
Scalar & | set (const Itbl &ind)
| Returns the value of a component (read/write version).
Scalar & | set (int i1, int i2)
| Returns the value of a component for a tensor of valence 2 (read/write version).
Scalar & | set (int i1, int i2, int i3)
| Returns the value of a component for a tensor of valence 3 (read/write version).
Scalar & | set (int i1, int i2, int i3, int i4)
| Returns the value of a component for a tensor of valence 4 (read/write version).
void | annule_domain (int l)
| Sets the `Tensor` to zero in a given domain.
void | annule_extern_cn (int l_0, int deg)
| Performs a smooth (C^n) transition in a given domain to zero.
const Tensor & | divergence (const Metric &gam) const
| Computes the divergence of `this` with respect to some metric .
Tensor | up (int ind, const Metric &gam) const
| Computes a new tensor by raising an index of `*this`.
Tensor | down (int ind, const Metric &gam) const
| Computes a new tensor by lowering an index of `*this`.
Tensor | up_down (const Metric &gam) const
| Computes a new tensor by raising or lowering all the indices of `*this` .
Tensor | trace (int ind1, int ind2) const
| Trace on two different type indices.
Tensor | trace (int ind1, int ind2, const Metric &gam) const
| Trace with respect to a given metric.
Scalar | trace () const
| Trace on two different type indices for a valence 2 tensor.
Scalar | trace (const Metric &gam) const
| Trace with respect to a given metric for a valence 2 tensor.
virtual int | position (const Itbl &ind) const
| Returns the position in the array `cmp` of a component given by its indices.
virtual Itbl | indices (int pos) const
| Returns the indices of a component given by its position in the array `cmp` .
const Map & | get_mp () const
| Returns the mapping.
const Base_vect * | get_triad () const
| Returns the vectorial basis (triad) on which the components are defined.
int | get_valence () const
| Returns the valence.
int | get_n_comp () const
| Returns the number of stored components.
int | get_index_type (int i) const
| Gives the type (covariant or contravariant) of the index number `i` .
Itbl | get_index_type () const
| Returns the types of all the indices.
int & | set_index_type (int i)
| Sets the type of the index number `i` .
Itbl & | set_index_type ()
| Sets the types of all the indices.
const Scalar & | operator() (const Itbl &ind) const
| Returns the value of a component (read-only version).
const Scalar & | operator() (int i1, int i2) const
| Returns the value of a component for a tensor of valence 2 (read-only version).
const Scalar & | operator() (int i1, int i2, int i3) const
| Returns the value of a component for a tensor of valence 3 (read-only version).
const Scalar & | operator() (int i1, int i2, int i3, int i4) const
| Returns the value of a component for a tensor of valence 4 (read-only version).
void | operator+= (const Tensor &)
| += Tensor
void | operator-= (const Tensor &)
| -= Tensor

## Protected Member Functions

void | del_t ()
| Logical destructor.
virtual void | del_deriv () const
| Logical destructor of the derivatives.
void | set_der_0x0 () const
| Sets the pointers for derivatives to 0x0.
void | import_gal (int nzet, const Scalar &ci)
| Assignment to another `Scalar` defined on a different mapping, when the two mappings do not have a particular relative orientation.
void | import_align (int nzet, const Scalar &ci)
| Assignment to another `Scalar` defined on a different mapping, when the two mappings have aligned Cartesian axis.
void | import_anti (int nzet, const Scalar &ci)
| Assignment to another `Scalar` defined on a different mapping, when the two mappings have anti-aligned Cartesian axis (i.e.
void | import_align_symy (int nzet, const Scalar &ci)
| Assignment to another `Scalar` defined on a different mapping, when the two mappings have aligned Cartesian axis.
void | import_anti_symy (int nzet, const Scalar &ci)
| Assignment to another `Scalar` defined on a different mapping, when the two mappings have anti-aligned Cartesian axis (i.e.
void | import_align_asymy (int nzet, const Scalar &ci)
| Assignment to another `Scalar` defined on a different mapping, when the two mappings have aligned Cartesian axis.
void | import_anti_asymy (int nzet, const Scalar &ci)
| Assignment to another `Scalar` defined on a different mapping, when the two mappings have anti-aligned Cartesian axis (i.e.
virtual void | del_derive_met (int) const
| Logical destructor of the derivatives depending on the i-th element of `met_depend` .
void | set_der_met_0x0 (int) const
| Sets all the i-th components of `met_depend` , `p_derive_cov` , etc... to 0x0.
void | set_dependance (const Metric &) const
| To be used to describe the fact that the derivatives members have been calculated with `met` .
int | get_place_met (const Metric &) const
| Returns the position of the pointer on `metre` in the array `met_depend` .
void | compute_derive_lie (const Vector &v, Tensor &resu) const
| Computes the Lie derivative of `this` with respect to some vector field `v` (protected method; the public interface is method `derive_lie` ).

## Protected Attributes

int | etat
| The logical state `ETATNONDEF` (undefined), `ETATZERO` (null), `ETATUN` (one), or `ETATQCQ` (ordinary).
int | dzpuis
| Power of r by which the quantity represented by `this` must be divided in the compactified external domain (CED) in order to get the correct physical values.
Valeur | va
| The numerical value of the `Scalar`.
Scalar * | p_dsdr
| Pointer on of `*this` (0x0 if not up to date).
Scalar * | p_srdsdt
| Pointer on of `*this` (0x0 if not up to date).
Scalar * | p_srstdsdp
| Pointer on of `*this` (0x0 if not up to date).
Scalar * | p_dsdt
| Pointer on of `*this` (0x0 if not up to date).
Scalar * | p_stdsdp
| Pointer on of `*this` (0x0 if not up to date).
Scalar * | p_dsdx
| Pointer on of `*this` , where (0x0 if not up to date).
Scalar * | p_dsdy
| Pointer on of `*this` , where (0x0 if not up to date).
Scalar * | p_dsdz
| Pointer on of `*this` , where (0x0 if not up to date).
Scalar * | p_lap
| Pointer on the Laplacian of `*this` (0x0 if not up to date).
Scalar * | p_lapang
| Pointer on the Laplacian of `*this` (0x0 if not up to date).
Scalar * | p_dsdradial
| Pointer on of `*this`.
Scalar * | p_dsdrho
| Pointer on of `*this`.
int | ind_lap
| Power of r by which the last computed Laplacian has been multiplied in the compactified external domain.
Tbl * | p_integ
| Pointer on the space integral of `*this` (values in each domain) (0x0 if not up to date).
const Map *const | mp
| Mapping on which the numerical values at the grid points are defined.
int | valence
| Valence of the tensor (0 = scalar, 1 = vector, etc...).
const Base_vect * | triad
| Vectorial basis (triad) with respect to which the tensor components are defined.
Itbl | type_indice
| 1D array of integers (class `Itbl` ) of size `valence` containing the type of each index: `COV` for a covariant one and `CON` for a contravariant one.
int | n_comp
| Number of stored components, depending on the symmetry.
Scalar ** | cmp
| Array of size `n_comp` of pointers onto the components.
const Metric * | met_depend [N_MET_MAX]
| Array on the `Metric` 's which were used to compute derived quantities, like `p_derive_cov` , etc... The i-th element of this array is the `Metric` used to compute the i-th element of `p_derive_cov` , etc.
Tensor * | p_derive_cov [N_MET_MAX]
| Array of pointers on the covariant derivatives of `this` with respect to various metrics.
Tensor * | p_derive_con [N_MET_MAX]
| Array of pointers on the contravariant derivatives of `this` with respect to various metrics.
Tensor * | p_divergence [N_MET_MAX]
| Array of pointers on the divergence of `this` with respect to various metrics.

## Friends

ostream & | operator<< (ostream &ost, const Scalar &ci)
| Display.
Scalar | operator- (const Scalar &ci)
| `-` Scalar
Scalar | operator+ (const Scalar &c1, const Scalar &c2)
| Scalar + Scalar.
Scalar | operator+ (const Scalar &c1, const Mtbl &mi)
| Scalar + Mbtl.
Scalar | operator+ (const Scalar &t1, double x)
| Scalar + double.
Scalar | operator- (const Scalar &c1, const Scalar &c2)
| Scalar - Scalar.
Scalar | operator- (const Scalar &t1, const Mtbl &mi)
| Scalar - Mbtl.
Scalar | operator- (const Scalar &t1, double x)
| Scalar - double.
Scalar | operator* (const Scalar &c1, const Scalar &c2)
| Scalar * Scalar.
Scalar | operator% (const Scalar &c1, const Scalar &c2)
| Scalar * Scalar with desaliasing.
Scalar | operator| (const Scalar &c1, const Scalar &c2)
| Scalar * Scalar with desaliasing only in r.
Scalar | operator* (const Mtbl &mi, const Scalar &c1)
| Mtbl * Scalar.
Scalar | operator* (double a, const Scalar &c1)
| double * Scalar
Scalar | operator/ (const Scalar &c1, const Scalar &c2)
| Scalar / Scalar.
Scalar | operator/ (const Scalar &c1, const Mtbl &mi)
| Scalar / Mtbl.
Scalar | operator/ (const Mtbl &mi, const Scalar &c2)
| Mtbl / Scalar.
Scalar | operator/ (const Scalar &c1, double x)
| Scalar / double.
Scalar | operator/ (double x, const Scalar &c2)
| double / Scalar
Scalar | sin (const Scalar &ci)
| Sine.
Scalar | cos (const Scalar &ci)
| Cosine.
Scalar | tan (const Scalar &ci)
| Tangent.
Scalar | asin (const Scalar &ci)
| Arcsine.
Scalar | acos (const Scalar &ci)
| Arccosine.
Scalar | atan (const Scalar &ci)
| Arctangent.
Scalar | exp (const Scalar &ci)
| Exponential.
Scalar | Heaviside (const Scalar &ci)
| Heaviside function.
Scalar | log (const Scalar &ci)
| Neperian logarithm.
Scalar | log10 (const Scalar &ci)
| Basis 10 logarithm.
Scalar | sqrt (const Scalar &ci)
| Square root.
Scalar | racine_cubique (const Scalar &ci)
| Cube root.
Scalar | pow (const Scalar &ci, int n)
| Power .
Scalar | pow (const Scalar &ci, double x)
| Power .
Scalar | abs (const Scalar &ci)
| Absolute value.
double | totalmax (const Scalar &ci)
| Maximum values of a `Scalar` in each domain.
double | totalmin (const Scalar &ci)
| Minimum values of a `Scalar` in each domain.
Tbl | max (const Scalar &ci)
| Maximum values of a `Scalar` in each domain.
Tbl | min (const Scalar &ci)
| Minimum values of a `Scalar` in each domain.
Tbl | norme (const Scalar &ci)
| Sums of the absolute values of all the values of the `Scalar` in each domain.
Tbl | diffrel (const Scalar &a, const Scalar &b)
| Relative difference between two `Scalar` (norme version).
Tbl | diffrelmax (const Scalar &a, const Scalar &b)
| Relative difference between two `Scalar` (max version).

## Detailed Description

Tensor field of valence 0 (or component of a tensorial field).

()

Definition at line 387 of file scalar.h.

## Constructor & Destructor Documentation

## Scalar() [1/5]

Lorene::Scalar::Scalar | ( | const Map & | mpi | ) |

explicit

Constructor from mapping.

Definition at line 204 of file scalar.C.

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

## Scalar() [2/5]

Lorene::Scalar::Scalar | ( | const Tensor & | a | ) |

Constructor from a Tensor (must be of valence 0).

Definition at line 215 of file scalar.C.

References Lorene::Tensor::cmp, dzpuis, etat, Lorene::Tensor::mp, set_der_0x0(), Lorene::Tensor::Tensor(), va, and Lorene::Tensor::valence.

## Scalar() [3/5]

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

Copy constructor.

Definition at line 228 of file scalar.C.

References Lorene::Tensor::cmp, dzpuis, etat, Lorene::Tensor::mp, Scalar(), set_der_0x0(), Lorene::Tensor::Tensor(), and va.

## Scalar() [4/5]

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

Constructor by conversion of a Cmp.

Definition at line 238 of file scalar.C.

References Lorene::Tensor::cmp, dzpuis, etat, get_dzpuis(), get_etat(), Lorene::Tensor::get_mp(), set_der_0x0(), Lorene::Tensor::Tensor(), and va.

## Scalar() [5/5]

Lorene::Scalar::Scalar | ( | const Map & | mpi,
|  | const Mg3d & | mgi,
|  | FILE * | fd )

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

Definition at line 248 of file scalar.C.

References Lorene::Tensor::cmp, dzpuis, etat, Lorene::fread_be(), Lorene::Map(), set_der_0x0(), Lorene::Tensor::Tensor(), and va.

## ~Scalar()

Lorene::Scalar::~Scalar | ( |  | ) |

virtual

Destructor.

Definition at line 267 of file scalar.C.

References Lorene::Tensor::cmp, and del_t().

## Member Function Documentation

## allocate_all()

void Lorene::Scalar::allocate_all | ( |  | ) |

virtual

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 `Scalar` -> `Valeur` -> `Mtbl` -> `Tbl` .

Reimplemented from Lorene::Tensor.

Definition at line 365 of file scalar.C.

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

## annule()

void Lorene::Scalar::annule | ( | int | l_min,
|  | int | l_max )

virtual

Sets the `Scalar` to zero in several domains.

Parameters

  l_min | [input] The `Scalar` 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()` .

Reimplemented from Lorene::Tensor.

Definition at line 391 of file scalar.C.

References etat, p_dsdr, p_dsdradial, p_dsdt, p_dsdx, p_dsdy, p_dsdz, p_integ, p_lap, p_lapang, p_srdsdt, p_srstdsdp, p_stdsdp, set_etat_zero(), and va.

## annule_hard()

void Lorene::Scalar::annule_hard | ( |  | ) |

Sets the `Scalar` 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 380 of file scalar.C.

References del_deriv(), etat, and va.

## annule_l()

void Lorene::Scalar::annule_l | ( | int | l_min,
|  | int | l_max,
|  | bool | ylm_output = false )

Sets all the multipolar components between `l_min` and `l_max` to zero.

This is done for [ `l_min` , `l_max` ] and all relevant `m` in the spherical harmonics expansion basis. If `ylm_output` is set to `true` , then the spectral expansion basis of `this` is left to be that of spherical harmonics.

Definition at line 111 of file scalar_manip.C.

References etat, get_etat(), Lorene::Base_val::give_quant_numbers(), Lorene::Tensor::mp, Lorene::Mtbl_cf::set(), set_etat_zero(), and va.

## asymptot()

Valeur ** Lorene::Scalar::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 63 of file scalar_asymptot.C.

References Lorene::Valeur::base, Lorene::Valeur::c, 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(), Lorene::Tensor::mp, mult_r_ced(), Scalar(), 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(), set_grid_point(), Lorene::Mtbl::t, va, and val_grid_point().

## avance_dalembert()

Scalar Lorene::Scalar::avance_dalembert | ( | Param & | par,
|  | const Scalar & | fJm1,
|  | const Scalar & | source ) const

Performs one time-step integration (from ) of the scalar d'Alembert equation with `*this` being the value of the function f at time J .

Works only with an affine mapping (class `Map_af` ) and, if the last domain is a compactified one, it simply copies the value of the field in this last domain at the time-step J to the last domain of the returned solution.

Parameters

  par

  [input/output] possible parameters to control the resolution of the d'Alembert equation:
  - `par.get_double(0)` : [input] the time step dt ,
  - `par.get_int(0)` : [input] the type of boundary conditions set at the outer boundary (0 : reflexion, 1 : Sommerfeld outgoing wave, valid only for l=0 components, 2 : Bayliss & Turkel outgoing wave, valid for l=0, 1, 2 components)
  - `par.get_int_mod(0)` : [input/output] set to 0 at first call, is used as a working flag after (must not be modified after first call)
  - `par.get_tensor_mod(0)` : [input] (optional) if the wave equation is on a curved space-time, this is the potential in front of the Laplace operator. It has to be a Scalar and updated at every time-step (for a potential depending on time). Note: there are many other working objects attached to this `Param` , so one should not modify it. There should be exactly one `Param` for each wave equation to be solved.

  fJm1 | [input] solution at time J-1
  source | [input] source of the d'Alembert equation .

Returns
  solution at time J+1 with boundary conditions defined by `par.get_int(0)` .

Definition at line 217 of file scalar_pde.C.

References Lorene::Tensor::mp, and Scalar().

## change_triad()

void Lorene::Scalar::change_triad | ( | const Base_vect & | new_triad | ) |

virtual

Sets a new vectorial basis (triad) of decomposition and modifies the components accordingly.

Reimplemented from Lorene::Tensor.

Definition at line 997 of file scalar.C.

## check_dzpuis()

bool Lorene::Scalar::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 873 of file scalar.C.

References dz_nonzero(), and dzpuis.

## dec_dzpuis()

void Lorene::Scalar::dec_dzpuis | ( | int | dec = 1 | ) |

virtual

Decreases by `dec` units the value of `dzpuis` and changes accordingly the values of the `Scalar` in the compactified external domain (CED).

Reimplemented from Lorene::Tensor.

Definition at line 418 of file scalar_r_manip.C.

References del_deriv(), etat, and Lorene::Tensor::mp.

## del_deriv()

void Lorene::Scalar::del_deriv | ( |  | ) | const

protected virtual

Logical destructor of the derivatives.

Reimplemented from Lorene::Tensor.

Definition at line 287 of file scalar.C.

References Lorene::Tensor::del_deriv(), p_dsdr, p_dsdradial, p_dsdrho, p_dsdt, p_dsdx, p_dsdy, p_dsdz, p_integ, p_lap, p_lapang, p_srdsdt, p_srstdsdp, p_stdsdp, and set_der_0x0().

## del_t()

void Lorene::Scalar::del_t | ( |  | ) |

protected

Logical destructor.

Definition at line 279 of file scalar.C.

References del_deriv(), and va.

## deriv()

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

Returns of `*this` , where .

If `dzpuis` is zero, then the returned `Scalar` has `dzpuis` = 2. It is increased by 1 otherwise.

Parameters

  i | [input] i=1 for x , i=2 for y , i=3 for z .

Definition at line 359 of file scalar_deriv.C.

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

## derive_con()

const Vector & Lorene::Scalar::derive_con | ( | const Metric & | gam | ) | const

Returns the "contravariant" derivative of `*this` with respect to some metric , by raising the index of the gradient (cf.

method `derive_cov()` ) with .

Definition at line 402 of file scalar_deriv.C.

References Lorene::Tensor::derive_con().

## derive_cov()

const Vector & Lorene::Scalar::derive_cov | ( | const Metric & | gam | ) | const

Returns the gradient (1-form = covariant vector) of `*this`.

Parameters

  gam | metric components only used to get the triad with respect to which the components of the result are defined

Definition at line 390 of file scalar_deriv.C.

References Lorene::Tensor::derive_cov().

## derive_lie()

Scalar Lorene::Scalar::derive_lie | ( | const Vector & | v | ) | const

Computes the derivative of `this` along a vector field `v`.

Definition at line 419 of file scalar_deriv.C.

References Lorene::Tensor::compute_derive_lie(), Lorene::Tensor::mp, and Scalar().

## div_cost()

void Lorene::Scalar::div_cost | ( |  | ) |

Division by .

Definition at line 70 of file scalar_th_manip.C.

References del_deriv(), and Lorene::Tensor::mp.

## div_r()

void Lorene::Scalar::div_r | ( |  | ) |

Division by r everywhere; `dzpuis` is not changed.

Definition at line 133 of file scalar_r_manip.C.

References del_deriv(), and Lorene::Tensor::mp.

## div_r_ced()

void Lorene::Scalar::div_r_ced | ( |  | ) |

Division by r in the compactified external domain (CED), the `dzpuis` flag is not changed.

Definition at line 196 of file scalar_r_manip.C.

References del_deriv(), and Lorene::Tensor::mp.

## div_r_dzpuis()

void Lorene::Scalar::div_r_dzpuis | ( | int | ced_mult_r | ) |

Division by r everywhere but with the output flag `dzpuis`
set to `ced_mult_r` .

Parameters

  ced_mult_r | [input] value of `dzpuis` of the result.

Definition at line 147 of file scalar_r_manip.C.

References allocate_all(), annule(), dec_dzpuis(), del_deriv(), div_r(), domain(), dzpuis, etat, inc_dzpuis(), Lorene::Tensor::mp, Scalar(), set_domain(), set_etat_qcq(), set_spectral_base(), Lorene::Base_val::sx(), and va.

## div_rsint()

void Lorene::Scalar::div_rsint | ( |  | ) |

Division by everywhere; `dzpuis` is not changed.

Definition at line 348 of file scalar_r_manip.C.

References del_deriv(), and Lorene::Tensor::mp.

## div_rsint_dzpuis()

void Lorene::Scalar::div_rsint_dzpuis | ( | int | ced_mult_r | ) |

Division by but with the output flag `dzpuis` set to `ced_mult_r` .

Parameters

  ced_mult_r | [input] value of `dzpuis` of the result.

Definition at line 362 of file scalar_r_manip.C.

References allocate_all(), annule(), dec_dzpuis(), del_deriv(), div_rsint(), div_sint(), domain(), dzpuis, etat, inc_dzpuis(), Lorene::Tensor::mp, Scalar(), set_domain(), set_dzpuis(), set_etat_qcq(), set_spectral_base(), Lorene::Base_val::ssint(), Lorene::Base_val::sx(), and va.

## div_sint()

void Lorene::Scalar::div_sint | ( |  | ) |

Division by .

Definition at line 98 of file scalar_th_manip.C.

References del_deriv(), and Lorene::Tensor::mp.

## div_tant()

void Lorene::Scalar::div_tant | ( |  | ) |

Division by .

Definition at line 111 of file scalar_th_manip.C.

References del_deriv(), and Lorene::Tensor::mp.

## domain()

const Tbl & Lorene::Scalar::domain | ( | 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 625 of file scalar.h.

References etat, and va.

## dsdr()

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

Returns of `*this` .

If `dzpuis` is zero, then the returned `Scalar` has `dzpuis` = 2. It is increased by 1 otherwise.

Definition at line 113 of file scalar_deriv.C.

References dzpuis, etat, Lorene::Tensor::mp, p_dsdr, and Scalar().

## dsdradial()

const Scalar & Lorene::Scalar::dsdradial | ( |  | ) | const

Returns of `*this` if the mapping is affine (class `Map_af`) and of `*this` if the mapping is logarithmic (class `Map_log`).

If `dzpuis` is zero, then the returned `Scalar` has `dzpuis` = 2. It is increased by 1 otherwise.

Definition at line 491 of file scalar_deriv.C.

References dzpuis, etat, Lorene::Tensor::mp, p_dsdradial, and Scalar().

## dsdrho()

const Scalar & Lorene::Scalar::dsdrho | ( |  | ) | const

Returns of `*this` .

If `dzpuis` is zero, then the returned `Scalar` has `dzpuis` = 2. It is increased by 1 otherwise.

Definition at line 522 of file scalar_deriv.C.

References dsdr(), dzpuis, etat, get_spectral_va(), Lorene::Tensor::mp, Lorene::Valeur::mult_ct(), Lorene::Valeur::mult_st(), p_dsdrho, Scalar(), and srdsdt().

## dsdt()

const Scalar & Lorene::Scalar::dsdt | ( |  | ) | const

Returns of `*this` .

Definition at line 208 of file scalar_deriv.C.

References dzpuis, etat, Lorene::Tensor::mp, p_dsdt, and Scalar().

## dsdx()

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

Returns of `*this` , where .

If `dzpuis` is zero, then the returned `Scalar` has `dzpuis` = 2. It is increased by 1 otherwise.

Definition at line 266 of file scalar_deriv.C.

References dsdr(), dzpuis, etat, Lorene::Tensor::mp, p_dsdx, Scalar(), srdsdt(), and srstdsdp().

## dsdy()

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

Returns of `*this` , where .

If `dzpuis` is zero, then the returned `Scalar` has `dzpuis` = 2. It is increased by 1 otherwise.

Definition at line 297 of file scalar_deriv.C.

References dsdr(), dzpuis, etat, Lorene::Tensor::mp, p_dsdy, Scalar(), srdsdt(), and srstdsdp().

## dsdz()

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

Returns of `*this` , where .

If `dzpuis` is zero, then the returned `Scalar` has `dzpuis` = 2. It is increased by 1 otherwise.

Definition at line 328 of file scalar_deriv.C.

References dsdr(), dzpuis, etat, Lorene::Tensor::mp, p_dsdz, Scalar(), and srdsdt().

## dz_nonzero()

bool Lorene::Scalar::dz_nonzero | ( |  | ) | const

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

Definition at line 814 of file scalar.C.

References etat, Lorene::Mg3d::get_nzone(), Lorene::Mg3d::get_type_r(), Lorene::Tensor::mp, and va.

## exp_filter_r_all_domains()

void Lorene::Scalar::exp_filter_r_all_domains | ( | Scalar & | ss,
|  | int | p,
|  | double | alpha = -16. )

Applies an exponential filter in radial direction in all domains.

(see `Scalar:exponential_filter_r` ). Note that this may cause regularity problems at the origin if applied in a nucleus.

References Scalar().

## exponential_filter_r()

void Lorene::Scalar::exponential_filter_r | ( | int | lzmin,
|  | int | lzmax,
|  | int | p,
|  | double | alpha = -16. )

virtual

Applies an exponential filter to the spectral coefficients in the radial direction.

The filter is of the type: , with and N the number of radial coefficients.

Parameters

  lzmin,lzmax | [input] the indices of the domain where the filter is applied (in [`lzmin` , `lzmax` ])
  p | [input] the order of the filter
  alpha | [input] appearing in the above formula.

Reimplemented from Lorene::Tensor.

Definition at line 60 of file scalar_exp_filter.C.

References del_deriv(), etat, exp, Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), log, Lorene::Tensor::mp, pow, and va.

## exponential_filter_ylm()

void Lorene::Scalar::exponential_filter_ylm | ( | int | lzmin,
|  | int | lzmax,
|  | int | p,
|  | double | alpha = -16. )

virtual

Applies an exponential filter to the spectral coefficients in the angular directions.

The filter is of the type: , with defined for `Scalar::exponential_filter_r` and the number of spherical harmonics used.

Reimplemented from Lorene::Tensor.

Definition at line 142 of file scalar_exp_filter.C.

References del_deriv(), etat, exp, Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Base_val::give_lmax(), Lorene::Base_val::give_quant_numbers(), log, Lorene::Tensor::mp, pow, and va.

## filtre()

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

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

Definition at line 151 of file scalar_manip.C.

References del_deriv(), etat, Lorene::Tensor::mp, and va.

## filtre_phi()

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

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

Definition at line 249 of file scalar_manip.C.

References del_deriv(), etat, Lorene::Tensor::mp, and va.

## filtre_r() [1/2]

void Lorene::Scalar::filtre_r | ( | int * | nn | ) |

Sets the `n` lasts coefficients in r to 0 in all domains.

Definition at line 180 of file scalar_manip.C.

References del_deriv(), etat, Lorene::Tensor::mp, and va.

## filtre_r() [2/2]

void Lorene::Scalar::filtre_r | ( | int | n,
|  | int | nzone )

Sets the `n` last coefficients in r to 0 in the domain `nzone` .

Definition at line 218 of file scalar_manip.C.

References del_deriv(), etat, Lorene::Tensor::mp, and va.

## filtre_tp()

void Lorene::Scalar::filtre_tp | ( | int | nn,
|  | int | nz1,
|  | int | nz2 )

Sets the `n` lasts coefficients in to 0 in the domain `nz1` to `nz2` when expressed in spherical harmonics.

Definition at line 270 of file scalar_manip.C.

References va.

## fixe_decroissance()

void Lorene::Scalar::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 346 of file scalar_manip.C.

References Lorene::Valeur::base, Lorene::Valeur::c_cf, Lorene::Valeur::coef(), cos, dzpuis, Lorene::Map_af::get_alpha(), Lorene::Base_val::get_base_r(), Lorene::Tensor::mp, mult_r_ced(), pow, R_CHEBU, Scalar(), Lorene::Mtbl_cf::set(), Lorene::Valeur::set_etat_cf_qcq(), and va.

## get_dzpuis()

int Lorene::Scalar::get_dzpuis | ( |  | ) | const

inline

Returns `dzpuis`.

Definition at line 557 of file scalar.h.

References dzpuis.

## get_etat()

int Lorene::Scalar::get_etat | ( |  | ) | const

inline

Returns the logical state `ETATNONDEF` (undefined), `ETATZERO` (null) or `ETATQCQ` (ordinary).

Definition at line 554 of file scalar.h.

References etat.

## get_spectral_base()

const Base_val & Lorene::Scalar::get_spectral_base | ( |  | ) | const

inline

Returns the spectral bases of the `Valeur` `va`.

Definition at line 1294 of file scalar.h.

References va.

## get_spectral_va()

const Valeur & Lorene::Scalar::get_spectral_va | ( |  | ) | const

inline

Returns `va` (read only version).

Definition at line 601 of file scalar.h.

References va.

## import() [1/2]

void Lorene::Scalar::import | ( | const Scalar & | ci | ) |

Assignment to another `Scalar` defined on a different mapping.

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

Parameters

  ci | [input] `Scalar` to be imported.

Definition at line 68 of file scalar_import.C.

References Lorene::Tensor::mp, and Scalar().

## import() [2/2]

void Lorene::Scalar::import | ( | int | nzet,
|  | const Scalar & | ci )

Assignment to another `Scalar` defined on a different mapping.

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

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] `Scalar` to be imported.

Definition at line 80 of file scalar_import.C.

References Lorene::Tensor::get_mp(), import_align(), import_anti(), import_gal(), Lorene::Map(), Lorene::Tensor::mp, and Scalar().

## import_align()

void Lorene::Scalar::import_align | ( | int | nzet,
|  | const Scalar & | ci )

protected

Assignment to another `Scalar` 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 `Scalar`.

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] `Scalar` to be imported.

Definition at line 532 of file scalar_import.C.

References Lorene::Param::add_double(), Lorene::Param::add_int(), Lorene::Param::add_int_mod(), annule(), Lorene::Valeur::c_cf, Lorene::Valeur::coef(), del_t(), get_dzpuis(), get_etat(), Lorene::Tensor::get_mp(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), get_spectral_va(), Lorene::Map(), Lorene::Tensor::mp, Lorene::r, Scalar(), set_dzpuis(), set_etat_one(), set_etat_qcq(), set_etat_zero(), sqrt, Lorene::Mtbl::t, Lorene::Tbl::t, va, and Lorene::Mtbl_cf::val_point().

## import_align_asymy()

void Lorene::Scalar::import_align_asymy | ( | int | nzet,
|  | const Scalar & | ci )

protected

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

Case where the `Scalar` 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 `Scalar`.

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] `Scalar` to be imported.

Definition at line 378 of file scalar_import_asymy.C.

References Lorene::Param::add_double(), Lorene::Param::add_int(), Lorene::Param::add_int_mod(), annule(), Lorene::Valeur::c_cf, Lorene::Valeur::coef(), del_t(), get_dzpuis(), get_etat(), Lorene::Tensor::get_mp(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), get_spectral_va(), Lorene::Mg3d::get_type_p(), Lorene::Map(), Lorene::Tensor::mp, Lorene::r, Scalar(), set_dzpuis(), set_etat_one(), set_etat_qcq(), set_etat_zero(), sqrt, Lorene::Mtbl::t, Lorene::Tbl::t, va, and Lorene::Mtbl_cf::val_point_asymy().

## import_align_symy()

void Lorene::Scalar::import_align_symy | ( | int | nzet,
|  | const Scalar & | ci )

protected

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

Case where the `Scalar` 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 `Scalar`.

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] `Scalar` to be imported.

Definition at line 349 of file scalar_import_symy.C.

References Lorene::Param::add_double(), Lorene::Param::add_int(), Lorene::Param::add_int_mod(), annule(), Lorene::Valeur::c_cf, Lorene::Valeur::coef(), del_t(), get_dzpuis(), get_etat(), Lorene::Tensor::get_mp(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), get_spectral_va(), Lorene::Mg3d::get_type_p(), Lorene::Map(), Lorene::Tensor::mp, Lorene::r, Scalar(), set_dzpuis(), set_etat_one(), set_etat_qcq(), set_etat_zero(), sqrt, Lorene::Mtbl::t, Lorene::Tbl::t, va, and Lorene::Mtbl_cf::val_point_symy().

## import_anti()

void Lorene::Scalar::import_anti | ( | int | nzet,
|  | const Scalar & | ci )

protected

Assignment to another `Scalar` 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 `Scalar`.

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] `Scalar` to be imported.

Definition at line 335 of file scalar_import.C.

References Lorene::Param::add_double(), Lorene::Param::add_int(), Lorene::Param::add_int_mod(), annule(), Lorene::Valeur::c_cf, Lorene::Valeur::coef(), del_t(), get_dzpuis(), get_etat(), Lorene::Tensor::get_mp(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), get_spectral_va(), Lorene::Map(), Lorene::Tensor::mp, Lorene::r, Scalar(), set_dzpuis(), set_etat_one(), set_etat_qcq(), set_etat_zero(), sqrt, Lorene::Mtbl::t, Lorene::Tbl::t, va, and Lorene::Mtbl_cf::val_point().

## import_anti_asymy()

void Lorene::Scalar::import_anti_asymy | ( | int | nzet,
|  | const Scalar & | ci )

protected

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

, , ). Case where the `Scalar` 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 `Scalar`.

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] `Scalar` to be imported.

Definition at line 131 of file scalar_import_asymy.C.

References Lorene::Param::add_double(), Lorene::Param::add_int(), Lorene::Param::add_int_mod(), annule(), Lorene::Valeur::c_cf, Lorene::Valeur::coef(), del_t(), get_dzpuis(), get_etat(), Lorene::Tensor::get_mp(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), get_spectral_va(), Lorene::Mg3d::get_type_p(), Lorene::Map(), Lorene::Tensor::mp, Lorene::r, Scalar(), set_dzpuis(), set_etat_one(), set_etat_qcq(), set_etat_zero(), sqrt, Lorene::Mtbl::t, Lorene::Tbl::t, va, and Lorene::Mtbl_cf::val_point_asymy().

## import_anti_symy()

void Lorene::Scalar::import_anti_symy | ( | int | nzet,
|  | const Scalar & | ci )

protected

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

, , ). Case where the `Scalar` 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 `Scalar`.

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] `Scalar` to be imported.

Definition at line 131 of file scalar_import_symy.C.

References Lorene::Param::add_double(), Lorene::Param::add_int(), Lorene::Param::add_int_mod(), annule(), Lorene::Valeur::c_cf, Lorene::Valeur::coef(), del_t(), get_dzpuis(), get_etat(), Lorene::Tensor::get_mp(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), get_spectral_va(), Lorene::Mg3d::get_type_p(), Lorene::Map(), Lorene::Tensor::mp, Lorene::r, Scalar(), set_dzpuis(), set_etat_one(), set_etat_qcq(), set_etat_zero(), sqrt, Lorene::Mtbl::t, Lorene::Tbl::t, va, and Lorene::Mtbl_cf::val_point_symy().

## import_asymy() [1/2]

void Lorene::Scalar::import_asymy | ( | const Scalar & | ci | ) |

Assignment to another `Scalar` defined on a different mapping.

Case where the `Scalar` 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 `Scalar`.

Parameters

  ci | [input] `Scalar` to be imported.

Definition at line 72 of file scalar_import_asymy.C.

References import_asymy(), Lorene::Tensor::mp, and Scalar().

## import_asymy() [2/2]

void Lorene::Scalar::import_asymy | ( | int | nzet,
|  | const Scalar & | ci )

Assignment to another `Scalar` defined on a different mapping.

Case where the `Scalar` 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 `Scalar`.

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] `Scalar` to be imported.

Definition at line 84 of file scalar_import_asymy.C.

References Lorene::Tensor::get_mp(), import_align_asymy(), import_anti_asymy(), Lorene::Map(), Lorene::Tensor::mp, and Scalar().

## import_gal()

void Lorene::Scalar::import_gal | ( | int | nzet,
|  | const Scalar & | ci )

protected

Assignment to another `Scalar` 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 `Scalar`.

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] `Scalar` to be imported.

Definition at line 131 of file scalar_import.C.

References Lorene::Param::add_double(), Lorene::Param::add_int(), Lorene::Param::add_int_mod(), annule(), Lorene::Valeur::c_cf, Lorene::Valeur::coef(), del_t(), get_dzpuis(), get_etat(), Lorene::Tensor::get_mp(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), get_spectral_va(), Lorene::Map(), Lorene::Tensor::mp, Lorene::r, Scalar(), set_dzpuis(), set_etat_one(), set_etat_qcq(), set_etat_zero(), sqrt, Lorene::Mtbl::t, Lorene::Tbl::t, va, and Lorene::Mtbl_cf::val_point().

## import_symy() [1/2]

void Lorene::Scalar::import_symy | ( | const Scalar & | ci | ) |

Assignment to another `Scalar` defined on a different mapping.

Case where the `Scalar` 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 `Scalar`.

Parameters

  ci | [input] `Scalar` to be imported.

Definition at line 72 of file scalar_import_symy.C.

References import_symy(), Lorene::Tensor::mp, and Scalar().

## import_symy() [2/2]

void Lorene::Scalar::import_symy | ( | int | nzet,
|  | const Scalar & | ci )

Assignment to another `Scalar` defined on a different mapping.

Case where the `Scalar` 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 `Scalar`.

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] `Scalar` to be imported.

Definition at line 84 of file scalar_import_symy.C.

References Lorene::Tensor::get_mp(), import_align_symy(), import_anti_symy(), Lorene::Map(), Lorene::Tensor::mp, and Scalar().

## inc_dzpuis()

void Lorene::Scalar::inc_dzpuis | ( | int | inc = 1 | ) |

virtual

Increases by `inc` units the value of `dzpuis` and changes accordingly the values of the `Scalar` in the compactified external domain (CED).

Reimplemented from Lorene::Tensor.

Definition at line 470 of file scalar_r_manip.C.

References del_deriv(), etat, and Lorene::Tensor::mp.

## integrale()

double Lorene::Scalar::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 compactified external domain (CED), `dzpuis`
must be 4 for the computation to take place.

Definition at line 61 of file scalar_integ.C.

References integrale_domains(), and Lorene::Tensor::mp.

## integrale_domains()

const Tbl & Lorene::Scalar::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 compactified external domain (CED), `dzpuis`
must be 4 for the computation to take place.

Definition at line 79 of file scalar_integ.C.

References etat, Lorene::Tensor::mp, and p_integ.

## is_nan()

bool Lorene::Scalar::is_nan | ( | bool | verbose = false | ) | const

Looks for NaNs (not a number) in the scalar field.

If at least one NaN is found, it returns `true`. If the flag `verbose` is set to `true`, it outputs to the standard output the indices where NaNs have been found.

Definition at line 1008 of file scalar.C.

References etat, Lorene::Tensor::mp, and va.

## lapang()

const Scalar & Lorene::Scalar::lapang | ( |  | ) | const

Returns the angular Laplacian of `*this` , where .

Definition at line 461 of file scalar_deriv.C.

References dzpuis, etat, Lorene::Tensor::mp, p_lapang, and Scalar().

## laplacian()

const Scalar & Lorene::Scalar::laplacian | ( | int | ced_mult_r = 4 | ) | const

Returns the Laplacian of `*this`.

Parameters

  ced_mult_r

  [input] Determines the quantity computed in the compactified external domain (CED) (u in the field represented by `*this` ) :
  - ced_mult_r = 0 :
  - ced_mult_r = 2 :
  - ced_mult_r = 4 (default) :

Definition at line 436 of file scalar_deriv.C.

References etat, ind_lap, Lorene::Tensor::mp, p_lap, and Scalar().

## match_collocation()

void Lorene::Scalar::match_collocation | ( | Param & | par_bc,
|  | Param * | par_mat = 0x0 )

Method for matching accross domains and imposing boundary condition.

Matching of the field represented by `this` accross domains and imposition of the boundary condition using the collocation method.

Parameters

  par_bc | [input] `Param` to control the boundary conditions
  par_mat | [input/output] optional `Param` in which the matching matrices are stored (together with their LU decomposition).

References Scalar().

## match_tau()

void Lorene::Scalar::match_tau | ( | Param & | par_bc,
|  | Param * | par_mat = 0x0 )

Method for matching accross domains and imposing boundary condition.

Matching of the field represented by `this` accross domains and imposition of the boundary condition using the tau method.

Parameters

  par_bc

  [input] `Param` to control the boundary conditions par_bc must contain (at a minimum) a modifiable Tbl which specifies a physical boundary two integers, one specifying the domain that has the boundary the other specifying the number of conditions 1 -> Dirichlet 2 -> Robin (which may reduce to von Neumann, see below) two doubles, specifying the Robin BC parameters. If the first is zero, we see that Robin will reduce to von Neumann

  par_mat | [input/output] optional `Param` in which the matching matrices are stored (together with their LU decomposition).

Definition at line 66 of file scalar_match_tau.C.

References Lorene::Param::add_matrice_mod(), Lorene::Matrice::annule_hard(), annule_hard(), Lorene::Tbl::annule_hard(), etat, Lorene::Map_af::get_alpha(), Lorene::Param::get_double_mod(), Lorene::Tbl::get_etat(), Lorene::Param::get_int(), Lorene::Param::get_matrice_mod(), Lorene::Param::get_n_double_mod(), Lorene::Param::get_n_int(), Lorene::Param::get_n_matrice_mod(), Lorene::Param::get_n_tbl_mod(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), get_spectral_base(), Lorene::Param::get_tbl_mod(), Lorene::Mg3d::get_type_r(), Lorene::Base_val::give_quant_numbers(), Lorene::Matrice::inverse(), Lorene::Tensor::mp, R_CHEBI, R_CHEBP, Lorene::Matrice::set(), Lorene::Mtbl_cf::set(), Lorene::Tbl::set(), Lorene::Matrice::set_lu(), and va.

## match_tau_shell()

void Lorene::Scalar::match_tau_shell | ( | Param & | par_bc,
|  | Param * | par_mat = 0x0 )

Method for matching accross domains and imposing boundary condition.

Matching of the field represented by `this` accross domains and imposition of the boundary condition using the tau method.

Parameters

  par_bc | [input] `Param` to control the boundary conditions
  par_mat | [input/output] optional `Param` in which the matching matrices are stored (together with their LU decomposition).

## mult_cost()

void Lorene::Scalar::mult_cost | ( |  | ) |

Multiplication by .

Definition at line 58 of file scalar_th_manip.C.

References del_deriv(), and Lorene::Tensor::mp.

## mult_r()

void Lorene::Scalar::mult_r | ( |  | ) |

Multiplication by r everywhere; `dzpuis` is not changed.

Definition at line 208 of file scalar_r_manip.C.

References del_deriv(), and Lorene::Tensor::mp.

## mult_r_ced()

void Lorene::Scalar::mult_r_ced | ( |  | ) |

Multiplication by r in the compactified external domain (CED), the `dzpuis` flag is not changed.

Definition at line 269 of file scalar_r_manip.C.

References del_deriv(), and Lorene::Tensor::mp.

## mult_r_dzpuis()

void Lorene::Scalar::mult_r_dzpuis | ( | int | ced_mult_r | ) |

Multiplication by r everywhere but with the output flag `dzpuis`
set to `ced_mult_r` .

Parameters

  ced_mult_r | [input] value of `dzpuis` of the result.

Definition at line 221 of file scalar_r_manip.C.

References allocate_all(), annule(), dec_dzpuis(), del_deriv(), domain(), dzpuis, etat, inc_dzpuis(), Lorene::Tensor::mp, mult_r(), Lorene::Base_val::mult_x(), Scalar(), set_domain(), set_etat_qcq(), set_spectral_base(), and va.

## mult_rsint()

void Lorene::Scalar::mult_rsint | ( |  | ) |

Multiplication by everywhere; `dzpuis` is not changed.

Definition at line 281 of file scalar_r_manip.C.

References del_deriv(), and Lorene::Tensor::mp.

## mult_rsint_dzpuis()

void Lorene::Scalar::mult_rsint_dzpuis | ( | int | ced_mult_r | ) |

Multiplication by but with the output flag `dzpuis` set to `ced_mult_r` .

Parameters

  ced_mult_r | [input] value of `dzpuis` of the result.

Definition at line 294 of file scalar_r_manip.C.

References allocate_all(), annule(), dec_dzpuis(), del_deriv(), domain(), dzpuis, etat, inc_dzpuis(), Lorene::Tensor::mp, mult_rsint(), Lorene::Base_val::mult_sint(), mult_sint(), Lorene::Base_val::mult_x(), Scalar(), set_domain(), set_dzpuis(), set_etat_qcq(), set_spectral_base(), and va.

## mult_sint()

void Lorene::Scalar::mult_sint | ( |  | ) |

Multiplication by .

Definition at line 84 of file scalar_th_manip.C.

References del_deriv(), and Lorene::Tensor::mp.

## multipole_spectrum()

Tbl Lorene::Scalar::multipole_spectrum | ( |  | ) | const

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 956 of file scalar.C.

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

## operator Cmp()

Lorene::Scalar::operator Cmp | ( |  | ) | const

Conversion to a `Cmp`.

Definition at line 674 of file scalar.C.

References dzpuis, Lorene::Tensor::mp, Lorene::Cmp::set_dzpuis(), and va.

## operator*=()

void Lorene::Scalar::operator*= | ( | const Scalar & | ci | ) |

*= Scalar

Definition at line 937 of file scalar_arithm.C.

References del_deriv(), dzpuis, etat, get_etat(), Lorene::Tensor::get_mp(), Lorene::Tensor::mp, operator=(), Scalar(), set_etat_nondef(), set_etat_zero(), and va.

## operator+=()

void Lorene::Scalar::operator+= | ( | const Scalar & | ci | ) |

+= Scalar

Definition at line 833 of file scalar_arithm.C.

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

## operator-=()

void Lorene::Scalar::operator-= | ( | const Scalar & | ci | ) |

-= Scalar

Definition at line 886 of file scalar_arithm.C.

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

## operator=() [1/7]

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

Assignment to a `Cmp`.

Definition at line 499 of file scalar.C.

References del_deriv(), dzpuis, Lorene::Cmp::get_dzpuis(), Lorene::Cmp::get_etat(), Lorene::Cmp::get_mp(), Lorene::Tensor::mp, set_etat_nondef(), set_etat_qcq(), set_etat_zero(), Lorene::Cmp::va, and va.

## operator=() [2/7]

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

Assignment to a `Mtbl`.

Definition at line 592 of file scalar.C.

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

## operator=() [3/7]

void Lorene::Scalar::operator= | ( | const Scalar & | a | ) |

Assignment to another `Scalar` defined on the same mapping.

Definition at line 446 of file scalar.C.

References del_deriv(), dzpuis, etat, Lorene::Valeur::get_base(), Lorene::Tensor::mp, Scalar(), set_etat_nondef(), set_etat_one(), set_etat_qcq(), set_etat_zero(), and va.

## operator=() [4/7]

void Lorene::Scalar::operator= | ( | const Tensor & | a | ) |

virtual

Assignment to a `Tensor` (of valence 0).

Reimplemented from Lorene::Tensor.

Definition at line 436 of file scalar.C.

References Lorene::Tensor::cmp, operator=(), Lorene::Tensor::Tensor(), and Lorene::Tensor::valence.

## operator=() [5/7]

void Lorene::Scalar::operator= | ( | const Valeur & | a | ) |

Assignment to a `Valeur`.

Definition at line 549 of file scalar.C.

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

## operator=() [6/7]

void Lorene::Scalar::operator= | ( | double | x | ) |

Assignment to a `double`.

Definition at line 632 of file scalar.C.

References del_deriv(), dzpuis, set_etat_one(), set_etat_qcq(), set_etat_zero(), va, and Lorene::x.

## operator=() [7/7]

void Lorene::Scalar::operator= | ( | int | n | ) |

Assignment to an `int`.

Definition at line 653 of file scalar.C.

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

## poisson() [1/2]

Scalar Lorene::Scalar::poisson | ( |  | ) | const

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

The source of the equation is represented by the `Scalar` `*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 compactified external domain. The solution u with the boundary condition u =0 at spatial infinity is the returned `Scalar`.

Definition at line 136 of file scalar_pde.C.

References Lorene::Tensor::mp, and Scalar().

## poisson() [2/2]

void Lorene::Scalar::poisson | ( | Param & | par,
|  | Scalar & | 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 `Scalar` `*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 compactified external domain.

Parameters

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

Definition at line 152 of file scalar_pde.C.

References Lorene::Tensor::mp, and Scalar().

## poisson_angu()

Scalar Lorene::Scalar::poisson_angu | ( | double | lambda = 0 | ) | const

Solves the (generalized) angular Poisson equation with `*this`
as source.

The generalized angular Poisson equation is , where .

      @param lambda [input] coefficient \f$\lambda\f$ in the above equation
        (default value = 0)

Returns
  solution u .

Definition at line 200 of file scalar_pde.C.

References Lorene::Tensor::mp, and Scalar().

## poisson_dir_neu()

Scalar Lorene::Scalar::poisson_dir_neu | ( | const Valeur & | limite,
|  | int | num,
|  | double | fact_dir,
|  | double | fact_neu ) const

Is identicall to `Scalar::poisson()` .

The regularity condition at the origin is replace by a mixed boundary condition (Dirichlet + Neumann).

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.
  fact_dir | [input] : double in front of (if is the variable solved).
  fact_neu | [input] : double in front of the radial derivative of .

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

Definition at line 80 of file scalar_pde_frontiere.C.

References Lorene::Tensor::mp, Scalar(), Lorene::Cmp::set_dzpuis(), and Lorene::Cmp::va.

## poisson_dirichlet()

Scalar Lorene::Scalar::poisson_dirichlet | ( | const Valeur & | limite,
|  | int | num ) const

Is identicall to `Scalar::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 64 of file scalar_pde_frontiere.C.

References Lorene::Tensor::mp, Scalar(), Lorene::Cmp::set_dzpuis(), and Lorene::Cmp::va.

## poisson_frontiere_double()

Scalar Lorene::Scalar::poisson_frontiere_double | ( | const Valeur & | lim_func,
|  | const Valeur & | lim_der,
|  | int | num_zone ) const

Idem as `Scalar::poisson_dirichlet` , the boundary condition being on both the function and its radial derivative.

The boundary condition at infinity is relaxed.

Definition at line 115 of file scalar_pde_frontiere.C.

References Lorene::Tensor::mp, and Scalar().

## poisson_neumann()

Scalar Lorene::Scalar::poisson_neumann | ( | const Valeur & | limite,
|  | int | num_front ) const

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

Definition at line 98 of file scalar_pde_frontiere.C.

References Lorene::Tensor::mp, Scalar(), Lorene::Cmp::set_dzpuis(), and Lorene::Cmp::va.

## poisson_regular()

void Lorene::Scalar::poisson_regular | ( | int | k_div,
|  | int | nzet,
|  | double | unsgam1,
|  | Param & | par,
|  | Scalar & | uu,
|  | Scalar & | uu_regu,
|  | Scalar & | uu_div,
|  | Tensor & | duu_div,
|  | Scalar & | source_regu,
|  | Scalar & | 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 `Scalar` `*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 compactified external 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 62 of file scalar_poisson_regu.C.

References Lorene::Tensor::get_triad(), Lorene::Tensor::mp, Scalar(), Lorene::Itbl::set(), Lorene::Tenseur::set(), Lorene::Tensor::set(), Lorene::Itbl::set_etat_qcq(), Lorene::Tenseur::set_etat_qcq(), and Lorene::Tensor::Tensor().

## poisson_tau() [1/2]

Scalar Lorene::Scalar::poisson_tau | ( |  | ) | const

Solves the scalar Poisson equation with `*this` as a source using a real Tau method The source of the equation is represented by the `Scalar` `*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 compactified external domain. The solution u with the boundary condition u =0 at spatial infinity is the returned `Scalar`.

Definition at line 169 of file scalar_pde.C.

References Lorene::Tensor::mp, and Scalar().

## poisson_tau() [2/2]

void Lorene::Scalar::poisson_tau | ( | Param & | par,
|  | Scalar & | uu ) const

Solves the scalar Poisson equation with `*this` as a source using a real Tau method (version with parameters to control the resolution) The source of the equation is represented by the `Scalar` `*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 compactified external domain. The solution u with the boundary condition u =0 at spatial infinity is the returned `Scalar`.

Definition at line 184 of file scalar_pde.C.

References Lorene::Tensor::mp, and Scalar().

## primr()

Scalar Lorene::Scalar::primr | ( | bool | null_infty = true | ) | const

Computes the radial primitive which vanishes for .

i.e. the function where f is the function represented by `*this` (and must have a `dzpuis` = 2).

Parameters

  null_infty | if true (default), the primitive is null at infinity (or on the grid boundary). F is null at the center otherwise

Returns
  function F

Definition at line 101 of file scalar_integ.C.

References Lorene::Tensor::mp, and Scalar().

## raccord()

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

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

Definition at line 62 of file scalar_raccord.C.

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

## raccord_c1_zec()

void Lorene::Scalar::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 77 of file scalar_raccord_zec.C.

References Lorene::Tbl::annule_hard(), Lorene::Valeur::base, Lorene::Valeur::c_cf, Lorene::Valeur::coef(), cos, dec_dzpuis(), dsdr(), etat, Lorene::Map_af::get_alpha(), Lorene::Base_val::get_base_r(), Lorene::Matrice::inverse(), Lorene::Tensor::mp, pow, R_CHEB, Scalar(), 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::Scalar::raccord_externe | ( | int | puis,
|  | int | nbre,
|  | int | lmax )

Matching of the external domain with the outermost shell.

Definition at line 66 of file scalar_raccord_externe.C.

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

## sarra_filter_r()

void Lorene::Scalar::sarra_filter_r | ( | int | lzmin,
|  | int | lzmax,
|  | double | p,
|  | double | alpha = -1E-16 )

Applies an exponential filter to the spectral coefficients in the radial direction.

The filter is of the type: , with and N the number of radial coefficients.

Parameters

  lzmin,lzmax | [input] the indices of the domain where the filter is applied (in [`lzmin` , `lzmax` ])
  p | [input] the order of the filter
  alpha | [input] appearing in the above formula.

Definition at line 96 of file scalar_exp_filter.C.

References del_deriv(), etat, exp, Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Tensor::mp, pow, and va.

## sarra_filter_r_all_domains()

void Lorene::Scalar::sarra_filter_r_all_domains | ( | double | p,
|  | double | alpha = 1E-16 )

Applies an exponential filter in radial direction in all domains for the case where p is a double (see `Scalar:sarra_filter_r` ).

Note that this may cause regularity problems at the origin if applied in a nucleus.

Definition at line 136 of file scalar_exp_filter.C.

References Lorene::Tensor::get_mp(), and sarra_filter_r().

## sauve()

void Lorene::Scalar::sauve | ( | FILE * | fd | ) | const

virtual

Save in a file.

Reimplemented from Lorene::Tensor.

Definition at line 686 of file scalar.C.

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

## scalar_out_bound()

Scalar Lorene::Scalar::scalar_out_bound | ( | int | n,
|  | bool | leave_ylm = false )

Returns the `Scalar` containing the values of angular coefficients at the outer boundary.

Parameters

  l_dom | [input] domain index
  leave_ylm | [input] flag to decide whether the coefficients are expressed in spherical harmonics or Fourier base

Definition at line 467 of file scalar_manip.C.

References annule_hard(), Lorene::Valeur::c, Lorene::Valeur::c_cf, etat, get_spectral_base(), Lorene::Tensor::mp, Scalar(), Lorene::Mtbl_cf::set(), Lorene::Base_val::set_base_t(), set_etat_zero(), set_spectral_base(), set_spectral_va(), std_spectral_base(), and va.

## set_der_0x0()

void Lorene::Scalar::set_der_0x0 | ( |  | ) | const

protected

Sets the pointers for derivatives to 0x0.

Definition at line 306 of file scalar.C.

References ind_lap, p_dsdr, p_dsdradial, p_dsdrho, p_dsdt, p_dsdx, p_dsdy, p_dsdz, p_integ, p_lap, p_lapang, p_srdsdt, p_srstdsdp, and p_stdsdp.

## set_domain()

Tbl & Lorene::Scalar::set_domain | ( | int | l | ) |

inline

Read/write of the value in a given domain.

This method should be used only to set the value in a given domain (it performs a call to `del_deriv`); for reading the value in a domain without changing it, the method `domain(int )` is preferable.

Parameters

  l | [input] domain index

Returns
  writable `Tbl` containing the value of the field in domain `l` .

Definition at line 615 of file scalar.h.

References del_deriv(), etat, and va.

## set_dzpuis()

void Lorene::Scalar::set_dzpuis | ( | int | dzi | ) |

Modifies the `dzpuis` flag.

NB: this method does not change the field values stored in the compactified external domain (use methods `dec_dzpuis()` , etc... for this purpose).

Definition at line 808 of file scalar.C.

References dzpuis.

## set_etat_nondef()

void Lorene::Scalar::set_etat_nondef | ( |  | ) |

virtual

Sets the logical state to `ETATNONDEF` (undefined).

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

Reimplemented from Lorene::Tensor.

Definition at line 344 of file scalar.C.

References del_t(), and etat.

## set_etat_one()

void Lorene::Scalar::set_etat_one | ( |  | ) |

Sets the logical state to `ETATUN` (one).

Fills the `Valeur` `va` with ones and deallocates the memory occupied by all the derivatives.

Definition at line 334 of file scalar.C.

References del_deriv(), etat, and va.

## set_etat_qcq()

void Lorene::Scalar::set_etat_qcq | ( |  | ) |

virtual

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.

Reimplemented from Lorene::Tensor.

Definition at line 353 of file scalar.C.

References del_t(), and etat.

## set_etat_zero()

void Lorene::Scalar::set_etat_zero | ( |  | ) |

virtual

Sets the logical state to `ETATZERO` (zero).

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

Reimplemented from Lorene::Tensor.

Definition at line 324 of file scalar.C.

References del_deriv(), etat, and va.

## set_grid_point()

double & Lorene::Scalar::set_grid_point | ( | int | l,
|  | int | k,
|  | int | j,
|  | int | i )

inline

Setting the value of the field at a given grid point.

CAUTION: to gain in efficiency (especially when this method is invoqued inside a loop), the method `del_deriv()` (to delete the derived members) is not called by `set_grid_point` . It must thus be invoqued by the user, after all the calls to `set_grid_point` have been performed.

Parameters

  l | [input] domain index
  k | [input] index
  j | [input] index
  i | [input] r ( ) index

Returns
  writable value of the field at the specified grid point

Definition at line 684 of file scalar.h.

References etat, and va.

## set_inner_boundary()

void Lorene::Scalar::set_inner_boundary | ( | int | l,
|  | double | x )

Sets the value of the `Scalar` at the inner boundary of a given domain.

Parameters

  l | [input] domain index
  x | [input] (constant) value at the inner boundary of domain no. `l`

Definition at line 283 of file scalar_manip.C.

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

## set_outer_boundary()

void Lorene::Scalar::set_outer_boundary | ( | int | l,
|  | double | x )

Sets the value of the `Scalar` at the outer boundary of a given domain.

Parameters

  l | [input] domain index
  x | [input] (constant) value at the outer boundary of domain no. `l`

Definition at line 315 of file scalar_manip.C.

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

## set_spectral_base()

void Lorene::Scalar::set_spectral_base | ( | const Base_val & | bi | ) |

Sets the spectral bases of the `Valeur` `va`.

Definition at line 797 of file scalar.C.

References va.

## set_spectral_va()

Valeur & Lorene::Scalar::set_spectral_va | ( |  | ) |

inline

Returns `va` (read/write version).

Definition at line 604 of file scalar.h.

References va.

## smooth_decay()

void Lorene::Scalar::smooth_decay | ( | int | k,
|  | int | n )

Performs a matching of the last non-compactified shell with a decaying function where is the spherical harmonic index and n is some specifiable parameter.

Definition at line 213 of file scalar_raccord_zec.C.

References Lorene::Valeur::c_cf, Lorene::Valeur::coef(), dsdr(), etat, Lorene::Map_af::get_alpha(), Lorene::Valeur::get_base(), Lorene::Map_af::get_beta(), get_dzpuis(), get_etat(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Mg3d::get_type_r(), Lorene::Matrice::inverse(), Lorene::Tensor::mp, pow, Lorene::r, Scalar(), Lorene::Matrice::set(), Lorene::Tbl::set(), Lorene::Matrice::set_band(), Lorene::Valeur::set_base(), Lorene::Valeur::set_base_r(), Lorene::Valeur::set_etat_cf_qcq(), Lorene::Matrice::set_etat_qcq(), Lorene::Mtbl_cf::set_etat_qcq(), set_etat_qcq(), Lorene::Tbl::set_etat_qcq(), Lorene::Tbl::set_etat_zero(), Lorene::Matrice::set_lu(), std_spectral_base(), Lorene::Mtbl_cf::t, va, and val_grid_point().

## sol_divergence()

Scalar Lorene::Scalar::sol_divergence | ( | int | n | ) | const

Resolution of a divergence-like equation.

The equation solved reads: , with the unknown and the source represented by `this`.

Parameters

  n | [input] the coefficient in front of the 1/r term.

Returns
  the solution to the equation.

Definition at line 68 of file scalar_sol_div.C.

References Lorene::Mtbl_cf::annule_hard(), Lorene::Tbl::annule_hard(), Lorene::Valeur::c_cf, check_dzpuis(), etat, Lorene::Map_af::get_alpha(), Lorene::Map_af::get_beta(), Lorene::Diff_dsdx::get_matrice(), Lorene::Diff_sx::get_matrice(), Lorene::Diff_xdsdx::get_matrice(), Lorene::Mtbl_cf::get_mg(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), get_spectral_base(), Lorene::Mg3d::get_type_r(), Lorene::Base_val::give_quant_numbers(), Lorene::Matrice::inverse(), Lorene::Tensor::mp, Lorene::Base_val::mult_x(), pow, R_CHEB, R_CHEBI, R_CHEBP, R_CHEBU, Scalar(), Lorene::Matrice::set(), Lorene::Mtbl_cf::set(), Lorene::Tbl::set(), Lorene::Valeur::set_etat_cf_qcq(), Lorene::Matrice::set_etat_qcq(), set_etat_qcq(), Lorene::Tbl::set_etat_qcq(), set_etat_zero(), Lorene::Matrice::set_lu(), set_spectral_base(), set_spectral_va(), Lorene::Tbl::t, va, and Lorene::Valeur::ylm_i().

## sol_elliptic()

Scalar Lorene::Scalar::sol_elliptic | ( | Param_elliptic & | params | ) | const

Resolution of a general elliptic equation, putting zero at infinity.

Parameters

  params | [input] the operators and variables to be used.

Definition at line 234 of file scalar_pde.C.

References Lorene::Tensor::mp, Scalar(), set_etat_qcq(), Lorene::Map_af::sol_elliptic(), and Lorene::Map_log::sol_elliptic().

## sol_elliptic_2d()

Scalar Lorene::Scalar::sol_elliptic_2d | ( | Param_elliptic & | ope_var | ) | const

Solves the scalar 2-dimensional elliptic equation with `*this` as a source.

Note that `dzpuis` must be equal to 2, 3 or 4, i.e. The solution u with the boundary condition u =0 at spatial infinity is the returned `Scalar`.

Definition at line 409 of file scalar_pde.C.

References Lorene::Tensor::mp, Scalar(), set_etat_qcq(), and Lorene::Map_af::sol_elliptic_2d().

## sol_elliptic_boundary() [1/2]

Scalar Lorene::Scalar::sol_elliptic_boundary | ( | Param_elliptic & | params,
|  | const Mtbl_cf & | bound,
|  | double | fact_dir,
|  | double | fact_neu ) const

Resolution of a general elliptic equation, putting zero at infinity and with inner boundary conditions.

Parameters

  params | [input] the operators and variables to be used.
  bound | [input] : the boundary condition
  fact_dir | : 1 Dirchlet condition, 0 Neumann condition
  fact_neu | : 0 Dirchlet condition, 1 Neumann condition

Definition at line 256 of file scalar_pde.C.

References Lorene::Tensor::mp, Scalar(), set_etat_qcq(), Lorene::Map_af::sol_elliptic_boundary(), and Lorene::Map_log::sol_elliptic_boundary().

## sol_elliptic_boundary() [2/2]

Scalar Lorene::Scalar::sol_elliptic_boundary | ( | Param_elliptic & | params,
|  | const Scalar & | bound,
|  | double | fact_dir,
|  | double | fact_neu ) const

Resolution of general elliptic equation, with inner boundary conditions as Scalars on mono-domain angulare grids.

Definition at line 282 of file scalar_pde.C.

References Lorene::Tensor::mp, Scalar(), set_etat_qcq(), Lorene::Map_af::sol_elliptic_boundary(), and Lorene::Map_log::sol_elliptic_boundary().

## sol_elliptic_fixe_der_zero()

Scalar Lorene::Scalar::sol_elliptic_fixe_der_zero | ( | double | val,
|  | Param_elliptic & | params ) const

Resolution of a general elliptic equation fixing the dericative at the origin and relaxing one continuity condition.

Parameters

  val | [input] value of the derivative.
  params | [input] the operators and variables to be used.

Definition at line 386 of file scalar_pde.C.

References Lorene::Tensor::mp, Scalar(), set_etat_qcq(), and Lorene::Map_af::sol_elliptic_fixe_der_zero().

## sol_elliptic_no_zec()

Scalar Lorene::Scalar::sol_elliptic_no_zec | ( | Param_elliptic & | params,
|  | double | val = 0 ) const

Resolution of a general elliptic equation, putting a given value at the outermost shell and not solving in the compactified domain.

Parameters

  params | [input] the operators and variables to be used.
  val | [input] value at the last shell.

Definition at line 314 of file scalar_pde.C.

References Lorene::Tensor::mp, Scalar(), set_etat_qcq(), Lorene::Map_af::sol_elliptic_no_zec(), and Lorene::Map_log::sol_elliptic_no_zec().

## sol_elliptic_only_zec()

Scalar Lorene::Scalar::sol_elliptic_only_zec | ( | Param_elliptic & | params,
|  | double | val ) const

Resolution of a general elliptic equation solving in the compactified domain and putting a given value at the inner boundary.

Parameters

  params | [input] the operators and variables to be used.
  val | [input] value at the inner boundary of the external domain.

Definition at line 341 of file scalar_pde.C.

References Lorene::Tensor::mp, Scalar(), set_etat_qcq(), and Lorene::Map_af::sol_elliptic_only_zec().

## sol_elliptic_pseudo_1d()

Scalar Lorene::Scalar::sol_elliptic_pseudo_1d | ( | Param_elliptic & | ope_var | ) | const

Solves a pseudo-1d elliptic equation with `*this` as a source.

Definition at line 430 of file scalar_pde.C.

References Lorene::Tensor::mp, Scalar(), set_etat_qcq(), and Lorene::Map_af::sol_elliptic_pseudo_1d().

## sol_elliptic_sin_zec()

Scalar Lorene::Scalar::sol_elliptic_sin_zec | ( | Param_elliptic & | params,
|  | double * | coefs,
|  | double * | phases ) const

General elliptic solver.

The equation is not solved in the compactified domain and the matching is done with an homogeneous solution.

Parameters

  params | [input] the operators and variables to be used.
  coef | [output] : coefficient of the oscillatory solution in the external domain.
  phases | [output] : phases (i.e. choice of the homogeneous solution to match with).

Definition at line 363 of file scalar_pde.C.

References Lorene::Tensor::mp, Scalar(), set_etat_qcq(), and Lorene::Map_af::sol_elliptic_sin_zec().

## spectral_display()

void Lorene::Scalar::spectral_display | ( | const char * | comment = 0x0,
|  | double | threshold = 1.e-7,
|  | int | precision = 4,
|  | ostream & | ostr = cout ) const

virtual

Displays the spectral coefficients and the associated basis functions.

This function shows only the values greater than a given threshold.

Parameters

  comment | comment to be printed at top of the display (default: 0x0 = nothing printed)
  threshold | [input] Value above which a coefficient is printed (default: 1.e-7)
  precision | [input] Number of printed digits (default: 4)
  ostr | [input] Output stream used for the printing (default: cout)

Reimplemented from Lorene::Tensor.

Definition at line 741 of file scalar.C.

References dzpuis, etat, and va.

## srdsdt()

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

Returns of `*this` .

If `dzpuis` is zero, then the returned `Scalar` has `dzpuis` = 2. It is increased by 1 otherwise.

Definition at line 145 of file scalar_deriv.C.

References dzpuis, etat, Lorene::Tensor::mp, p_srdsdt, and Scalar().

## srstdsdp()

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

Returns of `*this` .

If `dzpuis` is zero, then the returned `Scalar` has `dzpuis` = 2. It is increased by 1 otherwise.

Definition at line 177 of file scalar_deriv.C.

References dzpuis, etat, Lorene::Tensor::mp, p_srstdsdp, and Scalar().

## std_spectral_base()

void Lorene::Scalar::std_spectral_base | ( |  | ) |

virtual

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

Reimplemented from Lorene::Tensor.

Definition at line 784 of file scalar.C.

References va.

## std_spectral_base_odd()

void Lorene::Scalar::std_spectral_base_odd | ( |  | ) |

virtual

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

Reimplemented from Lorene::Tensor.

Definition at line 791 of file scalar.C.

References va.

## stdsdp()

const Scalar & Lorene::Scalar::stdsdp | ( |  | ) | const

Returns of `*this` .

Definition at line 238 of file scalar_deriv.C.

References dzpuis, etat, Lorene::Tensor::mp, p_stdsdp, and Scalar().

## tbl_in_bound()

Tbl Lorene::Scalar::tbl_in_bound | ( | int | n,
|  | bool | leave_ylm = false )

Returns the `Tbl` containing the values of angular coefficients at the inner boundary.

Parameters

  l_dom | [input] domain index
  leave_ylm | [input] flag to decide whether the coefficients are expressed in spherical harmonics or Fourier base

Definition at line 448 of file scalar_manip.C.

References etat, Lorene::Tensor::mp, Lorene::Tbl::set(), Lorene::Tbl::set_etat_qcq(), Lorene::Tbl::set_etat_zero(), and va.

## tbl_out_bound()

Tbl Lorene::Scalar::tbl_out_bound | ( | int | l_dom,
|  | bool | leave_ylm = false )

Returns the `Tbl` containing the values of angular coefficients at the outer boundary.

Parameters

  l_dom | [input] domain index
  leave_ylm | [input] flag to decide whether the coefficients are expressed in spherical harmonics or Fourier base

Definition at line 430 of file scalar_manip.C.

References etat, Lorene::Tensor::mp, Lorene::Tbl::set(), Lorene::Tbl::set_etat_qcq(), Lorene::Tbl::set_etat_zero(), and va.

## test_poisson()

Tbl Lorene::Scalar::test_poisson | ( | const Scalar & | 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 `Scalar` `*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 compactified external domain (CED). If `dzpuis` != 0 and does not vanish in the CED, 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 compactified external 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 60 of file scalar_test_poisson.C.

References abs, check_dzpuis(), dzpuis, Lorene::Tensor::get_mp(), laplacian(), max, Lorene::Tensor::mp, Scalar(), Lorene::Tbl::set(), and Lorene::Tbl::set_etat_qcq().

## val_grid_point()

double Lorene::Scalar::val_grid_point | ( | int | l,
|  | int | k,
|  | int | j,
|  | int | i ) const

inline

Returns the value of the field at a specified grid point.

Parameters

  l | [input] domain index
  k | [input] index
  j | [input] index
  i | [input] r ( ) index

Definition at line 637 of file scalar.h.

References etat, and va.

## val_point()

double Lorene::Scalar::val_point | ( | double | r,
|  | double | theta,
|  | double | phi ) const

Computes the value of the field at an arbitrary point , by means of the spectral expansion.

NB: if is a point of the spectral grid, the method `val_grid_point` is to be preferred, being much more efficient.

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` . NB: in the compactified external domain, the returned value is the actual value of the field, i.e. the stored value divided by .

Definition at line 890 of file scalar.C.

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

## visu_box()

void Lorene::Scalar::visu_box | ( | double | xmin,
|  | double | xmax,
|  | double | ymin,
|  | double | ymax,
|  | double | zmin,
|  | double | zmax,
|  | const char * | title0 = 0x0,
|  | const char * | filename0 = 0x0,
|  | bool | start_dx = true,
|  | int | nx = 40,
|  | int | ny = 40,
|  | int | nz = 40 ) const

3D visualization (volume rendering) via OpenDX.

Prepares files for visualization by OpenDX of the values of the field in some rectangular box.

Parameters

  xmin | [input] defines with `xmax` the x range of the visualization box
  xmax | [input] defines with `xmin` the x range of the visualization box
  ymin | [input] defines with `ymax` the y range of the visualization box
  ymax | [input] defines with `ymin` the y range of the visualization box
  zmin | [input] defines with `zmax` the z range of the visualization box
  zmax | [input] defines with `zmin` the z range of the visualization box
  title | [input] title for the graph (for OpenDX legend)
  filename | [input] name for the file which will be the input for OpenDX; the default 0x0 is transformed into "scalar_box"
  start_dx | [input] determines whether OpenDX must be launched (as a subprocess) to view the field; if set to `false` , only input files for future usage of OpenDX are created
  nx | [input] number of points in the x direction (uniform sampling)
  ny | [input] number of points in the y direction (uniform sampling)
  nz | [input] number of points in the z direction (uniform sampling)

Definition at line 342 of file scalar_visu.C.

References Lorene::Valeur::c_cf, check_dzpuis(), Lorene::Valeur::coef(), dec_dzpuis(), dzpuis, Lorene::Tensor::mp, Scalar(), va, and Lorene::Mtbl_cf::val_point().

## visu_section() [1/2]

void Lorene::Scalar::visu_section | ( | const char | section_type,
|  | double | aa,
|  | double | umin,
|  | double | umax,
|  | double | vmin,
|  | double | vmax,
|  | const char * | title = 0x0,
|  | const char * | filename = 0x0,
|  | bool | start_dx = true,
|  | int | nu = 200,
|  | int | nv = 200 ) const

3D visualization via a plane section.

Prepares files for visualization by OpenDX of the values of the field in a plane x=const, y=const or z=const

Parameters

  section_type

  [input] defines the type of section :
  - 'x' for a plane x = a with a = const (parameter `aa` )
  - 'y' for a plane y = a with a = const (parameter `aa` )
  - 'z' for a plane z = a with a = const (parameter `aa` )

  aa | [input] constant a defining the section plane
  umin | [input] defines with `umax` the range of the plane coordinate u
  umax | [input] defines with `umin` the range of the plane coordinate u
  vmin | [input] defines with `vmax` the range of the plane coordinate v
  vmax | [input] defines with `vmin` the range of the plane coordinate v
  title | [input] title for the graph (for OpenDX legend)
  filename | [input] name for the file which will be the input for OpenDX; the default 0x0 is transformed into "scalar_section"
  start_dx | [input] determines whether OpenDX must be launched (as a subprocess) to view the field; if set to `false` , only input files for future usage of OpenDX are created
  nu | [input] number of points in the u direction (uniform sampling)
  nv | [input] number of points in the v direction (uniform sampling)

Definition at line 78 of file scalar_visu.C.

References Lorene::Tbl::set(), Lorene::Tbl::set_etat_qcq(), and visu_section().

## visu_section() [2/2]

void Lorene::Scalar::visu_section | ( | const Tbl & | plane,
|  | double | umin,
|  | double | umax,
|  | double | vmin,
|  | double | vmax,
|  | const char * | title = 0x0,
|  | const char * | filename = 0x0,
|  | bool | start_dx = true,
|  | int | nu = 200,
|  | int | nv = 200 ) const

3D visualization via a plane section.

Prepares files for visualization by OpenDX of the values of the field in any given plane.

Parameters

  plane

  [input] : 2D `Tbl` defining the section plane: `plane` must of dimension 3x3 with the following content:
  - `plane(0,i)` : absolute Cartesian coordinates (xa0,ya0,za0) of some point in the plane considered as the origin for the plane coordinates (u,v): `plane(0,0)` = xa0 , `plane(0,1)` = ya0 ,
  - `plane(0,2)` = za0
  - `plane(1,i)` : components w.r.t. absolute Cartesian coordinates of the u-coordinate unit vector in the section plane
  - `plane(2,i)` : components w.r.t. absolute Cartesian coordinates of the v-coordinate unit vector in the section plane

  umin | [input] defines with `umax` the range of the plane coordinate u
  umax | [input] defines with `umin` the range of the plane coordinate u
  vmin | [input] defines with `vmax` the range of the plane coordinate v
  vmax | [input] defines with `vmin` the range of the plane coordinate v
  title | [input] title for the graph (for OpenDX legend)
  filename | [input] name for the file which will be the input for OpenDX; the default 0x0 is transformed into "scalar_section"
  start_dx | [input] determines whether OpenDX must be launched (as a subprocess) to view the field; if set to `false` , only input files for future usage of OpenDX are created
  nu | [input] number of points in the u direction (uniform sampling)
  nv | [input] number of points in the v direction (uniform sampling)

Definition at line 156 of file scalar_visu.C.

References Lorene::Tensor::mp, va, Lorene::Mtbl_cf::val_point(), Lorene::xa, Lorene::ya, and Lorene::za.

## visu_section_anim()

void Lorene::Scalar::visu_section_anim | ( | const char | section_type,
|  | double | aa,
|  | double | umin,
|  | double | umax,
|  | double | vmin,
|  | double | vmax,
|  | int | jtime,
|  | double | ttime,
|  | int | jgraph = 1,
|  | const char * | title = 0x0,
|  | const char * | filename_root = 0x0,
|  | bool | start_dx = false,
|  | int | nu = 200,
|  | int | nv = 200 ) const

3D visualization via time evolving plane section (animation).

Prepares files for visualization by OpenDX of the values of the field in a plane x=const, y=const or z=const at successive time steps

Parameters

  section_type

  [input] defines the type of section :
  - 'x' for a plane x = a with a = const (parameter `aa` )
  - 'y' for a plane y = a with a = const (parameter `aa` )
  - 'z' for a plane z = a with a = const (parameter `aa` )

  aa | [input] constant a defining the section plane
  umin | [input] defines with `umax` the range of the plane coordinate u
  umax | [input] defines with `umin` the range of the plane coordinate u
  vmin | [input] defines with `vmax` the range of the plane coordinate v
  vmax | [input] defines with `vmin` the range of the plane coordinate v
  jtime | [input] time step label
  ttime | [input] time t corresponding to `jtime`
  jgraph | [input] number of time steps between two graphs: the graph will be generated only if `jtime` is a multiple of `jgraph`
  title | [input] title for the graph (for OpenDX legend)
  filename_root | [input] beginning of the names for the files which will be the input for OpenDX (the end of names will be automatically generated from the time steps); the default 0x0 is transformed into "anim"
  start_dx | [input] determines whether OpenDX must be launched (as a subprocess) to view the field; if set to `false` , only input files for future usage of OpenDX are created
  nu | [input] number of points in the u direction (uniform sampling)
  nv | [input] number of points in the v direction (uniform sampling)

Definition at line 535 of file scalar_visu.C.

References visu_section().

## Friends And Related Symbol Documentation

## abs

Scalar abs | ( | const Scalar & | ci | ) |

friend

Absolute value.

Definition at line 523 of file scalar_math.C.

References Lorene::abs(), get_etat(), Lorene::Tensor::get_mp(), Scalar(), set_etat_qcq(), and va.

## acos

Scalar acos | ( | const Scalar & | ci | ) |

friend

Arccosine.

Definition at line 199 of file scalar_math.C.

References Lorene::acos(), get_etat(), Lorene::Tensor::get_mp(), Scalar(), set_etat_qcq(), set_etat_zero(), and va.

## asin

Scalar asin | ( | const Scalar & | ci | ) |

friend

Arcsine.

Definition at line 167 of file scalar_math.C.

References Lorene::asin(), get_etat(), Lorene::Tensor::get_mp(), Scalar(), set_etat_qcq(), and va.

## atan

Scalar atan | ( | const Scalar & | ci | ) |

friend

Arctangent.

Definition at line 231 of file scalar_math.C.

References Lorene::atan(), get_etat(), Lorene::Tensor::get_mp(), Scalar(), set_etat_qcq(), and va.

## cos

Scalar cos | ( | const Scalar & | ci | ) |

friend

Cosine.

Definition at line 104 of file scalar_math.C.

References Lorene::cos(), get_etat(), Lorene::Tensor::get_mp(), Scalar(), set_etat_qcq(), and va.

## diffrel

Tbl diffrel | ( | const Scalar & | a,
|  | const Scalar & | b )

friend

Relative difference between two `Scalar` (norme version).

Returns
  1-D `Tbl` of size the number of domains, the elements of which are `norme`[a(l)-b(l)]/norme[b(l)] if `b(l)!=0` and `norme`[a(l)-b(l)] if `b(l)=0` , where `a(l)` and `b(l)` denote symbolically the values of `a` and `b`
  in domain no. `l` .

Definition at line 695 of file scalar_math.C.

References get_etat(), Lorene::Tbl::get_etat(), Lorene::Tensor::get_mp(), Lorene::norme(), Scalar(), Lorene::Tbl::set(), and Lorene::Tbl::set_etat_qcq().

## diffrelmax

Tbl diffrelmax | ( | const Scalar & | a,
|  | const Scalar & | b )

friend

Relative difference between two `Scalar` (max version).

Returns
  1-D `Tbl` of size the number of domains, the elements of which are `max`[abs(a(l)-b(l))]/max[abs(b(l))] if `b(l)!=0` and `max`[abs(a(l)-b(l))] if `b(l)=0` , where `a(l)` and `b(l)` denote symbolically the values of `a` and `b`
  in domain no. `l` .

Definition at line 730 of file scalar_math.C.

References Lorene::abs(), get_etat(), Lorene::Tbl::get_etat(), Lorene::Tensor::get_mp(), Lorene::max(), Scalar(), Lorene::Tbl::set(), and Lorene::Tbl::set_etat_qcq().

## exp

Scalar exp | ( | const Scalar & | ci | ) |

friend

Exponential.

Definition at line 323 of file scalar_math.C.

References Lorene::exp(), get_etat(), Lorene::Tensor::get_mp(), Scalar(), set_etat_one(), set_etat_qcq(), and va.

## Heaviside

Scalar Heaviside | ( | const Scalar & | ci | ) |

friend

Heaviside function.

Definition at line 355 of file scalar_math.C.

References get_etat(), Lorene::Tensor::get_mp(), Lorene::Heaviside(), Scalar(), set_etat_one(), set_etat_qcq(), set_etat_zero(), and va.

## log

Scalar log | ( | const Scalar & | ci | ) |

friend

Neperian logarithm.

Definition at line 385 of file scalar_math.C.

References get_etat(), Lorene::Tensor::get_mp(), Lorene::log(), Scalar(), set_etat_qcq(), set_etat_zero(), and va.

## log10

Scalar log10 | ( | const Scalar & | ci | ) |

friend

Basis 10 logarithm.

Definition at line 418 of file scalar_math.C.

References get_etat(), Lorene::Tensor::get_mp(), Lorene::log10(), Scalar(), set_etat_qcq(), set_etat_zero(), and va.

## max

Tbl max | ( | const Scalar & | ci | ) |

friend

Maximum values of a `Scalar` in each domain.

Returns
  1-D `Tbl` of size the number of domains, the elements of which are the set of the maximum values in each domain.

Definition at line 611 of file scalar_math.C.

References Lorene::Tbl::annule_hard(), get_etat(), Lorene::Tensor::get_mp(), Lorene::max(), Scalar(), and va.

## min

Tbl min | ( | const Scalar & | ci | ) |

friend

Minimum values of a `Scalar` in each domain.

Returns
  1-D `Tbl` of size the number of domains, the elements of which are the set of the minimum values in each domain.

Definition at line 639 of file scalar_math.C.

References Lorene::Tbl::annule_hard(), get_etat(), Lorene::Tensor::get_mp(), Lorene::min(), Scalar(), and va.

## norme

Tbl norme | ( | const Scalar & | ci | ) |

friend

Sums of the absolute values of all the values of the `Scalar` in each domain.

Returns
  1-D `Tbl` of size the number of domains, the elements of which are the set of the sums of the absolute values in each domain.

Definition at line 667 of file scalar_math.C.

References Lorene::Tbl::annule_hard(), get_etat(), Lorene::Tensor::get_mp(), Lorene::norme(), Scalar(), and va.

## operator%

Scalar operator% | ( | const Scalar & | c1,
|  | const Scalar & | c2 )

friend

Scalar * Scalar with desaliasing.

Definition at line 457 of file scalar_arithm.C.

References get_dzpuis(), get_etat(), Lorene::Tensor::get_mp(), Lorene::r, Scalar(), and va.

## operator* [1/3]

Scalar operator* | ( | const Mtbl & | mi,
|  | const Scalar & | c1 )

friend

Mtbl * Scalar.

Definition at line 527 of file scalar_arithm.C.

References get_dzpuis(), Lorene::Mtbl::get_etat(), get_etat(), Lorene::Tensor::get_mp(), Lorene::r, Scalar(), and va.

## operator* [2/3]

Scalar operator* | ( | const Scalar & | c1,
|  | const Scalar & | c2 )

friend

Scalar * Scalar.

Definition at line 423 of file scalar_arithm.C.

References get_dzpuis(), get_etat(), Lorene::Tensor::get_mp(), Lorene::r, Scalar(), and va.

## operator* [3/3]

Scalar operator* | ( | double | a,
|  | const Scalar & | c1 )

friend

double * Scalar

Definition at line 568 of file scalar_arithm.C.

References Lorene::Valeur::get_base(), get_dzpuis(), get_etat(), Lorene::Tensor::get_mp(), get_spectral_va(), Lorene::r, Scalar(), and va.

## operator+ [1/3]

Scalar operator+ | ( | const Scalar & | c1,
|  | const Mtbl & | mi )

friend

Scalar + Mbtl.

Definition at line 163 of file scalar_arithm.C.

References check_dzpuis(), Lorene::Mtbl::get_etat(), get_etat(), Scalar(), set_dzpuis(), and va.

## operator+ [2/3]

Scalar operator+ | ( | const Scalar & | c1,
|  | const Scalar & | c2 )

friend

Scalar + Scalar.

Definition at line 113 of file scalar_arithm.C.

References dz_nonzero(), get_dzpuis(), get_etat(), Lorene::Tensor::get_mp(), Lorene::r, Scalar(), and va.

## operator+ [3/3]

Scalar operator+ | ( | const Scalar & | t1,
|  | double | x )

friend

Scalar + double.

Definition at line 207 of file scalar_arithm.C.

References check_dzpuis(), get_etat(), Scalar(), set_dzpuis(), va, and Lorene::x.

## operator- [1/4]

Scalar operator- | ( | const Scalar & | c1,
|  | const Scalar & | c2 )

friend

Scalar - Scalar.

Definition at line 270 of file scalar_arithm.C.

References dz_nonzero(), get_dzpuis(), get_etat(), Lorene::Tensor::get_mp(), Lorene::r, Scalar(), and va.

## operator- [2/4]

Scalar operator- | ( | const Scalar & | ci | ) |

friend

`-` Scalar

Definition at line 90 of file scalar_arithm.C.

References get_dzpuis(), get_etat(), Lorene::Tensor::get_mp(), Lorene::r, Scalar(), and va.

## operator- [3/4]

Scalar operator- | ( | const Scalar & | t1,
|  | const Mtbl & | mi )

friend

Scalar - Mbtl.

Definition at line 320 of file scalar_arithm.C.

References check_dzpuis(), Lorene::Mtbl::get_etat(), get_etat(), Scalar(), set_dzpuis(), and va.

## operator- [4/4]

Scalar operator- | ( | const Scalar & | t1,
|  | double | x )

friend

Scalar - double.

Definition at line 360 of file scalar_arithm.C.

References check_dzpuis(), get_etat(), Scalar(), set_dzpuis(), va, and Lorene::x.

## operator/ [1/5]

Scalar operator/ | ( | const Mtbl & | mi,
|  | const Scalar & | c2 )

friend

Mtbl / Scalar.

Definition at line 707 of file scalar_arithm.C.

References get_dzpuis(), Lorene::Mtbl::get_etat(), get_etat(), Lorene::Tensor::get_mp(), Lorene::r, Scalar(), and va.

## operator/ [2/5]

Scalar operator/ | ( | const Scalar & | c1,
|  | const Mtbl & | mi )

friend

Scalar / Mtbl.

Definition at line 675 of file scalar_arithm.C.

References get_dzpuis(), Lorene::Mtbl::get_etat(), get_etat(), Lorene::Tensor::get_mp(), Lorene::r, Scalar(), and va.

## operator/ [3/5]

Scalar operator/ | ( | const Scalar & | c1,
|  | const Scalar & | c2 )

friend

Scalar / Scalar.

Definition at line 637 of file scalar_arithm.C.

References get_dzpuis(), get_etat(), Lorene::Tensor::get_mp(), Lorene::r, Scalar(), and va.

## operator/ [4/5]

Scalar operator/ | ( | const Scalar & | c1,
|  | double | x )

friend

Scalar / double.

Definition at line 741 of file scalar_arithm.C.

References Lorene::Valeur::get_base(), get_dzpuis(), get_etat(), Lorene::Tensor::get_mp(), get_spectral_va(), Lorene::r, Scalar(), va, and Lorene::x.

## operator/ [5/5]

Scalar operator/ | ( | double | x,
|  | const Scalar & | c2 )

friend

double / Scalar

Definition at line 775 of file scalar_arithm.C.

References Lorene::Valeur::get_base(), get_dzpuis(), get_etat(), Lorene::Tensor::get_mp(), get_spectral_va(), Lorene::r, Scalar(), va, and Lorene::x.

## operator<<

ostream & operator<< | ( | ostream & | ost,
|  | const Scalar & | ci )

friend

Display.

Definition at line 702 of file scalar.C.

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

## operator|

Scalar operator| | ( | const Scalar & | c1,
|  | const Scalar & | c2 )

friend

Scalar * Scalar with desaliasing only in r.

Definition at line 491 of file scalar_arithm.C.

References get_dzpuis(), get_etat(), Lorene::Tensor::get_mp(), Lorene::r, Scalar(), and va.

## pow [1/2]

Scalar pow | ( | const Scalar & | ci,
|  | double | x )

friend

Power .

Definition at line 487 of file scalar_math.C.

References get_etat(), Lorene::Tensor::get_mp(), Lorene::pow(), Scalar(), set_etat_qcq(), va, and Lorene::x.

## pow [2/2]

Scalar pow | ( | const Scalar & | ci,
|  | int | n )

friend

Power .

Definition at line 451 of file scalar_math.C.

References get_etat(), Lorene::Tensor::get_mp(), Lorene::pow(), Scalar(), set_etat_qcq(), and va.

## racine_cubique

Scalar racine_cubique | ( | const Scalar & | ci | ) |

friend

Cube root.

Definition at line 293 of file scalar_math.C.

References get_etat(), Lorene::Tensor::get_mp(), Lorene::racine_cubique(), Scalar(), set_etat_qcq(), and va.

## sin

Scalar sin | ( | const Scalar & | ci | ) |

friend

Sine.

Definition at line 72 of file scalar_math.C.

References get_etat(), Lorene::Tensor::get_mp(), Scalar(), set_etat_qcq(), Lorene::sin(), and va.

## sqrt

Scalar sqrt | ( | const Scalar & | ci | ) |

friend

Square root.

Definition at line 263 of file scalar_math.C.

References get_etat(), Lorene::Tensor::get_mp(), Scalar(), set_etat_qcq(), Lorene::sqrt(), and va.

## tan

Scalar tan | ( | const Scalar & | ci | ) |

friend

Tangent.

Definition at line 136 of file scalar_math.C.

References get_etat(), Lorene::Tensor::get_mp(), Scalar(), set_etat_qcq(), Lorene::tan(), and va.

## totalmax

double totalmax | ( | const Scalar & | ci | ) |

friend

Maximum values of a `Scalar` in each domain.

Returns
  1-D `Tbl` of size the number of domains, the elements of which are the set of the maximum values in each domain.

Definition at line 553 of file scalar_math.C.

References get_etat(), Scalar(), Lorene::totalmax(), and va.

## totalmin

double totalmin | ( | const Scalar & | ci | ) |

friend

Minimum values of a `Scalar` in each domain.

Returns
  1-D `Tbl` of size the number of domains, the elements of which are the set of the minimum values in each domain.

Definition at line 582 of file scalar_math.C.

References get_etat(), Scalar(), Lorene::totalmin(), and va.

## Member Data Documentation

## dzpuis

int Lorene::Scalar::dzpuis

protected

Power of r by which the quantity represented by `this`
must be divided in the compactified external domain (CED) in order to get the correct physical values.

Definition at line 403 of file scalar.h.

## etat

int Lorene::Scalar::etat

protected

The logical state `ETATNONDEF` (undefined), `ETATZERO` (null), `ETATUN` (one), or `ETATQCQ` (ordinary).

Definition at line 396 of file scalar.h.

## ind_lap

int Lorene::Scalar::ind_lap

mutable protected

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

Definition at line 463 of file scalar.h.

## p_dsdr

Scalar* Lorene::Scalar::p_dsdr

mutable protected

Pointer on of `*this` (0x0 if not up to date).

Definition at line 411 of file scalar.h.

## p_dsdradial

Scalar* Lorene::Scalar::p_dsdradial

mutable protected

Pointer on of `*this`.

Definition at line 455 of file scalar.h.

## p_dsdrho

Scalar* Lorene::Scalar::p_dsdrho

mutable protected

Pointer on of `*this`.

Definition at line 458 of file scalar.h.

## p_dsdt

Scalar* Lorene::Scalar::p_dsdt

mutable protected

Pointer on of `*this` (0x0 if not up to date).

Definition at line 424 of file scalar.h.

## p_dsdx

Scalar* Lorene::Scalar::p_dsdx

mutable protected

Pointer on of `*this` , where (0x0 if not up to date).

Definition at line 434 of file scalar.h.

## p_dsdy

Scalar* Lorene::Scalar::p_dsdy

mutable protected

Pointer on of `*this` , where (0x0 if not up to date).

Definition at line 439 of file scalar.h.

## p_dsdz

Scalar* Lorene::Scalar::p_dsdz

mutable protected

Pointer on of `*this` , where (0x0 if not up to date).

Definition at line 444 of file scalar.h.

## p_integ

Tbl* Lorene::Scalar::p_integ

mutable protected

Pointer on the space integral of `*this` (values in each domain) (0x0 if not up to date).

Definition at line 468 of file scalar.h.

## p_lap

Scalar* Lorene::Scalar::p_lap

mutable protected

Pointer on the Laplacian of `*this` (0x0 if not up to date).

Definition at line 448 of file scalar.h.

## p_lapang

Scalar* Lorene::Scalar::p_lapang

mutable protected

Pointer on the Laplacian of `*this` (0x0 if not up to date).

Definition at line 452 of file scalar.h.

## p_srdsdt

Scalar* Lorene::Scalar::p_srdsdt

mutable protected

Pointer on of `*this`
(0x0 if not up to date).

Definition at line 416 of file scalar.h.

## p_srstdsdp

Scalar* Lorene::Scalar::p_srstdsdp

mutable protected

Pointer on of `*this` (0x0 if not up to date).

Definition at line 421 of file scalar.h.

## p_stdsdp

Scalar* Lorene::Scalar::p_stdsdp

mutable protected

Pointer on of `*this` (0x0 if not up to date).

Definition at line 429 of file scalar.h.

## va

Valeur Lorene::Scalar::va

protected

The numerical value of the `Scalar`.

Definition at line 405 of file scalar.h.

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

- scalar.h
- scalar.C
- scalar_arithm.C
- scalar_asymptot.C
- scalar_deriv.C
- scalar_exp_filter.C
- scalar_import.C
- scalar_import_asymy.C
- scalar_import_symy.C
- scalar_integ.C
- scalar_manip.C
- scalar_match_tau.C
- scalar_pde.C
- scalar_pde_frontiere.C
- scalar_poisson_regu.C
- scalar_r_manip.C
- scalar_raccord.C
- scalar_raccord_externe.C
- scalar_raccord_zec.C
- scalar_sol_div.C
- scalar_test_poisson.C
- scalar_th_manip.C
- scalar_visu.C