Lorene::Mtbl Class Reference
Spectral representation.

Multi-domain array. More...

`#include <mtbl.h>`

## Public Member Functions

| Mtbl (const Mg3d &mgrid)
| Constructor.
| Mtbl (const Mg3d *p_mgrid)
| Constructor.
| Mtbl (const Mg3d &, FILE *)
| Constructor from a file (see `sauve(FILE*)`).
| Mtbl (const Coord &c)
| Constructor from a Coord.
| Mtbl (const Mtbl &a)
| Copy constructor.
| ~Mtbl ()
| Destructor.
void | operator= (const Mtbl &)
| Assignement to another `Mtbl`.
void | operator= (double)
| Assignement to a `double`.
void | operator= (int)
| Assignement 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 | annule_hard ()
| Sets the `Mtbl` to zero in a hard way.
void | annule (int l_min, int l_max)
| Sets the `Mtbl` to zero in some domains.
Tbl & | set (int l)
| Read/write of the `Tbl` in a given domain.
const Tbl & | operator() (int l) const
| Read-only of the `Tbl` in a given domain.
double & | set (int l, int k, int j, int i)
| Read/write of a particular element.
double | operator() (int l, int k, int j, int i) const
| Read-only of a particular element.
const Mg3d * | get_mg () const
| Gives the `Mg3d` on which the `Mtbl` is defined.
int | get_etat () const
| Gives the logical state.
int | get_nzone () const
| Gives the number of zones (domains).
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 Mtbl &)
| += Mtbl
void | operator+= (double)
| += double
void | operator-= (const Mtbl &)
| -= Mtbl
void | operator-= (double)
| -= double
void | operator*= (const Mtbl &)
| *= Mtbl
void | operator*= (double)
| *= double
void | operator/= (const Mtbl &)
| /= Mtbl
void | operator/= (double)
| /= double

## Public Attributes

Tbl ** | t
| Array (size `nzone` ) of pointers on the `Tbl` 's.

## Private Member Functions

void | del_t ()
| Logical destructor: dellocates the memory occupied by the `Tbl` array `t` .

## Private Attributes

const Mg3d * | mg
| Pointer on the multi-grid `Mgd3` on which `this` is defined.
int | nzone
| Number of domains (zones).
int | etat
| Logical state (`ETATNONDEF` , `ETATQCQ` or `ETATZERO` ).

## Friends

ostream & | operator<< (ostream &o, const Mtbl &mt)
| Display.

## Detailed Description

Multi-domain array.

()

This class is essentially an array of `Tbl` . It is intended to be used in conjunction with the class `Mtbl_cf` . A `Mtbl` is initialy created with a logical state `NONDEF` . Arithmetic operations are provided with the usual meaning (see below).

Version
  #$Id: mtbl.h,v 1.7 2014/10/13 08:52:36 j_novak Exp $#

Definition at line 118 of file mtbl.h.

## Constructor & Destructor Documentation

## Mtbl() [1/5]

Lorene::Mtbl::Mtbl | ( | const Mg3d & | mgrid | ) |

explicit

Constructor.

Definition at line 124 of file mtbl.C.

References etat, Lorene::Mg3d::get_nzone(), mg, nzone, and t.

## Mtbl() [2/5]

Lorene::Mtbl::Mtbl | ( | const Mg3d * | p_mgrid | ) |

explicit

Constructor.

Definition at line 130 of file mtbl.C.

References etat, Lorene::Mg3d::get_nzone(), mg, nzone, and t.

## Mtbl() [3/5]

Lorene::Mtbl::Mtbl | ( | const Mg3d & | g,
|  | FILE * | fd )

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

Definition at line 182 of file mtbl.C.

References etat, Lorene::fread_be(), mg, nzone, and t.

## Mtbl() [4/5]

Lorene::Mtbl::Mtbl | ( | const Coord & | c | ) |

Constructor from a Coord.

Definition at line 136 of file mtbl.C.

References Lorene::Coord::c, etat, Lorene::Coord::fait(), get_mg(), mg, nzone, and t.

## Mtbl() [5/5]

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

Copy constructor.

Definition at line 162 of file mtbl.C.

References etat, get_etat(), mg, Mtbl(), nzone, set_etat_qcq(), and t.

## ~Mtbl()

Lorene::Mtbl::~Mtbl | ( |  | ) |

Destructor.

Definition at line 156 of file mtbl.C.

References del_t().

## Member Function Documentation

## affiche_seuil()

void Lorene::Mtbl::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 393 of file mtbl.C.

References etat, nzone, and t.

## annule()

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

Sets the `Mtbl` to zero in some domains.

Parameters

  l_min | [input] The `Mtbl` 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,nzone-1) is equivalent to `set_etat_zero()` .

Definition at line 329 of file mtbl.C.

References etat, nzone, set_etat_zero(), and t.

## annule_hard()

void Lorene::Mtbl::annule_hard | ( |  | ) |

Sets the `Mtbl` 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 `Tbl` array `t` , and fills it 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 312 of file mtbl.C.

References etat, mg, nzone, and t.

## del_t()

void Lorene::Mtbl::del_t | ( |  | ) |

private

Logical destructor: dellocates the memory occupied by the `Tbl` array `t` .

Definition at line 277 of file mtbl.C.

References nzone, and t.

## get_etat()

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

inline

Gives the logical state.

Definition at line 277 of file mtbl.h.

References etat.

## get_mg()

const Mg3d * Lorene::Mtbl::get_mg | ( |  | ) | const

inline

Gives the `Mg3d` on which the `Mtbl` is defined.

Definition at line 274 of file mtbl.h.

References mg.

## get_nzone()

int Lorene::Mtbl::get_nzone | ( |  | ) | const

inline

Gives the number of zones (domains).

Definition at line 280 of file mtbl.h.

References nzone.

## operator()() [1/2]

const Tbl & Lorene::Mtbl::operator() | ( | int | l | ) | const

inline

Read-only of the `Tbl` in a given domain.

Parameters

  l | [input] domain index

Definition at line 232 of file mtbl.h.

References etat, nzone, and t.

## operator()() [2/2]

double Lorene::Mtbl::operator() | ( | int | l,
|  | int | k,
|  | int | j,
|  | int | i ) const

inline

Read-only of a particular element.

Parameters

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

Definition at line 259 of file mtbl.h.

References etat, nzone, and t.

## operator*=() [1/2]

void Lorene::Mtbl::operator*= | ( | const Mtbl & | mi | ) |

*= Mtbl

Definition at line 557 of file mtbl_arithm.C.

References etat, get_etat(), get_mg(), mg, Mtbl(), nzone, set_etat_zero(), and t.

## operator*=() [2/2]

void Lorene::Mtbl::operator*= | ( | double |  | ) |

*= double

Definition at line 433 of file mtbl.C.

References Lorene::c_est_pas_fait().

## operator+=() [1/2]

void Lorene::Mtbl::operator+= | ( | const Mtbl & | mi | ) |

+= Mtbl

Definition at line 513 of file mtbl_arithm.C.

References annule_hard(), etat, get_etat(), get_mg(), mg, Mtbl(), nzone, and t.

## operator+=() [2/2]

void Lorene::Mtbl::operator+= | ( | double |  | ) |

+= double

Definition at line 423 of file mtbl.C.

References Lorene::c_est_pas_fait().

## operator-=() [1/2]

void Lorene::Mtbl::operator-= | ( | const Mtbl & | mi | ) |

-= Mtbl

Definition at line 535 of file mtbl_arithm.C.

References annule_hard(), etat, get_etat(), get_mg(), mg, Mtbl(), nzone, and t.

## operator-=() [2/2]

void Lorene::Mtbl::operator-= | ( | double |  | ) |

-= double

Definition at line 428 of file mtbl.C.

References Lorene::c_est_pas_fait().

## operator/=() [1/2]

void Lorene::Mtbl::operator/= | ( | const Mtbl & |  | ) |

/= Mtbl

References Mtbl().

## operator/=() [2/2]

void Lorene::Mtbl::operator/= | ( | double |  | ) |

/= double

Definition at line 438 of file mtbl.C.

References Lorene::c_est_pas_fait().

## operator=() [1/3]

void Lorene::Mtbl::operator= | ( | const Mtbl & | mtc | ) |

Assignement to another `Mtbl`.

Definition at line 224 of file mtbl.C.

References get_etat(), mg, Mtbl(), nzone, set_etat_qcq(), set_etat_zero(), and t.

## operator=() [2/3]

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

Assignement to a `double`.

Definition at line 243 of file mtbl.C.

References nzone, set_etat_qcq(), set_etat_zero(), t, and Lorene::x.

## operator=() [3/3]

void Lorene::Mtbl::operator= | ( | int | m | ) |

Assignement to a `int`.

Definition at line 257 of file mtbl.C.

References nzone, set_etat_qcq(), set_etat_zero(), and t.

## sauve()

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

Save in a file.

Definition at line 209 of file mtbl.C.

References etat, Lorene::fwrite_be(), mg, nzone, and t.

## set() [1/2]

Tbl & Lorene::Mtbl::set | ( | int | l | ) |

inline

Read/write of the `Tbl` in a given domain.

Parameters

  l | [input] domain index

Definition at line 221 of file mtbl.h.

References etat, nzone, and t.

## set() [2/2]

double & Lorene::Mtbl::set | ( | int | l,
|  | int | k,
|  | int | j,
|  | int | i )

inline

Read/write of a particular element.

Parameters

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

Definition at line 245 of file mtbl.h.

References etat, nzone, and t.

## set_etat_nondef()

void Lorene::Mtbl::set_etat_nondef | ( |  | ) |

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

Deallocates the memory occupied by the `Tbl` array `t` .

Definition at line 293 of file mtbl.C.

References del_t(), and etat.

## set_etat_qcq()

void Lorene::Mtbl::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 `Tbl` array `t` .

Definition at line 299 of file mtbl.C.

References etat, mg, nzone, and t.

## set_etat_zero()

void Lorene::Mtbl::set_etat_zero | ( |  | ) |

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

Deallocates the memory occupied by the `Tbl` array `t` .

Definition at line 287 of file mtbl.C.

References del_t(), and etat.

## Friends And Related Symbol Documentation

## operator<<

ostream & operator<< | ( | ostream & | o,
|  | const Mtbl & | mt )

friend

Display.

Definition at line 365 of file mtbl.C.

References get_etat(), get_nzone(), Mtbl(), nzone, operator<<, and t.

## Member Data Documentation

## etat

int Lorene::Mtbl::etat

private

Logical state (`ETATNONDEF` , `ETATQCQ` or `ETATZERO` ).

Definition at line 128 of file mtbl.h.

## mg

const Mg3d* Lorene::Mtbl::mg

private

Pointer on the multi-grid `Mgd3` on which `this` is defined.

Definition at line 124 of file mtbl.h.

## nzone

int Lorene::Mtbl::nzone

private

Number of domains (zones).

Definition at line 126 of file mtbl.h.

## t

Tbl** Lorene::Mtbl::t

Array (size `nzone` ) of pointers on the `Tbl` 's.

Definition at line 132 of file mtbl.h.

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

- mtbl.h
- mtbl.C
- mtbl_arithm.C