Télécharger flamcrebcom2.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : flamcrebcom2.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. **********************************************************************
  5. **** OPERATEUR 'FLAM' ****
  6. **** Modele 'CREBCOM2' ****
  7. **** ****
  8. **** A. BECCANTINI DM2S/SFME/LTMF NOVEMBER 2001 ****
  9. **********************************************************************
  10. *
  11. 'OPTION' 'DIME' 2 'ELEM' QUA4
  12. 'ECHO' 0 'TRAC' 'X';
  13. *
  14. **** GRAPH
  15. *
  16. GRAPH = VRAI ;
  17. GRAPH = FAUX ;
  18.  
  19. ***********************
  20. **** LA TABLE PGAZ ****
  21. ***********************
  22.  
  23. PGAZ = 'TABLE' ;
  24.  
  25. *
  26. **** Ordre des polynoms
  27. *
  28.  
  29. PGAZ . 'NORD' = 4 ;
  30.  
  31. *
  32. **** Especes qui sont dans les equations d'Euler
  33. *
  34.  
  35. PGAZ . 'ESPEULE' = 'MOTS' 'H2 ' 'O2 ' 'H2O ' ;
  36.  
  37. *
  38. **** Espece qui n'y est pas
  39. *
  40.  
  41.  
  42. PGAZ . 'ESPNEULE' = 'N2 ';
  43.  
  44. *
  45.  
  46. PGAZ . 'H2 ' = 'TABLE' ;
  47. PGAZ . 'H2O ' = 'TABLE' ;
  48. PGAZ . 'N2 ' = 'TABLE' ;
  49. PGAZ . 'O2 ' = 'TABLE' ;
  50.  
  51. *
  52. **** R (J/Kg/K)
  53. *
  54.  
  55. PGAZ . 'H2 ' . 'R' = 4130.0 ;
  56. PGAZ . 'H2O ' . 'R' = 461.4 ;
  57. PGAZ . 'N2 ' . 'R' = 296.8 ;
  58. PGAZ . 'O2 ' . 'R' = 259.8 ;
  59.  
  60.  
  61. *
  62. **** Regressions polynomials
  63. *
  64.  
  65. PGAZ . 'H2 ' . 'A' = 'PROG' 9834.91866 0.54273926 0.000862203836
  66. -2.37281455E-07 1.84701105E-11 ;
  67. PGAZ . 'H2O ' . 'A' = 'PROG' 1155.95625 0.768331151 -5.73129958E-05
  68. -1.82753232E-08 2.44485692E-12 ;
  69. PGAZ . 'N2 ' . 'A' = 'PROG' 652.940766 0.288239099 -7.80442298E-05
  70. 8.78233606E-09 -3.05514485E-13 ;
  71. PGAZ . 'O2 ' . 'A' = 'PROG' 575.012333 0.350522002 -0.000128294865
  72. 2.33636971E-08 -1.53304905E-12;
  73.  
  74. *
  75. **** "Enthalpies" (ou energies) de formations a OK (J/Kg)
  76. *
  77.  
  78. PGAZ . 'H2 ' . 'H0K' = -4.195D6 ;
  79. PGAZ . 'H2O ' . 'H0K' = -1.395D7 ;
  80. PGAZ . 'N2 ' . 'H0K' = -2.953D5 ;
  81. PGAZ . 'O2 ' . 'H0K' = -2.634D5 ;
  82.  
  83. *
  84. *** Fin PGAZ
  85. *
  86.  
  87. ***************************
  88. ***** DOMAINE SPATIAL ****
  89. ***************************
  90.  
  91.  
  92. DOM1 = ((0.0 0.0) 'DROIT' 1 (1.0 0.0)) 'TRANSLATION' 1 (0.0 1.0) ;
  93. DOM2 = DOM1 'PLUS' (0.0 1.0) ;
  94. DOM3 = DOM1 'PLUS' (0.0 -1.0) ;
  95. DOM4 = DOM1 'PLUS' (1.0 0.0) ;
  96. DOM5 = DOM1 'PLUS' (-1.0 0.0) ;
  97. DOM6 = DOM2 'PLUS' (1.0 0.0) ;
  98. DOM7 = DOM2 'PLUS' (-1.0 0.0) ;
  99. DOM8 = DOM3 'PLUS' (1.0 0.0) ;
  100. DOM9 = DOM3 'PLUS' (-1.0 0.0) ;
  101.  
  102. DOMTOT = DOM1 'ET' DOM2 'ET' DOM3 'ET' DOM4 'ET' DOM5
  103. 'ET' DOM6 'ET' DOM7 'ET' DOM8 'ET' DOM9 ;
  104. 'ELIMINATION' DOMTOT 0.001 ;
  105.  
  106. $DOMTOT = 'MODE' DOMTOT 'EULER' ;
  107. $DOM1 = 'MODE' DOM1 'EULER' ;
  108. $DOM2 = 'MODE' DOM2 'EULER' ;
  109. $DOM3 = 'MODE' DOM3 'EULER' ;
  110. $DOM4 = 'MODE' DOM4 'EULER' ;
  111. $DOM5 = 'MODE' DOM5 'EULER' ;
  112.  
  113. TDOMTOT = 'DOMA' $DOMTOT 'VF' ;
  114. TDOM1 = 'DOMA' $DOM1 'VF' ;
  115. TDOM2 = 'DOMA' $DOM2 'VF' ;
  116. TDOM3 = 'DOMA' $DOM3 'VF' ;
  117. TDOM4 = 'DOMA' $DOM4 'VF' ;
  118. TDOM5 = 'DOMA' $DOM5 'VF' ;
  119.  
  120. MDOMTOT = TDOMTOT. 'QUAF';
  121. MDOM1 = TDOM1 . 'QUAF';
  122. MDOM2 = TDOM2 . 'QUAF';
  123. MDOM3 = TDOM3 . 'QUAF';
  124. MDOM4 = TDOM4 . 'QUAF';
  125. MDOM5 = TDOM5 . 'QUAF';
  126. 'ELIM' (MDOMTOT 'ET' MDOM1 'ET' MDOM2 'ET' MDOM3 'ET'
  127. MDOM4 'ET' MDOM5) 1D-5 ;
  128.  
  129. 'SI' GRAPH ;
  130. 'TRACER' DOMTOT 'TITRE' 'DOMAINE' ;
  131. 'FINSI' ;
  132.  
  133. *
  134. **** Les variables
  135. *
  136.  
  137. RN = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 1.11 ;
  138. REIN = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 1.01E5 ;
  139. YN = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 3 'H2' 0.01
  140. 'O2' 0.33 'H2O' 0.0 ;
  141. RYN = RN '*' YN ;
  142.  
  143. *
  144. * Pour 1 kg de melange on a
  145. **** YH2 '/' MH2 = 0.005 kmol de H2
  146. * YO2 '/' MO2 = 0.0103 kmol de O2
  147. *
  148. * H2 e' minoritaire et donc YFIN = 0 dans le cas de combustion
  149. * complète
  150. *
  151.  
  152. YINI = 'EXCO' 'H2' YN 'H2' ;
  153. YFIN = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'H2' 0.0 ;
  154.  
  155. *
  156. *
  157. **** Pour permettre a l'hydrogene de bruler en DOM1, on impose
  158. * que en DOM2, DOM3, DOM4, DOM5 la variable de prpgress vaut 1
  159. *
  160.  
  161. CEN1 = 'POIN' 1 ('DOMA' $DOM1 'CENTRE') ;
  162. YINDOM1 = 'EXTRAIRE' YINI 'H2' CEN1 ;
  163. YFINDOM1 = 'EXTRAIRE' YFIN 'H2' CEN1 ;
  164.  
  165. RGAS = 8.31441 ;
  166. MH2 = RGAS '/' (PGAZ . 'H2 ' . 'R') ;
  167. MO2 = RGAS '/' (PGAZ . 'O2 ' . 'R') ;
  168. MH2O = RGAS '/' (PGAZ . 'H2O ' . 'R') ;
  169.  
  170. DYH2 = (YFINDOM1 '-' YINDOM1) ;
  171. DYO2 = (DYH2 '/' MH2) '*' (0.5 '*' MO2) ;
  172. DYH2O = (DYH2 '/' MH2) '*' (-1 '*' MH2O) ;
  173.  
  174. DY = 'MANUEL' 'CHPO' (('DOMA' $DOM2 'CENTRE') 'ET'
  175. ('DOMA' $DOM3 'CENTRE') 'ET' ('DOMA' $DOM4 'CENTRE') 'ET'
  176. ('DOMA' $DOM5 'CENTRE')) 3 'H2' DYH2 'O2' DYO2 'H2O' DYH2O ;
  177.  
  178. DRY = RN '*' DY ;
  179.  
  180. DREIN = 'MANUEL' 'CHPO' (('DOMA' $DOM2 'CENTRE') 'ET'
  181. ('DOMA' $DOM3 'CENTRE') 'ET' ('DOMA' $DOM4 'CENTRE')) 3
  182. 'H2' (PGAZ . 'H2 ' . 'H0K') 'O2' (PGAZ . 'O2 ' . 'H0K')
  183. 'H2O' (PGAZ . 'H2O ' . 'H0K') ;
  184.  
  185. DREIN = -1.0 '*' ('PSCAL' DREIN DRY ('MOTS' 'H2' 'O2' 'H2O')
  186. ('MOTS' 'H2' 'O2' 'H2O')) ;
  187.  
  188. REIN = REIN '+' DREIN ;
  189. RYN = RYN '+' DRY ;
  190. YN = RYN '/' RN ;
  191.  
  192. * Vitesse caractéristique de la flamme
  193.  
  194. VITC = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 0.11) ;
  195. DX = (('DOMA' $DOMTOT 'VOLUME') '**' 0.5);
  196.  
  197. DELTATC = 0.5 '*' (1. '/' ('MAXIMUM' (VITC '/' DX))) ;
  198.  
  199. LMOT1 = 'MOTS' 'H2' 'O2' 'H2O' ;
  200. LCOEF = 'PROG' 1.0 0.5 -1.0 ;
  201.  
  202. *
  203. * Reaction chimique H2 + 0.5 O2 -> H2O
  204. *
  205.  
  206. *
  207. **** Test1 On verifie que si le critere de combustion n'est pas
  208. * satisfait en DOM1, alors il n'y a pas de combustion
  209. *
  210. * ESLIM**2 = 4. * (1**2 '-' (0.5 '*' 0.0**2)) = 4.
  211. *
  212.  
  213. EPSLIM = 2. ;
  214. DREINT DRYT = 'FLAM' 'CREBCOM2' $DOMTOT PGAZ LMOT1 LCOEF RN YN
  215. YINI YFIN VITC DX (EPSLIM '*' 1.0001) (0.1 '*' DELTATC) 0.3 ;
  216.  
  217. DRE1 = 'EXTRAIRE' DREINT 'SCAL' CEN1 ;
  218. DRY1 = 'EXTRAIRE' DRYT 'H2' CEN1 ;
  219. DRY2 = 'EXTRAIRE' DRYT 'O2' CEN1 ;
  220. DRY3 = 'EXTRAIRE' DRYT 'H2O' CEN1 ;
  221.  
  222. 'SI' (('MAXIMUM' ('PROG' DRE1 DRY1 DRY2 DRY3) 'ABS' ) '>' 1.0D-8) ;
  223. 'MESSAGE' ;
  224. 'MESSAGE' 'FLAM' 'CREBCOM2' ;
  225. 'ERREUR' 5 ;
  226. 'FINSI' ;
  227.  
  228. * TEST2 : Au contraire, on a combustion
  229.  
  230. DREINT DRYT = 'FLAM' 'CREBCOM2' $DOMTOT PGAZ LMOT1 LCOEF RN YN
  231. YINI YFIN VITC DX (EPSLIM '*' 0.9999) (0.1 '*' DELTATC) 0.3 ;
  232.  
  233. * Les pois molaires
  234. * LMOT1 = 'MOTS' 'H2' 'O2' 'H2O' ;
  235.  
  236. LPOI = 'PROG' (8.31441 '/' (PGAZ . 'H2' . 'R'))
  237. (8.31441 '/' (PGAZ . 'O2' . 'R')) (8.31441 '/' (PGAZ . 'H2O' . 'R')) ;
  238. LH0K = 'PROG' (PGAZ . 'H2' . 'H0K') (PGAZ . 'O2' . 'H0K')
  239. (PGAZ . 'H2O' . 'H0K') ;
  240.  
  241. dcsi1 = (0.1 '*' deltatc) '*' ('EXTRAIRE' (VITC '/' DX) 'SCAL' CEN1) ;
  242. ro1 = 'EXTRAIRE' RN 'SCAL' CEN1 ;
  243. yi1 = 'EXTRAIRE' YINI 'H2' CEN1 ;
  244. yf1 = 'EXTRAIRE' YFIN 'H2' CEN1 ;
  245. dy1 = (yf1 '-' yi1) '*' dcsi1 ;
  246. dy2 = (dy1 '/' (('EXTRAIRE' 1 LCOEF) '*' ('EXTRAIRE' 1 LPOI))) '*'
  247. (('EXTRAIRE' 2 LCOEF) '*' ('EXTRAIRE' 2 LPOI)) ;
  248. dy3 = (dy1 '/' (('EXTRAIRE' 1 LCOEF) '*' ('EXTRAIRE' 1 LPOI))) '*'
  249. (('EXTRAIRE' 3 LCOEF) '*' ('EXTRAIRE' 3 LPOI)) ;
  250.  
  251. LRIS1 = ro1 '*' ('PROG' DY1 DY2 DY3) ;
  252.  
  253. DRE1 = 'EXTRAIRE' DREINT 'SCAL' CEN1 ;
  254. DRY1 = 'EXTRAIRE' DRYT 'H2' CEN1 ;
  255. DRY2 = 'EXTRAIRE' DRYT 'O2' CEN1 ;
  256. DRY3 = 'EXTRAIRE' DRYT 'H2O' CEN1 ;
  257.  
  258. LRIS2 = 'PROG' DRY1 DRY2 DRY3 ;
  259.  
  260. ERRO = 'MAXIMUM' (LRIS1 '-' LRIS2) 'ABS' ;
  261.  
  262. 'SI' (ERRO '>' 1.0D-8) ;
  263. 'MESSAGE' ;
  264. 'MESSAGE' 'FLAM' 'CREBCOM2' ;
  265. 'ERREUR' 5 ;
  266. 'FINSI' ;
  267.  
  268. DRE = 0.0 ;
  269. 'REPETER' BL1 ('DIME' LMOT1) ;
  270. DRE = DRE '-' (('EXTRAIRE' &BL1 LRIS2) '*' ('EXTRAIRE' &BL1 LH0K)) ;
  271. 'FIN' BL1 ;
  272.  
  273. ERRO = 'ABS' (DRE '-' DRE1) ;
  274.  
  275. 'SI' (ERRO '>' 1.0D-8) ;
  276. 'MESSAGE' ;
  277. 'MESSAGE' 'FLAM' 'CREBCOM2' ;
  278. 'ERREUR' 5 ;
  279. 'FINSI' ;
  280.  
  281. *
  282. **** Test3: on controle que si DELTAT > DELTATC, alors
  283. * dans $DOM1 'CENTRE' on recupere la bonne energie
  284. * et la bonne variation des fractions massiques.
  285.  
  286. DELTAT = 100 '*' DELTATC ;
  287. DREINT DRYT = 'FLAM' 'CREBCOM2' $DOMTOT PGAZ LMOT1 LCOEF RN YN
  288. YINI YFIN VITC DX (EPSLIM '*' 0.9) DELTAT 0.3 ;
  289.  
  290. dy1 = (yf1 '-' yi1) ;
  291. dy2 = (dy1 '/' (('EXTRAIRE' 1 LCOEF) '*' ('EXTRAIRE' 1 LPOI))) '*'
  292. (('EXTRAIRE' 2 LCOEF) '*' ('EXTRAIRE' 2 LPOI)) ;
  293. dy3 = (dy1 '/' (('EXTRAIRE' 1 LCOEF) '*' ('EXTRAIRE' 1 LPOI))) '*'
  294. (('EXTRAIRE' 3 LCOEF) '*' ('EXTRAIRE' 3 LPOI)) ;
  295.  
  296. LRIS1 = ro1 '*' ('PROG' DY1 DY2 DY3) ;
  297.  
  298. DRE1 = 'EXTRAIRE' DREINT 'SCAL' CEN1 ;
  299. DRY1 = 'EXTRAIRE' DRYT 'H2' CEN1 ;
  300. DRY2 = 'EXTRAIRE' DRYT 'O2' CEN1 ;
  301. DRY3 = 'EXTRAIRE' DRYT 'H2O' CEN1 ;
  302.  
  303. LRIS2 = 'PROG' DRY1 DRY2 DRY3 ;
  304.  
  305. ERRO = 'MAXIMUM' (LRIS1 '-' LRIS2) 'ABS' ;
  306.  
  307. 'SI' (ERRO '>' 1.0D-8) ;
  308. 'MESSAGE' ;
  309. 'MESSAGE' 'FLAM' 'CREBCOM2' ;
  310. 'ERREUR' 5 ;
  311. 'FINSI' ;
  312.  
  313. DRE = 0.0 ;
  314. 'REPETER' BL1 ('DIME' LMOT1) ;
  315. DRE = DRE '-' (('EXTRAIRE' &BL1 LRIS2) '*' ('EXTRAIRE' &BL1 LH0K)) ;
  316. 'FIN' BL1 ;
  317.  
  318. ERRO = 'ABS' (DRE '-' DRE1) ;
  319.  
  320. 'SI' (ERRO '>' 1.0D-8) ;
  321. 'MESSAGE' ;
  322. 'MESSAGE' 'FLAM' 'CREBCOM2' ;
  323. 'ERREUR' 5 ;
  324. 'FINSI' ;
  325.  
  326. 'FIN' ;
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  

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