73 assert(t1.
get_etat() != ETATNONDEF) ;
83 assert(t1.
get_etat() != ETATNONDEF) ;
93 for (
int i=0 ; i<r.get_taille() ; i++)
94 (r.t)[i] = - (t1.
t)[i] ;
96 for (
int i=0 ; i<r.get_taille_i(0) ; i++)
97 (r.tzri)[i] = - (t1.
tzri)[i] ;
99 if (t1.
txti != 0x0)
for (
int i=0 ; i<r.get_taille_i(1) ; i++)
100 (r.txti)[i] = - (t1.
txti)[i] ;
102 if (t1.
typi != 0x0)
for (
int i=0 ; i<r.get_taille_i(2) ; i++)
103 (r.typi)[i] = - (t1.
typi)[i] ;
118 assert(t1.
get_etat() != ETATNONDEF) ;
119 assert(t2.
get_etat() != ETATNONDEF) ;
121 for (
int i=0 ; i<t1.
get_ndim() ; i++) {
138 for (
int i=0 ; i<r.get_taille() ; i++) {
139 (r.t)[i] += (t2.
t)[i] ;
141 for (
int i=0 ; i<r.get_taille_i(0) ; i++)
142 (r.tzri)[i] += (t2.
tzri)[i] ;
144 if (t1.
txti != 0x0)
for (
int i=0 ; i<r.get_taille_i(1) ; i++)
145 (r.txti)[i] *= (t2.
txti)[i] ;
147 if (t1.
typi != 0x0)
for (
int i=0 ; i<r.get_taille_i(2) ; i++)
148 (r.typi)[i] *= (t2.
typi)[i] ;
160 assert(t1.
get_etat() != ETATNONDEF) ;
163 if ( x ==
double(0) ) {
196 return t1 + double(n) ;
203 return t1 + double(n) ;
217 assert(t1.
get_etat() != ETATNONDEF) ;
218 assert(t2.
get_etat() != ETATNONDEF) ;
220 for (
int i=0 ; i<t1.
get_ndim() ; i++) {
237 for (
int i=0 ; i<r.get_taille() ; i++) {
238 (r.t)[i] -= (t2.
t)[i] ;
240 for (
int i=0 ; i<r.get_taille_i(0) ; i++)
241 (r.tzri)[i] -= (t2.
tzri)[i] ;
243 if (t1.
txti != 0x0)
for (
int i=0 ; i<r.get_taille_i(1) ; i++)
244 (r.txti)[i] -= (t2.
txti)[i] ;
246 if (t1.
typi != 0x0)
for (
int i=0 ; i<r.get_taille_i(2) ; i++)
247 (r.typi)[i] -= (t2.
typi)[i] ;
260 assert(t1.
get_etat() != ETATNONDEF) ;
263 if ( x ==
double(0) ) {
290 return t1 - double(n) ;
298 assert(t1.
get_etat() != ETATNONDEF) ;
301 if ( x ==
double(0) ) {
327 return double(n) - t1 ;
339 assert(t1.
get_etat() != ETATNONDEF) ;
340 assert(t2.
get_etat() != ETATNONDEF) ;
342 for (
int i=0 ; i<t1.
get_ndim() ; i++) {
359 for (
int i=0 ; i<r.get_taille() ; i++) {
360 (r.t)[i] *= (t2.
t)[i] ;
362 for (
int i=0 ; i<r.get_taille_i(0) ; i++)
363 (r.tzri)[i] *= (t2.
tzri)[i] ;
365 if (t1.
txti != 0x0)
for (
int i=0 ; i<r.get_taille_i(1) ; i++)
366 (r.txti)[i] *= (t2.
txti)[i] ;
368 if (t1.
typi != 0x0)
for (
int i=0 ; i<r.get_taille_i(2) ; i++)
369 (r.typi)[i] *= (t2.
typi)[i] ;
380 assert(t1.
get_etat() != ETATNONDEF) ;
383 if ((t1.
get_etat() == ETATZERO) || ( x ==
double(1) )) {
392 if (x ==
double(0)) {
396 for (
int i=0 ; i<r.get_taille() ; i++) {
399 for (
int i=0 ; i<r.get_taille_i(0) ; i++)
402 if (t1.
txti != 0x0)
for (
int i=0 ; i<r.get_taille_i(1) ; i++)
405 if (t1.
typi != 0x0)
for (
int i=0 ; i<r.get_taille_i(2) ; i++)
426 return t1 * double(n) ;
433 return t1 * double(n) ;
445 assert(t1.
get_etat() != ETATNONDEF) ;
446 assert(t2.
get_etat() != ETATNONDEF) ;
448 for (
int i=0 ; i<t1.
get_ndim() ; i++) {
454 cout <<
"Division by 0 in Tbl_val/Tbl_val !" << endl ;
466 for (
int i=0 ; i<r.get_taille() ; i++) {
467 (r.t)[i] /= (t2.
t)[i] ;
469 for (
int i=0 ; i<r.get_taille_i(0) ; i++)
470 (r.tzri)[i] /= (t2.
tzri)[i] ;
472 if (t1.
txti != 0x0)
for (
int i=0 ; i<r.get_taille_i(1) ; i++)
473 (r.txti)[i] /= (t2.
txti)[i] ;
475 if (t1.
typi != 0x0)
for (
int i=0 ; i<r.get_taille_i(2) ; i++)
476 (r.typi)[i] /= (t2.
typi)[i] ;
488 assert(t1.
get_etat() != ETATNONDEF) ;
489 if ( x ==
double(0) ) {
490 cout <<
"Division by 0 in Tbl_val/double !" << endl ;
495 if ((t1.
get_etat() == ETATZERO) || ( x ==
double(1) )) {
503 for (
int i=0 ; i<r.get_taille() ; i++) {
506 for (
int i=0 ; i<r.get_taille_i(0) ; i++)
509 if (t1.
txti != 0x0)
for (
int i=0 ; i<r.get_taille_i(1) ; i++)
512 if (t1.
typi != 0x0)
for (
int i=0 ; i<r.get_taille_i(2) ; i++)
524 return t1 / double(n) ;
532 assert(t1.
get_etat() != ETATNONDEF) ;
536 cout <<
"Division by 0 in double/Tbl_val !" << endl ;
545 if ( x ==
double(0) ) {
550 for (
int i=0 ; i<r.get_taille() ; i++) {
551 (r.t)[i] = x / (t1.
t)[i] ;
553 for (
int i=0 ; i<r.get_taille_i(0) ; i++)
554 (r.tzri)[i] = x / (t1.
tzri)[i] ;
556 if (t1.
txti != 0x0)
for (
int i=0 ; i<r.get_taille_i(1) ; i++)
557 (r.txti)[i] = x / (t1.
txti)[i] ;
559 if (t1.
typi != 0x0)
for (
int i=0 ; i<r.get_taille_i(2) ; i++)
560 (r.typi)[i] = x / (t1.
typi)[i] ;
573 return double(n) / t1 ;
584 assert(
etat != ETATNONDEF) ;
585 assert(ti.
get_etat() != ETATNONDEF) ;
597 for (
int i=0 ; i<n ; i++) {
612 for (
int i=0 ; i<n ; i++) {
626 cout <<
"etat inconnu " << __FILE__ << endl ;
637 assert(
etat != ETATNONDEF) ;
640 if ( x ==
double(0) ) {
649 for (
int i=0 ; i<n ; i++) {
663 for (
int i=0 ; i<n ; i++) {
678 cout <<
"etat inconnu " << __FILE__ << endl ;
690 assert(
etat != ETATNONDEF) ;
691 assert(ti.
get_etat() != ETATNONDEF) ;
703 for (
int i=0 ; i<n ; i++) {
718 for (
int i=0 ; i<n ; i++) {
733 cout <<
"etat inconnu " << __FILE__ << endl ;
744 assert(
etat != ETATNONDEF) ;
747 if ( x ==
double(0) ) {
756 for (
int i=0 ; i<n ; i++) {
771 for (
int i=0 ; i<n ; i++) {
786 cout <<
"etat inconnu " << __FILE__ << endl ;
798 assert(
etat != ETATNONDEF) ;
799 assert(ti.
get_etat() != ETATNONDEF) ;
802 if (
etat == ETATZERO) {
811 assert(
etat == ETATQCQ) ;
830 assert(
etat != ETATNONDEF) ;
833 if ( x ==
double(0) ) {
837 if (
etat == ETATZERO) {
842 assert(
etat == ETATQCQ) ;
862 assert(
etat != ETATNONDEF) ;
863 assert(ti.
get_etat() != ETATNONDEF) ;
867 cout <<
"Division by 0 in Tbl_val::operator/=(const Tbl_val &) !" << endl ;
870 if (
etat == ETATZERO) {
875 assert(
etat == ETATQCQ) ;
878 for (
int i=0 ; i<n ; i++) {
896 assert(
etat != ETATNONDEF) ;
899 if ( x ==
double(0) ) {
900 cout <<
"Division by 0 in Tbl_val::operator/=(double ) !" << endl ;
903 if (
etat == ETATZERO) {
908 assert(
etat == ETATQCQ) ;
910 for (
int i=0 ; i<n ; i++) {
int get_ndim() const
Gives the number of dimensions (ie dim->ndim )
Base_val operator*(const Base_val &, const Base_val &)
This operator is used when calling multiplication or division of Valeur .
int etat
logical state (ETATNONDEF , ETATQCQ or ETATZERO ).
void operator+=(const Tbl_val &)
Addition of a Tbl_val to this.
Cmp operator/(const Cmp &, const Cmp &)
Cmp / Cmp.
void set_etat_qcq()
Sets the logical state to ETATQCQ (ordinary state).
void operator-=(const Tbl_val &)
Subtraction of a Tbl_val to this.
void operator/=(const Tbl_val &)
Division of this by a Tbl_val.
void operator*=(const Tbl_val &)
Multiplication of this by a Tbl_val.
int get_taille_i(int i) const
Gives the size of the interface arrays (including the hidden cells)
Cmp operator+(const Cmp &)
int get_etat() const
Gives the logical state.
void set_etat_zero()
Sets the logical state to ETATZERO (zero).
double * tzri
The array at z (or r) interfaces.
Finite-difference array intended to store field values.
double * typi
The array at y (or ) interfaces.
int get_dim(int i) const
Gives the i th dimension (ie dim->dim[i] , without hidden cells)
double * t
The array of double at the nodes.
int get_taille() const
Gives the size of the node array (including the hidden cells)
Cmp operator-(const Cmp &)
- Cmp
double * txti
The array at x (or ) interfaces.
const Grille_val * gval
The Grille_val (cartesian or spherical) on which the array is defined.
const Grille_val * get_grille() const
Returns a pointer on the grid on which the Tbl_val is defined.