* fichier : elno.dgibi ************************************************************* * TEST ELNO * * On teste l'operateur 'ELNO' sur un champ lineaire * * Le maillage est fait de TRI3 'ET' QUA4 * * * * On teste l'operateur 'ELNO' dans le cas VF * * * * A. BECCANTINI TTMF NOVEMBRE 1998 * ************************************************************* * Janvier 2004: ajoute d'un cas test VF 2D * Janvier 2004: ajoute d'un cas test VF 3D * 'OPTION' 'ELEM' 'QUA4' ; 'OPTION' 'ISOV' 'SULI' ; 'OPTION' 'ECHO' 0 ; 'OPTION' 'TRAC' 'X' ; GRAPH = FAUX; ************ * MAILLAGE * ************ * r1 = rayon du demi-cercle obstacle * r2 = rayon du demi-cercle obstacle + domaine interieur * r3 = rayon du demi-cercle obstacle + domaine interieur + Entree * r4 = rayon de la ligne moyen * coef1 = coefficient de l'ellipse raf = 25 ; coef1 = 1.8 ; NbCer = ( 2 '*' raf) '+' 1 ; NbDroi = ( 2 '*' raf) '+' 1 ; r1 = 1.0 ; r2 = 2.85 ; dx = (r2 '-' r1) '/' NbCer ; r3 = r2 '+' dx ; * 0 < icel < 1 icel = 0.1; r4 = r1 '+' ((r2 '-' r1) '*' icel) ; r40 = ( r2 '/' coef1) ; r5 = r1 '+' ((r40 '-' r1) '*' icel) ; A0 = 0.0 0.0 ; A1 = 0.0 r1 ; A2 = 0.0 r2 ; A3 = 0.0 r3 ; A4 = (-1.0 '*' r2 '/' coef1) 0.0 ; A5 = (-1.0 '*' r3 '/' coef1) 0.0 ; A6 = 0.0 (-1.0 '*' r2) ; A7 = 0.0 (-1.0 '*' r3) ; A8 = 0.0 (-1.0 '*' r1) ; A9 = (-1.0 '*' r1) 0.0 ; A10 = 0.0 (-1.0 '*' r4) ; A11 = (-1.0 '*' r5 ) 0.0 ; A12 = 0.0 (1.0 '*' r4) ; Lig1 = 'DROIT' NbDroi A1 A2 ; Lig3 = 'DROIT' NbDroi A6 A8 ; Lig5 = 'DROIT' 1 A2 A3 ; Lig7 = 'DROIT' 1 A7 A6 ; * **** Ligne pour evolution simmetrie * * 'OPTION' 'ELEM' 'TRI3' ; Domint = 'DALLER' Lig1 Lig2 Lig3 Lig4 ; 'OPTION' 'ELEM' 'QUA4' ; Entree = 'DALLER' Lig5 Lig6 Lig7 Lig2 'COULEUR' 'ROUGE' ; 'ELIMINATION' Entree Domint 1D-4 ; Fr1 = Lig3 'TRANSLATION' 1 (dx 0.0) 'COULEUR' 'VERT' ; Fr2 = Lig1 'TRANSLATION' 1 (dx 0.0) 'COULEUR' 'VERT' ; Sortie = Fr1 'ET' Fr2 ; 'ELIMINATION' Sortie Domint 1D-4 ; Front = Entree 'ET' Sortie ; 'ELIMINATION' Front 1D-4 ; Domtot = Domint 'ET' Front ; 'ELIMINATION' Domtot 1D-4 ; ************************************************* ***** TEST D'ELNO SUR UN CHAMP CONSTANTE ******* ************************************************* ERRO = TCHPOS1 '-' TCHPOS ; ERRO = ('ABS' ERRO) '/' ('ABS' TCHPOS) ; * **** On test 'ELNO' sur le maillage interieur * TCHPOS1 = 'KCHT' $DOMTOT 'SCAL' 'SOMMET' TCHPOS1 ERRO1 = TCHPOS1 '-' TCHPOS ; ERRO1 = ('ABS' ERRO1) '/' ('ABS' TCHPOS) ; 'SI' GRAPH; 'TRACER' DOMTOT 'TITR' 'Maillage' ; 'TRACER' DOMTOT TCHPOS ('CONTOUR' DOMTOT) 15 'TITRE' ('CHAINE' 'CHAMP ORIGINAL, Nelem =' NELE) ; 'TRACER' DOMTOT TCHPOS1 ('CONTOUR' DOMTOT) 15 'TRACER' DOMTOT ERRO 15 ('CONTOUR' DOMTOT) 'TITRE' ('CHAINE' 'Erreur, Nelem =' NELE) ; 'TRACER' DOMTOT ERRO1 15 ('CONTOUR' DOMTOT) 'TITRE' ('CHAINE' 'Erreur sur le domaine interieur, Nelem=', NELE) ; 'FINSI' ; 'SI' (('MAXIMUM' ERRO ) '>' 1D-15); 'MESSAGE' 'Erreur =' ('MAXIMUM' ERRO) ; 'ERREUR' 5 ; 'FINSI' ; 'SI' (('MAXIMUM' ERRO1 'ABS' ) '>EG' 1D-15) ; 'MESSAGE' 'Erreur =' ('MAXIMUM' ERRO1) ; 'ERREUR' 5 ; 'FINSI' ; ************************************************* ***** TEST D'ELNO SUR UN CHAMP LINEAIRE ******* ************************************************* XXS YYS = 'COORDONNEE' ( $DOMTOT . 'SOMMET' ) ; TCHPOS = (3 '*' XXS) '+' (4 '*' YYS) ; tcel = 'MINIMUM' TCHPOS ; TCHPOS = ((-1 '*' tcel) '+' 1) '+' TCHPOS ; XXC YYC = 'COORDONNEE' ( $DOMTOT . 'CENTRE' ) ; TCHPOC = (3 '*' XXC) '+' (4 '*' YYC) ; TCHPOC = ((-1 '*' tcel) '+' 1) '+' TCHPOC ; ERRO = TCHPOS1 '-' TCHPOS ; ERRO = ('ABS' ERRO) '/' ('ABS' TCHPOS) ; * **** On test 'ELNO' sur le maillage interieur * TCHPOS1 = 'KCHT' $DOMTOT 'SCAL' 'SOMMET' TCHPOS1 ERRO1 = TCHPOS1 '-' TCHPOS ; ERRO1 = ('ABS' ERRO1) '/' ('ABS' TCHPOS) ; 'SI' GRAPH; 'TRACER' DOMTOT 'TITR' 'Maillage' ; 'TRACER' DOMTOT TCHPOS ('CONTOUR' DOMTOT) 15 'TITRE' ('CHAINE' 'CHAMP ORIGINAL, Nelem =' NELE); 'TRACER' DOMTOT TCHPOS1 ('CONTOUR' DOMTOT) 15 'TRACER' DOMTOT ERRO 15 ('CONTOUR' DOMTOT) 'TITRE' ('CHAINE' 'Erreur, Nelem =' NELE); 'TRACER' DOMTOT ERRO1 15 ('CONTOUR' DOMTOT) 'TITRE' ('CHAINE' 'Erreur sur le domaine interieur, Nelem=', NELE); 'FINSI' ; 'SI' (('MAXIMUM' ERRO 'ABS' ) '>EG' 1D-1); 'MESSAGE' 'Erreur =' ('MAXIMUM' ERRO); 'ERREUR' 5; 'FINSI' ; 'SI' (('MAXIMUM' ERRO1 'ABS' ) '>EG' 5D-2); 'MESSAGE' 'Erreur =' ('MAXIMUM' ERRO1); 'ERREUR' 5; 'FINSI' ; ************************************************* ***** PRINCIPLE DE MAXIMUM - MINIMUM ******* ************************************************* TCHPOC = 'BRUIT' 'BLAN' 'UNIF' 0.0D0 1.0D0 $DOMTOT . 'CENTRE' ; MAXC = 'MAXIMUM' TCHPOC ; MINC = 'MINIMUM' TCHPOC ; MAXS = 'MAXIMUM' TCHPOS1 ; MINS = 'MINIMUM' TCHPOS1 ; ERRO = MAXC '-' MAXS ; ERRO1 = MINS '-' MINC ; 'SI' ('OU' (ERRO < 0) (ERRO1 < 0)); 'MESSAGE' 'Violation principe MAX MIN' ; 'FINSI' ; * ****** VF * * TCHPOS = (3.0 '*' ('COORDONNEE' 1 ($DOMTOT . 'SOMMET'))) '+' (2.0 '*' ('COORDONNEE' 2 ($DOMTOT . 'SOMMET'))) ; * TCHPOC = (3.0 '*' ('COORDONNEE' 1 ($DOMTOT . 'CENTRE'))) '+' (2.0 '*' ('COORDONNEE' 2 ($DOMTOT . 'CENTRE'))) ; * 'P1DY' 2.0 ; ERRO = 'MAXIMUM' (TCHPOS1 '-' TCHPOS) 'ABS' ; 'SI' (ERRO > 1.0D-14) ; 'ERREUR' 'Probleme ELNO VF' ; 'FINSI' ; * 3D VF A1 = 0.0 0.0 0.0 ; A2 = 0.0 1.0 0.0 ; A3 = 1.0 0.0 0.0 ; A1A2A3 = A1 'DROIT' 3 A2 'DROIT' 4 A3 'DROIT' 2 A1 ; BAS1 = 'SURFACE' A1A2A3 'PLAN' ; DOMTOT = BAS1 'VOLUME' 4 BAS2 ; TCHPOS = (3.0 '*' ('COORDONNEE' 1 ($DOMTOT . 'SOMMET'))) '+' (2.0 '*' ('COORDONNEE' 2 ($DOMTOT . 'SOMMET'))) '+' (5.0 '*' ('COORDONNEE' 3 ($DOMTOT . 'SOMMET'))) ;; * TCHPOC = (3.0 '*' ('COORDONNEE' 1 ($DOMTOT . 'CENTRE'))) '+' (2.0 '*' ('COORDONNEE' 2 ($DOMTOT . 'CENTRE'))) '+' (5.0 '*' ('COORDONNEE' 3 ($DOMTOT . 'CENTRE'))) ; * 'P1DY' 2.0 'P1DZ' 5.0 ; ERRO = 'MAXIMUM' (TCHPOS1 '-' TCHPOS) 'ABS' ; 'SI' (ERRO > 1.0D-14) ; 'ERREUR' 'Probleme ELNO VF' ; 'FINSI' ; 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales