* fichier : pent3D3.dgibi ************************************************************ ************************************************************ **** APPROCHE VF "Cell-Centred Formulation". **** **** OPÉRATEUR PENT, pour le calcul des gradients et **** **** des limiteurs **** **** Cas test: calcul du gradient en 3D avec condition **** **** de 'TYPE' mur **** **** **** **** A. BECCANTINI, TTMF MAI 1998 **** **** **** **** A. BECCANTINI, LTMF MARS 2000 **** **** Parametres d'erreurs eccessives pour**** **** les machines SUN 'ET' HP **** ************************************************************ ************************************************************ 'OPTION' 'ECHO' 1 ; 'OPTION' 'ELEM' 'CUB8' ; 'OPTION' 'TRAC' 'X' ; GRAPH=FAUX; * *** MAILLAGE * A0 = 0.0D0 0.0D0 0.0D0; A1 = 3.0D0 0.0D0 0.0D0; A2 = 3.0D0 3.0D0 0.0D0; A3 = 0.0D0 3.0D0 0.0D0; B0 = 0.0D0 0.0D0 3.0D0; B1 = 3.0D0 0.0D0 3.0D0; B2 = 3.0D0 3.0D0 3.0D0; B3 = 0.0D0 3.0D0 3.0D0; N=7; N1=7; LIN1 = A0 DROIT N1 A1; LIN2 = A1 DROIT N1 A2; LIN3 = A2 DROIT N1 A3; LIN4 = A3 DROIT N1 A0; LI1 = B0 DROIT N B1; LI2 = B1 DROIT N B2; LI3 = B2 DROIT N B3; LI4 = B3 DROIT N B0; L1 = A0 DROIT N B0; L2 = A1 DROIT N B1; L3 = A2 DROIT N B2; L4 = A3 DROIT N B3; *DOMTOT=(S1 et S2 et S3 et S4 et S5 et S6) 'VOLU'; * **** Le domaine interne * GCTOT = DOMTOT 'ELEM' 'APPUYE' 'LARGEMENT' (S1 et S2 et S3 et S4 et S5 et S6); MDOMTOT = TDOMTOT . 'QUAF'; MDOMINT = TDOMINT . 'QUAF'; MGCTOT = TGCTOT . 'QUAF'; $DOMTOT1 = 'MODELISER' MDOMTOT 'NAVIER_STOKES' 'LINE' ; $DOMINT1 = 'MODELISER' MDOMINT 'NAVIER_STOKES' 'LINE' ; $GCTOT1 = 'MODELISER' MGCTOT 'NAVIER_STOKES' 'LINE' ; * *** Calcul du gradient pour un champ lineaire * COEF1X = 2.01517 ; COEF1Y = 3.1421 ; COEF1Z = 1.5; COEF2X = -2.7 ; COEF2Y = -3.21 ; COEF2Z = -0.56; CHP1 = (COEF1X '*' XX) '+' (COEF1Y '*' YY) '+' (COEF1Z '*' ZZ) ; CHP2 = (COEF2X '*' XX) '+' (COEF2Y '*' YY) '+' (COEF2Z '*' ZZ); * CHP3 = (COEF2X '*' XX) '+' (COEF2Y '*' YY) '+' (COEF2Z '*' ZZ); CHP = CHP1 'ET' CHP2 'ET' CHP3 ; * **** Connectivite entre les symetriques * P0 = ELE0 'POINT' 1; X0 Y0 Z0= 'COORDONNEE' P0 ; P1 = ELE0 'POINT' 2; X1 Y1 Z1= 'COORDONNEE' P1 ; P2 = ELE0 'POINT' 3; X2 Y2 Z2= 'COORDONNEE' P2 ; P3 = ELE0 'POINT' 4; X3 Y3 Z3= 'COORDONNEE' P3 ; XFAC = (X0 '+' X1 '+' X2 '+' X3) '/' 4 ; YFAC = (Y0 '+' Y1 '+' Y2 '+' Y3) '/' 4 ; ZFAC = (Z0 '+' Z1 '+' Z2 '+' Z3) '/' 4 ; 'LARGEMENT' PFAC ; 'LARGEMENT' PFAC ; * **** Tranformation en POI1 * GEO1POI1 = 'CHANGER' 'POI1' GEOFAC1 ; GEO2POI1 = 'CHANGER' 'POI1' GEOFAC2 ; * **** Il faur verifier que PFAC = PCEL12 = PCEL22 * ('NBEL' GEO1POI1) = ('NBEL' GEO2POI1) = 2 * 'MESSAGE' ; 'MESSAGE' 'Probleme dans la creation du domaine entree subsonique'; 'MESSAGE' ; 'ERREUR' 21 ; 'FINSI' ; 'MESSAGE' ; 'MESSAGE' 'Probleme dans la creation du domaine entree subsonique'; 'MESSAGE' ; 'ERREUR' 21 ; 'FINSI' ; 'SI' ( PCEL12 'NEG' PFAC); 'MESSAGE' ; 'MESSAGE' 'Probleme dans la creation du domaine entree subsonique'; 'MESSAGE' ; 'ERREUR' 21 ; 'FINSI' ; 'SI' ( PCEL22 'NEG' PFAC); 'MESSAGE' ; 'MESSAGE' 'Probleme dans la creation du domaine entree subsonique'; 'MESSAGE' ; 'ERREUR' 21 ; 'FINSI' ; * *** Creation d'un maillage SEG2 * 'SI' (&BLLIM 'EGA' 1); CONBOR = 'MANUEL' 'SEG2' PCEL11 PCEL21 'COULEUR' 'BLEU' ; CB = PCEL21; 'SINON' ; CONBOR = CONBOR 'ET' ( 'MANUEL' 'SEG2' PCEL11 PCEL21 'COULEUR' 'BLEU' ); CB = CB 'ET' PCEL21; 'FINSI' ; 'FIN' BLLIM ; * **** On doit imposer une condition de bord * * * **** N.B. : CHP1 n'as pas comme support geometrique * ($DOMTOT 'CENTRE') * GRCHP0 ALCHP0 COEF = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR' GRCHP01 ALCHP01 COEF1 = 'PENT' $DOMTOT1 'CENTRE' 'EULESCAL' 'LIMITEUR' GRCHP1 ALCHP1 COEF = 'PENT' $DOMINT 'CENTRE' 'EULESCAL' * **** Le gradient calculé sur le domaine interne est le **** même que celui calculé avec les symétriques au bord * ERRO = 'MAXIMUM' (GRCHP1 '-' GRCHP) 'ABS' ; 'SI' (ERRO > 5.D-6); 'MESSAGE' ERRO; 'ERREUR' 5 ; 'FINSI'; ERRO = 'MAXIMUM' (ALCHP1 '-' ALCHP) 'ABS'; 'SI' (ERRO > 5.D-6); 'MESSAGE' ; 'MESSAGE' ERRO; 'ERREUR' 5; 'FINSI' ; 'SI' GRAPH; 'FINSI'; * **** On impose le vecteur symetrique au bord * GNOLD = CHP; 'REPETER' BL NL; GNN = (NX*GNXOLD) '+' (NY*GNYOLD) '+' (NZ*GNZOLD); GNX = GNXOLD '-' (2 '*' NX '*' GNN); GNY = GNYOLD '-' (2 '*' NY '*' GNN); GNZ = GNZOLD '-' (2 '*' NZ '*' GNN); 'UX' GNX 'UY' GNY 'UZ' GNZ; GNOLD = CHP; 'FIN' BL; * **** N.B. : CHP1 n'as pas comme support geometrique * ($DOMTOT 'CENTRE') * GRCHP0 ALCHP0 COEF = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'LIMITEUR' GRCHP1 ALCHP1 COEF = 'PENT' $DOMINT 'CENTRE' 'EULEVECT' * **** Le bord est bien calcule * ERRO = 'MAXIMUM' (GRCHP '-' GRCHP1) 'ABS' ; 'SI' (ERRO > 5D-6); 'MESSAGE' erro; 'ERREUR' 5 ; 'FINSI'; ERRO = 'MAXIMUM' (ALCHP '-' ALCHP1) 'ABS' ; 'SI' (ERRO > 5D-6); 'MESSAGE' ; 'MESSAGE' erro; 'ERREUR' 5; 'FINSI' ; 'SI' GRAPH; 'FINSI'; 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales