Lorene::Tbl_val Class Reference
[Grid wedding]

Finite-difference array intended to store field values. More...

#include <tbl_val.h>

List of all members.

Public Member Functions

 Tbl_val (const Grille_val *)
 Constructor from a 3D grid.
 Tbl_val (const Grille_val *, FILE *)
 Constructor from a file (see sauve(FILE*) ).
 Tbl_val (const Tbl_val &)
 Copy constructor.
 ~Tbl_val ()
 Destructor.
void operator= (const Tbl_val &)
 Assignment to another Tbl_val.
void operator= (double)
 Assignment to a double.
void operator= (int)
 Assignment to a int.
void set_etat_nondef ()
 Sets the logical state to ETATNONDEF (undefined).
void set_etat_zero ()
 Sets the logical state to ETATZERO (zero).
void set_etat_qcq ()
 Sets the logical state to ETATQCQ (ordinary state).
void append_array (double *t_in)
 Appends an array of doubles as the main array t of this (DO NOT use it, unless you REALLY know how it works).
void annule_hard ()
 Sets the Tbl_val to zero in a hard way.
double & set (int i)
 Read/write of a particular element (index i ) (1D case).
double & set_zri (int i)
 Read/write of a particular element on the interface (index i ) (1D case).
double operator() (int i) const
 Read-only of a particular element (index i ) (1D case).
double get_zri (int i) const
 Read-only of a particular element on the interface (index i ) (1D case).
double & set (int j, int i)
 Read/write of a particular element (index (j,i) ) (2D case).
double & set_xti (int j, int i)
 Read/write of a particular element on the x (or $\theta$) interface (index (j,i) ) (2D case).
double & set_zri (int j, int i)
 Read/write of a particular element on the z (or r) interface (index (j,i) ) (2D case).
double operator() (int j, int i) const
 Read-only of a particular element (index (j,i) ) (2D case).
double get_xti (int j, int i) const
 Read-only of a particular element on the x (or $\theta$) interface (index (j,i) ) (2D case).
double get_zri (int j, int i) const
 Read-only of a particular element on the z (or r) interface (index (j,i) ) (2D case).
double & set (int k, int j, int i)
 Read/write of a particular element (index (k,j,i) ) (3D case).
double & set_ypi (int k, int j, int i)
 Read/write of a particular element on the y (or $\phi$) interface (index (k,j,i) ) (3D case).
double & set_xti (int k, int j, int i)
 Read/write of a particular element on the x (or $\theta$) interface (index (k,j,i) ) (3D case).
double & set_zri (int k, int j, int i)
 Read/write of a particular element on the z (or r) interface (index (k,j,i) ) (3D case).
double operator() (int k, int j, int i) const
 Read-only of a particular element (index (k,j,i) ) (3D case).
double get_ypi (int k, int j, int i) const
 Read-only of a particular element on the y (or $\phi$) interface (index (k,j,i) ) (3D case).
double get_xti (int k, int j, int i) const
 Read-only of a particular element on the x (or $\theta$) interface (index (k,j,i) ) (3D case).
double get_zri (int k, int j, int i) const
 Read-only of a particular element on the z (or r) interface (index (k,j,i) ) (3D case).
int get_etat () const
 Gives the logical state.
int get_taille () const
 Gives the size of the node array (including the hidden cells).
int get_taille_i (int i) const
 Gives the size of the interface arrays (including the hidden cells).
int get_ndim () const
 Gives the number of dimensions (ie dim->ndim ).
int get_dim (int i) const
 Gives the i th dimension (ie dim->dim[i] , without hidden cells).
const Grille_valget_grille () const
 Returns a pointer on the grid on which the Tbl_val is defined.
void sauve (FILE *) const
 Save in a file.
void affiche_seuil (ostream &ostr, int precision=4, double threshold=1.e-7) const
 Prints only the values greater than a given threshold.
void operator+= (const Tbl_val &)
 Addition of a Tbl_val to this.
void operator+= (double)
 Addition of a double to this.
void operator-= (const Tbl_val &)
 Subtraction of a Tbl_val to this.
void operator-= (double)
 Subtraction of a double to this.
void operator*= (const Tbl_val &)
 Multiplication of this by a Tbl_val.
void operator*= (double)
 Multiplication of this by a double.
void operator/= (const Tbl_val &)
 Division of this by a Tbl_val.
void operator/= (double)
 Division of this by a double.
Scalar to_spectral (const Map &map, const int lmax, const int lmin=0, int type_inter=2) const
 Interpolation from a Tbl_val to a Scalar .
void from_spectral (const Scalar &meudon, int lmax, int lmin=0, bool interfr=false, bool interft=false)
 Interpolation from a Scalar to a Tbl_val (spectral summation).
void smooth_atmosphere (double atmosphere_thr)

Public Attributes

double * t
 The array of double at the nodes.
double * tzri
 The array at z (or r) interfaces.
double * txti
 The array at x (or $\theta$) interfaces.
double * typi
 The array at y (or $\phi$) interfaces.

Private Member Functions

void del_t ()
 Logical destructor: dellocates the memory occupied by the array t and sets the logical state to ETATNONDEF.

Private Attributes

int etat
 logical state (ETATNONDEF , ETATQCQ or ETATZERO ).
const Dim_tbldim
 The Dim_tbl giving the dimensions and number of points (without the hidden cells).
const Grille_valgval
 The Grille_val (cartesian or spherical) on which the array is defined.

Friends

ostream & operator<< (ostream &, const Tbl_val &)
 Display.

Detailed Description

Finite-difference array intended to store field values.

()

Class defined on a cartesian (Gval_cart ) or spherical (Gval_spher ) grid, in order to represent Godunov-type arrays in 1,2 or 3D.

Definition at line 97 of file tbl_val.h.


Constructor & Destructor Documentation

Lorene::Tbl_val::Tbl_val ( const Grille_val g  )  [explicit]

Constructor from a 3D grid.

Definition at line 86 of file tbl_val.C.

Lorene::Tbl_val::Tbl_val ( const Grille_val g,
FILE *  fd 
) [explicit]

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

Definition at line 125 of file tbl_val.C.

References etat, Lorene::fread_be(), get_ndim(), get_taille(), get_taille_i(), t, txti, typi, and tzri.

Lorene::Tbl_val::Tbl_val ( const Tbl_val tc  ) 

Copy constructor.

Definition at line 90 of file tbl_val.C.

References etat, get_ndim(), get_taille(), get_taille_i(), t, txti, typi, and tzri.

Lorene::Tbl_val::~Tbl_val (  ) 

Destructor.

Definition at line 157 of file tbl_val.C.

References del_t().


Member Function Documentation

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

Prints only the values greater than a given threshold.

Parameters:
ostr [input] Output stream used for the printing
precision [input] Number of printed digits (default: 4)
threshold [input] Value above which an array element is printed (default: 1.e-7)

Definition at line 432 of file tbl_val.C.

References etat, get_dim(), Lorene::Grille_val::get_fantome(), get_ndim(), get_taille(), and gval.

void Lorene::Tbl_val::annule_hard (  ) 

Sets the Tbl_val to zero in a hard way.

1/ Sets the logical state to ETATQCQ , i.e. to an ordinary state. 2/ Allocates the memory of the double array t , and fills it with zeros. NB: this function must be used for debugging purposes only. For other operations, the function set_etat_zero() must be perferred.

Definition at line 314 of file tbl_val.C.

References etat, get_ndim(), get_taille(), get_taille_i(), t, txti, typi, and tzri.

void Lorene::Tbl_val::append_array ( double *  t_in  ) 

Appends an array of doubles as the main array t of this (DO NOT use it, unless you REALLY know how it works).

Definition at line 339 of file tbl_val.C.

References del_t(), etat, and t.

void Lorene::Tbl_val::del_t (  )  [private]

Logical destructor: dellocates the memory occupied by the array t and sets the logical state to ETATNONDEF.

Definition at line 270 of file tbl_val.C.

References etat, t, txti, typi, and tzri.

void Lorene::Tbl_val::from_spectral ( const Scalar meudon,
int  lmax,
int  lmin = 0,
bool  interfr = false,
bool  interft = false 
)

Interpolation from a Scalar to a Tbl_val (spectral summation).

The Scalar is considered only in zones [lmin,lmax[.

Parameters:
meudon [input] The Scalar from which the interpolation is done
lmax [input] index of the outer zone +1
lmin [input] index of the inner zone

Definition at line 309 of file tbl_val_interp.C.

References annule_hard(), Lorene::Grille_val::contenue_dans(), Lorene::Scalar::get_etat(), Lorene::Tensor::get_mp(), Lorene::Grille_val::get_ndim(), get_taille(), gval, set_etat_qcq(), Lorene::Grille_val::somme_spectrale1(), Lorene::Grille_val::somme_spectrale2(), Lorene::Gval_spher::somme_spectrale2ri(), Lorene::Gval_spher::somme_spectrale2ti(), Lorene::Grille_val::somme_spectrale3(), t, txti, and tzri.

int Lorene::Tbl_val::get_dim ( int  i  )  const [inline]

Gives the i th dimension (ie dim->dim[i] , without hidden cells).

Definition at line 485 of file tbl_val.h.

References Lorene::Dim_tbl::dim, and dim.

int Lorene::Tbl_val::get_etat (  )  const [inline]

Gives the logical state.

Definition at line 459 of file tbl_val.h.

References etat.

const Grille_val* Lorene::Tbl_val::get_grille (  )  const [inline]

Returns a pointer on the grid on which the Tbl_val is defined.

Definition at line 491 of file tbl_val.h.

References gval.

int Lorene::Tbl_val::get_ndim (  )  const [inline]

Gives the number of dimensions (ie dim->ndim ).

Definition at line 482 of file tbl_val.h.

References dim, and Lorene::Dim_tbl::ndim.

int Lorene::Tbl_val::get_taille (  )  const [inline]

Gives the size of the node array (including the hidden cells).

Definition at line 462 of file tbl_val.h.

References Lorene::Dim_tbl::dim, dim, Lorene::Grille_val::get_fantome(), gval, and Lorene::Dim_tbl::ndim.

int Lorene::Tbl_val::get_taille_i ( int  i  )  const [inline]

Gives the size of the interface arrays (including the hidden cells).

Definition at line 469 of file tbl_val.h.

References Lorene::Dim_tbl::dim, dim, Lorene::Grille_val::get_fantome(), gval, and Lorene::Dim_tbl::ndim.

double Lorene::Tbl_val::get_xti ( int  k,
int  j,
int  i 
) const [inline]

Read-only of a particular element on the x (or $\theta$) interface (index (k,j,i) ) (3D case).

Definition at line 422 of file tbl_val.h.

References Lorene::Dim_tbl::dim, dim, etat, Lorene::Grille_val::get_fantome(), gval, Lorene::Dim_tbl::ndim, and txti.

double Lorene::Tbl_val::get_xti ( int  j,
int  i 
) const [inline]

Read-only of a particular element on the x (or $\theta$) interface (index (j,i) ) (2D case).

Definition at line 296 of file tbl_val.h.

References Lorene::Dim_tbl::dim, dim, etat, Lorene::Grille_val::get_fantome(), gval, Lorene::Dim_tbl::ndim, and txti.

double Lorene::Tbl_val::get_ypi ( int  k,
int  j,
int  i 
) const [inline]

Read-only of a particular element on the y (or $\phi$) interface (index (k,j,i) ) (3D case).

Definition at line 403 of file tbl_val.h.

References Lorene::Dim_tbl::dim, dim, etat, Lorene::Grille_val::get_fantome(), gval, Lorene::Dim_tbl::ndim, and typi.

double Lorene::Tbl_val::get_zri ( int  k,
int  j,
int  i 
) const [inline]

Read-only of a particular element on the z (or r) interface (index (k,j,i) ) (3D case).

Definition at line 441 of file tbl_val.h.

References Lorene::Dim_tbl::dim, dim, etat, Lorene::Grille_val::get_fantome(), gval, Lorene::Dim_tbl::ndim, and tzri.

double Lorene::Tbl_val::get_zri ( int  j,
int  i 
) const [inline]

Read-only of a particular element on the z (or r) interface (index (j,i) ) (2D case).

Definition at line 313 of file tbl_val.h.

References Lorene::Dim_tbl::dim, dim, etat, Lorene::Grille_val::get_fantome(), gval, Lorene::Dim_tbl::ndim, and tzri.

double Lorene::Tbl_val::get_zri ( int  i  )  const [inline]

Read-only of a particular element on the interface (index i ) (1D case).

Definition at line 229 of file tbl_val.h.

References dim, etat, Lorene::Grille_val::get_fantome(), gval, Lorene::Dim_tbl::ndim, and tzri.

double Lorene::Tbl_val::operator() ( int  k,
int  j,
int  i 
) const [inline]

Read-only of a particular element (index (k,j,i) ) (3D case).

Definition at line 384 of file tbl_val.h.

References Lorene::Dim_tbl::dim, dim, etat, Lorene::Grille_val::get_fantome(), gval, Lorene::Dim_tbl::ndim, and t.

double Lorene::Tbl_val::operator() ( int  j,
int  i 
) const [inline]

Read-only of a particular element (index (j,i) ) (2D case).

Definition at line 279 of file tbl_val.h.

References Lorene::Dim_tbl::dim, dim, etat, Lorene::Grille_val::get_fantome(), gval, Lorene::Dim_tbl::ndim, and t.

double Lorene::Tbl_val::operator() ( int  i  )  const [inline]

Read-only of a particular element (index i ) (1D case).

Definition at line 215 of file tbl_val.h.

References dim, etat, Lorene::Grille_val::get_fantome(), gval, Lorene::Dim_tbl::ndim, and t.

void Lorene::Tbl_val::operator*= ( double  x  ) 

Multiplication of this by a double.

Definition at line 827 of file arithm_tbl_val.C.

References etat, get_taille(), get_taille_i(), set_etat_zero(), t, txti, typi, and tzri.

void Lorene::Tbl_val::operator*= ( const Tbl_val ti  ) 

Multiplication of this by a Tbl_val.

Definition at line 794 of file arithm_tbl_val.C.

References etat, get_etat(), get_taille(), get_taille_i(), gval, set_etat_zero(), t, txti, typi, and tzri.

void Lorene::Tbl_val::operator+= ( double  x  ) 

Addition of a double to this.

Definition at line 634 of file arithm_tbl_val.C.

References etat, get_taille(), get_taille_i(), set_etat_qcq(), t, txti, typi, and tzri.

void Lorene::Tbl_val::operator+= ( const Tbl_val ti  ) 

Addition of a Tbl_val to this.

Definition at line 580 of file arithm_tbl_val.C.

References etat, get_etat(), get_taille(), get_taille_i(), gval, set_etat_qcq(), t, txti, typi, and tzri.

void Lorene::Tbl_val::operator-= ( double  x  ) 

Subtraction of a double to this.

Definition at line 741 of file arithm_tbl_val.C.

References etat, get_taille(), get_taille_i(), set_etat_qcq(), t, txti, typi, and tzri.

void Lorene::Tbl_val::operator-= ( const Tbl_val ti  ) 

Subtraction of a Tbl_val to this.

Definition at line 686 of file arithm_tbl_val.C.

References etat, get_etat(), get_taille(), get_taille_i(), gval, set_etat_qcq(), t, txti, typi, and tzri.

void Lorene::Tbl_val::operator/= ( double  x  ) 

Division of this by a double.

Definition at line 893 of file arithm_tbl_val.C.

References etat, get_taille(), get_taille_i(), t, txti, typi, and tzri.

void Lorene::Tbl_val::operator/= ( const Tbl_val ti  ) 

Division of this by a Tbl_val.

Definition at line 858 of file arithm_tbl_val.C.

References etat, get_etat(), get_taille(), get_taille_i(), gval, t, txti, typi, and tzri.

void Lorene::Tbl_val::operator= ( int  m  ) 

Assignment to a int.

Definition at line 222 of file tbl_val.C.

References get_taille(), get_taille_i(), set_etat_qcq(), set_etat_zero(), t, txti, typi, and tzri.

void Lorene::Tbl_val::operator= ( double  a  ) 

Assignment to a double.

Definition at line 199 of file tbl_val.C.

References get_taille(), get_taille_i(), set_etat_qcq(), set_etat_zero(), t, txti, typi, and tzri.

void Lorene::Tbl_val::operator= ( const Tbl_val tx  ) 

Assignment to another Tbl_val.

Definition at line 166 of file tbl_val.C.

References etat, get_etat(), get_ndim(), get_taille(), get_taille_i(), gval, set_etat_qcq(), set_etat_zero(), t, txti, typi, and tzri.

void Lorene::Tbl_val::sauve ( FILE *  fd  )  const

Save in a file.

Definition at line 252 of file tbl_val.C.

References etat, Lorene::fwrite_be(), get_ndim(), get_taille(), get_taille_i(), t, txti, typi, and tzri.

double& Lorene::Tbl_val::set ( int  k,
int  j,
int  i 
) [inline]

Read/write of a particular element (index (k,j,i) ) (3D case).

Definition at line 327 of file tbl_val.h.

References Lorene::Dim_tbl::dim, dim, etat, Lorene::Grille_val::get_fantome(), gval, Lorene::Dim_tbl::ndim, and t.

double& Lorene::Tbl_val::set ( int  j,
int  i 
) [inline]

Read/write of a particular element (index (j,i) ) (2D case).

Definition at line 243 of file tbl_val.h.

References Lorene::Dim_tbl::dim, dim, etat, Lorene::Grille_val::get_fantome(), gval, Lorene::Dim_tbl::ndim, and t.

double& Lorene::Tbl_val::set ( int  i  )  [inline]

Read/write of a particular element (index i ) (1D case).

Definition at line 195 of file tbl_val.h.

References dim, etat, Lorene::Grille_val::get_fantome(), gval, Lorene::Dim_tbl::ndim, and t.

void Lorene::Tbl_val::set_etat_nondef (  ) 

Sets the logical state to ETATNONDEF (undefined).

Deallocates the memory occupied by the double array t .

Definition at line 290 of file tbl_val.C.

References del_t(), and etat.

void Lorene::Tbl_val::set_etat_qcq (  ) 

Sets the logical state to ETATQCQ (ordinary state).

If the state (member etat ) is already ETATQCQ , this function does nothing. Otherwise, it performs the memory allocation for the double array t .

Definition at line 297 of file tbl_val.C.

References etat, get_ndim(), get_taille(), get_taille_i(), t, txti, typi, and tzri.

void Lorene::Tbl_val::set_etat_zero (  ) 

Sets the logical state to ETATZERO (zero).

Deallocates the memory occupied by the double array t .

Definition at line 283 of file tbl_val.C.

References del_t(), and etat.

double& Lorene::Tbl_val::set_xti ( int  k,
int  j,
int  i 
) [inline]

Read/write of a particular element on the x (or $\theta$) interface (index (k,j,i) ) (3D case).

Definition at line 357 of file tbl_val.h.

References Lorene::Dim_tbl::dim, dim, etat, Lorene::Grille_val::get_fantome(), gval, Lorene::Dim_tbl::ndim, and txti.

double& Lorene::Tbl_val::set_xti ( int  j,
int  i 
) [inline]

Read/write of a particular element on the x (or $\theta$) interface (index (j,i) ) (2D case).

Definition at line 256 of file tbl_val.h.

References Lorene::Dim_tbl::dim, dim, etat, Lorene::Grille_val::get_fantome(), gval, Lorene::Dim_tbl::ndim, and txti.

double& Lorene::Tbl_val::set_ypi ( int  k,
int  j,
int  i 
) [inline]

Read/write of a particular element on the y (or $\phi$) interface (index (k,j,i) ) (3D case).

Definition at line 342 of file tbl_val.h.

References Lorene::Dim_tbl::dim, dim, etat, Lorene::Grille_val::get_fantome(), gval, Lorene::Dim_tbl::ndim, and typi.

double& Lorene::Tbl_val::set_zri ( int  k,
int  j,
int  i 
) [inline]

Read/write of a particular element on the z (or r) interface (index (k,j,i) ) (3D case).

Definition at line 372 of file tbl_val.h.

References Lorene::Dim_tbl::dim, dim, etat, Lorene::Grille_val::get_fantome(), gval, Lorene::Dim_tbl::ndim, and tzri.

double& Lorene::Tbl_val::set_zri ( int  j,
int  i 
) [inline]

Read/write of a particular element on the z (or r) interface (index (j,i) ) (2D case).

Definition at line 269 of file tbl_val.h.

References Lorene::Dim_tbl::dim, dim, etat, Lorene::Grille_val::get_fantome(), gval, Lorene::Dim_tbl::ndim, and tzri.

double& Lorene::Tbl_val::set_zri ( int  i  )  [inline]

Read/write of a particular element on the interface (index i ) (1D case).

Definition at line 205 of file tbl_val.h.

References dim, etat, Lorene::Grille_val::get_fantome(), gval, Lorene::Dim_tbl::ndim, and tzri.

Scalar Lorene::Tbl_val::to_spectral ( const Map map,
const int  lmax,
const int  lmin = 0,
int  type_inter = 2 
) const

Interpolation from a Tbl_val to a Scalar .

The Scalar is evaluated only in zones [lmin, lmax[.

Parameters:
map [input] The Mapping to which the Tbl_val is interpolated. The symetries of both grids must be the same (see Mg3d and Grille_val documentation), and the spectral grid (between lmin and lmax-1) must be included in the Godunov one. The number of points in $\theta$ and $\phi$ of the spectral grid may be different/domain. Still, the domain with the highest number of points in $\theta$ (resp.$\phi$) must contain the collocation points
lmax [input] index of the outer zone +1
lmin [input] index of the inner zone
type_inter [input] type of interpolation: \ 0 -> uses the INSMTS routine of second derivative minimization\ 1 -> linear interpolation\ 2 -> parabolic interpolation\ 3 -> spline interpolation (not implemented yet)\
Returns:
Scalar containing the value of the field at spectral collocation points.

Definition at line 97 of file tbl_val_interp.C.

References Lorene::Grille_val::compatible(), Lorene::Dim_tbl::dim, dim, etat, Lorene::Grille_val::get_fantome(), Lorene::Map::get_mg(), Lorene::Mg3d::get_np(), Lorene::Mg3d::get_nr(), Lorene::Mg3d::get_nt(), Lorene::Mg3d::get_nzone(), gval, Lorene::Grille_val::interpol1(), Lorene::Grille_val::interpol2(), Lorene::Grille_val::interpol3(), Lorene::Map::phi, Lorene::Map::r, Lorene::Tbl::set(), Lorene::Tbl::set_etat_qcq(), Lorene::Tbl::t, t, Lorene::Map::tet, and Lorene::Grille_val::zr.


Friends And Related Function Documentation

ostream& operator<< ( ostream &  ,
const Tbl_val  
) [friend]

Display.


Member Data Documentation

const Dim_tbl* Lorene::Tbl_val::dim [private]

The Dim_tbl giving the dimensions and number of points (without the hidden cells).

Definition at line 108 of file tbl_val.h.

int Lorene::Tbl_val::etat [private]

logical state (ETATNONDEF , ETATQCQ or ETATZERO ).

Definition at line 103 of file tbl_val.h.

The Grille_val (cartesian or spherical) on which the array is defined.

Definition at line 110 of file tbl_val.h.

The array of double at the nodes.

Definition at line 114 of file tbl_val.h.

The array at x (or $\theta$) interfaces.

Definition at line 118 of file tbl_val.h.

The array at y (or $\phi$) interfaces.

Definition at line 120 of file tbl_val.h.

The array at z (or r) interfaces.

Definition at line 116 of file tbl_val.h.


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

Generated on 7 Dec 2019 for LORENE by  doxygen 1.6.1