* fichier : prim_ther_multi.dgibi ************************************************************************ * Section : Fluides Darcy ************************************************************************ *********************************************************** **** APPROCHE VF "Cell-Centred Formulation" pour la **** **** solution des **** **** Equations d'Euler pour un gaz parfait **** **** OPERATEUR PRIM **** **** Gaz multi-especes "thermally perfect" **** **** **** **** A. BECCANTINI DRN/DMT/SEMT/LTMF FEVRIER 2000 **** **** MODIFS : **** **** A. BECCANTINI DEN/DM2S/SFME/LTMF FEVRIER 2000 **** **** **** **** Ajoute des propriete's de D2 et D2O **** *********************************************************** * 'OPTION' 'DIME' 2 ; 'OPTION' 'ELEM' QUA4 ; 'OPTION' 'ECHO' 0 ; 'OPTION' 'TRAC' 'X'; * * **** GRAPH * * GRAPH = FAUX ; * GRAPH = VRAI ; * * *** On considere une melange H2, O2, H2O, N2 * * De la table JANAF on a, pour les cp (J/Kg/K) * LTEMP = 'PROG' .2000D+03 .3000D+03 .4000D+03 .5000D+03 .6000D+03 .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 ; LTEMP = LTEMP 'ET' ('PROG' .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) ; LCVH2 = 'PROG' .9944D+04 .1018D+05 .1035D+05 .1039D+05 .1042D+05 .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 ; LCVH2 = LCVH2 'ET' ('PROG' .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 ) ; LCVH2O='PROG' .1389D+04 .1403D+04 .1440D+04 .1493D+04 .1554D+04 .1619D+04 .1687D+04 .1758D+04 .1829D+04 .1899D+04 .1968D+04 .2033D+04 .2094D+04 .2152D+04 .2205D+04 .2254D+04 .2300D+04 .2341D+04 .2379D+04 .2414D+04 .2446D+04 .2476D+04 .2503D+04 .2528D+04 .2552D+04 ; LCVH2O = LCVH2O 'ET' ( 'PROG' .2574D+04 .2595D+04 .2615D+04 .2634D+04 .2652D+04 .2670D+04 .2686D+04 .2703D+04 .2718D+04 .2734D+04 .2759D+04 .2801D+04 .2835D+04 .2868D+04 .2900D+04 ) ; LCVO2 = 'PROG' .6500D+03 .6580D+03 .6810D+03 .7120D+03 .7430D+03 .7710D+03 .7940D+03 .8140D+03 .8300D+03 .8430D+03 .8550D+03 .8650D+03 .8740D+03 .8820D+03 .8900D+03 .8970D+03 .9040D+03 .9110D+03 .9180D+03 .9250D+03 .9320D+03 .9390D+03 .9450D+03 .9520D+03 .9580D+03 ; LCVO2 = LCVO2 'ET' ('PROG' .9640D+03 .9700D+03 .9760D+03 .9810D+03 .9870D+03 .9920D+03 .9970D+03 .1001D+04 .1006D+04 .1010D+04 .1034D+04 .1054D+04 .1074D+04 .1097D+04 .1127D+04 ) ; LCVN2 ='PROG' .7420D+03 .7430D+03 .7470D+03 .7590D+03 .7780D+03 .8010D+03 .8250D+03 .8490D+03 .8700D+03 .8900D+03 .9070D+03 .9220D+03 .9350D+03 .9470D+03 .9570D+03 .9660D+03 .9730D+03 .9800D+03 .9870D+03 .9920D+03 .9970D+03 .1002D+04 .1006D+04 .1009D+04 .1013D+04 ; LCVN2 = LCVN2 'ET' ('PROG' .1016D+04 .1019D+04 .1021D+04 .1024D+04 .1026D+04 .1028D+04 .1030D+04 .1032D+04 .1034D+04 .1035D+04 .1043D+04 .1050D+04 .1056D+04 .1062D+04 .1069D+04 ) ; 'MESSAGE' ; 'MESSAGE' ('cv_i = polynoms de 4-eme degre'); 'MESSAGE' ; ERRMAX = 1.0D-6 ; *) Degre de polynome = 4 *********************** **** LA TABLE PGAZ **** *********************** PGAZ = 'TABLE' ; * **** Ordre des polynoms * PGAZ . 'NORD' = 4 ; * **** Especes qui sont dans les equations d'Euler * PGAZ . 'ESPEULE' = 'MOTS' 'H2 ' 'O2 ' 'H2O ' 'D2 ' 'D2O ' ; * **** Espece qui n'y est pas * PGAZ . 'ESPNEULE' = 'N2 '; * PGAZ . 'H2 ' = 'TABLE' ; PGAZ . 'H2O ' = 'TABLE' ; PGAZ . 'N2 ' = 'TABLE' ; PGAZ . 'O2 ' = 'TABLE' ; PGAZ . 'D2 ' = 'TABLE' ; PGAZ . 'D2O ' = 'TABLE' ; * **** R (J/Kg/K) * mH2 = 2. '*' 1.00797E-3 ; mo2 = 2. '*' 15.9994E-3 ; mH2O = mh2 '+' (0.5 '*' mo2) ; mN2 = 2 '*' 14.0067E-3 ; mD2 = mH2 * 2 ; mD2O = mD2 '+' (0.5 '*' mo2) ; RGAS = 8.31441 ; PGAZ . 'H2 ' . 'R' = RGAS '/' mh2 ; PGAZ . 'H2O ' . 'R' = RGAS '/' mh2o ; PGAZ . 'N2 ' . 'R' = RGAS '/' mn2 ; PGAZ . 'O2 ' . 'R' = RGAS '/' mo2 ; PGAZ . 'D2 ' . 'R' = RGAS '/' md2 ; PGAZ . 'D2O ' . 'R' = RGAS '/' md2o ; * **** Regressions polynomials * PGAZ . 'H2 ' . 'A' = 'PROG' 9834.91866 0.54273926 0.000862203836 -2.37281455E-07 1.84701105E-11 ; PGAZ . 'H2O ' . 'A' = 'PROG' 1155.95625 0.768331151 -5.73129958E-05 -1.82753232E-08 2.44485692E-12 ; PGAZ . 'N2 ' . 'A' = 'PROG' 652.940766 0.288239099 -7.80442298E-05 8.78233606E-09 -3.05514485E-13 ; PGAZ . 'O2 ' . 'A' = 'PROG' 575.012333 0.350522002 -0.000128294865 2.33636971E-08 -1.53304905E-12; PGAZ . 'D2 ' . 'A' = 'PROG' 0.49174593E+04 0.27136963E+00 0.43110192E-03 -0.11864073E-06 0.92350553E-11 ; PGAZ . 'D2O ' . 'A' = 'PROG' 0.10396191E+04 0.69100516E+00 -0.51544931E-04 -0.16436067E-07 0.21988029E-11 ; * **** "Enthalpies" (ou energies) de formations a OK (J/Kg) * PGAZ . 'H2 ' . 'H0K' = -4.195D6 ; PGAZ . 'H2O ' . 'H0K' = -1.395D7 ; PGAZ . 'N2 ' . 'H0K' = -2.953D5 ; PGAZ . 'O2 ' . 'H0K' = -2.634D5 ; PGAZ . 'D2 ' . 'H0K' = -2.0975D6 ; PGAZ . 'D2O ' . 'H0K' = -1.25461D7 ; * *** 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 ; A0H2O= 'EXTRAIRE' (PGAZ . 'H2O ' . 'A') 1 ; A1H2O= 'EXTRAIRE' (PGAZ . 'H2O ' . 'A') 2 ; A2H2O= 'EXTRAIRE' (PGAZ . 'H2O ' . 'A') 3 ; A3H2O= 'EXTRAIRE' (PGAZ . 'H2O ' . 'A') 4 ; A4H2O= 'EXTRAIRE' (PGAZ . 'H2O ' . 'A') 5 ; A0N2 = 'EXTRAIRE' (PGAZ . 'N2 ' . 'A') 1 ; A1N2 = 'EXTRAIRE' (PGAZ . 'N2 ' . 'A') 2 ; A2N2 = 'EXTRAIRE' (PGAZ . 'N2 ' . 'A') 3 ; A3N2 = 'EXTRAIRE' (PGAZ . 'N2 ' . 'A') 4 ; A4N2 = 'EXTRAIRE' (PGAZ . 'N2 ' . 'A') 5 ; A0O2 = 'EXTRAIRE' (PGAZ . 'O2 ' . 'A') 1 ; A1O2 = 'EXTRAIRE' (PGAZ . 'O2 ' . 'A') 2 ; A2O2 = 'EXTRAIRE' (PGAZ . 'O2 ' . 'A') 3 ; A3O2 = 'EXTRAIRE' (PGAZ . 'O2 ' . 'A') 4 ; A4O2 = 'EXTRAIRE' (PGAZ . 'O2 ' . 'A') 5 ; A0D2 = 'EXTRAIRE' (PGAZ . 'D2 ' . 'A') 1 ; A1D2 = 'EXTRAIRE' (PGAZ . 'D2 ' . 'A') 2 ; A2D2 = 'EXTRAIRE' (PGAZ . 'D2 ' . 'A') 3 ; A3D2 = 'EXTRAIRE' (PGAZ . 'D2 ' . 'A') 4 ; A4D2 = 'EXTRAIRE' (PGAZ . 'D2 ' . 'A') 5 ; A0D2O= 'EXTRAIRE' (PGAZ . 'D2O ' . 'A') 1 ; A1D2O= 'EXTRAIRE' (PGAZ . 'D2O ' . 'A') 2 ; A2D2O= 'EXTRAIRE' (PGAZ . 'D2O ' . 'A') 3 ; A3D2O= 'EXTRAIRE' (PGAZ . 'D2O ' . 'A') 4 ; A4D2O= 'EXTRAIRE' (PGAZ . 'D2O ' . 'A') 5 ; LCV1H2 = 'PROG' ; LCV1H2O = 'PROG' ; LCV1N2 = 'PROG' ; LCV1O2 = 'PROG' ; LCV1D2 = 'PROG' ; LCV1D2O = 'PROG' ; 'REPETER' BL1 ('DIME' LTEMP ) ; T = 'EXTRAIRE' LTEMP &BL1 ; T2 = T * T ; T3 = T2 * T ; T4 = T3 * T; LCV1H2 = LCV1H2 'ET' ('PROG' (A0H2 '+' (A1H2 * T) '+' (A2H2 * T2) '+' (A3H2 * T3) '+' (A4H2 * T4))) ; LCV1H2O = LCV1H2O 'ET' ('PROG' (A0H2O '+' (A1H2O * T) '+' (A2H2O * T2) '+' (A3H2O * T3) '+' (A4H2O * T4))) ; LCV1N2 = LCV1N2 'ET' ('PROG' (A0N2 '+' (A1N2 * T) '+' (A2N2 * T2) '+' (A3N2 * T3) '+' (A4N2 * T4))) ; LCV1O2 = LCV1O2 'ET' ('PROG' (A0O2 '+' (A1O2 * T) '+' (A2O2 * T2) '+' (A3O2 * T3) '+' (A4O2 * T4))) ; LCV1D2 = LCV1D2 'ET' ('PROG' (A0D2 '+' (A1D2 * T) '+' (A2D2 * T2) '+' (A3D2 * T3) '+' (A4D2 * T4))) ; LCV1D2O = LCV1D2O 'ET' ('PROG' (A0D2O '+' (A1D2O * T) '+' (A2D2O * T2) '+' (A3D2O * T3) '+' (A4D2O * T4))) ; 'FIN' BL1 ; LCVH2 = LCVH2 * mh2 ; LCV1H2 = LCV1H2 * mh2 ; LCVH2O = LCVH2O * mh2o ; LCV1H2O = LCV1H2O * mh2o ; LCVN2 = LCVN2 * mn2 ; LCV1N2 = LCV1N2 * mn2 ; LCVO2 = LCVO2 * mo2 ; LCV1O2 = LCV1O2 * mo2 ; LCV1D2 = LCV1D2 * md2 ; LCV1D2O = LCV1D2O * md2o ; EVCVH2 = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/mol/K)' LCVH2 ; EVCV1H2 = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/mol/K)' LCV1H2 ; EVCVH2O = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/mol/K)' LCVH2O ; EVCV1H2O = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/mol/K)' LCV1H2O ; EVCVN2 = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/mol/K)' LCVN2 ; EVCV1N2 = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/mol/K)' LCV1N2 ; EVCVO2 = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/mol/K)' LCVO2 ; EVCV1O2 = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/mol/K)' LCV1O2 ; EVCV1D2 = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/mol/K)' LCV1D2 ; EVCV1D2O = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/mol/K)' LCV1D2O ; 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, polynome de 4-eme degre' ; 'DESSIN' (EVCVH2O 'ET' EVCV1H2O) 'LEGE' TAB1 'TITRE' 'H2O, polynome de 4-eme degre' ; 'DESSIN' (EVCVN2 'ET' EVCV1N2) 'LEGE' TAB1 'TITRE' 'N2, polynome de 4-eme degre' ; 'DESSIN' (EVCVO2 'ET' EVCV1O2) 'LEGE' TAB1 'TITRE' 'O2, polynome de 4-eme degre' ; 'DESSIN' (EVCVH2 'ET' EVCV1D2) 'LEGE' TAB1 'TITRE' 'H2-D2, polynome de 4-eme degre' ; 'DESSIN' (EVCVH2O 'ET' EVCV1D2O) 'LEGE' TAB1 'TITRE' 'H2O-D2O, polynome de 4-eme degre' ; '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' 1 A2; L23 = A2 'DROIT' 2 A3; L34 = A3 'DROIT' 3 A4; L41 = A4 'DROIT' 2 A1; LDOM1 = L12 'ET' L23 'ET' L34 'ET' L41 ; DOM1 = 'SURFACE' LDOM1 'PLANE'; 'SI' GRAPH ; 'TRACER' DOM1 'TITRE' 'Domaine' ; 'FINSI' ; $DOM1 = 'DOMA' DOM1 ; MAIL = $DOM1 . 'CENTRE' ; * **** Pression, densite, temperature et vitesse * RN = 'BRUI' 'BLAN' 'UNIF' 1.0 0.1 MAIL ; TN = 'BRUI' 'BLAN' 'UNIF' 5000 1000 MAIL ; YH2 = 'BRUI' 'BLAN' 'UNIF' 0.3 0.1 MAIL ; YO2 = 'BRUI' 'BLAN' 'UNIF' 0.2 0.1 MAIL ; YH2O = 'BRUI' 'BLAN' 'UNIF' 0.1 0.05 MAIL ; YD2 = 'BRUI' 'BLAN' 'UNIF' 0.01 0.001 MAIL ; YD2O = 'BRUI' 'BLAN' 'UNIF' 0.01 0.005 MAIL ; YN2 = 1.0 '-' (YH2 '+' YO2 '+' YH2O + YD2 + YD2O) ; RYH2 = RN * YH2 ; RYH2O = RN * YH2O ; RYO2 = RN * YO2 ; RYN2 = RN * YN2 ; RYD2 = RN * YD2 ; RYD2O = RN * YD2O ; YH2 = 'NOMC' YH2 'H2 ' 'NATU' 'DISCRET' ; YH2O = 'NOMC' YH2O 'H2O ' 'NATU' 'DISCRET' ; YD2 = 'NOMC' YD2 'D2 ' 'NATU' 'DISCRET' ; YD2O = 'NOMC' YD2O 'D2O ' 'NATU' 'DISCRET' ; YO2 = 'NOMC' YO2 'O2 ' 'NATU' 'DISCRET' ; YN2 = 'NOMC' YN2 'N2 ' 'NATU' 'DISCRET' ; YN = YH2 'ET' YO2 'ET' YH2O 'ET' YD2 'ET' YD2O ; RYH2 = 'NOMC' RYH2 'H2 ' 'NATU' 'DISCRET' ; RYH2O = 'NOMC' RYH2O 'H2O ' 'NATU' 'DISCRET' ; RYD2 = 'NOMC' RYD2 'D2 ' 'NATU' 'DISCRET' ; RYD2O = 'NOMC' RYD2O 'D2O ' 'NATU' 'DISCRET' ; RYO2 = 'NOMC' RYO2 'O2 ' 'NATU' 'DISCRET' ; RYN2 = 'NOMC' RYN2 'N2 ' 'NATU' 'DISCRET' ; VNX = 'BRUI' 'BLAN' 'UNIF' 1.0 0.1 MAIL ; VNY = 'BRUI' 'BLAN' 'UNIF' 1.0 0.1 MAIL ; VN = ('NOMC' VNX 'UX' 'NATU' 'DISCRET' ) 'ET' ('NOMC' VNY 'UY' 'NATU' 'DISCRET' ) ; GN = ('NOMC' (VNX * RN) 'UX' 'NATU' 'DISCRET' ) 'ET' ('NOMC' (VNY * RN) 'UY' 'NATU' 'DISCRET' ) ; RYN = RYH2 'ET' RYH2O 'ET' RYO2 'ET' RYD2 'ET' RYD2O; * * 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 ; ETERH2 = 'NOMC' ((A0H2 * TN) '+' ((A1H2 '/' 2.0) * T2) '+' ((A2H2 '/' 3.0) * T3) '+' ((A3H2 '/' 4.0) * T4) '+' ((A4H2 '/' 5.0) * T5)) 'H2 ' 'NATU' 'DISCRET' ; ETERH2O = 'NOMC' ((A0H2O * TN) '+' ((A1H2O '/' 2.0) * T2) '+' ((A2H2O '/' 3.0) * T3) '+' ((A3H2O '/' 4.0) * T4) '+' ((A4H2O '/' 5.0) * T5)) 'H2O ' 'NATU' 'DISCRET' ; ETERD2 = 'NOMC' ((A0D2 * TN) '+' ((A1D2 '/' 2.0) * T2) '+' ((A2D2 '/' 3.0) * T3) '+' ((A3D2 '/' 4.0) * T4) '+' ((A4D2 '/' 5.0) * T5)) 'D2 ' 'NATU' 'DISCRET' ; ETERD2O = 'NOMC' ((A0D2O * TN) '+' ((A1D2O '/' 2.0) * T2) '+' ((A2D2O '/' 3.0) * T3) '+' ((A3D2O '/' 4.0) * T4) '+' ((A4D2O '/' 5.0) * T5)) 'D2O ' 'NATU' 'DISCRET' ; ETERO2 = 'NOMC' ((A0O2 * TN) '+' ((A1O2 '/' 2.0) * T2) '+' ((A2O2 '/' 3.0) * T3) '+' ((A3O2 '/' 4.0) * T4) '+' ((A4O2 '/' 5.0) * T5)) 'O2 ' 'NATU' 'DISCRET' ; ETERN2 = 'NOMC' ((A0N2 * TN) '+' ((A1N2 '/' 2.0) * T2) '+' ((A2N2 '/' 3.0) * T3) '+' ((A3N2 '/' 4.0) * T4) '+' ((A4N2 '/' 5.0) * T5)) 'N2 ' 'NATU' 'DISCRET' ; ETHERSIN = ETERD2 'ET' ETERD2O 'ET'ETERH2 'ET' ETERH2O 'ET' ETERO2 'ET' ETERN2 ; LISCOM1 = 'MOTS' 'H2 ' 'O2 ' 'H2O ' 'N2 ' 'D2 ' 'D2O '; RETHER = 'PSCAL' ETHERSIN (RYN 'ET' RYN2) LISCOM1 LISCOM1 ; LISCOM2 = 'MOTS' 'UX ' 'UY '; RECIN = 'PSCAL' (0.5 '*' VN) GN LISCOM2 LISCOM2 ; RET = RECIN '+' RETHER ; CVH2 = 'NOMC' (A0H2 '+' (A1H2 * TN) '+' (A2H2 * T2) '+' (A3H2 * T3) '+' (A4H2 * T4)) 'H2 ' 'NATU' 'DISCRET' ; CVH2O = 'NOMC' (A0H2O '+' (A1H2O * TN) '+' (A2H2O * T2) '+' (A3H2O * T3) '+' (A4H2O * T4)) 'H2O ' 'NATU' 'DISCRET' ; CVD2 = 'NOMC' (A0D2 '+' (A1D2 * TN) '+' (A2D2 * T2) '+' (A3D2 * T3) '+' (A4D2 * T4)) 'D2 ' 'NATU' 'DISCRET' ; CVD2O = 'NOMC' (A0D2O '+' (A1D2O * TN) '+' (A2D2O * T2) '+' (A3D2O * T3) '+' (A4D2O * T4)) 'D2O ' 'NATU' 'DISCRET' ; CVO2 = 'NOMC' (A0O2 '+' (A1O2 * TN) '+' (A2O2 * T2) '+' (A3O2 * T3) '+' (A4O2 * T4)) 'O2 ' 'NATU' 'DISCRET' ; CVN2 = 'NOMC' (A0N2 '+' (A1N2 * TN) '+' (A2N2 * T2) '+' (A3N2 * T3) '+' (A4N2 * T4)) 'N2 ' 'NATU' 'DISCRET' ; CPH2 = CVH2 '+' (PGAZ . 'H2 ' . 'R') ; CPH2O = CVH2O '+' (PGAZ . 'H2O ' . 'R') ; CPD2 = CVD2 '+' (PGAZ . 'D2 ' . 'R') ; CPD2O = CVD2O '+' (PGAZ . 'D2O ' . 'R') ; CPN2 = CVN2 '+' (PGAZ . 'N2 ' . 'R') ; CPO2 = CVO2 '+' (PGAZ . 'O2 ' . 'R') ; CPSIN = CPH2 'ET' CPH2O 'ET' CPN2 'ET' CPO2 'ET' CPD2 'ET' CPD2O ; CPTOT = 'PSCAL' CPSIN (YN 'ET' YN2) LISCOM1 LISCOM1 ; CVSIN = CVD2 'ET' CVD2O 'ET'CVH2 'ET' CVH2O 'ET' CVN2 'ET' CVO2 ; CVTOT = 'PSCAL' CVSIN (YN 'ET'YN2) LISCOM1 LISCOM1 ; GAMN = CPTOT '/' CVTOT ; RTOT = CPTOT '-' CVTOT ; PN = (RTOT '*' TN) '*' RN ; * YN1 = RYN / RN ; * CHUN = MANU CHPO MAIL 1 'SCAL' 1.0d0 ; * YTOT = PSCA CHUN YN1 (MOTS * 'SCAL' 'SCAL' 'SCAL' 'SCAL' 'SCAL') * (EXTR YN1 COMP) ; * LIST YTOT ; * **** PRIM * VITESSE PRES TEMPNEW YNNEW GAMNEW = 'PRIM' 'PERFTEMP' PGAZ RN GN RET RYN ; * **** TEST * ERRV = ('MAXIMUM' (VN '-' VITESSE) 'ABS') '/' ('MAXIMUM' VN) ; ERRP = 'MAXIMUM' ((PRES '-' PN) '/' PN) 'ABS'; ERRT = 'MAXIMUM' ((TEMPNEW '-' TN) '/' TN) 'ABS'; ERRG = 'MAXIMUM' ((GAMN '-' GAMNEW) '/' GAMN) 'ABS'; ERRY = ('MAXIMUM' (YN '-' YNNEW) 'ABS') '/' ('MAXIMUM' YN) ; 'SI' (('MAXIMUM' ('PROG' ERRV ERRP ERRT ERRG ERRY )) '>' ERRMAX); 'MESSAGE' ('CHAINE' 'Erreur maximum'); 'LISTE' ('MAXIMUM' ('PROG' ERRV ERRP ERRT ERRG ERRY )); 'ERREUR' 5; 'FINSI' ; **** Avec une temperature de premier tentative VITESSE PRES TEMPNEW2 YNNEW GAMNEW = 'PRIM' 'PERFTEMP' PGAZ RN GN RET RYN TEMPNEW ; 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 ; ETERH2 = 'NOMC' ((A0H2 * TEMPNEW) '+' ((A1H2 '/' 2.0) * T2) '+' ((A2H2 '/' 3.0) * T3) '+' ((A3H2 '/' 4.0) * T4) '+' ((A4H2 '/' 5.0) * T5)) 'H2 ' 'NATU' 'DISCRET' ; ETERH2O = 'NOMC' ((A0H2O * TEMPNEW) '+' ((A1H2O '/' 2.0) * T2) '+' ((A2H2O '/' 3.0) * T3) '+' ((A3H2O '/' 4.0) * T4) '+' ((A4H2O '/' 5.0) * T5)) 'H2O ' 'NATU' 'DISCRET' ; ETERD2 = 'NOMC' ((A0D2 * TEMPNEW) '+' ((A1D2 '/' 2.0) * T2) '+' ((A2D2 '/' 3.0) * T3) '+' ((A3D2 '/' 4.0) * T4) '+' ((A4D2 '/' 5.0) * T5)) 'D2 ' 'NATU' 'DISCRET' ; ETERD2O = 'NOMC' ((A0D2O * TEMPNEW) '+' ((A1D2O '/' 2.0) * T2) '+' ((A2D2O '/' 3.0) * T3) '+' ((A3D2O '/' 4.0) * T4) '+' ((A4D2O '/' 5.0) * T5)) 'D2O ' 'NATU' 'DISCRET' ; ETERO2 = 'NOMC' ((A0O2 * TEMPNEW) '+' ((A1O2 '/' 2.0) * T2) '+' ((A2O2 '/' 3.0) * T3) '+' ((A3O2 '/' 4.0) * T4) '+' ((A4O2 '/' 5.0) * T5)) 'O2 ' 'NATU' 'DISCRET' ; ETERN2 = 'NOMC' ((A0N2 * TEMPNEW) '+' ((A1N2 '/' 2.0) * T2) '+' ((A2N2 '/' 3.0) * T3) '+' ((A3N2 '/' 4.0) * T4) '+' ((A4N2 '/' 5.0) * T5)) 'N2 ' 'NATU' 'DISCRET' ; ETHERSIN = ETERD2 'ET' ETERD2O 'ET' ETERH2 'ET' ETERH2O 'ET' ETERO2 'ET' ETERN2 ; LISCOM1 = 'MOTS' 'H2 ' 'O2 ' 'H2O ' 'N2 ' 'D2 ' 'D2O ' ; RETHER_N = 'PSCAL' ETHERSIN (RYN 'ET' RYN2) LISCOM1 LISCOM1 ; ERRET = 'MAXIMUM' ((RETHER '-' RETHER_N) '/' RETHER) 'ABS' ; 'SI' (ERRET > ERRMAX); 'MESSAGE' ('CHAINE' 'Erreur maximum' ERRET) ; 'ERREUR' 5; 'FINSI' ; * Splitting de scalaires passifs PGAZ . 'SCALPASS' = 'MOTS' 'REPS' 'RTAU' ; TABS = ('NOMC' ('BRUI' 'BLAN' 'UNIF' 0.5 0.1 MAIL) 'RTAU') 'ET' ('NOMC' ('BRUI' 'BLAN' 'UNIF' 0.5 0.1 MAIL) 'REPS') ; RTABS = RN '*' TABS ('MOTS' 'SCAL' 'SCAL') ('MOTS' 'RTAU ' 'REPS') ('MOTS' 'RTAU' 'REPS') ; RTABS1 = 'COPIER' RTABS ; VITESSE PRES TEMPNEW2 YNNEW TABSNEW GAMNEW = 'PRIM' 'PERFTEMP' PGAZ RN GN RET RYN RTABS TEMPNEW ; ERRV = ('MAXIMUM' (VN '-' VITESSE) 'ABS') '/' ('MAXIMUM' VN) ; ERRP = 'MAXIMUM' ((PRES '-' PN) '/' PN) 'ABS'; ERRT = 'MAXIMUM' ((TEMPNEW2 '-' TN) '/' TN) 'ABS'; ERRG = 'MAXIMUM' ((GAMN '-' GAMNEW) '/' GAMN) 'ABS'; ERRY = ('MAXIMUM' (YN '-' YNNEW) 'ABS') '/' ('MAXIMUM' YN) ; ERRTAB = ('MAXIMUM' (TABS '-' TABSNEW) 'ABS') '/' ('MAXIMUM' TABS 'ABS') ; ERRROT = ('MAXIMUM' (RTABS '-' RTABS1) 'ABS') '/' ('MAXIMUM' RTABS 'ABS') ; 'SI' (('MAXIMUM' ('PROG' ERRV ERRP ERRT ERRG ERRY ERRTAB ERRROT)) '>' ERRMAX); 'MESSAGE' ('CHAINE' 'Erreur maximum'); 'LISTE' ('MAXIMUM' ('PROG' ERRV ERRP ERRT ERRG ERRY ERRTAB ERRROT )); 'ERREUR' 5; 'FINSI' ; *************************************************************************** 'MESSAGE' ; 'MESSAGE' ('cv_i = polynoms constants'); 'MESSAGE' ; *) Ordre de polynome = 0 ERRMAX = 1.0D-12 ; *********************** **** LA TABLE PGAZ **** *********************** PGAZ = 'TABLE' ; * **** Ordre des polynoms * PGAZ . 'NORD' = 0 ; * **** Especes qui sont dans les equations d'Euler * PGAZ . 'ESPEULE' = 'MOTS' 'H2 ' 'O2 ' 'H2O ' ; * **** Espece qui n'y est pas * PGAZ . 'ESPNEULE' = 'N2 '; * PGAZ . 'H2 ' = 'TABLE' ; PGAZ . 'H2O ' = 'TABLE' ; PGAZ . 'N2 ' = 'TABLE' ; PGAZ . 'O2 ' = 'TABLE' ; * **** R (J/Kg/K) * PGAZ . 'H2 ' . 'R' = 4130.0 ; PGAZ . 'H2O ' . 'R' = 461.4 ; PGAZ . 'N2 ' . 'R' = 296.8 ; PGAZ . 'O2 ' . 'R' = 259.8 ; * **** Regressions polynomials * * * Cas particulier: gaz "calorically perfect" * PGAZ . 'H2 ' . 'A' = 'PROG' 9834.91866 ; PGAZ . 'H2O ' . 'A' = 'PROG' 1155.95625 ; PGAZ . 'N2 ' . 'A' = 'PROG' 652.940766 ; PGAZ . 'O2 ' . 'A' = 'PROG' 575.012333 ; * **** "Enthalpies" (ou energies) de formations a OK (J/Kg) * PGAZ . 'H2 ' . 'H0K' = -4.195D6 ; PGAZ . 'H2O ' . 'H0K' = -1.395D7 ; PGAZ . 'N2 ' . 'H0K' = -2.953D5 ; PGAZ . 'O2 ' . 'H0K' = -2.634D5 ; * *** Fin PGAZ * A0H2 = 'EXTRAIRE' (PGAZ . 'H2 ' . 'A') 1 ; A0H2O= 'EXTRAIRE' (PGAZ . 'H2O ' . 'A') 1 ; A0N2 = 'EXTRAIRE' (PGAZ . 'N2 ' . 'A') 1 ; A0O2 = 'EXTRAIRE' (PGAZ . 'O2 ' . 'A') 1 ; * **** Pression, densite, temperature et vitesse * RN = 'BRUI' 'BLAN' 'UNIF' 1.0 0.1 MAIL ; TN = 'BRUI' 'BLAN' 'UNIF' 5000 1000 MAIL ; YH2 = 'BRUI' 'BLAN' 'UNIF' 0.3 0.1 MAIL ; YO2 = 'BRUI' 'BLAN' 'UNIF' 0.2 0.1 MAIL ; YH2O = 'BRUI' 'BLAN' 'UNIF' 0.1 0.05 MAIL ; YN2 = 1.0 '-' (YH2 '+' YO2 '+' YH2O) ; RYH2 = RN * YH2 ; RYH2O = RN * YH2O ; RYO2 = RN * YO2 ; RYN2 = RN * YN2 ; YH2 = 'NOMC' YH2 'H2 ' 'NATU' 'DISCRET' ; YH2O = 'NOMC' YH2O 'H2O ' 'NATU' 'DISCRET' ; YO2 = 'NOMC' YO2 'O2 ' 'NATU' 'DISCRET' ; YN2 = 'NOMC' YN2 'N2 ' 'NATU' 'DISCRET' ; YN = YH2 'ET' YO2 'ET' YH2O ; RYH2 = 'NOMC' RYH2 'H2 ' 'NATU' 'DISCRET' ; RYH2O = 'NOMC' RYH2O 'H2O ' 'NATU' 'DISCRET' ; RYO2 = 'NOMC' RYO2 'O2 ' 'NATU' 'DISCRET' ; RYN2 = 'NOMC' RYN2 'N2 ' 'NATU' 'DISCRET' ; VNX = 'BRUI' 'BLAN' 'UNIF' 1.0 0.1 MAIL ; VNY = 'BRUI' 'BLAN' 'UNIF' 1.0 0.1 MAIL ; VN = ('NOMC' VNX 'UX' 'NATU' 'DISCRET' ) 'ET' ('NOMC' VNY 'UY' 'NATU' 'DISCRET' ) ; GN = ('NOMC' (VNX * RN) 'UX' 'NATU' 'DISCRET' ) 'ET' ('NOMC' (VNY * RN) 'UY' 'NATU' 'DISCRET' ) ; RYN = RYH2 'ET' RYH2O 'ET' RYO2 ; * * Calcul de l'energie thermique et du gamma * ETERH2 = 'NOMC' ((A0H2 * TN) ) 'H2 ' 'NATU' 'DISCRET' ; ETERH2O = 'NOMC' ((A0H2O * TN)) 'H2O ' 'NATU' 'DISCRET' ; ETERO2 = 'NOMC' ((A0O2 * TN)) 'O2 ' 'NATU' 'DISCRET' ; ETERN2 = 'NOMC' ((A0N2 * TN)) 'N2 ' 'NATU' 'DISCRET' ; ETHERSIN = ETERH2 'ET' ETERH2O 'ET' ETERO2 'ET' ETERN2 ; LISCOM1 = 'MOTS' 'H2 ' 'O2 ' 'H2O ' 'N2 '; RETHER = 'PSCAL' ETHERSIN (RYN 'ET' RYN2) LISCOM1 LISCOM1 ; LISCOM2 = 'MOTS' 'UX ' 'UY '; RECIN = 'PSCAL' (0.5 '*' VN) GN LISCOM2 LISCOM2 ; RET = RECIN '+' RETHER ; CHUN = 'MANUEL' 'CHPO' MAIL 1 'SCAL' 1.0 ; CVH2 = 'NOMC' (A0H2 '*' CHUN) 'H2 ' 'NATU' 'DISCRET' ; CVH2O = 'NOMC' (A0H2O '*' CHUN) 'H2O ' 'NATU' 'DISCRET' ; CVO2 = 'NOMC' (A0O2 '*' CHUN) 'O2 ' 'NATU' 'DISCRET' ; CVN2 = 'NOMC' (A0N2 '*' CHUN) 'N2 ' 'NATU' 'DISCRET' ; CPH2 = CVH2 '+' (PGAZ . 'H2 ' . 'R') ; CPH2O = CVH2O '+' (PGAZ . 'H2O ' . 'R') ; CPN2 = CVN2 '+' (PGAZ . 'N2 ' . 'R') ; CPO2 = CVO2 '+' (PGAZ . 'O2 ' . 'R') ; CPSIN = CPH2 'ET' CPH2O 'ET' CPN2 'ET' CPO2 ; CPTOT = 'PSCAL' CPSIN (YN 'ET' YN2) LISCOM1 LISCOM1 ; CVSIN = CVH2 'ET' CVH2O 'ET' CVN2 'ET' CVO2 ; CVTOT = 'PSCAL' CVSIN (YN 'ET'YN2) LISCOM1 LISCOM1 ; GAMN = CPTOT '/' CVTOT ; RTOT = CPTOT '-' CVTOT ; PN = (RTOT '*' TN) '*' RN ; * **** PRIM * VITESSE PRES TEMPNEW YNNEW GAMNEW = 'PRIM' 'PERFTEMP' PGAZ RN GN RET RYN ; * **** TEST * ERRV = ('MAXIMUM' (VN '-' VITESSE) 'ABS') '/' ('MAXIMUM' VN) ; ERRP = 'MAXIMUM' ((PRES '-' PN) '/' PN) 'ABS'; ERRT = 'MAXIMUM' ((TEMPNEW '-' TN) '/' TN) 'ABS'; ERRG = 'MAXIMUM' ((GAMN '-' GAMNEW) '/' GAMN) 'ABS'; ERRY = ('MAXIMUM' (YN '-' YNNEW) 'ABS') '/' ('MAXIMUM' YN) ; ERRMAX = 1.0D-8 ; 'SI' (('MAXIMUM' ('PROG' ERRV ERRP ERRT ERRG ERRY )) '>' ERRMAX); 'MESSAGE' ('CHAINE' 'Erreur maximum'); 'LISTE' ('MAXIMUM' ('PROG' ERRV ERRP ERRT ERRG ERRY )); 'ERREUR' 5; 'FINSI' ; **** Avec une temperature de premier tentative VITESSE PRES TEMPNEW2 YNNEW GAMNEW = 'PRIM' 'PERFTEMP' PGAZ RN GN RET RYN TEMPNEW ; 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. ETERH2 = 'NOMC' ((A0H2 * TEMPNEW)) 'H2 ' 'NATU' 'DISCRET' ; ETERH2O = 'NOMC' ((A0H2O * TEMPNEW)) 'H2O ' 'NATU' 'DISCRET' ; ETERO2 = 'NOMC' ((A0O2 * TEMPNEW)) 'O2 ' 'NATU' 'DISCRET' ; ETERN2 = 'NOMC' ((A0N2 * TEMPNEW)) 'N2 ' 'NATU' 'DISCRET' ; ETHERSIN = ETERH2 'ET' ETERH2O 'ET' ETERO2 'ET' ETERN2 ; LISCOM1 = 'MOTS' 'H2 ' 'O2 ' 'H2O ' 'N2 '; RETHER_N = 'PSCAL' ETHERSIN (RYN 'ET' RYN2) LISCOM1 LISCOM1 ; ERRET = 'MAXIMUM' ((RETHER '-' RETHER_N) '/' RETHER) 'ABS' ; 'SI' (ERRET > ERRMAX); 'MESSAGE' ('CHAINE' 'Erreur maximum' ERRET) ; 'ERREUR' 5; 'FINSI' ; *) Ordre de polynome = 6 'MESSAGE' ; 'MESSAGE' ('cv_i = polynoms de 6-eme degre'); 'MESSAGE' ; ERRMAX = 1.0D-6 ; *********************** **** LA TABLE PGAZ **** *********************** PGAZ = 'TABLE' ; * **** Degree des polynoms * PGAZ . 'NORD' = 6 ; * **** Especes qui sont dans les equations d'Euler * PGAZ . 'ESPEULE' = 'MOTS' 'H2 ' 'O2 ' 'H2O ' ; * **** Espece qui n'y est pas * PGAZ . 'ESPNEULE' = 'N2 '; * PGAZ . 'H2 ' = 'TABLE' ; PGAZ . 'H2O ' = 'TABLE' ; PGAZ . 'N2 ' = 'TABLE' ; PGAZ . 'O2 ' = 'TABLE' ; * **** R (J/Kg/K) * PGAZ . 'H2 ' . 'R' = 4130.0 ; PGAZ . 'H2O ' . 'R' = 461.4 ; PGAZ . 'N2 ' . 'R' = 296.8 ; PGAZ . 'O2 ' . 'R' = 259.8 ; * **** Regressions polynomials * PGAZ . 'H2 ' . 'A' = 'PROG' 10248.0372 -1.03957227 0.00255509482 -9.58464375e-07 1.48148549e-10 -7.8001118e-15 -7.79545492e-20; PGAZ . 'H2O ' . 'A' = 'PROG' 1360.58141 -0.125858285 0.0011033462 -6.6747447e-07 1.78610037e-10 -2.28470046e-14 1.13454102e-18; PGAZ . 'N2 ' . 'A' = 'PROG' 728.668971 -0.0529645705 0.000381479798 -2.58652439e-07 7.53087309e-11 -1.02222342e-14 5.29069427e-19; PGAZ . 'O2 ' . 'A' = 'PROG' 556.260207 0.41690925 -0.000189280713 4.17265093e-08 -1.90948012e-12 -5.80397913e-16 6.12867501e-20; * **** "Enthalpies" (ou energies) de formations a OK (J/Kg) * PGAZ . 'H2 ' . 'H0K' = -4.195D6 ; PGAZ . 'H2O ' . 'H0K' = -1.395D7 ; PGAZ . 'N2 ' . 'H0K' = -2.953D5 ; PGAZ . 'O2 ' . 'H0K' = -2.634D5 ; * *** 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 ; A5H2 = 'EXTRAIRE' (PGAZ . 'H2 ' . 'A') 6 ; A6H2 = 'EXTRAIRE' (PGAZ . 'H2 ' . 'A') 7 ; A0H2O= 'EXTRAIRE' (PGAZ . 'H2O ' . 'A') 1 ; A1H2O= 'EXTRAIRE' (PGAZ . 'H2O ' . 'A') 2 ; A2H2O= 'EXTRAIRE' (PGAZ . 'H2O ' . 'A') 3 ; A3H2O= 'EXTRAIRE' (PGAZ . 'H2O ' . 'A') 4 ; A4H2O= 'EXTRAIRE' (PGAZ . 'H2O ' . 'A') 5 ; A5H2O= 'EXTRAIRE' (PGAZ . 'H2O ' . 'A') 6 ; A6H2O= 'EXTRAIRE' (PGAZ . 'H2O ' . 'A') 7 ; A0N2 = 'EXTRAIRE' (PGAZ . 'N2 ' . 'A') 1 ; A1N2 = 'EXTRAIRE' (PGAZ . 'N2 ' . 'A') 2 ; A2N2 = 'EXTRAIRE' (PGAZ . 'N2 ' . 'A') 3 ; A3N2 = 'EXTRAIRE' (PGAZ . 'N2 ' . 'A') 4 ; A4N2 = 'EXTRAIRE' (PGAZ . 'N2 ' . 'A') 5 ; A5N2 = 'EXTRAIRE' (PGAZ . 'N2 ' . 'A') 6 ; A6N2 = 'EXTRAIRE' (PGAZ . 'N2 ' . 'A') 7 ; A0O2 = 'EXTRAIRE' (PGAZ . 'O2 ' . 'A') 1 ; A1O2 = 'EXTRAIRE' (PGAZ . 'O2 ' . 'A') 2 ; A2O2 = 'EXTRAIRE' (PGAZ . 'O2 ' . 'A') 3 ; A3O2 = 'EXTRAIRE' (PGAZ . 'O2 ' . 'A') 4 ; A4O2 = 'EXTRAIRE' (PGAZ . 'O2 ' . 'A') 5 ; A5O2 = 'EXTRAIRE' (PGAZ . 'O2 ' . 'A') 6 ; A6O2 = 'EXTRAIRE' (PGAZ . 'O2 ' . 'A') 7 ; LCV1H2 = 'PROG' ; LCV1H2O = 'PROG' ; LCV1N2 = 'PROG' ; LCV1O2 = 'PROG' ; 'REPETER' BL1 ('DIME' LTEMP ) ; T = 'EXTRAIRE' LTEMP &BL1 ; T2 = T * T ; T3 = T2 * T ; T4 = T3 * T; T5 = T4 * T; T6 = T5 * T; LCV1H2 = LCV1H2 'ET' ('PROG' (A0H2 '+' (A1H2 * T) '+' (A2H2 * T2) '+' (A3H2 * T3) '+' (A4H2 * T4) '+' (A5H2 * T5) '+' (A6H2 * T6))) ; LCV1H2O = LCV1H2O 'ET' ('PROG' (A0H2O '+' (A1H2O * T) '+' (A2H2O * T2) '+' (A3H2O * T3) '+' (A4H2O * T4) '+' (A5H2O * T5) '+' (A6H2O * T6))) ; LCV1N2 = LCV1N2 'ET' ('PROG' (A0N2 '+' (A1N2 * T) '+' (A2N2 * T2) '+' (A3N2 * T3) '+' (A4N2 * T4) '+' (A5N2 * T5) '+' (A6N2 * T6))) ; LCV1O2 = LCV1O2 'ET' ('PROG' (A0O2 '+' (A1O2 * T) '+' (A2O2 * T2) '+' (A3O2 * T3) '+' (A4O2 * T4)'+' (A5O2 * T5) '+' (A6O2 * T6))) ; 'FIN' BL1 ; EVCVH2 = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/Kg/K)' LCVH2 ; EVCV1H2 = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/Kg/K)' LCV1H2 ; EVCVH2O = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/Kg/K)' LCVH2O ; EVCV1H2O = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/Kg/K)' LCV1H2O ; EVCVN2 = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/Kg/K)' LCVN2 ; EVCV1N2 = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/Kg/K)' LCV1N2 ; EVCVO2 = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/Kg/K)' LCVO2 ; EVCV1O2 = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/Kg/K)' LCV1O2 ; 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, polynome du 6-eme degre' ; 'DESSIN' (EVCVH2O 'ET' EVCV1H2O) 'LEGE' TAB1 'TITRE' 'H2O, polynome du 6-eme degre' ; 'DESSIN' (EVCVN2 'ET' EVCV1N2) 'LEGE' TAB1 'TITRE' 'N2, polynome du 6-eme degre' ; 'DESSIN' (EVCVO2 'ET' EVCV1O2) 'LEGE' TAB1 'TITRE' 'O2, polynome du 6-eme degre' ; 'FINSI' ; * **** Pression, densite, temperature et vitesse * RN = 'BRUI' 'BLAN' 'UNIF' 1.0 0.1 MAIL ; TN = 'BRUI' 'BLAN' 'UNIF' 5000 1000 MAIL ; YH2 = 'BRUI' 'BLAN' 'UNIF' 0.3 0.1 MAIL ; YO2 = 'BRUI' 'BLAN' 'UNIF' 0.2 0.1 MAIL ; YH2O = 'BRUI' 'BLAN' 'UNIF' 0.1 0.05 MAIL ; YN2 = 1.0 '-' (YH2 '+' YO2 '+' YH2O) ; RYH2 = RN * YH2 ; RYH2O = RN * YH2O ; RYO2 = RN * YO2 ; RYN2 = RN * YN2 ; YH2 = 'NOMC' YH2 'H2 ' 'NATU' 'DISCRET' ; YH2O = 'NOMC' YH2O 'H2O ' 'NATU' 'DISCRET' ; YO2 = 'NOMC' YO2 'O2 ' 'NATU' 'DISCRET' ; YN2 = 'NOMC' YN2 'N2 ' 'NATU' 'DISCRET' ; YN = YH2 'ET' YO2 'ET' YH2O ; RYH2 = 'NOMC' RYH2 'H2 ' 'NATU' 'DISCRET' ; RYH2O = 'NOMC' RYH2O 'H2O ' 'NATU' 'DISCRET' ; RYO2 = 'NOMC' RYO2 'O2 ' 'NATU' 'DISCRET' ; RYN2 = 'NOMC' RYN2 'N2 ' 'NATU' 'DISCRET' ; VNX = 'BRUI' 'BLAN' 'UNIF' 1.0 0.1 MAIL ; VNY = 'BRUI' 'BLAN' 'UNIF' 1.0 0.1 MAIL ; VN = ('NOMC' VNX 'UX' 'NATU' 'DISCRET' ) 'ET' ('NOMC' VNY 'UY' 'NATU' 'DISCRET' ) ; GN = ('NOMC' (VNX * RN) 'UX' 'NATU' 'DISCRET' ) 'ET' ('NOMC' (VNY * RN) 'UY' 'NATU' 'DISCRET' ) ; RYN = RYH2 'ET' RYH2O 'ET' RYO2 ; * * 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 ; T6 = T5 * TN ; T7 = T6 * TN ; ETERH2 = 'NOMC' ((A0H2 * TN) '+' ((A1H2 '/' 2.0) * T2) '+' ((A2H2 '/' 3.0) * T3) '+' ((A3H2 '/' 4.0) * T4) '+' ((A4H2 '/' 5.0) * T5) '+' ((A5H2 '/' 6.0) * T6) '+' ((A6H2 '/' 7.0) * T7)) 'H2 ' 'NATU' 'DISCRET' ; ETERH2O = 'NOMC' ((A0H2O * TN) '+' ((A1H2O '/' 2.0) * T2) '+' ((A2H2O '/' 3.0) * T3) '+' ((A3H2O '/' 4.0) * T4) '+' ((A4H2O '/' 5.0) * T5)'+' ((A5H2O '/' 6.0) * T6) '+' ((A6H2O '/' 7.0) * T7)) 'H2O ' 'NATU' 'DISCRET' ; ETERO2 = 'NOMC' ((A0O2 * TN) '+' ((A1O2 '/' 2.0) * T2) '+' ((A2O2 '/' 3.0) * T3) '+' ((A3O2 '/' 4.0) * T4) '+' ((A4O2 '/' 5.0) * T5) '+' ((A5O2 '/' 6.0) * T6) '+' ((A6O2 '/' 7.0) * T7)) 'O2 ' 'NATU' 'DISCRET' ; ETERN2 = 'NOMC' ((A0N2 * TN) '+' ((A1N2 '/' 2.0) * T2) '+' ((A2N2 '/' 3.0) * T3) '+' ((A3N2 '/' 4.0) * T4) '+' ((A4N2 '/' 5.0) * T5)'+' ((A5N2 '/' 6.0) * T6) '+' ((A6N2 '/' 7.0) * T7)) 'N2 ' 'NATU' 'DISCRET' ; ETHERSIN = ETERH2 'ET' ETERH2O 'ET' ETERO2 'ET' ETERN2 ; LISCOM1 = 'MOTS' 'H2 ' 'O2 ' 'H2O ' 'N2 '; RETHER = 'PSCAL' ETHERSIN (RYN 'ET' RYN2) LISCOM1 LISCOM1 ; LISCOM2 = 'MOTS' 'UX ' 'UY '; RECIN = 'PSCAL' (0.5 '*' VN) GN LISCOM2 LISCOM2 ; RET = RECIN '+' RETHER ; CVH2 = 'NOMC' (A0H2 '+' (A1H2 * TN) '+' (A2H2 * T2) '+' (A3H2 * T3) '+' (A4H2 * T4) '+' (A5H2 * T5) '+' (A6H2 * T6)) 'H2 ' 'NATU' 'DISCRET' ; CVH2O = 'NOMC' (A0H2O '+' (A1H2O * TN) '+' (A2H2O * T2) '+' (A3H2O * T3) '+' (A4H2O * T4) '+' (A5H2O * T5) '+' (A6H2O * T6)) 'H2O ' 'NATU' 'DISCRET' ; CVO2 = 'NOMC' (A0O2 '+' (A1O2 * TN) '+' (A2O2 * T2) '+' (A3O2 * T3) '+' (A4O2 * T4) '+' (A5O2 * T5) '+' (A6O2 * T6)) 'O2 ' 'NATU' 'DISCRET' ; CVN2 = 'NOMC' (A0N2 '+' (A1N2 * TN) '+' (A2N2 * T2) '+' (A3N2 * T3) '+' (A4N2 * T4) '+' (A5N2 * T5) '+' (A6N2 * T6)) 'N2 ' 'NATU' 'DISCRET' ; CPH2 = CVH2 '+' (PGAZ . 'H2 ' . 'R') ; CPH2O = CVH2O '+' (PGAZ . 'H2O ' . 'R') ; CPN2 = CVN2 '+' (PGAZ . 'N2 ' . 'R') ; CPO2 = CVO2 '+' (PGAZ . 'O2 ' . 'R') ; CPSIN = CPH2 'ET' CPH2O 'ET' CPN2 'ET' CPO2 ; CPTOT = 'PSCAL' CPSIN (YN 'ET' YN2) LISCOM1 LISCOM1 ; CVSIN = CVH2 'ET' CVH2O 'ET' CVN2 'ET' CVO2 ; CVTOT = 'PSCAL' CVSIN (YN 'ET'YN2) LISCOM1 LISCOM1 ; GAMN = CPTOT '/' CVTOT ; RTOT = CPTOT '-' CVTOT ; PN = (RTOT '*' TN) '*' RN ; * **** PRIM * VITESSE PRES TEMPNEW YNNEW GAMNEW = 'PRIM' 'PERFTEMP' PGAZ RN GN RET RYN ; * **** TEST * ERRV = ('MAXIMUM' (VN '-' VITESSE) 'ABS') '/' ('MAXIMUM' VN) ; ERRP = 'MAXIMUM' ((PRES '-' PN) '/' PN) 'ABS'; ERRT = 'MAXIMUM' ((TEMPNEW '-' TN) '/' TN) 'ABS'; ERRG = 'MAXIMUM' ((GAMN '-' GAMNEW) '/' GAMN) 'ABS'; ERRY = ('MAXIMUM' (YN '-' YNNEW) 'ABS') '/' ('MAXIMUM' YN) ; 'SI' (('MAXIMUM' ('PROG' ERRV ERRP ERRT ERRG ERRY )) '>' ERRMAX); 'MESSAGE' ('CHAINE' 'Erreur maximum'); 'LISTE' ('MAXIMUM' ('PROG' ERRV ERRP ERRT ERRG ERRY )); 'ERREUR' 5; 'FINSI' ; **** Avec une temperature de premier tentative VITESSE PRES TEMPNEW2 YNNEW GAMNEW = 'PRIM' 'PERFTEMP' PGAZ RN GN RET RYN TEMPNEW ; 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 ; T6 = T5 * TEMPNEW ; T7 = T6 * TEMPNEW ; ETERH2 = 'NOMC' ((A0H2 * TEMPNEW) '+' ((A1H2 '/' 2.0) * T2) '+' ((A2H2 '/' 3.0) * T3) '+' ((A3H2 '/' 4.0) * T4) '+' ((A4H2 '/' 5.0) * T5) '+' ((A5H2 '/' 6.0) * T6) '+' ((A6H2 '/' 7.0) * T7)) 'H2 ' 'NATU' 'DISCRET' ; ETERH2O = 'NOMC' ((A0H2O * TEMPNEW) '+' ((A1H2O '/' 2.0) * T2) '+' ((A2H2O '/' 3.0) * T3) '+' ((A3H2O '/' 4.0) * T4) '+' ((A4H2O '/' 5.0) * T5)'+' ((A5H2O '/' 6.0) * T6) '+' ((A6H2O '/' 7.0) * T7)) 'H2O ' 'NATU' 'DISCRET' ; ETERO2 = 'NOMC' ((A0O2 * TEMPNEW) '+' ((A1O2 '/' 2.0) * T2) '+' ((A2O2 '/' 3.0) * T3) '+' ((A3O2 '/' 4.0) * T4) '+' ((A4O2 '/' 5.0) * T5) '+' ((A5O2 '/' 6.0) * T6) '+' ((A6O2 '/' 7.0) * T7)) 'O2 ' 'NATU' 'DISCRET' ; ETERN2 = 'NOMC' ((A0N2 * TEMPNEW) '+' ((A1N2 '/' 2.0) * T2) '+' ((A2N2 '/' 3.0) * T3) '+' ((A3N2 '/' 4.0) * T4) '+' ((A4N2 '/' 5.0) * T5)'+' ((A5N2 '/' 6.0) * T6) '+' ((A6N2 '/' 7.0) * T7)) 'N2 ' 'NATU' 'DISCRET' ; ETHERSIN = ETERH2 'ET' ETERH2O 'ET' ETERO2 'ET' ETERN2 ; LISCOM1 = 'MOTS' 'H2 ' 'O2 ' 'H2O ' 'N2 '; RETHER_N = 'PSCAL' ETHERSIN (RYN 'ET' RYN2) LISCOM1 LISCOM1 ; ERRET = 'MAXIMUM' ((RETHER '-' RETHER_N) '/' RETHER) 'ABS' ; 'SI' (ERRET > ERRMAX) ; 'MESSAGE' ('CHAINE' 'Erreur maximum' ERRET) ; 'ERREUR' 5 ; 'FINSI' ; 'FIN' ;