valeur.h
/*
* Definition of Lorene class Valeur
*
*/
/*
* Copyright (c) 1999-2000 Jean-Alain Marck
* Copyright (c) 1999-2003 Eric Gourgoulhon
* Copyright (c) 1999-2001 Philippe Grandclement
* Copyright (c) 1999-2001 Jerome Novak
* Copyright (c) 2001 Keisuke Taniguchi
*
* This file is part of LORENE.
*
* LORENE is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* LORENE is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with LORENE; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef __VALEUR_H_
#define __VALEUR_H_
/*
* $Id: valeur.h,v 1.20 2014/10/13 08:52:37 j_novak Exp $
* $Log: valeur.h,v $
* Revision 1.20 2014/10/13 08:52:37 j_novak
* Lorene classes and functions now belong to the namespace Lorene.
*
* Revision 1.19 2014/10/06 15:09:40 j_novak
* Modified #include directives to use c++ syntax.
*
* Revision 1.18 2013/06/05 15:06:10 j_novak
* Legendre bases are treated as standard bases, when the multi-grid
* (Mg3d) is built with BASE_LEG.
*
* Revision 1.17 2013/01/11 15:44:54 j_novak
* Addition of Legendre bases (part 2).
*
* Revision 1.16 2012/01/18 14:43:42 j_penner
* added a routine to return the computational coordinate xi as a Valeur
*
* Revision 1.15 2012/01/17 10:17:23 j_penner
* functions added: Heaviside
*
* Revision 1.14 2005/11/17 15:18:46 e_gourgoulhon
* Added Valeur + Mtbl and Valeur - Mtbl.
*
* Revision 1.13 2005/10/25 08:56:34 p_grandclement
* addition of std_spectral_base in the case of odd functions near the origin
*
* Revision 1.12 2004/11/23 12:46:04 f_limousin
* Add functiun filtre_tp(int nn, int nz1, int nz2).
*
* Revision 1.11 2004/08/24 09:14:40 p_grandclement
* Addition of some new operators, like Poisson in 2d... It now requieres the
* GSL library to work.
*
* Also, the way a variable change is stored by a Param_elliptic is changed and
* no longer uses Change_var but rather 2 Scalars. The codes using that feature
* will requiere some modification. (It should concern only the ones about monopoles)
*
* Revision 1.10 2004/07/06 13:36:27 j_novak
* Added methods for desaliased product (operator |) only in r direction.
*
* Revision 1.9 2004/03/22 13:12:44 j_novak
* Modification of comments to use doxygen instead of doc++
*
* Revision 1.8 2003/11/06 14:43:37 e_gourgoulhon
* Gave a name to const arguments in certain method prototypes (e.g.
* constructors) to correct a bug of DOC++.
*
* Revision 1.7 2003/10/19 19:48:31 e_gourgoulhon
* Introduced new method display_coef.
*
* Revision 1.6 2003/10/13 20:48:52 e_gourgoulhon
* Added new method get_base() (to prepare the encapsulation of the member
* base).
*
* Revision 1.5 2003/09/23 08:52:53 e_gourgoulhon
* Added Scalar as a friend class.
*
* Revision 1.4 2002/10/16 14:36:30 j_novak
* Reorganization of #include instructions of standard C++, in order to
* use experimental version 3 of gcc.
*
* Revision 1.3 2002/09/13 09:17:33 j_novak
* Modif. commentaires
*
* Revision 1.2 2002/06/17 14:05:17 j_novak
* friend functions are now also declared outside the class definition
*
* Revision 1.1.1.1 2001/11/20 15:19:27 e_gourgoulhon
* LORENE
*
* Revision 2.51 2001/05/29 16:11:58 eric
* Modif commentaires (mise en conformite Doc++ 3.4.7).
*
* Revision 2.50 2001/05/26 14:49:37 eric
* Ajout de l'operator% : produit de deux Valeur avec desaliasage.
*
* Revision 2.49 2001/01/16 15:09:13 keisuke
* Change the argument of the function smooth.
*
* Revision 2.48 2001/01/16 14:54:01 keisuke
* Ajout de la fonction smooth.
*
* Revision 2.47 2000/11/10 13:31:53 eric
* Ajout de la fonction equipot_outward.
*
* Revision 2.46 2000/09/11 13:52:39 eric
* Ajout des methodes mult_cp() et mult_sp() ainsi que des membres associes
* p_mult_cp et p_mult_sp
*
* Revision 2.45 2000/09/08 11:43:26 eric
* Modif commentaires.
*
* Revision 2.44 2000/09/08 10:07:02 eric
* Ajout des methodes set_base_r, etc...
*
* Revision 2.43 2000/08/04 11:53:59 eric
* Ajout de l'operateur (int l) et de la fonction set(int l) pour l'acces
* individuel aux Tbl.
*
* Revision 2.42 1999/12/29 13:19:51 eric
* Modif commentaires.
*
* Revision 2.41 1999/12/29 13:11:08 eric
* Ajout de la fonction val_point_jk.
*
* Revision 2.40 1999/12/20 16:35:47 eric
* Ajout de la fonction set_base.
*
* Revision 2.39 1999/12/10 16:19:40 eric
* Modif commentaires.
*
* Revision 2.38 1999/12/10 16:11:13 eric
* Fonction set: suppression de l'appel a set_etat_c_qcq() pour
* augmenter l'efficacite.
*
* Revision 2.37 1999/12/07 14:52:43 eric
* Changement ordre des arguments (phi,theta,xi) --> (xi,theta,phi)
* dans la routine val_point.
*
* Revision 2.36 1999/12/06 16:46:46 eric
* Ajout de la fonction val_point.
*
* Revision 2.35 1999/11/30 12:41:21 eric
* Le membre base est desormais un objet de type Base_val et non plus
* un pointeur vers une Base_val.
*
* Revision 2.34 1999/11/29 10:25:32 eric
* Ajout de Valeur/Mtbl et Mtbl / Valeur dans l'arithmetique.
*
* Revision 2.33 1999/11/29 10:05:47 eric
* Ajout de Valeur*Mtbl dans l'arithmetique.
*
* Revision 2.32 1999/11/23 16:15:24 eric
* Suppression du membre statique Valeur_Zero.
* Suppression du constructeur par defaut.
*
* Revision 2.31 1999/11/23 14:30:47 novak
* Ajout des membres mult_ct et mult_st
*
* Revision 2.30 1999/11/22 15:40:48 eric
* Ajout des operateurs set(l,k,j,i) et (l,k,j,i).
* Ajout de la fonction annule(int l).
*
* Revision 2.29 1999/11/19 11:21:48 eric
* Ajout du membre p_stdsdp et de la fonction correspondante stdsdp().
*
* Revision 2.28 1999/11/19 09:28:38 eric
* Les valeurs de retour des operateurs differentiels sont desormais
* const Valeur &
* et non plus Valeur.
* Le laplacien angulaire (lapang) a desormais le meme statut que les
* autres operateurs differentiels.
*
* Revision 2.27 1999/11/16 13:09:48 novak
* Ajout de mult_x et scost
*
* Revision 2.26 1999/11/09 15:24:08 phil
* ajout de la fonction mathematique calculant la racine cubique
*
* Revision 2.25 1999/10/29 15:14:33 eric
* Ajout de fonctions mathematiques (abs, norme, etc...).
*
* Revision 2.24 1999/10/27 08:48:46 eric
* La classe Cmp est desormais amie (pour que Cmp::del_t() puisse appeler
* Valeur::del_t()).
*
* Revision 2.23 1999/10/21 14:21:06 eric
* Constructeur par lecture de fichier.
*
* Revision 2.22 1999/10/20 15:38:52 eric
* *** empty log message ***
*
* Revision 2.21 1999/10/20 15:31:04 eric
* Ajout de l'arithmetique.
*
* Revision 2.20 1999/10/19 15:30:24 eric
* Ajout de la fonction affiche_seuil.
*
* Revision 2.19 1999/10/18 15:07:02 eric
* La fonction membre annule() est rebaptisee annule_hard().
* Introduction de la fonction membre annule(int, int).
*
* Revision 2.18 1999/10/18 13:39:38 eric
* Routines de derivation --> const
* Suppression de sxdsdx (non implemente).
*
* Revision 2.17 1999/10/13 15:49:57 eric
* Depoussierage.
* Documentation.
*
* Revision 2.16 1999/09/14 17:17:47 phil
* *** empty log message ***
*
* Revision 2.15 1999/09/14 17:15:38 phil
* ajout de Valeur operator* (double, const Valeur&)
*
* Revision 2.14 1999/09/13 14:53:26 phil
* *** empty log message ***
*
* Revision 2.13 1999/09/13 14:17:52 phil
* ajout de Valeur friend operator+ (Valeur, Valeur)
*
* Revision 2.12 1999/04/26 16:24:23 phil
* ajout de mult2_xm1_zec()
*
* Revision 2.11 1999/04/26 16:12:45 phil
* ajout de mult_xm1_zec()
*
* Revision 2.10 1999/04/26 15:48:11 phil
* ajout de sxm1_zec()
*
* Revision 2.9 1999/04/26 12:57:24 phil
* ajout de lapang()
*
* Revision 2.8 1999/04/13 16:44:55 phil
* ajout de ylm_i()
*
* Revision 2.7 1999/04/13 16:31:46 phil
* *** empty log message ***
*
* Revision 2.6 1999/04/13 16:26:08 phil
* ajout ylm
*
* Revision 2.5 1999/02/24 15:24:34 hyc
* *** empty log message ***
*
* Revision 2.4 1999/02/23 15:55:46 hyc
* *** empty log message ***
*
*
* $Header: /cvsroot/Lorene/C++/Include/valeur.h,v 1.20 2014/10/13 08:52:37 j_novak Exp $
*
*/
// Fichier includes
#include <cstdio>
#include "mtbl.h"
#include "mtbl_cf.h"
namespace Lorene {
class Coord ;
class Itbl ;
class Valeur {
// Data :
// -----
private:
const Mg3d* mg ;
int etat ;
public:
mutable Mtbl* c ;
mutable Mtbl_cf* c_cf ;
Base_val base ;
// Derived data :
// ------------
private:
mutable Valeur* p_dsdx ;
mutable Valeur* p_d2sdx2 ;
mutable Valeur* p_sx ;
mutable Valeur* p_sx2 ;
mutable Valeur* p_mult_x ;
mutable Valeur* p_dsdt ;
mutable Valeur* p_d2sdt2 ;
mutable Valeur* p_ssint ;
mutable Valeur* p_scost ;
mutable Valeur* p_mult_ct ;
mutable Valeur* p_mult_st ;
mutable Valeur* p_dsdp ;
mutable Valeur* p_stdsdp ;
mutable Valeur* p_d2sdp2 ;
mutable Valeur* p_mult_cp ;
mutable Valeur* p_mult_sp ;
mutable Valeur* p_lapang ;
// Constructors - Destructor
// -------------------------
public:
explicit Valeur(const Mg3d& mgrid) ;
explicit Valeur(const Mg3d* p_mgrid) ;
Valeur(const Mg3d&, FILE* ) ;
Valeur(const Valeur& ) ;
~Valeur() ;
// Assignement
// -----------
public:
void operator=(const Valeur& a) ;
void operator=(const Mtbl& mt) ;
void operator=(const Mtbl_cf& mtcf) ;
void operator=(double ) ;
// Access to individual elements
// -----------------------------
public:
Tbl& set(int l) {
assert(l < mg->get_nzone()) ;
assert(etat == ETATQCQ) ;
if (c == 0x0) {
coef_i() ;
}
if (c_cf != 0x0) {
delete c_cf ;
c_cf = 0 ;
}
return c->set(l) ;
};
const Tbl& operator()(int l) const {
assert(l < mg->get_nzone()) ;
assert(etat == ETATQCQ) ;
if (c == 0x0) {
coef_i() ;
}
return (*c)(l) ;
};
double& set(int l, int k, int j, int i) {
assert(l < mg->get_nzone()) ;
assert(etat == ETATQCQ) ;
if (c == 0x0) {
coef_i() ;
}
if (c_cf != 0x0) {
delete c_cf ;
c_cf = 0 ;
}
return c->set(l, k, j, i) ;
};
double operator()(int l, int k, int j, int i) const {
assert(etat != ETATNONDEF) ;
assert(l < mg->get_nzone()) ;
if (etat == ETATZERO) {
double zero = 0. ;
return zero ;
}
else{
if (c == 0x0) {
coef_i() ;
}
return (*c)(l, k, j, i) ;
}
};
double val_point(int l, double x, double theta, double phi) const ;
double val_point_jk(int l, double x, int j, int k) const ;
// Operations on coefficients
// --------------------------
public:
void coef() const ;
void coef_i() const ;
void ylm() ;
void ylm_i() ;
void val_propre_1d() ;
void val_propre_1d_i() ;
const Base_val& get_base() const {return base; } ;
void set_base(const Base_val& ) ;
void std_base_scal() ;
void std_base_scal_odd() ;
void set_base_r(int l, int base_r) ;
void set_base_t(int base_t) ;
void set_base_p(int base_p) ;
void filtre_tp(int nn, int nz1, int nz2) ;
// Differential operators
// ----------------------
public:
const Valeur& dsdx() const ;
const Valeur& d2sdx2() const ;
const Valeur& dsdt() const ;
const Valeur& d2sdt2() const ;
const Valeur& ssint() const ;
const Valeur& scost() const ;
const Valeur& mult_ct() const ;
const Valeur& mult_st() const ;
const Valeur& dsdp() const ;
const Valeur& stdsdp() const ;
const Valeur& d2sdp2() const ;
const Valeur& mult_cp() const ;
const Valeur& mult_sp() const ;
const Valeur& lapang() const ;
const Valeur& sx() const ;
const Valeur& sx2() const ;
const Valeur& mult_x() const ;
void sxm1_zec() ;
void mult_xm1_zec() ;
void mult2_xm1_zec() ;
void va_x() ;
// Outputs
// -------
public:
void sauve(FILE *) const ;
void display_coef(double threshold = 1.e-7, int precision = 4,
ostream& ostr = cout) const ;
void affiche_seuil(ostream& ostr, int type = 0, int precision = 4,
double threshold = 1.e-7) const ;
friend ostream& operator<<(ostream& , const Valeur& ) ;
// Memory management
// -----------------
private:
void nouveau() ;
void del_t() ;
void del_deriv() ;
void set_der_0x0() ;
// State manipulations
public:
void set_etat_nondef() ;
void set_etat_zero() ;
void set_etat_c_qcq() ;
void set_etat_cf_qcq() ;
void annule_hard() ;
void annule(int l) ;
void annule(int l_min, int l_max) ;
// Extraction of information
// -------------------------
public:
int get_etat() const {return etat ; };
const Mg3d* get_mg() const { return mg ; };
// Member arithmetics
// ------------------
public:
void operator+=(const Valeur& ) ;
void operator-=(const Valeur& ) ;
void operator*=(const Valeur& ) ;
// Miscellaneous
// -------------
public:
void equipot(double uu0, int nz_search, double precis, int nitermax,
int& niter, Itbl& l_iso, Tbl& xi_iso) const ;
void equipot_outward(double uu0, int nz_search, double precis,
int nitermax, int& niter, Itbl& l_iso,
Tbl& xi_iso) const ;
void smooth(int nzet, Valeur& uuva) const ;
friend class Cmp ;
friend class Scalar ;
friend void rotate_propre_pair (Valeur&, bool) ;
friend void rotate_propre_impair (Valeur&, bool) ;
};
ostream& operator<<(ostream& , const Valeur& ) ;
Valeur operator+(const Valeur& ) ;
Valeur operator-(const Valeur& ) ;
Valeur operator+(const Valeur&, const Valeur& ) ;
Valeur operator+(const Valeur&, const Mtbl& ) ;
Valeur operator+(const Mtbl&, const Valeur& ) ;
Valeur operator+(const Valeur&, double ) ;
Valeur operator+(double, const Valeur& ) ;
Valeur operator+(const Valeur&, int ) ;
Valeur operator+(int, const Valeur& ) ;
Valeur operator-(const Valeur&, const Valeur& ) ;
Valeur operator-(const Valeur&, const Mtbl& ) ;
Valeur operator-(const Mtbl&, const Valeur& ) ;
Valeur operator-(const Valeur&, double ) ;
Valeur operator-(double, const Valeur& ) ;
Valeur operator-(const Valeur&, int ) ;
Valeur operator-(int, const Valeur& ) ;
Valeur operator*(const Valeur&, const Valeur& ) ;
Valeur operator%(const Valeur&, const Valeur& ) ;
Valeur operator|(const Valeur&, const Valeur& ) ;
Valeur operator*(const Valeur&, double ) ;
Valeur operator*(double, const Valeur& ) ;
Valeur operator*(const Valeur&, int ) ;
Valeur operator*(int, const Valeur& ) ;
Valeur operator*(const Valeur& a, const Mtbl& b) ;
Valeur operator*(const Mtbl& b, const Valeur& a) ;
Valeur operator*(const Valeur& a, const Coord& c) ;
Valeur operator*(const Coord& c, const Valeur& a) ;
Valeur operator/(const Valeur& a, const Valeur& b) ;
Valeur operator/(const Valeur&, double ) ;
Valeur operator/(double, const Valeur& ) ;
Valeur operator/(const Valeur&, int ) ;
Valeur operator/(int, const Valeur& ) ;
Valeur operator/(const Valeur& a, const Mtbl& b) ;
Valeur operator/(const Mtbl& b, const Valeur& a) ;
Valeur sin(const Valeur& ) ;
Valeur cos(const Valeur& ) ;
Valeur tan(const Valeur& ) ;
Valeur asin(const Valeur& ) ;
Valeur acos(const Valeur& ) ;
Valeur atan(const Valeur& ) ;
Valeur exp(const Valeur& ) ;
Valeur Heaviside(const Valeur& ) ;
Valeur log(const Valeur& ) ;
Valeur log10(const Valeur& ) ;
Valeur sqrt(const Valeur& ) ;
Valeur pow(const Valeur& , int ) ;
Valeur pow(const Valeur& , double ) ;
Valeur abs(const Valeur& ) ;
Valeur racine_cubique (const Valeur&) ;
double totalmax(const Valeur& ) ;
double totalmin(const Valeur& ) ;
Tbl max(const Valeur& ) ;
Tbl min(const Valeur& ) ;
Tbl norme(const Valeur& ) ;
Tbl diffrel(const Valeur& a, const Valeur& b) ;
Tbl diffrelmax(const Valeur& a, const Valeur& b) ;
}
#endif
Lorene::Base_val
Bases of the spectral expansions.
Definition base_val.h:322
Lorene::Coord
Active physical coordinates and mapping derivatives.
Definition coord.h:90
Lorene::Itbl
Basic integer array class.
Definition itbl.h:122
Lorene::Mg3d
Multi-domain grid.
Definition grilles.h:273
Lorene::Mtbl_cf
Coefficients storage for the multi-domain spectral method.
Definition mtbl_cf.h:186
Lorene::Mtbl
Multi-domain array.
Definition mtbl.h:118
Lorene::Tbl
Basic array class.
Definition tbl.h:161
Lorene::Valeur
Values and coefficients of a (real-value) function.
Definition valeur.h:287
Lorene::Valeur::filtre_tp
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...
Definition valeur.C:924
Lorene::Valeur::operator-=
void operator-=(const Valeur &)
-= Valeur
Definition valeur_arithm.C:897
Lorene::Valeur::del_t
void del_t()
Logical destructor.
Definition valeur.C:626
Lorene::Valeur::sx2
const Valeur & sx2() const
Returns (r -sampling = RARE ) \ Id (r sampling = FIN ) \ (r -sampling = UNSURR ).
Definition valeur_sx2.C:114
Lorene::Valeur::set_etat_cf_qcq
void set_etat_cf_qcq()
Sets the logical state to ETATQCQ (ordinary state) for values in the configuration space (Mtbl_cf c_c...
Definition valeur.C:712
Lorene::Valeur::equipot
void equipot(double uu0, int nz_search, double precis, int nitermax, int &niter, Itbl &l_iso, Tbl &xi_iso) const
Determines an equipotential surface of the field represented by *this (inward search).
Definition valeur_equipot.C:81
Lorene::Valeur::val_point
double val_point(int l, double x, double theta, double phi) const
Computes the value of the field represented by *this at an arbitrary point, by means of the spectral ...
Definition valeur.C:882
Lorene::Valeur::operator()
const Tbl & operator()(int l) const
Read-only of the value in a given domain (configuration space).
Definition valeur.h:381
Lorene::Valeur::mult_ct
const Valeur & mult_ct() const
Returns applied to *this.
Definition valeur_mult_ct.C:98
Lorene::Valeur::~Valeur
~Valeur()
Destructor.
Definition valeur.C:297
Lorene::Valeur::val_propre_1d_i
void val_propre_1d_i()
Inverse transformation of val_propre_1d.
Definition valeur_val_propre_1d.C:358
Lorene::Valeur::equipot_outward
void equipot_outward(double uu0, int nz_search, double precis, int nitermax, int &niter, Itbl &l_iso, Tbl &xi_iso) const
Determines an equipotential surface of the field represented by *this (outward search).
Definition valeur_equipot_out.C:83
Lorene::Valeur::set_etat_c_qcq
void set_etat_c_qcq()
Sets the logical state to ETATQCQ (ordinary state) for values in the configuration space (Mtbl c ).
Definition valeur.C:701
Lorene::Valeur::val_point_jk
double val_point_jk(int l, double x, int j, int k) const
Computes the value of the field represented by *this at an arbitrary point in , but collocation point...
Definition valeur.C:900
Lorene::Valeur::p_dsdp
Valeur * p_dsdp
Pointer on .
Definition valeur.h:323
Lorene::Valeur::dsdp
const Valeur & dsdp() const
Returns of *this.
Definition valeur_dsdp.C:98
Lorene::Valeur::sxm1_zec
void sxm1_zec()
Applies the following operator to *this : \ Id (r sampling = RARE, FIN ) \ (r -sampling = UNSURR ).
Definition valeur_sxm1_zec.C:81
Lorene::Valeur::operator<<
friend ostream & operator<<(ostream &, const Valeur &)
Display.
Definition valeur.C:496
Lorene::Valeur::sx
const Valeur & sx() const
Returns (r -sampling = RARE ) \ Id (r sampling = FIN ) \ (r -sampling = UNSURR ).
Definition valeur_sx.C:110
Lorene::Valeur::mult_xm1_zec
void mult_xm1_zec()
Applies the following operator to *this : \ Id (r sampling = RARE, FIN ) \ (r -sampling = UNSURR ).
Definition valeur_mult_xm1.C:76
Lorene::Valeur::get_base
const Base_val & get_base() const
Return the bases for spectral expansions (member base ).
Definition valeur.h:480
Lorene::Valeur::p_mult_sp
Valeur * p_mult_sp
Pointer on .
Definition valeur.h:327
Lorene::Valeur::p_mult_x
Valeur * p_mult_x
Pointer on .
Definition valeur.h:314
Lorene::Valeur::d2sdt2
const Valeur & d2sdt2() const
Returns of *this.
Definition valeur_d2sdt2.C:107
Lorene::Valeur::p_scost
Valeur * p_scost
Pointer on .
Definition valeur.h:319
Lorene::Valeur::stdsdp
const Valeur & stdsdp() const
Returns of *this.
Definition valeur_stdsdp.C:60
Lorene::Valeur::get_etat
int get_etat() const
Returns the logical state.
Definition valeur.h:726
Lorene::Valeur::p_sx2
Valeur * p_sx2
Pointer on .
Definition valeur.h:313
Lorene::Valeur::operator+=
void operator+=(const Valeur &)
+= Valeur
Definition valeur_arithm.C:834
Lorene::Valeur::p_d2sdx2
Valeur * p_d2sdx2
Pointer on .
Definition valeur.h:311
Lorene::Valeur::set_etat_zero
void set_etat_zero()
Sets the logical state to ETATZERO (zero).
Definition valeur.C:689
Lorene::Valeur::set_base
void set_base(const Base_val &)
Sets the bases for spectral expansions (member base ).
Definition valeur.C:810
Lorene::Valeur::Scalar
friend class Scalar
Friend class.
Definition valeur.h:826
Lorene::Valeur::p_dsdx
Valeur * p_dsdx
Pointer on .
Definition valeur.h:310
Lorene::Valeur::Valeur
Valeur(const Mg3d &mgrid)
Constructor.
Definition valeur.C:200
Lorene::Valeur::nouveau
void nouveau()
Memory allocation.
Definition valeur.C:617
Lorene::Valeur::ylm
void ylm()
Computes the coefficients of *this.
Definition valeur_ylm.C:138
Lorene::Valeur::p_d2sdt2
Valeur * p_d2sdt2
Pointer on .
Definition valeur.h:317
Lorene::Valeur::rotate_propre_pair
friend void rotate_propre_pair(Valeur &, bool)
Friend fonction.
Definition valeur_val_propre_1d.C:66
Lorene::Valeur::c
Mtbl * c
Values of the function at the points of the multi-grid.
Definition valeur.h:299
Lorene::Valeur::p_mult_cp
Valeur * p_mult_cp
Pointer on .
Definition valeur.h:326
Lorene::Valeur::display_coef
void display_coef(double threshold=1.e-7, int precision=4, ostream &ostr=cout) const
Displays the spectral coefficients and the associated basis functions.
Definition valeur.C:536
Lorene::Valeur::dsdt
const Valeur & dsdt() const
Returns of *this.
Definition valeur_dsdt.C:112
Lorene::Valeur::annule
void annule(int l)
Sets the Valeur to zero in a given domain.
Definition valeur.C:744
Lorene::Valeur::operator()
double operator()(int l, int k, int j, int i) const
Read-only of a particular element (configuration space).
Definition valeur.h:421
Lorene::Valeur::mg
const Mg3d * mg
Multi-grid Mgd3 on which this is defined.
Definition valeur.h:292
Lorene::Valeur::set
Tbl & set(int l)
Read/write of the value in a given domain (configuration space).
Definition valeur.h:363
Lorene::Valeur::dsdx
const Valeur & dsdx() const
Returns of *this.
Definition valeur_dsdx.C:111
Lorene::Valeur::mult_x
const Valeur & mult_x() const
Returns (r -sampling = RARE ) \ Id (r sampling = FIN ) \ (r -sampling = UNSURR ).
Definition valeur_mult_x.C:101
Lorene::Valeur::operator=
void operator=(const Valeur &a)
Assignement to another Valeur.
Definition valeur.C:327
Lorene::Valeur::std_base_scal_odd
void std_base_scal_odd()
Sets the bases for spectral expansions (member base ) to the standard odd ones for a scalar.
Definition valeur.C:830
Lorene::Valeur::va_x
void va_x()
Returns (r -sampling = RARE ) \ (r sampling = FIN ) \ (r -sampling = UNSURR ).
Definition valeur_x.C:43
Lorene::Valeur::p_sx
Valeur * p_sx
Pointer on .
Definition valeur.h:312
Lorene::Valeur::ssint
const Valeur & ssint() const
Returns of *this.
Definition valeur_ssint.C:112
Lorene::Valeur::coef_i
void coef_i() const
Computes the physical value of *this.
Definition valeur_coef_i.C:140
Lorene::Valeur::affiche_seuil
void affiche_seuil(ostream &ostr, int type=0, int precision=4, double threshold=1.e-7) const
Prints only the values greater than a given threshold.
Definition valeur.C:558
Lorene::Valeur::rotate_propre_impair
friend void rotate_propre_impair(Valeur &, bool)
Friend fonction.
Definition valeur_val_propre_1d.C:196
Lorene::Valeur::c_cf
Mtbl_cf * c_cf
Coefficients of the spectral expansion of the function.
Definition valeur.h:302
Lorene::Valeur::coef
void coef() const
Computes the coeffcients of *this.
Definition valeur_coef.C:148
Lorene::Valeur::Cmp
friend class Cmp
Friend class.
Definition valeur.h:825
Lorene::Valeur::operator*=
void operator*=(const Valeur &)
*= Valeur
Definition valeur_arithm.C:958
Lorene::Valeur::mult_st
const Valeur & mult_st() const
Returns applied to *this.
Definition valeur_mult_st.C:97
Lorene::Valeur::p_ssint
Valeur * p_ssint
Pointer on .
Definition valeur.h:318
Lorene::Valeur::set_der_0x0
void set_der_0x0()
Sets the pointers for derivatives to 0x0.
Definition valeur.C:665
Lorene::Valeur::scost
const Valeur & scost() const
Returns of *this.
Definition valeur_scost.C:99
Lorene::Valeur::d2sdp2
const Valeur & d2sdp2() const
Returns of *this.
Definition valeur_d2sdp2.C:92
Lorene::Valeur::p_stdsdp
Valeur * p_stdsdp
Pointer on .
Definition valeur.h:324
Lorene::Valeur::get_mg
const Mg3d * get_mg() const
Returns the Mg3d on which the this is defined.
Definition valeur.h:729
Lorene::Valeur::set
double & set(int l, int k, int j, int i)
Read/write of a particular element (configuration space).
Definition valeur.h:401
Lorene::Valeur::set_base_r
void set_base_r(int l, int base_r)
Sets the expansion basis for r ( ) functions in a given domain.
Definition valeur.C:836
Lorene::Valeur::p_dsdt
Valeur * p_dsdt
Pointer on .
Definition valeur.h:316
Lorene::Valeur::ylm_i
void ylm_i()
Inverse of ylm().
Definition valeur_ylm_i.C:131
Lorene::Valeur::d2sdx2
const Valeur & d2sdx2() const
Returns of *this.
Definition valeur_d2sdx2.C:114
Lorene::Valeur::p_lapang
Valeur * p_lapang
Pointer on the angular Laplacian.
Definition valeur.h:329
Lorene::Valeur::base
Base_val base
Bases on which the spectral expansion is performed.
Definition valeur.h:305
Lorene::Valeur::std_base_scal
void std_base_scal()
Sets the bases for spectral expansions (member base ) to the standard ones for a scalar.
Definition valeur.C:824
Lorene::Valeur::annule_hard
void annule_hard()
Sets the Valeur to zero in a hard way.
Definition valeur.C:723
Lorene::Valeur::p_mult_ct
Valeur * p_mult_ct
Pointer on .
Definition valeur.h:320
Lorene::Valeur::etat
int etat
Logical state (ETATNONDEF , ETATQCQ or ETATZERO ).
Definition valeur.h:295
Lorene::Valeur::set_base_t
void set_base_t(int base_t)
Sets the expansion basis for functions in all domains.
Definition valeur.C:849
Lorene::Valeur::lapang
const Valeur & lapang() const
Returns the angular Laplacian of *this.
Definition valeur_lapang.C:72
Lorene::Valeur::smooth
void smooth(int nzet, Valeur &uuva) const
Changes the function *this as a smooth one when there exists a discontinuity between the nucleus and ...
Definition valeur_smooth.C:77
Lorene::Valeur::set_base_p
void set_base_p(int base_p)
Sets the expansion basis for functions in all domains.
Definition valeur.C:862
Lorene::Valeur::set_etat_nondef
void set_etat_nondef()
Sets the logical state to ETATNONDEF (undefined).
Definition valeur.C:695
Lorene::Valeur::mult2_xm1_zec
void mult2_xm1_zec()
Applies the following operator to *this : \ Id (r sampling = RARE, FIN ) \ (r -sampling = UNSURR ).
Definition valeur_mult2_xm1.C:76
Lorene::Valeur::val_propre_1d
void val_propre_1d()
Set the basis to the eigenvalues of .
Definition valeur_val_propre_1d.C:322
Lorene::Valeur::p_d2sdp2
Valeur * p_d2sdp2
Pointer on .
Definition valeur.h:325
Lorene::Valeur::mult_cp
const Valeur & mult_cp() const
Returns applied to *this.
Definition valeur_mult_cp.C:77
Lorene::Valeur::p_mult_st
Valeur * p_mult_st
Pointer on .
Definition valeur.h:321
Lorene::Valeur::mult_sp
const Valeur & mult_sp() const
Returns applied to *this.
Definition valeur_mult_sp.C:77
Lorene::Valeur::del_deriv
void del_deriv()
Logical destructor of the derivatives.
Definition valeur.C:638
Lorene::Valeur::sauve
void sauve(FILE *) const
Save in a file.
Definition valeur.C:475
Lorene::operator*
Base_val operator*(const Base_val &, const Base_val &)
This operator is used when calling multiplication or division of Valeur .
Definition base_val_mult.C:102
Lorene::operator-
Cmp operator-(const Cmp &)
- Cmp
Definition cmp_arithm.C:108
Lorene::atan
Cmp atan(const Cmp &)
Arctangent.
Definition cmp_math.C:195
Lorene::sqrt
Cmp sqrt(const Cmp &)
Square root.
Definition cmp_math.C:220
Lorene::log10
Cmp log10(const Cmp &)
Basis 10 logarithm.
Definition cmp_math.C:322
Lorene::operator/
Cmp operator/(const Cmp &, const Cmp &)
Cmp / Cmp.
Definition cmp_arithm.C:457
Lorene::operator%
Cmp operator%(const Cmp &, const Cmp &)
Cmp * Cmp with desaliasing.
Definition cmp_arithm.C:364
Lorene::exp
Cmp exp(const Cmp &)
Exponential.
Definition cmp_math.C:270
Lorene::sin
Cmp sin(const Cmp &)
Sine.
Definition cmp_math.C:69
Lorene::diffrel
Tbl diffrel(const Cmp &a, const Cmp &b)
Relative difference between two Cmp (norme version).
Definition cmp_math.C:504
Lorene::norme
Tbl norme(const Cmp &)
Sums of the absolute values of all the values of the Cmp in each domain.
Definition cmp_math.C:481
Lorene::acos
Cmp acos(const Cmp &)
Arccosine.
Definition cmp_math.C:169
Lorene::asin
Cmp asin(const Cmp &)
Arcsine.
Definition cmp_math.C:144
Lorene::racine_cubique
Cmp racine_cubique(const Cmp &)
Cube root.
Definition cmp_math.C:245
Lorene::min
Tbl min(const Cmp &)
Minimum values of a Cmp in each domain.
Definition cmp_math.C:458
Lorene::max
Tbl max(const Cmp &)
Maximum values of a Cmp in each domain.
Definition cmp_math.C:435
Lorene::pow
Cmp pow(const Cmp &, int)
Power .
Definition cmp_math.C:348
Lorene::cos
Cmp cos(const Cmp &)
Cosine.
Definition cmp_math.C:94
Lorene::abs
Cmp abs(const Cmp &)
Absolute value.
Definition cmp_math.C:410
Lorene::diffrelmax
Tbl diffrelmax(const Cmp &a, const Cmp &b)
Relative difference between two Cmp (max version).
Definition cmp_math.C:539
Lorene::operator+
Cmp operator+(const Cmp &)
Definition cmp_arithm.C:104
Lorene::tan
Cmp tan(const Cmp &)
Tangent.
Definition cmp_math.C:120
Lorene::log
Cmp log(const Cmp &)
Neperian logarithm.
Definition cmp_math.C:296
Lorene::Heaviside
Mtbl Heaviside(const Mtbl &)
Heaviside function.
Definition mtbl_math.C:317
Lorene::totalmin
double totalmin(const Mtbl &)
Minimum value of the Mtbl elements in all domain.
Definition mtbl_math.C:522
Lorene::totalmax
double totalmax(const Mtbl &)
Maximum value of the Mtbl elements in all domains.
Definition mtbl_math.C:494
Lorene::operator|
Scalar operator|(const Scalar &, const Scalar &)
Scalar * Scalar with desaliasing only in r.
Definition scalar_arithm.C:491
Lorene
Lorene prototypes.
Definition app_hor.h:64
Lorene::phi
Coord phi
coordinate centered on the grid
Definition map.h:720
Lorene::x
Coord x
x coordinate centered on the grid
Definition map.h:726