*
************************************************************************
* Section : Mathematiques Fonctions
************************************************************************
* fichier : pvec.dgibi
*
'OPTI' 'ECHO' 0 ;
*
'SAUTER' 2 'LIGNE' ;
'MESSAGE' ' Execution de pvec.dgibi' ;
'SAUTER' 2 'LIGNE' ;
*
interact = faux ;
*
************************************************************************
* NOM         : PVEC
* DESCRIPTION : Cas-test pour l'opérateur PVEC avec des CHPOs
*               On vérifie en 2D :
*               | PVEC A |^2 = | A | ^ 2
*               | PSCA A (PVEC A) |^2 = 0
*               et en 3D l'égalité :
*               | PVEC A B |^2 + | PSCA A B |^2 = | A |^2 | B |^2
*
*
* LANGAGE     : GIBIANE-CAST3M
* AUTEUR      : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
*               mél : stephane.gounand@cea.fr
**********************************************************************
* VERSION    : v1, 30/09/2011, version initiale
* HISTORIQUE : v1, 30/09/2011, création
* HISTORIQUE :
* HISTORIQUE :
************************************************************************
*
lpass = vrai ;
'OPTI' 'DIME' 2 'ELEM' 'QUA4' ;
p0 = 0. 0. ; p1 = 1. 0.22 ;
gen1 = 'DROIT' 2 p0 p1 ;
s1 =  'TRANSLATION' gen1 2 (0. 1.) ;
gen2 = 'COTE' 3 s1 ;
s2 =  'TRANSLATION' gen2 2 (0. 1.) ;
gen3 = 'COTE' 3 s2 ;
s3 =  'TRANSLATION' gen3 2 (0. 1.) ;
st = s1 'ET' s2 'ET' s3 ;
*'TRACER' st ;
ux1 = 'BRUIT' 'BLAN' 'UNIF' 0. 1. (s1 'ET' s2) ;
uy1 = 'BRUIT' 'BLAN' 'UNIF' 0. 1. (s1 'ET' s2) ;

vA = ('NOMC' 'UX' ux1) '+'  ('NOMC' 'UY' uy1) ;
*vB = ('NOMC' 'FX' ux2) '+'  ('NOMC' 'FY' uy2) ;

l1 = 'MOTS' 'UX' 'UY' ; l2 = 'MOTS' 'FX' 'FY' ;

veca = 'PVEC' vA l1 l2 ;
na   = 'PSCAL' vA vA l1 l1 ;
nveca = 'PSCAL' veca veca l2 l2 ;
aveca = 'PSCAL' vA veca l1 l2 ;
naveca = '**' aveca 2 ;
*
nna = 'MAXIMUM' ('-' na nveca) 'ABS' ;
nnb = 'MAXIMUM' naveca ;
*
tolerr = 1.D-13 ;
tst1 = 'EGA' nna 0. tolerr ;
tst2 = 'EGA' nnb 0. tolerr ;
*
'OPTI' 'DIME' 3 ;
*
uz1 = 'BRUIT' 'BLAN' 'UNIF' 0. 1. (s1 'ET' s2) ;
ux2 = 'BRUIT' 'BLAN' 'UNIF' 0. 1. (s1 'ET' s2 'ET' s3) ;
uy2 = 'BRUIT' 'BLAN' 'UNIF' 0. 1. (s2 'ET' s3) ;
uz2 = 'BRUIT' 'BLAN' 'UNIF' 0. 1. s2  ;
*
vA = ('NOMC' 'UX' ux1) '+'  ('NOMC' 'UY' uy1) '+' ('NOMC' 'UZ' uz1) ;
vB = ('NOMC' 'FX' ux2) '+'  ('NOMC' 'FY' uy2) '+' ('NOMC' 'FZ' uz2) ;
l1 = 'MOTS' 'UX' 'UY' 'UZ' ; l2 = 'MOTS' 'FX' 'FY' 'FZ' ;
*
avecb = 'PVEC' vA vB l1 l2 l1 ;
ascab = 'PSCAL' vA vB l1 l2 ;

navecb = 'PSCAL' avecb avecb l1 l1 ;
nascab = '**' ascab 2 ;
na     = 'PSCAL' vA vA l1 l1 ;
nb     = 'PSCAL' vB vB l2 l2 ;
nab = '*' na nb ;
*
res = nab '-' navecb '-' nascab ;
nres = 'MAXIMUM' res 'ABS' ;
tst3 = 'EGA' nnb 0. tolerr ;
tst = tst1 'ET' tst2 'ET' tst3 ;
'MESSAGE' ('CHAINE' 'Test :')   ;
'MESSAGE' ('CHAINE' '         nna  = ' nna )  ;
'MESSAGE' ('CHAINE' '         nnb  = ' nnb )  ;
'MESSAGE' ('CHAINE' '         nres = ' nres)  ;
'SI' tst ;
   'MESSAGE' 'Test OK' ;
'SINON' ;   
   'MESSAGE' '!!! Test not passed  ' ;
'FINSI' ;
lpass = lpass 'ET' tst ;
*
'SAUTER' 2 'LIGNE' ;
'SI' lpass ;
   'MESSAGE' 'Tout sest bien passe' ;
'SINON' ;
   'MESSAGE' 'Il y a eu des erreurs' ;
'FINSI' ;   
'SAUTER' 2 'LIGNE' ;
'SI' interact ;
   'OPTION' 'DONN' 5 'ECHO' 1 ;
'FINSI' ;   
'SI' ('NON' lpass) ;
   'ERREUR' 5 ;
'FINSI' ;   
*
'FIN' ; 
 

 

