24 char tenseur_pde_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Tenseur/tenseur_pde.C,v 1.7 2014/10/13 08:53:42 j_novak Exp $" ;
120 assert (lambda != -1) ;
129 assert (
etat != ETATNONDEF) ;
132 if (
etat == ETATZERO) {
137 for (
int i=0; i<3; i++) {
147 for (
int i=0 ; i<3 ; i++)
148 assert ((*
this)(i).check_dzpuis(4)) ;
151 for (
int i=0 ; i<3 ; i++) {
154 (*this)(i).poisson(*par, vecteur.
set(i)) ;
164 assert (source_scal().check_dzpuis(3)) ;
168 source_scal().poisson(*par, scalaire.
set()) ;
189 for (
int i=0 ; i<3 ; i++)
190 shift.
set(i) = (lambda+2)/2/(lambda+1) * vecteur(i)
191 - (lambda/2/(lambda+1)) * (dxsi(i) + dp(i)) ;
222 assert (lambda != -1) ;
229 assert (
etat != ETATNONDEF) ;
232 if (
etat == ETATZERO) {
239 for (
int i=0 ; i<3 ; i++)
240 assert ((*
this)(i).check_dzpuis(3) ||
241 (*
this)(i).check_dzpuis(4)) ;
246 if ((*
this)(0).check_dzpuis(4))
256 source_scal().poisson(*par, chi.
set());
261 if ((*
this)(0).check_dzpuis(4))
266 for (
int i=0 ; i<3 ; i++)
267 source_vect.
set(i) -= lambda*chi_grad(i) ;
268 assert( *(source_vect.
triad) == *((chi.
gradient()).get_triad()) ) ;
272 for (
int i=0 ; i<3 ; i++)
276 for (
int i=0 ; i<3 ; i++) {
278 source_vect(i).poisson(*par, shift.
set(i)) ;
306 void Tenseur::poisson_vect_tau(
double lambda,
Param& para,
Tenseur& shift
308 assert (lambda != -1) ;
317 assert (
etat != ETATNONDEF) ;
320 if (
etat == ETATZERO) {
325 for (
int i=0; i<3; i++) {
335 for (
int i=0 ; i<3 ; i++)
336 assert ((*
this)(i).check_dzpuis(4)) ;
339 for (
int i=0 ; i<3 ; i++) {
342 (*this)(i).poisson_tau(*par, vecteur.
set(i)) ;
352 assert (source_scal().check_dzpuis(3)) ;
356 source_scal().poisson_tau(*par, scalaire.
set()) ;
363 Tenseur dxsi (auxiliaire.gradient()) ;
377 for (
int i=0 ; i<3 ; i++)
378 shift.
set(i) = (lambda+2)/2/(lambda+1) * vecteur(i)
379 - (lambda/2/(lambda+1)) * (dxsi(i) + dp(i)) ;
388 Tenseur Tenseur::poisson_vect_tau(
double lambda, Tenseur& vecteur,
389 Tenseur& scalaire)
const {
393 resu.set_etat_qcq() ;
394 poisson_vect_tau(lambda, bidon, resu, vecteur, scalaire) ;
406 void Tenseur::poisson_vect_oohara_tau(
double lambda, Param& para, Tenseur& shift,
407 Tenseur& chi)
const {
410 assert (lambda != -1) ;
414 assert (shift.get_valence() == 1) ;
415 assert (shift.get_type_indice(0) ==
type_indice(0)) ;
416 assert (chi.get_valence() == 0) ;
417 assert (
etat != ETATNONDEF) ;
420 if (
etat == ETATZERO) {
421 shift.set_etat_zero() ;
427 for (
int i=0 ; i<3 ; i++)
428 assert ((*
this)(i).check_dzpuis(3) ||
429 (*
this)(i).check_dzpuis(4)) ;
433 copie.dec2_dzpuis() ;
434 if ((*
this)(0).check_dzpuis(4))
435 copie.dec2_dzpuis() ;
440 source_scal.inc2_dzpuis() ;
444 source_scal().poisson_tau(*par, chi.set());
450 if ((*
this)(0).check_dzpuis(4))
451 source_vect.dec_dzpuis() ;
453 Tenseur chi_grad (chi.gradient()) ;
454 chi_grad.inc_dzpuis() ;
456 for (
int i=0 ; i<3 ; i++)
457 source_vect.set(i) -= lambda*chi_grad(i) ;
459 assert( *(source_vect.triad) == *((chi.gradient()).get_triad()) ) ;
461 for (
int i=0 ; i<3 ; i++) {
464 source_vect(i).poisson_tau(*par, shift.set(i)) ;
469 shift.set_triad( *(source_vect.triad) ) ;
476 Tenseur Tenseur::poisson_vect_oohara_tau(
double lambda, Tenseur& scalaire)
const {
480 resu.set_etat_qcq() ;
481 poisson_vect_oohara_tau(lambda, bidon, resu, scalaire) ;