Télécharger prim_ther_mono.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : prim_ther_mono.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ***********************************************************
  5. **** APPROCHE VF "Cell-Centred Formulation" pour la ****
  6. **** solution des ****
  7. **** Equations d'Euler pour un gaz parfait ****
  8. **** OPERATEUR PRIM ****
  9. **** Gaz monoespece "thermally perfect" ****
  10. **** ****
  11. **** A. BECCANTINI DRN/DMT/SEMT/LTMF FEVRIER 2000 ****
  12. ***********************************************************
  13. *
  14. 'OPTION' 'DIME' 2 ;
  15. 'OPTION' 'ELEM' QUA4 ;
  16. 'OPTION' 'ECHO' 0 ;
  17. 'OPTION' 'TRAC' 'X';
  18.  
  19. *
  20. *
  21. **** GRAPH
  22. *
  23. *
  24. GRAPH = FAUX ;
  25. * GRAPH = VRAI ;
  26. *
  27.  
  28. ERRMAX = 1.0D-6 ;
  29.  
  30. 'MESSAGE' ;
  31. 'MESSAGE' ('cv = polynom de 4-eme degree');
  32. 'MESSAGE' ;
  33.  
  34. *
  35. *** On considere une melange H2, O2, H2O, N2
  36. *
  37. * De la table JANAF on a, pour les cp (J/Kg/K)
  38. *
  39.  
  40. LTEMP = 'PROG' .2000D+03 .3000D+03 .4000D+03 .5000D+03 .6000D+03
  41. .7000D+03 .8000D+03 .9000D+03 .1000D+04 .1100D+04
  42. .1200D+04 .1300D+04 .1400D+04 .1500D+04 .1600D+04
  43. .1700D+04 .1800D+04 .1900D+04 .2000D+04 .2100D+04
  44. .2200D+04 .2300D+04 .2400D+04 .2500D+04 .2600D+04 ;
  45.  
  46. LTEMP = LTEMP 'ET' ('PROG'
  47. .2700D+04 .2800D+04 .2900D+04 .3000D+04 .3100D+04
  48. .3200D+04 .3300D+04 .3400D+04 .3500D+04 .3600D+04
  49. .4000D+04 .4500D+04 .5000D+04 .5500D+04 .6000D+04) ;
  50.  
  51. LCVH2 = 'PROG' .9944D+04 .1018D+05 .1035D+05 .1039D+05 .1042D+05
  52. .1048D+05 .1057D+05 .1070D+05 .1086D+05 .1104D+05
  53. .1125D+05 .1147D+05 .1168D+05 .1190D+05 .1211D+05
  54. .1231D+05 .1251D+05 .1270D+05 .1288D+05 .1305D+05
  55. .1321D+05 .1337D+05 .1351D+05 .1365D+05 .1378D+05 ;
  56.  
  57. LCVH2 = LCVH2 'ET' ('PROG'
  58. .1391D+05 .1403D+05 .1415D+05 .1426D+05 .1438D+05
  59. .1449D+05 .1460D+05 .1471D+05 .1480D+05 .1490D+05
  60. .1528D+05 .1573D+05 .1613D+05 .1646D+05 .1669D+05 ) ;
  61.  
  62.  
  63.  
  64. ***********************
  65. **** LA TABLE PGAZ ****
  66. ***********************
  67.  
  68. PGAZ = 'TABLE' ;
  69.  
  70.  
  71. PGAZ . 'NORD' = 4 ;
  72. *
  73. **** La seul espece
  74. *
  75.  
  76. PGAZ . 'ESPNEULE' = 'H2 ';
  77.  
  78. *
  79.  
  80. PGAZ . 'H2 ' = 'TABLE' ;
  81. *
  82. **** R (J/Kg/K)
  83. *
  84.  
  85. PGAZ . 'H2 ' . 'R' = 4130.0 ;
  86.  
  87. *
  88. **** Regressions polynomials
  89. *
  90.  
  91. PGAZ . 'H2 ' . 'A' = 'PROG' 9834.91866 0.54273926 0.000862203836
  92. -2.37281455E-07 1.84701105E-11 ;
  93.  
  94. *
  95. **** "Enthalpies" (ou energies) de formations a OK (J/Kg)
  96. * Note: ce sont des entites numeriques
  97.  
  98. PGAZ . 'H2 ' . 'H0K' = -4.195D6 ;
  99.  
  100. *
  101. *** Fin PGAZ
  102. *
  103.  
  104. A0H2 = 'EXTRAIRE' (PGAZ . 'H2 ' . 'A') 1 ;
  105. A1H2 = 'EXTRAIRE' (PGAZ . 'H2 ' . 'A') 2 ;
  106. A2H2 = 'EXTRAIRE' (PGAZ . 'H2 ' . 'A') 3 ;
  107. A3H2 = 'EXTRAIRE' (PGAZ . 'H2 ' . 'A') 4 ;
  108. A4H2 = 'EXTRAIRE' (PGAZ . 'H2 ' . 'A') 5 ;
  109.  
  110. LCV1H2 = 'PROG' ;
  111. LCV1H2O = 'PROG' ;
  112. LCV1N2 = 'PROG' ;
  113. LCV1O2 = 'PROG' ;
  114.  
  115. 'REPETER' BL1 ('DIME' LTEMP ) ;
  116. T = 'EXTRAIRE' LTEMP &BL1 ;
  117. T2 = T * T ;
  118. T3 = T2 * T ;
  119. T4 = T3 * T;
  120. LCV1H2 = LCV1H2 'ET' ('PROG'
  121. (A0H2 '+' (A1H2 * T) '+' (A2H2 * T2) '+' (A3H2 * T3) '+'
  122. (A4H2 * T4))) ;
  123. 'FIN' BL1 ;
  124.  
  125. EVCVH2 = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/Kg/K)' LCVH2 ;
  126. EVCV1H2 = 'EVOL' 'MANU' 'T(K)' LTEMP 'CV (J/Kg/K)' LCV1H2 ;
  127.  
  128. TAB1 = 'TABLE' ;
  129. TAB1 . 'TITRE' = 'TABLE' ;
  130. TAB1 . 1 ='TIRR ';
  131. TAB1 . 'TITRE' . 1 = 'JANAF DATA';
  132. TAB1 . 2 = 'MARQ CROI';
  133. TAB1 . 'TITRE' . 2 = 'POLYN. REGR.';
  134.  
  135. 'SI' GRAPH ;
  136. 'DESSIN' (EVCVH2 'ET' EVCV1H2) 'LEGE' TAB1 'TITRE' 'H2' ;
  137. 'FINSI' ;
  138.  
  139.  
  140. ***************************
  141. ***** DOMAINE SPATIAL ****
  142. ***************************
  143.  
  144.  
  145. A1 = 0.0D0 0.0D0;
  146. A2 = 2.0D0 0.0D0;
  147. A3 = 3.0D0 0.0D0;
  148. A4 = 4.0D0 1.0D0;
  149.  
  150. L12 = A1 'DROIT' 21 A2;
  151. L23 = A2 'DROIT' 32 A3;
  152. L34 = A3 'DROIT' 43 A4;
  153. L41 = A4 'DROIT' 53 A1;
  154.  
  155. LDOM1 = L12 'ET' L23 'ET' L34 'ET' L41 ;
  156. DOM1 = 'SURFACE' LDOM1 'PLANE';
  157.  
  158. 'SI' GRAPH ;
  159. 'TRACER' DOM1 'TITRE' 'Domaine' ;
  160. 'FINSI' ;
  161.  
  162. $DOM1 = 'DOMA' DOM1 ;
  163.  
  164. *
  165. **** Pression, densite, temperature et vitesse
  166. *
  167.  
  168. MAIL = $DOM1 . 'CENTRE' ;
  169.  
  170. RN = 'BRUI' 'BLAN' 'UNIF' 1.0 0.1 MAIL ;
  171. TN = 'BRUI' 'BLAN' 'UNIF' 3900 2000 MAIL ;
  172.  
  173. VNX = 'BRUI' 'BLAN' 'UNIF' 1.0 0.1 MAIL ;
  174. VNY = 'BRUI' 'BLAN' 'UNIF' 1.0 0.1 MAIL ;
  175.  
  176. *
  177. **** N.B.: UY 'ET' UX
  178. *
  179.  
  180. VN = ('NOMC' VNY 'UY' 'NATU' 'DISCRET' ) 'ET'
  181. ('NOMC' VNX 'UX' 'NATU' 'DISCRET' ) ;
  182.  
  183. GN = ('NOMC' (VNX * RN) 'UX' 'NATU' 'DISCRET' ) 'ET'
  184. ('NOMC' (VNY * RN) 'UY' 'NATU' 'DISCRET' ) ;
  185.  
  186. *
  187. * Calcul de l'energie thermique et du gamma
  188. *
  189. * Ether = \sum_{i=1,4} Y_i \int_{0}^{T} cv_i(x) dx
  190. * gamma = (\sum_{i=1,4} Y_i cp_i) / (\sum_{i=1,4} Y_i cv_i)
  191. *
  192.  
  193. T2 = TN * TN ;
  194. T3 = T2 * TN ;
  195. T4 = T3 * TN ;
  196. T5 = T4 * TN ;
  197.  
  198. ETHER = ((A0H2 * TN) '+' ((A1H2 '/' 2.0) * T2) '+'
  199. ((A2H2 '/' 3.0) * T3) '+' ((A3H2 '/' 4.0) * T4) '+'
  200. ((A4H2 '/' 5.0) * T5)) ;
  201.  
  202. LISCOM2 = 'MOTS' 'UX ' 'UY ';
  203. RECIN = 'PSCAL' (0.5 '*' VN) GN LISCOM2 LISCOM2 ;
  204.  
  205. RET = RECIN '+' (ETHER * RN) ;
  206.  
  207. CVTOT = (A0H2 '+' (A1H2 * TN) '+'
  208. (A2H2 * T2) '+' (A3H2 * T3) '+'
  209. (A4H2 * T4)) ;
  210.  
  211.  
  212. CPTOT = CVTOT '+' (PGAZ . 'H2 ' . 'R') ;
  213.  
  214. GAMN = CPTOT '/' CVTOT ;
  215.  
  216. RTOT = CPTOT '-' CVTOT ;
  217.  
  218. PN = (RTOT '*' TN) '*' RN ;
  219.  
  220. *
  221. **** PRIM
  222. *
  223.  
  224. VITESSE PRES TEMPNEW GAMNEW
  225. = 'PRIM' 'PERFTEMP' PGAZ RN GN RET ;
  226.  
  227.  
  228. *
  229. **** TEST
  230. *
  231.  
  232. ERRV = ('MAXIMUM' (VN '-' VITESSE) 'ABS')
  233. '/' ('MAXIMUM' VN) ;
  234.  
  235. ERRP = 'MAXIMUM' ((PRES '-' PN) '/' PN) 'ABS';
  236.  
  237. ERRT = 'MAXIMUM' ((TEMPNEW '-' TN) '/' TN) 'ABS';
  238.  
  239. ERRG = 'MAXIMUM' ((GAMN '-' GAMNEW) '/' GAMN) 'ABS';
  240.  
  241.  
  242. 'SI' (('MAXIMUM' ('PROG' ERRV ERRP ERRT ERRG ) '>'
  243. ERRMAX));
  244. 'MESSAGE' ('CHAINE' 'Erreur maximum');
  245. 'LISTE' ('MAXIMUM' ('PROG' ERRV ERRP ERRT ERRG
  246. ));
  247. 'ERREUR' 5;
  248. 'FINSI' ;
  249.  
  250. VITESSE PRES TEMPNEW2 GAMNEW
  251. = 'PRIM' 'PERFTEMP' PGAZ RN GN RET TEMPNEW;
  252.  
  253. ERRT = 'MAXIMUM' ((TEMPNEW '-' TEMPNEW2) '/' TEMPNEW) 'ABS';
  254.  
  255. 'SI' (ERRT > ERRMAX);
  256. 'MESSAGE' ('CHAINE' 'Erreur maximum' ERRT) ;
  257. 'ERREUR' 5;
  258. 'FINSI' ;
  259.  
  260. **** On teste aussi la difference entre l'energie initiale et celle la.
  261.  
  262. T2 = TEMPNEW * TEMPNEW ;
  263. T3 = T2 * TEMPNEW ;
  264. T4 = T3 * TEMPNEW ;
  265. T5 = T4 * TEMPNEW ;
  266.  
  267. ETHER_N = ((A0H2 * TEMPNEW) '+' ((A1H2 '/' 2.0) * T2) '+'
  268. ((A2H2 '/' 3.0) * T3) '+' ((A3H2 '/' 4.0) * T4) '+'
  269. ((A4H2 '/' 5.0) * T5)) ;
  270.  
  271. ERRET = 'MAXIMUM' ((ETHER '-' ETHER_N) '/' ETHER) 'ABS' ;
  272.  
  273.  
  274. 'SI' (ERRET > ERRMAX);
  275. 'MESSAGE' ('CHAINE' 'Erreur maximum' ERRET) ;
  276. 'ERREUR' 5;
  277. 'FINSI' ;
  278.  
  279.  
  280. **** On contrlle l'ordre de composantes
  281.  
  282. MOT1 = 'EXTRAIRE' ('EXTRAIRE' VITESSE 'COMP') 1 ;
  283. MOT2 = 'EXTRAIRE' ('EXTRAIRE' GN 'COMP') 1 ;
  284. MOT3 = 'EXTRAIRE' ('EXTRAIRE' VITESSE 'COMP') 2 ;
  285. MOT4 = 'EXTRAIRE' ('EXTRAIRE' GN 'COMP') 2 ;
  286.  
  287. 'SI' ('OU'
  288. ('OU' ('NEG' MOT1 'UX ') ('NEG' MOT2 'UX '))
  289. ('OU' ('NEG' MOT3 'UY ') ('NEG' MOT4 'UY '))) ;
  290. 'MESSAGE' 'Probleme des composantes' ;
  291. 'ERREUR' 5 ;
  292. 'FINSI' ;
  293.  
  294. **** Splitting des scalaires passifs
  295.  
  296.  
  297. PGAZ . 'SCALPASS' = 'MOTS' 'REPS' 'RTAU' ;
  298.  
  299. TABS = ('NOMC' ('BRUI' 'BLAN' 'UNIF' 0.5 0.1 MAIL) 'RTAU') 'ET'
  300. ('NOMC' ('BRUI' 'BLAN' 'UNIF' 0.5 0.1 MAIL) 'REPS') ;
  301.  
  302. RTABS = RN '*' TABS ('MOTS' 'SCAL''SCAL') ('MOTS' 'RTAU ' 'REPS')
  303. ('MOTS' 'RTAU' 'REPS') ;
  304.  
  305. RTABS1 = 'COPIER' RTABS ;
  306. VITESSE PRES TEMPNEW TABSNEW GAMNEW
  307. = 'PRIM' 'PERFTEMP' PGAZ RN GN RET RTABS ;
  308.  
  309.  
  310. *
  311. **** TEST
  312. *
  313.  
  314. ERRV = ('MAXIMUM' (VN '-' VITESSE) 'ABS')
  315. '/' ('MAXIMUM' VN) ;
  316.  
  317. ERRP = 'MAXIMUM' ((PRES '-' PN) '/' PN) 'ABS';
  318.  
  319. ERRT = 'MAXIMUM' ((TEMPNEW '-' TN) '/' TN) 'ABS';
  320.  
  321. ERRG = 'MAXIMUM' ((GAMN '-' GAMNEW) '/' GAMN) 'ABS';
  322.  
  323. ERRTAB = ('MAXIMUM' (TABS '-' TABSNEW) 'ABS') '/'
  324. ('MAXIMUM' TABS 'ABS') ;
  325.  
  326. ERRROT = ('MAXIMUM' (RTABS '-' RTABS1) 'ABS') '/'
  327. ('MAXIMUM' RTABS 'ABS') ;
  328.  
  329.  
  330.  
  331. 'SI' (('MAXIMUM' ('PROG' ERRV ERRP ERRT ERRG ERRTAB ERRROT ) '>'
  332. ERRMAX));
  333. 'MESSAGE' ('CHAINE' 'Erreur maximum');
  334. 'LISTE' ('MAXIMUM' ('PROG' ERRV ERRP ERRT ERRG ERRTAB ERRRO
  335. ));
  336. 'ERREUR' 5;
  337. 'FINSI' ;
  338.  
  339.  
  340. *) Degree de polynome = 0
  341.  
  342. ERRMAX = 1.0D-14 ;
  343.  
  344. 'MESSAGE' ;
  345. 'MESSAGE' ('cv = polynom constant');
  346. 'MESSAGE' ;
  347.  
  348.  
  349. ***********************
  350. **** LA TABLE PGAZ ****
  351. ***********************
  352.  
  353. PGAZ = 'TABLE' ;
  354.  
  355. *
  356. **** Degre des polynoms
  357. *
  358.  
  359. PGAZ . 'NORD' = 0 ;
  360.  
  361. *
  362. **** Especes qui sont dans les equations d'Euler
  363. *
  364.  
  365. *
  366. **** Espece qui n'y est pas
  367. *
  368.  
  369.  
  370. PGAZ . 'ESPNEULE' = 'H2 ';
  371.  
  372. *
  373.  
  374. PGAZ . 'H2 ' = 'TABLE' ;
  375.  
  376. *
  377. **** R (J/Kg/K)
  378. *
  379.  
  380. PGAZ . 'H2 ' . 'R' = 4130.0 ;
  381.  
  382.  
  383. *
  384. **** Regressions polynomials
  385. *
  386.  
  387.  
  388. *
  389. * Cas particulier: gaz "calorically perfect"
  390. *
  391.  
  392. PGAZ . 'H2 ' . 'A' = 'PROG' 9834.91866 ;
  393.  
  394. *
  395. **** "Enthalpies" (ou energies) de formations a OK (J/Kg)
  396. *
  397.  
  398. PGAZ . 'H2 ' . 'H0K' = -4.195D6 ;
  399.  
  400. *
  401. *** Fin PGAZ
  402. *
  403.  
  404. A0H2 = 'EXTRAIRE' (PGAZ . 'H2 ' . 'A') 1 ;
  405.  
  406.  
  407. *
  408. **** Pression, densite, temperature et vitesse
  409. *
  410.  
  411. RN = 'BRUI' 'BLAN' 'UNIF' 1.0 0.1 MAIL ;
  412. TN = 'BRUI' 'BLAN' 'UNIF' 3900 200 MAIL ;
  413. YH2 = 'BRUI' 'BLAN' 'UNIF' 0.3 0.1 MAIL ;
  414. YO2 = 'BRUI' 'BLAN' 'UNIF' 0.2 0.1 MAIL ;
  415. YH2O = 'BRUI' 'BLAN' 'UNIF' 0.1 0.05 MAIL ;
  416.  
  417. YN2 = 1.0 '-' (YH2 '+' YO2 '+' YH2O) ;
  418.  
  419. RYH2 = RN * YH2 ;
  420. RYH2O = RN * YH2O ;
  421. RYO2 = RN * YO2 ;
  422. RYN2 = RN * YN2 ;
  423.  
  424. YH2 = 'NOMC' YH2 'H2 ' 'NATU' 'DISCRET' ;
  425. YH2O = 'NOMC' YH2O 'H2O ' 'NATU' 'DISCRET' ;
  426. YO2 = 'NOMC' YO2 'O2 ' 'NATU' 'DISCRET' ;
  427. YN2 = 'NOMC' YN2 'N2 ' 'NATU' 'DISCRET' ;
  428. YN = YH2 'ET' YO2 'ET' YH2O ;
  429.  
  430. RYH2 = 'NOMC' RYH2 'H2 ' 'NATU' 'DISCRET' ;
  431. RYH2O = 'NOMC' RYH2O 'H2O ' 'NATU' 'DISCRET' ;
  432. RYO2 = 'NOMC' RYO2 'O2 ' 'NATU' 'DISCRET' ;
  433. RYN2 = 'NOMC' RYN2 'N2 ' 'NATU' 'DISCRET' ;
  434.  
  435. VNX = 'BRUI' 'BLAN' 'UNIF' 1.0 0.1 MAIL ;
  436. VNY = 'BRUI' 'BLAN' 'UNIF' 1.0 0.1 MAIL ;
  437.  
  438. VN = ('NOMC' VNX 'UX' 'NATU' 'DISCRET' ) 'ET'
  439. ('NOMC' VNY 'UY' 'NATU' 'DISCRET' ) ;
  440.  
  441. GN = ('NOMC' (VNX * RN) 'UX' 'NATU' 'DISCRET' ) 'ET'
  442. ('NOMC' (VNY * RN) 'UY' 'NATU' 'DISCRET' ) ;
  443.  
  444. RYN = RYH2 'ET' RYH2O 'ET' RYO2 ;
  445.  
  446. *
  447. * Calcul de l'energie thermique et du gamma
  448. *
  449.  
  450. RETHER = (A0H2 '*' RN '*' TN) ;
  451.  
  452. LISCOM2 = 'MOTS' 'UX ' 'UY ';
  453. RECIN = 'PSCAL' (0.5 '*' VN) GN LISCOM2 LISCOM2 ;
  454.  
  455. RET = RECIN '+' RETHER ;
  456.  
  457. CHUN = 'MANUEL' 'CHPO' MAIL 1 'SCAL' 1.0 ;
  458.  
  459. CV = 'NOMC' (A0H2 '*' CHUN) 'SCAL' 'NATU' 'DISCRET' ;
  460. CP = CV '+' (PGAZ . 'H2 ' . 'R') ;
  461.  
  462. GAMN = CP '/' CV ;
  463.  
  464. RTOT = CP '-' CV ;
  465.  
  466. PN = (RTOT '*' TN) '*' RN ;
  467.  
  468. *
  469. **** PRIM
  470. *
  471.  
  472. VITESSE PRES TEMPNEW GAMNEW
  473. = 'PRIM' 'PERFTEMP' PGAZ RN GN RET ;
  474.  
  475. *
  476. **** TEST
  477. *
  478.  
  479. ERRV = ('MAXIMUM' (VN '-' VITESSE) 'ABS')
  480. '/' ('MAXIMUM' VN) ;
  481.  
  482. ERRP = 'MAXIMUM' ((PRES '-' PN) '/' PN) 'ABS';
  483.  
  484. ERRT = 'MAXIMUM' ((TEMPNEW '-' TN) '/' TN) 'ABS';
  485.  
  486. ERRG = 'MAXIMUM' ((GAMN '-' GAMNEW) '/' GAMN) 'ABS';
  487.  
  488.  
  489. 'SI' (('MAXIMUM' ('PROG' ERRV ERRP ERRT ERRG ) '>'
  490. ERRMAX));
  491. 'MESSAGE' ('CHAINE' 'Erreur maximum');
  492. 'LISTE' ('MAXIMUM' ('PROG' ERRV ERRP ERRT ERRG
  493. ));
  494. 'ERREUR' 5;
  495. 'FINSI' ;
  496.  
  497. * Avec une temperature d'essai
  498.  
  499. VITESSE PRES TEMPNEW2 GAMNEW
  500. = 'PRIM' 'PERFTEMP' PGAZ RN GN RET TEMPNEW;
  501.  
  502. ERRT = 'MAXIMUM' ((TEMPNEW '-' TEMPNEW2) '/' TEMPNEW) 'ABS';
  503.  
  504. 'SI' (ERRT > ERRMAX);
  505. 'MESSAGE' ('CHAINE' 'Erreur maximum' ERRT) ;
  506. 'ERREUR' 5;
  507. 'FINSI' ;
  508.  
  509. **** On teste aussi la difference entre l'energie initiale et celle la.
  510.  
  511. RETHER_N = (A0H2 '*' RN '*' TEMPNEW) ;
  512.  
  513. ERRET = 'MAXIMUM' ((RETHER '-' RETHER_N) '/' RETHER) 'ABS' ;
  514.  
  515.  
  516. 'SI' (ERRET > ERRMAX);
  517. 'MESSAGE' ('CHAINE' 'Erreur maximum' ERRET) ;
  518. 'ERREUR' 5;
  519. 'FINSI' ;
  520.  
  521. 'FIN' ;
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  

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