Télécharger prim_ther_2es.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : prim_ther_2es.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. **********************************************************************
  5. **** APPROCHE VF "Cell-Centred Formulation" pour la solution des ****
  6. **** Equations d'Euler pour un gaz parfait ****
  7. **** OPERATEUR PRIM ****
  8. **** Gaz multi-especes (deux especes) "thermally perfect" ****
  9. **** ****
  10. **** A. BECCANTINI DRN/DMT/SEMT/LTMF JANVIER 2000 ****
  11. **********************************************************************
  12. *
  13. 'OPTION' 'DIME' 2 'ELEM' QUA4
  14. 'ECHO' 0 'TRAC' 'X';
  15. *
  16. *
  17. **** GRAPH
  18. *
  19. *
  20. GRAPH = FAUX ;
  21. * GRAPH = VRAI ;
  22. *
  23.  
  24. *
  25. *** On considere une melange H2, O2
  26. *
  27. * De la table JANAF on a, pour les cp (J/Kg/K)
  28. *
  29.  
  30. LTEMP = 'PROG' .2000D+03 .3000D+03 .4000D+03 .5000D+03
  31. .6000D+03
  32. .7000D+03 .8000D+03 .9000D+03 .1000D+04 .1100D+04
  33. .1200D+04 .1300D+04 .1400D+04 .1500D+04 .1600D+04
  34. .1700D+04 .1800D+04 .1900D+04 .2000D+04 .2100D+04
  35. .2200D+04 .2300D+04 .2400D+04 .2500D+04 .2600D+04 ;
  36.  
  37. LTEMP = LTEMP 'ET' ('PROG'
  38. .2700D+04 .2800D+04 .2900D+04 .3000D+04 .3100D+04
  39. .3200D+04 .3300D+04 .3400D+04 .3500D+04 .3600D+04
  40. .4000D+04 .4500D+04 .5000D+04 .5500D+04 .6000D+04) ;
  41.  
  42. LCVH2 = 'PROG' .9944D+04 .1018D+05 .1035D+05 .1039D+05
  43. .1042D+05
  44. .1048D+05 .1057D+05 .1070D+05 .1086D+05 .1104D+05
  45. .1125D+05 .1147D+05 .1168D+05 .1190D+05 .1211D+05
  46. .1231D+05 .1251D+05 .1270D+05 .1288D+05 .1305D+05
  47. .1321D+05 .1337D+05 .1351D+05 .1365D+05 .1378D+05 ;
  48.  
  49. LCVH2 = LCVH2 'ET' ('PROG'
  50. .1391D+05 .1403D+05 .1415D+05 .1426D+05 .1438D+05
  51. .1449D+05 .1460D+05 .1471D+05 .1480D+05 .1490D+05
  52. .1528D+05 .1573D+05 .1613D+05 .1646D+05 .1669D+05 ) ;
  53.  
  54. LCVO2 = 'PROG' .6500D+03 .6580D+03 .6810D+03 .7120D+03
  55. .7430D+03
  56. .7710D+03 .7940D+03 .8140D+03 .8300D+03 .8430D+03
  57. .8550D+03 .8650D+03 .8740D+03 .8820D+03 .8900D+03
  58. .8970D+03 .9040D+03 .9110D+03 .9180D+03 .9250D+03
  59. .9320D+03 .9390D+03 .9450D+03 .9520D+03 .9580D+03 ;
  60.  
  61. LCVO2 = LCVO2 'ET' ('PROG'
  62. .9640D+03 .9700D+03 .9760D+03 .9810D+03 .9870D+03
  63. .9920D+03 .9970D+03 .1001D+04 .1006D+04 .1010D+04
  64. .1034D+04 .1054D+04 .1074D+04 .1097D+04 .1127D+04 ) ;
  65.  
  66.  
  67. 'MESSAGE' ;
  68. 'MESSAGE' ('cv_i = polynoms de 4-eme degree');
  69. 'MESSAGE' ;
  70.  
  71. ERRMAX = 1.0D-6 ;
  72.  
  73.  
  74. *) Degre de polynome = 4
  75.  
  76. ***********************
  77. **** LA TABLE PGAZ ****
  78. ***********************
  79.  
  80. PGAZ = 'TABLE' ;
  81.  
  82. *
  83. **** Ordre des polynoms
  84. *
  85.  
  86. PGAZ . 'NORD' = 4 ;
  87.  
  88. *
  89. **** Especes qui sont dans les equations d'Euler
  90. *
  91.  
  92. PGAZ . 'ESPEULE' = 'MOTS' 'H2 ' ;
  93.  
  94. *
  95. **** Espece qui n'y est pas
  96. *
  97.  
  98.  
  99. PGAZ . 'ESPNEULE' = 'O2 ' ;
  100.  
  101. *
  102.  
  103. PGAZ . 'H2 ' = 'TABLE' ;
  104. PGAZ . 'O2 ' = 'TABLE' ;
  105.  
  106. *
  107. **** R (J/Kg/K)
  108. *
  109.  
  110. PGAZ . 'H2 ' . 'R' = 4130.0 ;
  111. PGAZ . 'O2 ' . 'R' = 259.8 ;
  112.  
  113.  
  114. *
  115. **** Regressions polynomials
  116. *
  117.  
  118. PGAZ . 'H2 ' . 'A' = 'PROG' 9834.91866 0.54273926 0.000862203836
  119. -2.37281455E-07 1.84701105E-11 ;
  120. PGAZ . 'O2 ' . 'A' = 'PROG' 575.012333 0.350522002 -0.000128294865
  121. 2.33636971E-08 -1.53304905E-12;
  122.  
  123. *
  124. **** "Enthalpies" (ou energies) de formations a OK (J/Kg)
  125. *
  126.  
  127. PGAZ . 'H2 ' . 'H0K' = -4.195D6 ;
  128. PGAZ . 'O2 ' . 'H0K' = -2.634D5 ;
  129.  
  130.  
  131. *
  132. *** Fin PGAZ
  133. *
  134.  
  135. A0H2 = 'EXTRAIRE' (PGAZ . 'H2 ' . 'A') 1 ;
  136. A1H2 = 'EXTRAIRE' (PGAZ . 'H2 ' . 'A') 2 ;
  137. A2H2 = 'EXTRAIRE' (PGAZ . 'H2 ' . 'A') 3 ;
  138. A3H2 = 'EXTRAIRE' (PGAZ . 'H2 ' . 'A') 4 ;
  139. A4H2 = 'EXTRAIRE' (PGAZ . 'H2 ' . 'A') 5 ;
  140.  
  141.  
  142. A0O2 = 'EXTRAIRE' (PGAZ . 'O2 ' . 'A') 1 ;
  143. A1O2 = 'EXTRAIRE' (PGAZ . 'O2 ' . 'A') 2 ;
  144. A2O2 = 'EXTRAIRE' (PGAZ . 'O2 ' . 'A') 3 ;
  145. A3O2 = 'EXTRAIRE' (PGAZ . 'O2 ' . 'A') 4 ;
  146. A4O2 = 'EXTRAIRE' (PGAZ . 'O2 ' . 'A') 5 ;
  147.  
  148. LCV1H2 = 'PROG' ;
  149. LCV1O2 = 'PROG' ;
  150.  
  151. 'REPETER' BL1 ('DIME' LTEMP ) ;
  152. T = 'EXTRAIRE' LTEMP &BL1 ;
  153. T2 = T * T ;
  154. T3 = T2 * T ;
  155. T4 = T3 * T;
  156. LCV1H2 = LCV1H2 'ET' ('PROG'
  157. (A0H2 '+' (A1H2 * T) '+' (A2H2 * T2) '+' (A3H2 * T3) '+'
  158. (A4H2 * T4))) ;
  159. LCV1O2 = LCV1O2 'ET' ('PROG'
  160. (A0O2 '+' (A1O2 * T) '+' (A2O2 * T2) '+' (A3O2 * T3) '+'
  161. (A4O2 * T4))) ;
  162. 'FIN' BL1 ;
  163.  
  164. EVCVH2 = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/Kg/K)' LCVH2 ;
  165. EVCV1H2 = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/Kg/K)' LCV1H2 ;
  166. EVCVO2 = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/Kg/K)' LCVO2 ;
  167. EVCV1O2 = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/Kg/K)' LCV1O2 ;
  168.  
  169. TAB1 = 'TABLE' ;
  170. TAB1 . 'TITRE' = 'TABLE' ;
  171. TAB1 . 1 ='TIRR ';
  172. TAB1 . 'TITRE' . 1 = 'JANAF DATA';
  173. TAB1 . 2 = 'MARQ CROI';
  174. TAB1 . 'TITRE' . 2 = 'POLYN. REGR.';
  175.  
  176. 'SI' GRAPH ;
  177. 'DESSIN' (EVCVH2 'ET' EVCV1H2) 'LEGE' TAB1 'TITRE'
  178. 'H2, polynome de 4-eme degre' ;
  179. 'DESSIN' (EVCVO2 'ET' EVCV1O2) 'LEGE' TAB1 'TITRE'
  180. 'O2, polynome de 4-eme degre' ;
  181. 'FINSI' ;
  182.  
  183. ***************************
  184. ***** DOMAINE SPATIAL ****
  185. ***************************
  186.  
  187.  
  188. A1 = 0.0D0 0.0D0;
  189. A2 = 2.0D0 0.0D0;
  190. A3 = 3.0D0 0.0D0;
  191. A4 = 4.0D0 1.0D0;
  192. A5 = 1.0D0 1.0D0;
  193. A6 = 0.0D0 1.0D0;
  194. A7 = 7.0D0 8.0D0 ;
  195.  
  196. MAI1 = ('MANUEL' 'POI1' A1) 'ET'
  197. ('MANUEL' 'POI1' A2) 'ET'
  198. ('MANUEL' 'POI1' A3) 'ET'
  199. ('MANUEL' 'POI1' A4) 'ET'
  200. ('MANUEL' 'POI1' A5) 'ET'
  201. ('MANUEL' 'POI1' A6) ;
  202. *
  203.  
  204. MAI2 = ('MANUEL' 'POI1' A2) 'ET'
  205. ('MANUEL' 'POI1' A1) 'ET'
  206. ('MANUEL' 'POI1' A3) 'ET'
  207. ('MANUEL' 'POI1' A4) 'ET'
  208. ('MANUEL' 'POI1' A5) 'ET'
  209. ('MANUEL' 'POI1' A6) ;
  210. *
  211. MAI3 = ('MANUEL' 'POI1' A3) 'ET'
  212. ('MANUEL' 'POI1' A2) 'ET'
  213. ('MANUEL' 'POI1' A1) 'ET'
  214. ('MANUEL' 'POI1' A4) 'ET'
  215. ('MANUEL' 'POI1' A5) 'ET'
  216. ('MANUEL' 'POI1' A6) ;
  217. *
  218. MAI4 = ('MANUEL' 'POI1' A4) 'ET'
  219. ('MANUEL' 'POI1' A3) 'ET'
  220. ('MANUEL' 'POI1' A2) 'ET'
  221. ('MANUEL' 'POI1' A1) 'ET'
  222. ('MANUEL' 'POI1' A5) 'ET'
  223. ('MANUEL' 'POI1' A6) ;
  224.  
  225.  
  226.  
  227. *
  228. **** Pression, densite, temperature et vitesse
  229. *
  230.  
  231. RN = 'BRUI' 'BLAN' 'UNIF' 1.0 0.1 MAI1 ;
  232. TN = 'BRUI' 'BLAN' 'UNIF' 5000 1000 MAI1 ;
  233. YN = 'NOMC' 'H2 '
  234. ('BRUI' 'BLAN' 'UNIF' 0.3 0.1 MAI1)
  235. 'NATU' 'DISCRET' ;
  236.  
  237. UNCH = 'MANUEL' 'CHPO' MAI2 1 'SCAL' 1.0D0 'NATU' 'DISCRET' ;
  238. YO2 = 'NOMC' 'O2 ' (UNCH '-' ('PSCAL' UNCH YN ('MOTS' 'SCAL')
  239. (PGAZ . 'ESPEULE'))) 'NATU' 'DISCRET' ;
  240.  
  241. YNTOT = YN 'ET' YO2 ;
  242. RYN = YN '*' RN (PGAZ . 'ESPEULE') ('MOTS' 'SCAL')
  243. (PGAZ . 'ESPEULE') ;
  244.  
  245. LMOT1 = ('MOTS' (PGAZ . 'ESPNEULE')) 'ET' (PGAZ . 'ESPEULE') ;
  246. RYNTOT = YNTOT * RN LMOT1 ('MOTS' 'SCAL' 'SCAL') LMOT1 ;
  247.  
  248.  
  249. VNX = 'BRUI' 'BLAN' 'UNIF' 1.0 0.1 MAI1 ;
  250. VNY = 'BRUI' 'BLAN' 'UNIF' 1.0 0.1 MAI3 ;
  251.  
  252. VN = ('NOMC' VNX 'UX' 'NATU' 'DISCRET' ) 'ET'
  253. ('NOMC' VNY 'UY' 'NATU' 'DISCRET' ) ;
  254.  
  255. GN = VN '*' RN ('MOTS' 'UY' 'UX') ('MOTS' 'SCAL' 'SCAL')
  256. ('MOTS' 'UY' 'UX') ;
  257.  
  258. GN1 = 'COPIER' GN ;
  259.  
  260.  
  261. *
  262. * Calcul de l'energie thermique et du gamma
  263. *
  264. * Ether = \sum_{i=1,4} Y_i \int_{0}^{T} cv_i(x) dx
  265. * gamma = (\sum_{i=1,4} Y_i cp_i) / (\sum_{i=1,4} Y_i cv_i)
  266. *
  267.  
  268. T2 = TN * TN ;
  269. T3 = T2 * TN ;
  270. T4 = T3 * TN ;
  271. T5 = T4 * TN ;
  272.  
  273. ETERH2 = 'NOMC' ((A0H2 * TN) '+' ((A1H2 '/' 2.0) * T2) '+'
  274. ((A2H2 '/' 3.0) * T3) '+' ((A3H2 '/' 4.0) * T4) '+'
  275. ((A4H2 '/' 5.0) * T5)) 'H2 ' 'NATU' 'DISCRET' ;
  276.  
  277. ETERO2 = 'NOMC' ((A0O2 * TN) '+' ((A1O2 '/' 2.0) * T2) '+'
  278. ((A2O2 '/' 3.0) * T3) '+' ((A3O2 '/' 4.0) * T4) '+'
  279. ((A4O2 '/' 5.0) * T5)) 'O2 ' 'NATU' 'DISCRET' ;
  280.  
  281.  
  282. ETHERSIN = ETERH2 'ET' ETERO2 ;
  283.  
  284.  
  285. RETHER = 'PSCAL' ETHERSIN RYNTOT LMOT1 LMOT1 ;
  286.  
  287. LMOT2 = 'MOTS' 'UX ' 'UY ';
  288. RECIN = 'PSCAL' (0.5 '*' VN) GN LMOT2 LMOT2 ;
  289.  
  290. RET = RECIN '+' RETHER ;
  291.  
  292. CVH2 = 'NOMC' (A0H2 '+' (A1H2 * TN) '+'
  293. (A2H2 * T2) '+' (A3H2 * T3) '+'
  294. (A4H2 * T4)) 'H2 ' 'NATU' 'DISCRET' ;
  295.  
  296.  
  297. CVO2 = 'NOMC' (A0O2 '+' (A1O2 * TN) '+'
  298. (A2O2 * T2) '+' (A3O2 * T3) '+'
  299. (A4O2 * T4)) 'O2 ' 'NATU' 'DISCRET' ;
  300.  
  301.  
  302. CPH2 = CVH2 '+' (PGAZ . 'H2 ' . 'R') ;
  303. CPO2 = CVO2 '+' (PGAZ . 'O2 ' . 'R') ;
  304.  
  305. CPSIN = CPH2 'ET' CPO2 ;
  306. CPTOT = 'PSCAL' CPSIN YNTOT LMOT1 LMOT1 ;
  307.  
  308. CVSIN = CVH2 'ET' CVO2 ;
  309. CVTOT = 'PSCAL' CVSIN YNTOT LMOT1 LMOT1 ;
  310.  
  311. GAMN = CPTOT '/' CVTOT ;
  312.  
  313. RTOT = CPTOT '-' CVTOT ;
  314.  
  315. PN = (RTOT '*' TN) '*' RN ;
  316.  
  317. *
  318. **** PRIM
  319. *
  320.  
  321. VITESSE PRES TEMPNEW YNNEW GAMNEW
  322. = 'PRIM' 'PERFTEMP' PGAZ RN GN RET RYN ;
  323.  
  324.  
  325. *
  326. **** TEST
  327. *
  328.  
  329. ERRGN = ('MAXIMUM' (GN '-' GN1) 'ABS') '/'
  330. ('MAXIMUM' GN 'ABS' ) ;
  331.  
  332. ERRV = ('MAXIMUM' (VN '-' VITESSE) 'ABS')
  333. '/' ('MAXIMUM' VN 'ABS' ) ;
  334.  
  335. ERRP = 'MAXIMUM' ((PRES '-' PN) '/' PN) 'ABS';
  336.  
  337. ERRT = 'MAXIMUM' ((TEMPNEW '-' TN) '/' TN) 'ABS';
  338.  
  339. ERRG = 'MAXIMUM' ((GAMN '-' GAMNEW) '/' GAMN) 'ABS';
  340.  
  341. ERRY = ('MAXIMUM' (YN '-' YNNEW) 'ABS')
  342. '/' ('MAXIMUM' YN) ;
  343.  
  344.  
  345. 'SI' (('MAXIMUM' ('PROG' ERRGN ERRV ERRP ERRT ERRG ERRY )) '>'
  346. ERRMAX);
  347. 'MESSAGE' ('CHAINE' 'Erreur maximum');
  348. 'LISTE' ('MAXIMUM' ('PROG' ERRV ERRP ERRT ERRG ERRY
  349. ));
  350. 'ERREUR' 5;
  351. 'FINSI' ;
  352.  
  353. **** Avec une temperature de premier tentative
  354.  
  355. VITESSE PRES TEMPNEW2 YNNEW GAMNEW
  356. = 'PRIM' 'PERFTEMP' PGAZ RN GN RET RYN TEMPNEW ;
  357.  
  358. ERRT = 'MAXIMUM' ((TEMPNEW '-' TEMPNEW2) '/' TEMPNEW) 'ABS';
  359.  
  360.  
  361. 'SI' (ERRT > ERRMAX);
  362. 'MESSAGE' ('CHAINE' 'Erreur maximum' ERRT) ;
  363. 'ERREUR' 5;
  364. 'FINSI' ;
  365.  
  366. **** On teste aussi la difference entre l'energie initiale et celle la.
  367.  
  368. T2 = TEMPNEW * TEMPNEW ;
  369. T3 = T2 * TEMPNEW ;
  370. T4 = T3 * TEMPNEW ;
  371. T5 = T4 * TEMPNEW ;
  372.  
  373. ETERH2 = 'NOMC' ((A0H2 * TEMPNEW) '+' ((A1H2 '/' 2.0) * T2) '+'
  374. ((A2H2 '/' 3.0) * T3) '+' ((A3H2 '/' 4.0) * T4) '+'
  375. ((A4H2 '/' 5.0) * T5)) 'H2 ' 'NATU' 'DISCRET' ;
  376.  
  377.  
  378. ETERO2 = 'NOMC' ((A0O2 * TEMPNEW) '+' ((A1O2 '/' 2.0) * T2) '+'
  379. ((A2O2 '/' 3.0) * T3) '+' ((A3O2 '/' 4.0) * T4) '+'
  380. ((A4O2 '/' 5.0) * T5)) 'O2 ' 'NATU' 'DISCRET' ;
  381.  
  382.  
  383. ETHERSIN = ETERH2 'ET' ETERO2 ;
  384.  
  385. RETHER_N = 'PSCAL' ETHERSIN RYNTOT LMOT1 LMOT1 ;
  386.  
  387. ERRET = 'MAXIMUM' ((RETHER '-' RETHER_N) '/' RETHER) 'ABS' ;
  388.  
  389. 'SI' (ERRET > ERRMAX);
  390. 'MESSAGE' ('CHAINE' 'Erreur maximum' ERRET) ;
  391. 'ERREUR' 5;
  392. 'FINSI' ;
  393.  
  394. *
  395. **** Scalaires passifs
  396. *
  397.  
  398. PGAZ . 'SCALPASS' = 'MOTS' 'REPS' 'RTAU' ;
  399.  
  400. SN = 'MANUEL' 'CHPO' MAI1 2 'RTAU' ('PROG' 12.5 11.5 10.5
  401. 9.5 12.9 11.0) 'REPS' ('PROG' 11.5 10.5
  402. 9.5 12.9 11.0 12.5) ;
  403.  
  404. RSN = SN '*' RN ('MOTS' 'RTAU' 'REPS') ('MOTS' 'SCAL' 'SCAL')
  405. ('MOTS' 'RTAU' 'REPS') ;
  406.  
  407. RSN1 = 'COPIER' RSN ;
  408.  
  409. VITESSE PRES TEMPNEW2 YNNEW SNNEW GAMNEW
  410. = 'PRIM' 'PERFTEMP' PGAZ RN GN RET RYN RSN TEMPNEW ;
  411.  
  412. ERRSN = ('MAXIMUM' (SN '-' SNNEW) 'ABS') '/'
  413. ('MAXIMUM' SN 'ABS' ) ;
  414.  
  415. ERRRSN = ('MAXIMUM' (RSN '-' RSN1) 'ABS') '/'
  416. ('MAXIMUM' RSN 'ABS' ) ;
  417.  
  418. ERRGN = ('MAXIMUM' (GN '-' GN1) 'ABS') '/'
  419. ('MAXIMUM' GN 'ABS' ) ;
  420.  
  421. ERRV = ('MAXIMUM' (VN '-' VITESSE) 'ABS')
  422. '/' ('MAXIMUM' VN 'ABS' ) ;
  423.  
  424. ERRP = 'MAXIMUM' ((PRES '-' PN) '/' PN) 'ABS';
  425.  
  426. ERRT = 'MAXIMUM' ((TEMPNEW '-' TN) '/' TN) 'ABS';
  427.  
  428. ERRG = 'MAXIMUM' ((GAMN '-' GAMNEW) '/' GAMN) 'ABS';
  429.  
  430. ERRY = ('MAXIMUM' (YN '-' YNNEW) 'ABS')
  431. '/' ('MAXIMUM' YN) ;
  432.  
  433.  
  434. 'SI' (('MAXIMUM' ('PROG' ERRV ERRP ERRT ERRG ERRY ERRSN ERRRSN )) '>'
  435. ERRMAX);
  436. 'MESSAGE' ('CHAINE' 'Erreur maximum');
  437. 'LISTE' ('MAXIMUM' ('PROG' ERRV ERRP ERRT ERRG ERRY
  438. ));
  439. 'ERREUR' 5;
  440. 'FINSI' ;
  441.  
  442.  
  443. 'FIN' ;
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales