Télécharger prim_ther_mono.dgibi
* fichier : prim_ther_mono.dgibi ************************************************************************ ************************************************************************ *********************************************************** **** APPROCHE VF "Cell-Centred Formulation" pour la **** **** solution des **** **** Equations d'Euler pour un gaz parfait **** **** OPERATEUR PRIM **** **** Gaz monoespece "thermally perfect" **** **** **** **** A. BECCANTINI DRN/DMT/SEMT/LTMF FEVRIER 2000 **** *********************************************************** * 'OPTION' 'ELEM' QUA4 ; 'OPTION' 'ECHO' 0 ; 'OPTION' 'TRAC' 'X'; * * **** GRAPH * * GRAPH = FAUX ; * GRAPH = VRAI ; * ERRMAX = 1.0D-6 ; 'MESSAGE' ; 'MESSAGE' ('cv = polynom de 4-eme degree'); 'MESSAGE' ; * *** On considere une melange H2, O2, H2O, N2 * * De la table JANAF on a, pour les cp (J/Kg/K) * .7000D+03 .8000D+03 .9000D+03 .1000D+04 .1100D+04 .1200D+04 .1300D+04 .1400D+04 .1500D+04 .1600D+04 .1700D+04 .1800D+04 .1900D+04 .2000D+04 .2100D+04 .2200D+04 .2300D+04 .2400D+04 .2500D+04 .2600D+04 ; .2700D+04 .2800D+04 .2900D+04 .3000D+04 .3100D+04 .3200D+04 .3300D+04 .3400D+04 .3500D+04 .3600D+04 .4000D+04 .4500D+04 .5000D+04 .5500D+04 .6000D+04) ; .1048D+05 .1057D+05 .1070D+05 .1086D+05 .1104D+05 .1125D+05 .1147D+05 .1168D+05 .1190D+05 .1211D+05 .1231D+05 .1251D+05 .1270D+05 .1288D+05 .1305D+05 .1321D+05 .1337D+05 .1351D+05 .1365D+05 .1378D+05 ; .1391D+05 .1403D+05 .1415D+05 .1426D+05 .1438D+05 .1449D+05 .1460D+05 .1471D+05 .1480D+05 .1490D+05 .1528D+05 .1573D+05 .1613D+05 .1646D+05 .1669D+05 ) ; *********************** **** LA TABLE PGAZ **** *********************** PGAZ = 'TABLE' ; PGAZ . 'NORD' = 4 ; * **** La seul espece * PGAZ . 'ESPNEULE' = 'H2 '; * PGAZ . 'H2 ' = 'TABLE' ; * **** R (J/Kg/K) * PGAZ . 'H2 ' . 'R' = 4130.0 ; * **** Regressions polynomials * -2.37281455E-07 1.84701105E-11 ; * **** "Enthalpies" (ou energies) de formations a OK (J/Kg) * Note: ce sont des entites numeriques PGAZ . 'H2 ' . 'H0K' = -4.195D6 ; * *** Fin PGAZ * A0H2 = 'EXTRAIRE' (PGAZ . 'H2 ' . 'A') 1 ; A1H2 = 'EXTRAIRE' (PGAZ . 'H2 ' . 'A') 2 ; A2H2 = 'EXTRAIRE' (PGAZ . 'H2 ' . 'A') 3 ; A3H2 = 'EXTRAIRE' (PGAZ . 'H2 ' . 'A') 4 ; A4H2 = 'EXTRAIRE' (PGAZ . 'H2 ' . 'A') 5 ; T = 'EXTRAIRE' LTEMP &BL1 ; T2 = T * T ; T3 = T2 * T ; T4 = T3 * T; (A0H2 '+' (A1H2 * T) '+' (A2H2 * T2) '+' (A3H2 * T3) '+' (A4H2 * T4))) ; 'FIN' BL1 ; TAB1 = 'TABLE' ; TAB1 . 'TITRE' = 'TABLE' ; TAB1 . 1 ='TIRR '; TAB1 . 'TITRE' . 1 = 'JANAF DATA'; TAB1 . 2 = 'MARQ CROI'; TAB1 . 'TITRE' . 2 = 'POLYN. REGR.'; 'SI' GRAPH ; 'DESSIN' (EVCVH2 'ET' EVCV1H2) 'LEGE' TAB1 'TITRE' 'H2' ; 'FINSI' ; *************************** ***** DOMAINE SPATIAL **** *************************** A1 = 0.0D0 0.0D0; A2 = 2.0D0 0.0D0; A3 = 3.0D0 0.0D0; A4 = 4.0D0 1.0D0; L12 = A1 'DROIT' 21 A2; L23 = A2 'DROIT' 32 A3; L34 = A3 'DROIT' 43 A4; L41 = A4 'DROIT' 53 A1; LDOM1 = L12 'ET' L23 'ET' L34 'ET' L41 ; DOM1 = 'SURFACE' LDOM1 'PLANE'; 'SI' GRAPH ; 'TRACER' DOM1 'TITRE' 'Domaine' ; 'FINSI' ; * **** Pression, densite, temperature et vitesse * MAIL = $DOM1 . 'CENTRE' ; * **** N.B.: UY 'ET' UX * * * Calcul de l'energie thermique et du gamma * * Ether = \sum_{i=1,4} Y_i \int_{0}^{T} cv_i(x) dx * gamma = (\sum_{i=1,4} Y_i cp_i) / (\sum_{i=1,4} Y_i cv_i) * T2 = TN * TN ; T3 = T2 * TN ; T4 = T3 * TN ; T5 = T4 * TN ; ETHER = ((A0H2 * TN) '+' ((A1H2 '/' 2.0) * T2) '+' ((A2H2 '/' 3.0) * T3) '+' ((A3H2 '/' 4.0) * T4) '+' ((A4H2 '/' 5.0) * T5)) ; RECIN = 'PSCAL' (0.5 '*' VN) GN LISCOM2 LISCOM2 ; RET = RECIN '+' (ETHER * RN) ; CVTOT = (A0H2 '+' (A1H2 * TN) '+' (A2H2 * T2) '+' (A3H2 * T3) '+' (A4H2 * T4)) ; CPTOT = CVTOT '+' (PGAZ . 'H2 ' . 'R') ; GAMN = CPTOT '/' CVTOT ; RTOT = CPTOT '-' CVTOT ; PN = (RTOT '*' TN) '*' RN ; * **** PRIM * VITESSE PRES TEMPNEW GAMNEW * **** TEST * ERRV = ('MAXIMUM' (VN '-' VITESSE) 'ABS') '/' ('MAXIMUM' VN) ; ERRT = 'MAXIMUM' ((TEMPNEW '-' TN) '/' TN) 'ABS'; ERRG = 'MAXIMUM' ((GAMN '-' GAMNEW) '/' GAMN) 'ABS'; ERRMAX)); 'MESSAGE' ('CHAINE' 'Erreur maximum'); )); 'ERREUR' 5; 'FINSI' ; VITESSE PRES TEMPNEW2 GAMNEW ERRT = 'MAXIMUM' ((TEMPNEW '-' TEMPNEW2) '/' TEMPNEW) 'ABS'; 'SI' (ERRT > ERRMAX); 'MESSAGE' ('CHAINE' 'Erreur maximum' ERRT) ; 'ERREUR' 5; 'FINSI' ; **** On teste aussi la difference entre l'energie initiale et celle la. T2 = TEMPNEW * TEMPNEW ; T3 = T2 * TEMPNEW ; T4 = T3 * TEMPNEW ; T5 = T4 * TEMPNEW ; ETHER_N = ((A0H2 * TEMPNEW) '+' ((A1H2 '/' 2.0) * T2) '+' ((A2H2 '/' 3.0) * T3) '+' ((A3H2 '/' 4.0) * T4) '+' ((A4H2 '/' 5.0) * T5)) ; ERRET = 'MAXIMUM' ((ETHER '-' ETHER_N) '/' ETHER) 'ABS' ; 'SI' (ERRET > ERRMAX); 'MESSAGE' ('CHAINE' 'Erreur maximum' ERRET) ; 'ERREUR' 5; 'FINSI' ; **** On contrlle l'ordre de composantes 'SI' ('OU' ('OU' ('NEG' MOT1 'UX ') ('NEG' MOT2 'UX ')) ('OU' ('NEG' MOT3 'UY ') ('NEG' MOT4 'UY '))) ; 'MESSAGE' 'Probleme des composantes' ; 'ERREUR' 5 ; 'FINSI' ; **** Splitting des scalaires passifs RTABS1 = 'COPIER' RTABS ; VITESSE PRES TEMPNEW TABSNEW GAMNEW * **** TEST * ERRV = ('MAXIMUM' (VN '-' VITESSE) 'ABS') '/' ('MAXIMUM' VN) ; ERRT = 'MAXIMUM' ((TEMPNEW '-' TN) '/' TN) 'ABS'; ERRG = 'MAXIMUM' ((GAMN '-' GAMNEW) '/' GAMN) 'ABS'; ERRTAB = ('MAXIMUM' (TABS '-' TABSNEW) 'ABS') '/' ('MAXIMUM' TABS 'ABS') ; ERRROT = ('MAXIMUM' (RTABS '-' RTABS1) 'ABS') '/' ('MAXIMUM' RTABS 'ABS') ; ERRMAX)); 'MESSAGE' ('CHAINE' 'Erreur maximum'); )); 'ERREUR' 5; 'FINSI' ; *) Degree de polynome = 0 ERRMAX = 1.0D-14 ; 'MESSAGE' ; 'MESSAGE' ('cv = polynom constant'); 'MESSAGE' ; *********************** **** LA TABLE PGAZ **** *********************** PGAZ = 'TABLE' ; * **** Degre des polynoms * PGAZ . 'NORD' = 0 ; * **** Especes qui sont dans les equations d'Euler * * **** Espece qui n'y est pas * PGAZ . 'ESPNEULE' = 'H2 '; * PGAZ . 'H2 ' = 'TABLE' ; * **** R (J/Kg/K) * PGAZ . 'H2 ' . 'R' = 4130.0 ; * **** Regressions polynomials * * * Cas particulier: gaz "calorically perfect" * * **** "Enthalpies" (ou energies) de formations a OK (J/Kg) * PGAZ . 'H2 ' . 'H0K' = -4.195D6 ; * *** Fin PGAZ * A0H2 = 'EXTRAIRE' (PGAZ . 'H2 ' . 'A') 1 ; * **** Pression, densite, temperature et vitesse * YN2 = 1.0 '-' (YH2 '+' YO2 '+' YH2O) ; RYH2 = RN * YH2 ; RYH2O = RN * YH2O ; RYO2 = RN * YO2 ; RYN2 = RN * YN2 ; YN = YH2 'ET' YO2 'ET' YH2O ; RYN = RYH2 'ET' RYH2O 'ET' RYO2 ; * * Calcul de l'energie thermique et du gamma * RETHER = (A0H2 '*' RN '*' TN) ; RECIN = 'PSCAL' (0.5 '*' VN) GN LISCOM2 LISCOM2 ; RET = RECIN '+' RETHER ; CP = CV '+' (PGAZ . 'H2 ' . 'R') ; GAMN = CP '/' CV ; RTOT = CP '-' CV ; PN = (RTOT '*' TN) '*' RN ; * **** PRIM * VITESSE PRES TEMPNEW GAMNEW * **** TEST * ERRV = ('MAXIMUM' (VN '-' VITESSE) 'ABS') '/' ('MAXIMUM' VN) ; ERRT = 'MAXIMUM' ((TEMPNEW '-' TN) '/' TN) 'ABS'; ERRG = 'MAXIMUM' ((GAMN '-' GAMNEW) '/' GAMN) 'ABS'; ERRMAX)); 'MESSAGE' ('CHAINE' 'Erreur maximum'); )); 'ERREUR' 5; 'FINSI' ; * Avec une temperature d'essai VITESSE PRES TEMPNEW2 GAMNEW ERRT = 'MAXIMUM' ((TEMPNEW '-' TEMPNEW2) '/' TEMPNEW) 'ABS'; 'SI' (ERRT > ERRMAX); 'MESSAGE' ('CHAINE' 'Erreur maximum' ERRT) ; 'ERREUR' 5; 'FINSI' ; **** On teste aussi la difference entre l'energie initiale et celle la. RETHER_N = (A0H2 '*' RN '*' TEMPNEW) ; ERRET = 'MAXIMUM' ((RETHER '-' RETHER_N) '/' RETHER) 'ABS' ; 'SI' (ERRET > ERRMAX); 'MESSAGE' ('CHAINE' 'Erreur maximum' ERRET) ; 'ERREUR' 5; 'FINSI' ; 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales