* fichier : tens.dgibi ************************************************************************ ************************************************************************ ************************************************************************ * NOM : TENS * DESCRIPTION : Test de l'operateur TENS. * En particulier PRIN et de TENS PRIN * qui doivent donner les memes resultats. * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stephane GOUNAND (CEA/DES/ISAS/DM2S/SEMT/LTA) * mel : stephane.gounand@cea.fr ********************************************************************** * VERSION : v1, 27/07/2025, version initiale * HISTORIQUE : v1, 27/07/2025, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * interact=faux ; * 'DEBP' testtens ; 'ARGU' cha ; 'SI' ('ET' ('NEG' tcha 'CHPOINT') ('NEG' tcha 'MCHAML')) ; 'FINS' ; * Lecture des valeurs propres 'REPE' bdim vdim ; lvp = 'ET' lvp vp ; 'FIN' bdim ; 'FINS' ; * lsym = 'NEG' ncom ('**' vdim 2) ; * tolabs = tol1 '*' 10. ; lok = vrai ; * Debut des test * NORM2 ch2 = 'TENS' 'NORM2' cha ; d2 = 'ABS' ('-' vch2 svp2) ; * vch2b = 0. ; * lcomp = 'EXTR' cha 'COMP' ; dlcomp = 'DIME' lcomp ; * 'REPE' icomp dlcomp ; * mcomp = 'EXTR' lcomp &icomp ; * vcomp = 'MINI' ('EXCO' cha mcomp) ; * vch2b = vch2b '+' ('**' vcomp 2) ; * 'FIN' icomp ; * vch2b = '**' vch2b 0.5 ; td2 = '<' d2 tol3 ; lok = lok 'ET' td2 ; * NORMINF chi = 'TENS' cha 'NORMINF' ; vchi2 = 0. ; 'REPE' icomp dlcomp ; 'FIN' icomp ; di = 'ABS' ('-' vchi2 vchi) ; tdi = '<' di tol1 ; lok = lok 'ET' tdi ; * DET chd = 'TENS' cha 'DET' ; dd = 'ABS' ('-' vchd pvp) ; tdd = '<' dd tol2 ; lok = lok 'ET' tdd ; * TRACE cht = 'TENS' cha 'TRACE' ; dt = 'ABS' ('-' vcht svp) ; tdt = '<' dt tol1 ; lok = lok 'ET' tdt ; 'SI' lsym ; * LOG chl = 'TENS' cha 'LOG' ; trchl = 'TENS' chl 'TRACE' ; dvtr = 'ABS' ('-' vtrchl vtrchl2) ; tdvtr = '<' dvtr tol1 ; lok = lok 'ET' tdvtr ; dtchl = 'TENS' chl 'DET' ; dvdtl = 'ABS' ('-' vdtchl vdtchl2) ; tdvdtl = '<' dvdtl tol3 ; lok = lok 'ET' tdvdtl ; * EXP chx = 'TENS' cha 'EXP' ; trchx = 'TENS' chx 'TRACE' ; dvtr = 'ABS' ('-' vtrchx vtrchx2) ; tdvtr = '<' dvtr tol5 ; lok = lok 'ET' tdvtr ; dtchx = 'TENS' chx 'DET' ; dvdtx = 'ABS' ('-' vdtchx vdtchx2) ; tdvdtx = '<' dvdtx tol4 ; lok = lok 'ET' tdvdtx ; * INVERSE chv = 'TENS' cha 'INVERSE' ; chv2 = 'TENS' 'EXP' ('*' ('TENS' 'LOG' cha) -1.D0) ; tdv = '<' dv tol1 ; lok = lok 'ET' tdv ; * ABS chabs = 'TENS' ('*' cha -1.) 'ABS' ; tda = '<' da tolabs ; lok = lok 'ET' tda ; 'FINS' ; 'FINP' lok ; * lok = vrai ; * * * d1 = '**' 2 0.5 ; g11 = (vx1 '*' d1 '*' vx1) ; * * Décomposition spectrale * 'REPE' bcl 3 ; ibcl = &bcl ; 'SI' ('EGA' ibcl 1) ; dec = dec 'ET' dec2 ; 'FINS' ; 'SI' ('EGA' ibcl 2) ; 'FINS' ; 'SI' ('EGA' ibcl 3) ; 'MESS' 'Operateur TENS PRINCIPA CHAM' ; 'FINS' ; * Test valeur propre dd1 = 'ABS' ('-' d1 d1b) ; tdd1 = '<' dd1 tol ; lok = lok 'ET' tdd1 ; * Test recomposition matrice dcha = '-' cha cha2 ; tdcha = '<' ndcha tol ; lok = lok 'ET' tdcha ; * * Autres fonctions de TENS * ltens = testtens cha d1 ; lok = lok 'ET' ltens ; 'SI' ('NON' ltens) ; 'MESS' '!!! TESTTENS not ok' ; 'SINO' ; 'MESS' 'TESTTENS OK' ; 'FINS' ; 'FIN' bcl ; * * p3 = 0. 1. ; * v1 = 1. 0. ; v2 = 0. 1. ; alf = pi '*' 10. ; d2 = 'EXP' 1. ; * * Recomposition spectrale * g11 = (vx1 '*' d1 '*' vx1) '+' (vx2 '*' d2 '*' vx2) ; g22 = (vy1 '*' d1 '*' vy1) '+' (vy2 '*' d2 '*' vy2) ; g21 = (vy1 '*' d1 '*' vx1) '+' (vy2 '*' d2 '*' vx2) ; * * Test symetrique en non symetrique * ltens = testtens cha d1 d2 ; lok = lok 'ET' ltens ; 'SI' ('NON' ltens) ; 'MESS' '!!! TESTTENS tenseur complet not ok' ; 'SINO' ; 'MESS' 'TESTTENS complet OK' ; 'FINS' ; * * Décomposition spectrale * 'REPE' bcl 3 ; ibcl = &bcl ; 'SI' ('EGA' ibcl 1) ; * Passage noms de composante 'FINS' ; 'SI' ('EGA' ibcl 2) ; 'FINS' ; 'SI' ('EGA' ibcl 3) ; 'MESS' 'Operateur TENS PRINCIPA CHAM' ; 'FINS' ; * Test valeurs propres dd1 = 'ABS' ('-' d1 d1b) ; tdd1 = '<' dd1 tol ; lok = lok 'ET' tdd1 ; dd2 = 'ABS' ('-' d2 d2b) ; tdd2 = '<' dd2 tol ; lok = lok 'ET' tdd2 ; * Test recomposition matrice dcha = '-' cha cha2 ; tdcha = '<' ndcha tol ; lok = lok 'ET' tdcha ; * * Autres fonctions de TENS * ltens = testtens cha d1 d2 ; 'SI' ('NON' ltens) ; 'MESS' '!!! TESTTENS not ok' ; 'SINO' ; 'MESS' 'TESTTENS OK' ; 'FINS' ; 'FIN' bcl ; * * p4 = 0. 0. 1. ; * v3 = 0. 0. -1. ; bet = pi ; d3 = bet ; * * Recomposition spectrale * g11 = (vx1 '*' d1 '*' vx1) '+' (vx2 '*' d2 '*' vx2) '+' (vx3 '*' d3 '*' vx3) ; g22 = (vy1 '*' d1 '*' vy1) '+' (vy2 '*' d2 '*' vy2) '+' (vy3 '*' d3 '*' vy3) ; g33 = (vz1 '*' d1 '*' vz1) '+' (vz2 '*' d2 '*' vz2) '+' (vz3 '*' d3 '*' vz3) ; * g21 = (vy1 '*' d1 '*' vx1) '+' (vy2 '*' d2 '*' vx2) '+' (vy3 '*' d3 '*' vx3) ; g31 = (vz1 '*' d1 '*' vx1) '+' (vz2 '*' d2 '*' vx2) '+' (vz3 '*' d3 '*' vx3) ; g32 = (vz1 '*' d1 '*' vy1) '+' (vz2 '*' d2 '*' vy2) '+' (vz3 '*' d3 '*' vy3) ; * * Test symetrique en non symetrique * ltens = testtens cha d1 d2 d3 ; lok = lok 'ET' ltens ; 'SI' ('NON' ltens) ; 'MESS' '!!! TESTTENS tenseur complet not ok' ; 'SINO' ; 'MESS' 'TESTTENS complet OK' ; 'FINS' ; * * Décomposition spectrale * 'REPE' bcl 3 ; ibcl = &bcl ; 'SI' ('EGA' ibcl 1) ; 'FINS' ; 'SI' ('EGA' ibcl 2) ; 'FINS' ; 'SI' ('EGA' ibcl 3) ; 'MESS' 'Operateur TENS PRINCIPA CHAM' ; 'FINS' ; * Test dd1 = 'ABS' ('-' d1 d1b) ; tdd1 = '<' dd1 tol ; lok = lok 'ET' tdd1 ; dd2 = 'ABS' ('-' d2 d2b) ; tdd2 = '<' dd2 tol ; lok = lok 'ET' tdd2 ; dd3 = 'ABS' ('-' d3 d3b) ; tdd3 = '<' dd3 tol ; lok = lok 'ET' tdd3 ; * Test recomposition matrice dcha = '-' cha cha2 ; tdcha = '<' ndcha tol ; lok = lok 'ET' tdcha ; * * Autres fonctions de TENS * ltens = testtens cha d1 d2 d3 ; lok = lok 'ET' ltens ; 'SI' ('NON' ltens) ; 'MESS' '!!! TESTTENS not ok' ; 'SINO' ; 'MESS' 'TESTTENS OK' ; 'FINS' ; 'FIN' bcl ; * 'SI' ('NON' lok) ; 'MESSAGE' ('CHAINE' 'Il y a eu des erreurs') ; 'ERREUR' 5 ; 'SINON' ; 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ; 'FINSI' ; * 'SI' interact ; 'OPTION' 'ECHO' 1 'DONN' 5 ; 'FINSI' ; * * End of dgibi file TENS * 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales