LORENE
|
Tensor field of valence 0 (or component of a tensorial field). More...
#include <scalar.h>
Public Member Functions | |
Scalar (const Map &mpi) | |
Constructor from mapping. More... | |
Scalar (const Tensor &a) | |
Constructor from a Tensor (must be of valence 0) More... | |
Scalar (const Scalar &a) | |
Copy constructor. More... | |
Scalar (const Cmp &a) | |
Constructor by conversion of a Cmp. More... | |
Scalar (const Map &, const Mg3d &, FILE *) | |
Constructor from a file (see sauve(FILE*) ) More... | |
virtual | ~Scalar () |
Destructor. More... | |
virtual void | set_etat_nondef () |
Sets the logical state to ETATNONDEF (undefined). More... | |
virtual void | set_etat_zero () |
Sets the logical state to ETATZERO (zero). More... | |
virtual void | set_etat_qcq () |
Sets the logical state to ETATQCQ (ordinary state). More... | |
void | set_etat_one () |
Sets the logical state to ETATUN (one). More... | |
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. More... | |
void | annule_hard () |
Sets the Scalar to zero in a hard way. More... | |
int | get_etat () const |
Returns the logical state ETATNONDEF (undefined), ETATZERO (null) or ETATQCQ (ordinary). More... | |
int | get_dzpuis () const |
Returns dzpuis . More... | |
bool | dz_nonzero () const |
Returns true if the last domain is compactified and *this is not zero in this domain. More... | |
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. More... | |
bool | is_nan (bool verbose=false) const |
Looks for NaNs (not a number) in the scalar field. More... | |
void | operator= (const Scalar &a) |
Assignment to another Scalar defined on the same mapping. More... | |
virtual void | operator= (const Tensor &a) |
Assignment to a Tensor (of valence 0) More... | |
void | operator= (const Cmp &a) |
Assignment to a Cmp . More... | |
void | operator= (const Valeur &a) |
Assignment to a Valeur . More... | |
void | operator= (const Mtbl &a) |
Assignment to a Mtbl . More... | |
void | operator= (double) |
Assignment to a double . More... | |
void | operator= (int) |
Assignment to an int . More... | |
operator Cmp () const | |
Conversion to a Cmp . More... | |
const Valeur & | get_spectral_va () const |
Returns va (read only version) More... | |
Valeur & | set_spectral_va () |
Returns va (read/write version) More... | |
Tbl & | set_domain (int l) |
Read/write of the value in a given domain. More... | |
const Tbl & | domain (int l) const |
Read-only of the value in a given domain. More... | |
double | val_grid_point (int l, int k, int j, int i) const |
Returns the value of the field at a specified grid point. More... | |
double | val_point (double r, double theta, double phi) const |
Computes the value of the field at an arbitrary point ![]() | |
double & | set_grid_point (int l, int k, int j, int i) |
Setting the value of the field at a given grid point. More... | |
virtual void | annule (int l_min, int l_max) |
Sets the Scalar to zero in several domains. More... | |
void | set_inner_boundary (int l, double x) |
Sets the value of the Scalar at the inner boundary of a given domain. More... | |
void | set_outer_boundary (int l, double x) |
Sets the value of the Scalar at the outer boundary of a given domain. More... | |
Tbl | multipole_spectrum () const |
Gives the spectrum in terms of multipolar modes l . More... | |
Tbl | tbl_out_bound (int l_dom, bool leave_ylm=false) |
Returns the Tbl containing the values of angular coefficients at the outer boundary. More... | |
Tbl | tbl_in_bound (int n, bool leave_ylm=false) |
Returns the Tbl containing the values of angular coefficients at the inner boundary. More... | |
Scalar | scalar_out_bound (int n, bool leave_ylm=false) |
Returns the Scalar containing the values of angular coefficients at the outer boundary. More... | |
const Scalar & | dsdr () const |
Returns ![]() *this . More... | |
const Scalar & | srdsdt () const |
Returns ![]() *this . More... | |
const Scalar & | srstdsdp () const |
Returns ![]() *this . More... | |
const Scalar & | dsdt () const |
Returns ![]() *this . More... | |
const Scalar & | dsdradial () const |
Returns ![]() *this if the mapping is affine (class Map_af ) and ![]() *this if the mapping is logarithmic (class Map_log ). More... | |
const Scalar & | dsdrho () const |
Returns ![]() *this . More... | |
const Scalar & | stdsdp () const |
Returns ![]() *this . More... | |
const Scalar & | dsdx () const |
Returns ![]() *this , where ![]() | |
const Scalar & | dsdy () const |
Returns ![]() *this , where ![]() | |
const Scalar & | dsdz () const |
Returns ![]() *this , where ![]() | |
const Scalar & | deriv (int i) const |
Returns ![]() *this , where ![]() | |
const Vector & | derive_cov (const Metric &gam) const |
Returns the gradient (1-form = covariant vector) of *this More... | |
const Vector & | derive_con (const Metric &gam) const |
Returns the "contravariant" derivative of *this with respect to some metric ![]() | |
Scalar | derive_lie (const Vector &v) const |
Computes the derivative of this along a vector field v . More... | |
const Scalar & | laplacian (int ced_mult_r=4) const |
Returns the Laplacian of *this . More... | |
const Scalar & | lapang () const |
Returns the angular Laplacian ![]() *this , where ![]() | |
void | div_r () |
Division by r everywhere; dzpuis is not changed. More... | |
void | div_r_dzpuis (int ced_mult_r) |
Division by r everywhere but with the output flag dzpuis set to ced_mult_r . More... | |
void | div_r_ced () |
Division by r in the compactified external domain (CED), the dzpuis flag is not changed. More... | |
void | mult_r () |
Multiplication by r everywhere; dzpuis is not changed. More... | |
void | mult_r_dzpuis (int ced_mult_r) |
Multiplication by r everywhere but with the output flag dzpuis set to ced_mult_r . More... | |
void | mult_r_ced () |
Multiplication by r in the compactified external domain (CED), the dzpuis flag is not changed. More... | |
void | mult_rsint () |
Multiplication by ![]() dzpuis is not changed. More... | |
void | mult_rsint_dzpuis (int ced_mult_r) |
Multiplication by ![]() dzpuis set to ced_mult_r . More... | |
void | div_rsint () |
Division by ![]() dzpuis is not changed. More... | |
void | div_rsint_dzpuis (int ced_mult_r) |
Division by ![]() dzpuis set to ced_mult_r . More... | |
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 . More... | |
const Tbl & | integrale_domains () const |
Computes the integral in each domain of *this . More... | |
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). More... | |
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). More... | |
virtual void | change_triad (const Base_vect &new_triad) |
Sets a new vectorial basis (triad) of decomposition and modifies the components accordingly. More... | |
void | filtre (int n) |
Sets the n lasts coefficients in r to 0 in the external domain. More... | |
void | filtre_r (int *nn) |
Sets the n lasts coefficients in r to 0 in all domains. More... | |
void | filtre_r (int n, int nzone) |
Sets the n last coefficients in r to 0 in the domain nzone . More... | |
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. More... | |
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. More... | |
void | exp_filter_r_all_domains (Scalar &ss, int p, double alpha=-16.) |
Applies an exponential filter in radial direction in all domains. More... | |
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 ). More... | |
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. More... | |
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. More... | |
void | filtre_phi (int n, int zone) |
Sets the n lasts coefficients in ![]() zone . More... | |
void | filtre_tp (int nn, int nz1, int nz2) |
Sets the n lasts coefficients in ![]() nz1 to nz2 when expressed in spherical harmonics. More... | |
void | fixe_decroissance (int puis) |
Substracts all the components behaving like ![]() puis , so that *this decreases at least like ![]() | |
void | smooth_decay (int k, int n) |
Performs a ![]() ![]() ![]() | |
void | raccord (int n) |
Performs the ![]() | |
void | raccord_c1_zec (int puis, int nbre, int lmax) |
Performs the ![]() ![]() ![]() ![]() | |
void | raccord_externe (int puis, int nbre, int lmax) |
Matching of the external domain with the outermost shell. More... | |
void | match_tau (Param &par_bc, Param *par_mat=0x0) |
Method for matching accross domains and imposing boundary condition. More... | |
void | match_tau_shell (Param &par_bc, Param *par_mat=0x0) |
Method for matching accross domains and imposing boundary condition. More... | |
void | match_collocation (Param &par_bc, Param *par_mat=0x0) |
Method for matching accross domains and imposing boundary condition. More... | |
virtual void | sauve (FILE *) const |
Save in a file. More... | |
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. More... | |
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. More... | |
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. More... | |
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). More... | |
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. More... | |
void | operator+= (const Scalar &) |
+= Scalar More... | |
void | operator-= (const Scalar &) |
-= Scalar More... | |
void | operator*= (const Scalar &) |
*= Scalar More... | |
virtual void | std_spectral_base () |
Sets the spectral bases of the Valeur va to the standard ones for a scalar field. More... | |
virtual void | std_spectral_base_odd () |
Sets the spectral bases of the Valeur va to the standard odd ones for a scalar field. More... | |
void | set_spectral_base (const Base_val &) |
Sets the spectral bases of the Valeur va More... | |
const Base_val & | get_spectral_base () const |
Returns the spectral bases of the Valeur va More... | |
void | set_dzpuis (int) |
Modifies the dzpuis flag. More... | |
Valeur ** | asymptot (int n, const int flag=0) const |
Asymptotic expansion at r = infinity. More... | |
Scalar | poisson () const |
Solves the scalar Poisson equation with *this as a source. More... | |
void | poisson (Param &par, Scalar &uu) const |
Solves the scalar Poisson equation with *this as a source (version with parameters to control the resolution). More... | |
Scalar | poisson_tau () const |
Solves the scalar Poisson equation with *this as a source using a real Tau method The source ![]() ![]() Scalar *this . More... | |
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 ![]() ![]() Scalar *this . More... | |
Scalar | poisson_dirichlet (const Valeur &limite, int num) const |
Is identicall to Scalar::poisson() . More... | |
Scalar | poisson_neumann (const Valeur &, int) const |
Idem as Scalar::poisson_dirichlet , the boundary condition being on the radial derivative of the solution. More... | |
Scalar | poisson_dir_neu (const Valeur &limite, int num, double fact_dir, double fact_neu) const |
Is identicall to Scalar::poisson() . More... | |
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. More... | |
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). More... | |
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. More... | |
Scalar | poisson_angu (double lambda=0) const |
Solves the (generalized) angular Poisson equation with *this as source. More... | |
Scalar | avance_dalembert (Param &par, const Scalar &fJm1, const Scalar &source) const |
Performs one time-step integration (from ![]() *this being the value of the function f at time J . More... | |
Scalar | sol_elliptic (Param_elliptic ¶ms) const |
Resolution of a general elliptic equation, putting zero at infinity. More... | |
Scalar | sol_elliptic_boundary (Param_elliptic ¶ms, 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. More... | |
Scalar | sol_elliptic_boundary (Param_elliptic ¶ms, 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. More... | |
Scalar | sol_elliptic_2d (Param_elliptic &) const |
Solves the scalar 2-dimensional elliptic equation with *this as a source. More... | |
Scalar | sol_elliptic_pseudo_1d (Param_elliptic &) const |
Solves a pseudo-1d elliptic equation with *this as a source. More... | |
Scalar | sol_elliptic_no_zec (Param_elliptic ¶ms, 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. More... | |
Scalar | sol_elliptic_only_zec (Param_elliptic ¶ms, double val) const |
Resolution of a general elliptic equation solving in the compactified domain and putting a given value at the inner boundary. More... | |
Scalar | sol_elliptic_sin_zec (Param_elliptic ¶ms, double *coefs, double *phases) const |
General elliptic solver. More... | |
Scalar | sol_elliptic_fixe_der_zero (double val, Param_elliptic ¶ms) const |
Resolution of a general elliptic equation fixing the dericative at the origin and relaxing one continuity condition. More... | |
Scalar | sol_divergence (int n) const |
Resolution of a divergence-like equation. More... | |
void | import (const Scalar &ci) |
Assignment to another Scalar defined on a different mapping. More... | |
void | import_symy (const Scalar &ci) |
Assignment to another Scalar defined on a different mapping. More... | |
void | import_asymy (const Scalar &ci) |
Assignment to another Scalar defined on a different mapping. More... | |
void | import (int nzet, const Scalar &ci) |
Assignment to another Scalar defined on a different mapping. More... | |
void | import_symy (int nzet, const Scalar &ci) |
Assignment to another Scalar defined on a different mapping. More... | |
void | import_asymy (int nzet, const Scalar &ci) |
Assignment to another Scalar defined on a different mapping. More... | |
void | set_triad (const Base_vect &new_triad) |
Assigns a new vectorial basis (triad) of decomposition. More... | |
Scalar & | set (const Itbl &ind) |
Returns the value of a component (read/write version). More... | |
Scalar & | set (int i1, int i2) |
Returns the value of a component for a tensor of valence 2 (read/write version). More... | |
Scalar & | set (int i1, int i2, int i3) |
Returns the value of a component for a tensor of valence 3 (read/write version). More... | |
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). More... | |
void | annule_domain (int l) |
Sets the Tensor to zero in a given domain. More... | |
void | annule_extern_cn (int l_0, int deg) |
Performs a smooth (C^n) transition in a given domain to zero. More... | |
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 . More... | |
Tensor | down (int ind, const Metric &gam) const |
Computes a new tensor by lowering an index of *this . More... | |
Tensor | up_down (const Metric &gam) const |
Computes a new tensor by raising or lowering all the indices of *this . More... | |
Tensor | trace (int ind1, int ind2) const |
Trace on two different type indices. More... | |
Tensor | trace (int ind1, int ind2, const Metric &gam) const |
Trace with respect to a given metric. More... | |
Scalar | trace () const |
Trace on two different type indices for a valence 2 tensor. More... | |
Scalar | trace (const Metric &gam) const |
Trace with respect to a given metric for a valence 2 tensor. More... | |
virtual int | position (const Itbl &ind) const |
Returns the position in the array cmp of a component given by its indices. More... | |
virtual Itbl | indices (int pos) const |
Returns the indices of a component given by its position in the array cmp . More... | |
const Map & | get_mp () const |
Returns the mapping. More... | |
const Base_vect * | get_triad () const |
Returns the vectorial basis (triad) on which the components are defined. More... | |
int | get_valence () const |
Returns the valence. More... | |
int | get_n_comp () const |
Returns the number of stored components. More... | |
int | get_index_type (int i) const |
Gives the type (covariant or contravariant) of the index number i . More... | |
Itbl | get_index_type () const |
Returns the types of all the indices. More... | |
int & | set_index_type (int i) |
Sets the type of the index number i . More... | |
Itbl & | set_index_type () |
Sets the types of all the indices. More... | |
const Scalar & | operator() (const Itbl &ind) const |
Returns the value of a component (read-only version). More... | |
const Scalar & | operator() (int i1, int i2) const |
Returns the value of a component for a tensor of valence 2 (read-only version). More... | |
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). More... | |
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). More... | |
void | operator+= (const Tensor &) |
+= Tensor More... | |
void | operator-= (const Tensor &) |
-= Tensor More... | |
Protected Member Functions | |
void | del_t () |
Logical destructor. More... | |
virtual void | del_deriv () const |
Logical destructor of the derivatives. More... | |
void | set_der_0x0 () const |
Sets the pointers for derivatives to 0x0. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
virtual void | del_derive_met (int) const |
Logical destructor of the derivatives depending on the i-th element of met_depend . More... | |
void | set_der_met_0x0 (int) const |
Sets all the i-th components of met_depend , p_derive_cov , etc... More... | |
void | set_dependance (const Metric &) const |
To be used to describe the fact that the derivatives members have been calculated with met . More... | |
int | get_place_met (const Metric &) const |
Returns the position of the pointer on metre in the array met_depend . More... | |
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 ). More... | |
Protected Attributes | |
int | etat |
The logical state ETATNONDEF (undefined), ETATZERO (null), ETATUN (one), or ETATQCQ (ordinary). More... | |
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. More... | |
Valeur | va |
The numerical value of the Scalar More... | |
Scalar * | p_dsdr |
Pointer on ![]() *this (0x0 if not up to date) More... | |
Scalar * | p_srdsdt |
Pointer on ![]() *this (0x0 if not up to date) More... | |
Scalar * | p_srstdsdp |
Pointer on ![]() *this (0x0 if not up to date) More... | |
Scalar * | p_dsdt |
Pointer on ![]() *this (0x0 if not up to date) More... | |
Scalar * | p_stdsdp |
Pointer on ![]() *this (0x0 if not up to date) More... | |
Scalar * | p_dsdx |
Pointer on ![]() *this , where ![]() | |
Scalar * | p_dsdy |
Pointer on ![]() *this , where ![]() | |
Scalar * | p_dsdz |
Pointer on ![]() *this , where ![]() | |
Scalar * | p_lap |
Pointer on the Laplacian of *this (0x0 if not up to date) More... | |
Scalar * | p_lapang |
Pointer on the Laplacian of *this (0x0 if not up to date) More... | |
Scalar * | p_dsdradial |
Pointer on ![]() *this More... | |
Scalar * | p_dsdrho |
Pointer on ![]() *this More... | |
int | ind_lap |
Power of r by which the last computed Laplacian has been multiplied in the compactified external domain. More... | |
Tbl * | p_integ |
Pointer on the space integral of *this (values in each domain) (0x0 if not up to date) More... | |
const Map *const | mp |
Mapping on which the numerical values at the grid points are defined. More... | |
int | valence |
Valence of the tensor (0 = scalar, 1 = vector, etc...) More... | |
const Base_vect * | triad |
Vectorial basis (triad) with respect to which the tensor components are defined. More... | |
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. More... | |
int | n_comp |
Number of stored components, depending on the symmetry. More... | |
Scalar ** | cmp |
Array of size n_comp of pointers onto the components. More... | |
const Metric * | met_depend [N_MET_MAX] |
Array on the Metric 's which were used to compute derived quantities, like p_derive_cov , etc... More... | |
Tensor * | p_derive_cov [N_MET_MAX] |
Array of pointers on the covariant derivatives of this with respect to various metrics. More... | |
Tensor * | p_derive_con [N_MET_MAX] |
Array of pointers on the contravariant derivatives of this with respect to various metrics. More... | |
Tensor * | p_divergence [N_MET_MAX] |
Array of pointers on the divergence of this with respect to various metrics. More... | |
Friends | |
ostream & | operator<< (ostream &, const Scalar &) |
Display. More... | |
Scalar | operator- (const Scalar &) |
- Scalar More... | |
Scalar | operator+ (const Scalar &, const Scalar &) |
Scalar + Scalar. More... | |
Scalar | operator+ (const Scalar &, const Mtbl &) |
Scalar + Mbtl. More... | |
Scalar | operator+ (const Scalar &, double) |
Scalar + double. More... | |
Scalar | operator- (const Scalar &, const Scalar &) |
Scalar - Scalar. More... | |
Scalar | operator- (const Scalar &, const Mtbl &) |
Scalar - Mbtl. More... | |
Scalar | operator- (const Scalar &, double) |
Scalar - double. More... | |
Scalar | operator* (const Scalar &, const Scalar &) |
Scalar * Scalar. More... | |
Scalar | operator% (const Scalar &, const Scalar &) |
Scalar * Scalar with desaliasing. More... | |
Scalar | operator| (const Scalar &, const Scalar &) |
Scalar * Scalar with desaliasing only in r. More... | |
Scalar | operator* (const Mtbl &, const Scalar &) |
Mtbl * Scalar. More... | |
Scalar | operator* (double, const Scalar &) |
double * Scalar More... | |
Scalar | operator/ (const Scalar &, const Scalar &) |
Scalar / Scalar. More... | |
Scalar | operator/ (const Scalar &, const Mtbl &) |
Scalar / Mtbl More... | |
Scalar | operator/ (const Mtbl &, const Scalar &) |
Mtbl / Scalar. More... | |
Scalar | operator/ (const Scalar &, double) |
Scalar / double. More... | |
Scalar | operator/ (double, const Scalar &) |
double / Scalar More... | |
Scalar | sin (const Scalar &) |
Sine. More... | |
Scalar | cos (const Scalar &) |
Cosine. More... | |
Scalar | tan (const Scalar &) |
Tangent. More... | |
Scalar | asin (const Scalar &) |
Arcsine. More... | |
Scalar | acos (const Scalar &) |
Arccosine. More... | |
Scalar | atan (const Scalar &) |
Arctangent. More... | |
Scalar | exp (const Scalar &) |
Exponential. More... | |
Scalar | Heaviside (const Scalar &) |
Heaviside function. More... | |
Scalar | log (const Scalar &) |
Neperian logarithm. More... | |
Scalar | log10 (const Scalar &) |
Basis 10 logarithm. More... | |
Scalar | sqrt (const Scalar &) |
Square root. More... | |
Scalar | racine_cubique (const Scalar &) |
Cube root. More... | |
Scalar | pow (const Scalar &, int) |
Power ![]() | |
Scalar | pow (const Scalar &, double) |
Power ![]() | |
Scalar | abs (const Scalar &) |
Absolute value. More... | |
double | totalmax (const Scalar &) |
Maximum values of a Scalar in each domain. More... | |
double | totalmin (const Scalar &) |
Minimum values of a Scalar in each domain. More... | |
Tbl | max (const Scalar &) |
Maximum values of a Scalar in each domain. More... | |
Tbl | min (const Scalar &) |
Minimum values of a Scalar in each domain. More... | |
Tbl | norme (const Scalar &) |
Sums of the absolute values of all the values of the Scalar in each domain. More... | |
Tbl | diffrel (const Scalar &a, const Scalar &b) |
Relative difference between two Scalar (norme version). More... | |
Tbl | diffrelmax (const Scalar &a, const Scalar &b) |
Relative difference between two Scalar (max version). More... | |
Tensor field of valence 0 (or component of a tensorial field).
()
|
explicit |
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, set_der_0x0(), and Lorene::Tensor::valence.
Lorene::Scalar::Scalar | ( | const Scalar & | a | ) |
Copy constructor.
Definition at line 228 of file scalar.C.
References Lorene::Tensor::cmp, and set_der_0x0().
Lorene::Scalar::Scalar | ( | const Cmp & | a | ) |
Constructor by conversion of a Cmp.
Definition at line 238 of file scalar.C.
References Lorene::Tensor::cmp, and set_der_0x0().
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::get_mg(), and set_der_0x0().
|
virtual |
|
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::Valeur::c, Lorene::Mtbl::get_nzone(), Lorene::Valeur::set_etat_c_qcq(), Lorene::Mtbl::set_etat_qcq(), set_etat_qcq(), Lorene::Tbl::set_etat_qcq(), Lorene::Mtbl::t, and va.
|
virtual |
Sets the Scalar
to zero in several domains.
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, Lorene::Mg3d::get_nzone(), Lorene::Valeur::mg, set_etat_zero(), and va.
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 Lorene::Valeur::annule_hard(), del_deriv(), etat, and va.
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.
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 .
n | order of the expansion |
flag | : output |
n
+1 Valeur
s on mg->angu
Definition at line 63 of file scalar_asymptot.C.
References Lorene::Map::get_mg(), Lorene::Mg3d::get_nzone(), Lorene::Mg3d::get_type_r(), and Lorene::Tensor::mp.
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.
par | [input/output] possible parameters to control the resolution of the d'Alembert equation:
|
fJm1 | [input] solution ![]() |
source | [input] source ![]() ![]() |
par.get_int(0)
. Definition at line 217 of file scalar_pde.C.
References Lorene::Map::dalembert(), and Lorene::Tensor::mp.
|
virtual |
Sets a new vectorial basis (triad) of decomposition and modifies the components accordingly.
Reimplemented from Lorene::Tensor.
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.
|
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 etat.
|
protectedvirtual |
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().
|
protected |
Logical destructor.
Definition at line 279 of file scalar.C.
References del_deriv(), Lorene::Valeur::del_t(), Lorene::Valeur::set_etat_nondef(), and va.
const Scalar & Lorene::Scalar::deriv | ( | int | i | ) | 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().
Returns the gradient (1-form = covariant vector) of *this
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().
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(), and Lorene::Tensor::mp.
void Lorene::Scalar::div_cost | ( | ) |
Division by .
Definition at line 70 of file scalar_th_manip.C.
References del_deriv(), Lorene::Map::div_cost(), and Lorene::Tensor::mp.
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(), Lorene::Map::div_r(), and Lorene::Tensor::mp.
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(), Lorene::Map::div_r_zec(), and Lorene::Tensor::mp.
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
.
ced_mult_r | [input] value of dzpuis of the result. |
Definition at line 147 of file scalar_r_manip.C.
References etat.
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(), Lorene::Map::div_rsint(), and Lorene::Tensor::mp.
void Lorene::Scalar::div_rsint_dzpuis | ( | int | ced_mult_r | ) |
Division by but with the output flag
dzpuis
set to ced_mult_r
.
ced_mult_r | [input] value of dzpuis of the result. |
Definition at line 362 of file scalar_r_manip.C.
References etat.
void Lorene::Scalar::div_sint | ( | ) |
Division by .
Definition at line 98 of file scalar_th_manip.C.
References del_deriv(), Lorene::Map::div_sint(), and Lorene::Tensor::mp.
void Lorene::Scalar::div_tant | ( | ) |
Division by .
Definition at line 111 of file scalar_th_manip.C.
References del_deriv(), Lorene::Map::div_tant(), and Lorene::Tensor::mp.
|
inline |
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 etat.
const Scalar & Lorene::Scalar::dsdradial | ( | ) | const |
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 etat.
const Scalar & Lorene::Scalar::dsdt | ( | ) | const |
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 etat.
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 etat.
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 etat.
bool Lorene::Scalar::dz_nonzero | ( | ) | const |
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.
|
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.
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] ![]() |
Reimplemented from Lorene::Tensor.
Definition at line 60 of file scalar_exp_filter.C.
References etat, Lorene::Map::get_mg(), Lorene::Mg3d::get_nzone(), and Lorene::Tensor::mp.
|
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 etat, Lorene::Map::get_mg(), Lorene::Mg3d::get_nzone(), and Lorene::Tensor::mp.
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 etat.
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 etat.
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 etat.
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 etat.
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 Lorene::Valeur::filtre_tp(), and va.
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::Map::get_mg(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Tensor::mp, mult_r_ced(), pow, R_CHEBU, Lorene::Mtbl_cf::set(), Lorene::Valeur::set_etat_cf_qcq(), and va.
|
inline |
|
inline |
|
inline |
Returns the spectral bases of the Valeur
va
Definition at line 1294 of file scalar.h.
References Lorene::Valeur::base, and va.
|
inline |
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
.
ci | [input] Scalar to be imported. |
Definition at line 68 of file scalar_import.C.
References Lorene::Map::get_mg(), Lorene::Mg3d::get_nzone(), and Lorene::Tensor::mp.
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
.
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::Map::get_bvect_cart(), Lorene::Tensor::get_mp(), import_align(), import_anti(), import_gal(), and Lorene::Tensor::mp.
|
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
.
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 get_etat().
|
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
.
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 get_etat().
|
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
.
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 get_etat().
|
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
.
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 get_etat().
|
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
.
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 get_etat().
|
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
.
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 get_etat().
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
.
ci | [input] Scalar to be imported. |
Definition at line 72 of file scalar_import_asymy.C.
References Lorene::Map::get_mg(), Lorene::Mg3d::get_nzone(), and Lorene::Tensor::mp.
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
.
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::Map::get_bvect_cart(), Lorene::Tensor::get_mp(), import_align_asymy(), import_anti_asymy(), and Lorene::Tensor::mp.
|
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
.
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 get_etat(), Lorene::Tensor::get_mp(), and Lorene::Tensor::mp.
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
.
ci | [input] Scalar to be imported. |
Definition at line 72 of file scalar_import_symy.C.
References Lorene::Map::get_mg(), Lorene::Mg3d::get_nzone(), and Lorene::Tensor::mp.
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
.
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::Map::get_bvect_cart(), Lorene::Tensor::get_mp(), import_align_symy(), import_anti_symy(), and Lorene::Tensor::mp.
|
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 etat.
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 Lorene::Map::get_mg(), Lorene::Mg3d::get_nzone(), integrale_domains(), and Lorene::Tensor::mp.
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.
bool Lorene::Scalar::is_nan | ( | bool | verbose = false | ) | const |
const Scalar & Lorene::Scalar::lapang | ( | ) | const |
Returns the angular Laplacian of
*this
, where .
Definition at line 461 of file scalar_deriv.C.
References etat.
const Scalar & Lorene::Scalar::laplacian | ( | int | ced_mult_r = 4 | ) | const |
Returns the Laplacian of *this
.
ced_mult_r | [input] Determines the quantity computed in the compactified external domain (CED) (u in the field represented by *this ) :
|
Definition at line 436 of file scalar_deriv.C.
References etat.
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.
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.
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::Map::get_mg(), Lorene::Mg3d::get_type_r(), and Lorene::Tensor::mp.
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.
void Lorene::Scalar::mult_cost | ( | ) |
Multiplication by .
Definition at line 58 of file scalar_th_manip.C.
References del_deriv(), Lorene::Tensor::mp, and Lorene::Map::mult_cost().
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(), Lorene::Tensor::mp, and Lorene::Map::mult_r().
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(), Lorene::Tensor::mp, and Lorene::Map::mult_r_zec().
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
.
ced_mult_r | [input] value of dzpuis of the result. |
Definition at line 221 of file scalar_r_manip.C.
References etat.
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(), Lorene::Tensor::mp, and Lorene::Map::mult_rsint().
void Lorene::Scalar::mult_rsint_dzpuis | ( | int | ced_mult_r | ) |
Multiplication by but with the output flag
dzpuis
set to ced_mult_r
.
ced_mult_r | [input] value of dzpuis of the result. |
Definition at line 294 of file scalar_r_manip.C.
References etat.
void Lorene::Scalar::mult_sint | ( | ) |
Multiplication by .
Definition at line 84 of file scalar_th_manip.C.
References del_deriv(), Lorene::Tensor::mp, and Lorene::Map::mult_sint().
Tbl Lorene::Scalar::multipole_spectrum | ( | ) | const |
Gives the spectrum in terms of multipolar modes l .
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 etat.
Lorene::Scalar::operator Cmp | ( | ) | const |
void Lorene::Scalar::operator*= | ( | const Scalar & | ci | ) |
*= Scalar
Definition at line 937 of file scalar_arithm.C.
References etat, Lorene::Tensor::get_mp(), and Lorene::Tensor::mp.
void Lorene::Scalar::operator+= | ( | const Scalar & | ci | ) |
+= Scalar
Definition at line 833 of file scalar_arithm.C.
References etat, Lorene::Tensor::get_mp(), and Lorene::Tensor::mp.
void Lorene::Scalar::operator-= | ( | const Scalar & | ci | ) |
-= Scalar
Definition at line 886 of file scalar_arithm.C.
References etat, Lorene::Tensor::get_mp(), and Lorene::Tensor::mp.
void Lorene::Scalar::operator= | ( | const Cmp & | a | ) |
Assignment to a Cmp
.
Definition at line 499 of file scalar.C.
References Lorene::Valeur::del_t(), dzpuis, Lorene::Cmp::get_dzpuis(), Lorene::Cmp::get_etat(), Lorene::Cmp::get_mp(), Lorene::Tensor::mp, and va.
void Lorene::Scalar::operator= | ( | const Mtbl & | a | ) |
void Lorene::Scalar::operator= | ( | const Scalar & | 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=(), and Lorene::Tensor::valence.
void Lorene::Scalar::operator= | ( | const Valeur & | a | ) |
Assignment to a Valeur
.
Definition at line 549 of file scalar.C.
References Lorene::Valeur::get_etat(), and va.
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(), and va.
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.
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 Lorene::Map::poisson().
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.
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 Lorene::Map::poisson().
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)
Definition at line 200 of file scalar_pde.C.
References Lorene::Tensor::mp, and Lorene::Map::poisson_angu().
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).
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 ![]() ![]() |
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, Lorene::Map::poisson_frontiere(), Lorene::Cmp::set_dzpuis(), and Lorene::Cmp::va.
Is identicall to Scalar::poisson()
.
The regularity condition at the origin is replace by a boundary condition of the Dirichlet type.
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, Lorene::Map::poisson_frontiere(), Lorene::Cmp::set_dzpuis(), and Lorene::Cmp::va.
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.
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, Lorene::Map::poisson_frontiere(), Lorene::Cmp::set_dzpuis(), and Lorene::Cmp::va.
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.
k_div | [input] regularization degree of the procedure |
nzet | [input] number of domains covering the star |
unsgam1 | [input] parameter ![]() ![]() |
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, Lorene::Map::poisson_regular(), Lorene::Tenseur::set(), Lorene::Tensor::set(), Lorene::Itbl::set(), Lorene::Itbl::set_etat_qcq(), and Lorene::Tenseur::set_etat_qcq().
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 Lorene::Map::poisson_tau().
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 Lorene::Map::poisson_tau().
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).
null_infty | if true (default), the primitive is null at infinity (or on the grid boundary). F is null at the center otherwise |
Definition at line 101 of file scalar_integ.C.
References Lorene::Tensor::mp, and Lorene::Map::primr().
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 etat.
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 etat.
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(), Lorene::Valeur::base, Lorene::Valeur::c_cf, Lorene::Valeur::coef(), cos, Lorene::Map_af::get_alpha(), Lorene::Map_af::get_beta(), Lorene::Map::get_mg(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), Lorene::Tensor::mp, pow, Lorene::Tbl::set(), Lorene::Matrice::set(), Lorene::Mtbl_cf::set(), set_dzpuis(), Lorene::Valeur::set_etat_cf_qcq(), Lorene::Matrice::set_etat_qcq(), Lorene::Mtbl_cf::set_etat_qcq(), Lorene::Tbl::set_etat_qcq(), sqrt, Lorene::Mtbl_cf::t, va, Lorene::Valeur::ylm(), and Lorene::Valeur::ylm_i().
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.
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] ![]() |
Definition at line 96 of file scalar_exp_filter.C.
References etat, Lorene::Map::get_mg(), Lorene::Mg3d::get_nzone(), and Lorene::Tensor::mp.
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::Map::get_mg(), Lorene::Tensor::get_mp(), Lorene::Mg3d::get_nzone(), and sarra_filter_r().
|
virtual |
Save in a file.
Reimplemented from Lorene::Tensor.
Definition at line 686 of file scalar.C.
References dzpuis, etat, Lorene::fwrite_be(), Lorene::Valeur::sauve(), and va.
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.
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 Lorene::Valeur::base, Lorene::Valeur::coef(), etat, Lorene::Base_val::get_base_t(), get_spectral_base(), Lorene::Tensor::mp, Lorene::Map::mp_angu(), Lorene::Base_val::set_base_t(), set_spectral_base(), std_spectral_base(), va, and Lorene::Valeur::ylm().
|
protected |
|
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.
l | [input] domain index |
Tbl
containing the value of the field in domain l
. Definition at line 615 of file scalar.h.
References etat.
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.
|
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 etat.
void Lorene::Scalar::set_etat_one | ( | ) |
|
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 etat.
|
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 etat.
|
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.
l | [input] domain index |
k | [input] ![]() |
j | [input] ![]() |
i | [input] r ( ![]() |
Definition at line 684 of file scalar.h.
References etat.
void Lorene::Scalar::set_inner_boundary | ( | int | l, |
double | x | ||
) |
Sets the value of the Scalar
at the inner boundary of a given domain.
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 etat.
void Lorene::Scalar::set_outer_boundary | ( | int | l, |
double | x | ||
) |
Sets the value of the Scalar
at the outer boundary of a given domain.
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 etat.
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 Lorene::Valeur::set_base(), and va.
|
inline |
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 etat.
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
.
n | [input] the coefficient in front of the 1/r term. |
Definition at line 68 of file scalar_sol_div.C.
References etat.
Scalar Lorene::Scalar::sol_elliptic | ( | Param_elliptic & | params | ) | const |
Resolution of a general elliptic equation, putting zero at infinity.
params | [input] the operators and variables to be used. |
Definition at line 234 of file scalar_pde.C.
References Lorene::Tensor::mp, set_etat_qcq(), Lorene::Map_af::sol_elliptic(), and Lorene::Map_log::sol_elliptic().
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, set_etat_qcq(), and Lorene::Map_af::sol_elliptic_2d().
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.
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, set_etat_qcq(), Lorene::Map_af::sol_elliptic_boundary(), and Lorene::Map_log::sol_elliptic_boundary().
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, set_etat_qcq(), Lorene::Map_af::sol_elliptic_boundary(), and Lorene::Map_log::sol_elliptic_boundary().
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.
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, set_etat_qcq(), and Lorene::Map_af::sol_elliptic_fixe_der_zero().
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.
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, set_etat_qcq(), Lorene::Map_af::sol_elliptic_no_zec(), and Lorene::Map_log::sol_elliptic_no_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.
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, set_etat_qcq(), and Lorene::Map_af::sol_elliptic_only_zec().
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, set_etat_qcq(), and Lorene::Map_af::sol_elliptic_pseudo_1d().
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.
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, set_etat_qcq(), and Lorene::Map_af::sol_elliptic_sin_zec().
|
virtual |
Displays the spectral coefficients and the associated basis functions.
This function shows only the values greater than a given threshold.
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 etat.
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 etat.
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 etat.
|
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 Lorene::Valeur::std_base_scal(), and va.
|
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 Lorene::Valeur::std_base_scal_odd(), and va.
const Scalar & Lorene::Scalar::stdsdp | ( | ) | const |
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.
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 Lorene::Map::get_mg(), Lorene::Mg3d::get_type_r(), and Lorene::Tensor::mp.
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.
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 Lorene::Valeur::coef(), etat, Lorene::Map::get_mg(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nt(), Lorene::Tensor::mp, va, and Lorene::Valeur::ylm().
Checks if a Poisson equation with *this
as a source has been correctly solved.
uu | [input] Solution u of the Poisson equation ![]() ![]() Scalar *this . |
ostr | [input/output] Output stream used for displaying err . |
detail | [input]
|
Tbl
err
decribing the errors in each domain: err(0,l)
: Relative error in domain no. l
, defined as the maximum value of dzpuis
= 0 or dzpuis
!= 0 and err(1,l)
: Maximum value of the absolute error l
err(2,l)
: Maximum value of l
Definition at line 60 of file scalar_test_poisson.C.
References abs, check_dzpuis(), dzpuis, Lorene::Map::get_mg(), Lorene::Tensor::get_mp(), Lorene::Mg3d::get_nzone(), laplacian(), max, Lorene::Tensor::mp, Lorene::Tbl::set(), and Lorene::Tbl::set_etat_qcq().
|
inline |
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.
r | [input] value of the coordinate r |
theta | [input] value of the coordinate ![]() |
phi | [input] value of the coordinate ![]() |
*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 etat.
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.
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(), Lorene::Map::convert_absolute(), dec_dzpuis(), dzpuis, Lorene::Tensor::mp, va, Lorene::Map::val_lx(), and Lorene::Mtbl_cf::val_point().
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
section_type | [input] defines the type of section :
|
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(), and Lorene::Tbl::set_etat_qcq().
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.
plane | [input] : 2D Tbl defining the section plane: plane must of dimension 3x3 with the following content:
|
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::Valeur::c_cf, Lorene::Valeur::coef(), Lorene::Map::convert_absolute(), Lorene::Tensor::mp, va, Lorene::Map::val_lx(), and Lorene::Mtbl_cf::val_point().
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
section_type | [input] defines the type of section :
|
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().
Absolute value.
Definition at line 523 of file scalar_math.C.
Arccosine.
Definition at line 199 of file scalar_math.C.
Arcsine.
Definition at line 167 of file scalar_math.C.
Arctangent.
Definition at line 231 of file scalar_math.C.
Cosine.
Definition at line 104 of file scalar_math.C.
Relative difference between two Scalar
(norme version).
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
l
. Definition at line 695 of file scalar_math.C.
Relative difference between two Scalar
(max version).
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
l
. Definition at line 730 of file scalar_math.C.
Exponential.
Definition at line 323 of file scalar_math.C.
Heaviside function.
Definition at line 355 of file scalar_math.C.
Neperian logarithm.
Definition at line 385 of file scalar_math.C.
Basis 10 logarithm.
Definition at line 418 of file scalar_math.C.
Maximum values of a Scalar
in each domain.
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.
Minimum values of a Scalar
in each domain.
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.
Sums of the absolute values of all the values of the Scalar
in each domain.
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.
Scalar * Scalar with desaliasing.
Definition at line 457 of file scalar_arithm.C.
Definition at line 527 of file scalar_arithm.C.
Definition at line 423 of file scalar_arithm.C.
double * Scalar
Definition at line 568 of file scalar_arithm.C.
Scalar + Mbtl.
Definition at line 163 of file scalar_arithm.C.
Definition at line 113 of file scalar_arithm.C.
Scalar + double.
Definition at line 207 of file scalar_arithm.C.
-
Scalar
Definition at line 90 of file scalar_arithm.C.
Scalar - Mbtl.
Definition at line 320 of file scalar_arithm.C.
Definition at line 270 of file scalar_arithm.C.
Scalar - double.
Definition at line 360 of file scalar_arithm.C.
Definition at line 707 of file scalar_arithm.C.
Definition at line 675 of file scalar_arithm.C.
Definition at line 637 of file scalar_arithm.C.
Scalar / double.
Definition at line 741 of file scalar_arithm.C.
double / Scalar
Definition at line 775 of file scalar_arithm.C.
|
friend |
Scalar * Scalar with desaliasing only in r.
Definition at line 491 of file scalar_arithm.C.
Power .
Definition at line 487 of file scalar_math.C.
Power .
Definition at line 451 of file scalar_math.C.
Cube root.
Definition at line 293 of file scalar_math.C.
Sine.
Definition at line 72 of file scalar_math.C.
Square root.
Definition at line 263 of file scalar_math.C.
Tangent.
Definition at line 136 of file scalar_math.C.
|
friend |
Maximum values of a Scalar
in each domain.
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.
|
friend |
Minimum values of a Scalar
in each domain.
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.
|
protected |
|
protected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
protected |