Télécharger tubedeto3d2.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : tubedeto3d2.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ****************************************************************
  5. ***** PROPAGATION D UNE DETONATION DANS UN TUBE *****
  6. ***** MODELE COMBUSTION H2-air de PLEXUS *****
  7. ***** A. BECCANTINI, SFME/LTMF, 15.01.02 *****
  8. ****************************************************************
  9. *
  10. * The file is divided into 5 parts
  11. *
  12. * 1) mesh
  13. * 2) initial conditions and gas properties
  14. * 3) parameters used in the computation
  15. * 4) the main part (where the computation is realised)
  16. * 5) the post-treatment
  17. *
  18.  
  19. 'OPTION' 'ECHO' 0 'DIME' 3
  20. 'TRAC' 'X' ;
  21.  
  22. ****************************************************************
  23. ****************************************************************
  24. ***** 1D mesh *****
  25. ****************************************************************
  26. ****************************************************************
  27. *
  28. *
  29. * A6 ---- A5 ------------------- A4 ----------------------- A8
  30. * | | | |
  31. * | AR | ZONE1 | ZONE2 |
  32. * | | | |
  33. * A1 ---- A2 ------------------- A3 ----------------------- A7
  34. * | | | |
  35. * | L1 | L2 | L3 |
  36. * |<---->|<--------------------->|<----------------------->|
  37. *
  38. * AR = activation region
  39. * ZONE1
  40. * ZONE2
  41. *
  42.  
  43. RAF = 1 ;
  44.  
  45. NL2SL1 = 49 ;
  46. NL3SL1 = 100 ;
  47. L1 = 0.4 ;
  48.  
  49. L2 = NL2SL1 '*' L1 ;
  50. L3 = NL3SL1 '*' L1 ;
  51.  
  52. * If NL2SL1 = 49 and NL3SL1 = 50, then L2 = 19.6, L3 = 20.0 ;
  53.  
  54. N1 = RAF ;
  55. N2 = NL2SL1 '*' N1 ;
  56. N3 = NL3SL1 '*' N1 ;
  57.  
  58. * For sake of simplicity, we will only consider one mesh in y-direction
  59.  
  60. DX = L1 '/' N1 ;
  61. NY = 4 ;
  62. NZ = NY ;
  63. H1 = NY '*' DX ;
  64.  
  65. A1 = 0.0 0.0 0.0 ;
  66. A2 = L1 0.0 0.0 ;
  67. A3 = (L1 '+' L2) 0.0 0.0 ;
  68. A4 = (L1 '+' L2) H1 0.0 ;
  69. A5 = L1 H1 0.0 ;
  70. A6 = 0.0 H1 0.0 ;
  71. A7 = (L1 '+' L2 '+' L3) 0.0 0.0 ;
  72. A8 = (L1 '+' L2 '+' L3) H1 0.0 ;
  73.  
  74. 'OPTION' 'ELEM' 'SEG2' ;
  75. A1A2 = A1 'DROIT' N1 A2 ;
  76. A2A3 = A2 'DROIT' N2 A3 ;
  77. A3A4 = A3 'DROIT' NY A4 ;
  78. A4A5 = A4 'DROIT' N2 A5 ;
  79. A5A2 = A5 'DROIT' NY A2 ;
  80. A2A5 = 'INVERSE' A5A2 ;
  81. A5A6 = A5 'DROIT' N1 A6 ;
  82. A6A1 = A6 'DROIT' NY A1 ;
  83. A3A7 = A3 'DROIT' N3 A7 ;
  84. A7A8 = A7 'DROIT' NY A8 ;
  85. A8A4 = A8 'DROIT' N3 A4 ;
  86. A4A3 = 'INVERSE' A3A4 ;
  87.  
  88. *
  89. **** 2D mesh
  90. *
  91.  
  92. * DOM1 is the activation region
  93. * DOM2 is zone 1
  94. * DOM3 is zone 2
  95.  
  96. 'OPTION' 'ELEM' 'QUA4' ;
  97. DOM1P = 'TRANSLATION' A2A5 N1 ((-1.0 '*' L1) 0.0 0.0) ;
  98. DOM2P = 'TRANSLATION' A2A5 N2 (L2 0.0 0.0) ;
  99. DOM3P = 'TRANSLATION' A3A4 N3 (L3 0.0 0.0) ;
  100.  
  101. * DOMTOT = total region
  102.  
  103. DOMTOTP = DOM1P 'ET' DOM2P 'ET' DOM3P ;
  104. 'ELIMINATION' (1.0D-3 '/' RAF) DOMTOTP ;
  105. 'ELIMINATION' DOMTOTP (1.0D-3 '/' RAF) (A1A2 'ET' A2A3 'ET'
  106. A3A4 'ET' A4A5 'ET' A5A2 'ET' A5A6 'ET' A6A1 'ET' A3A7
  107. 'ET' A7A8 'ET' A8A4 'ET' A4A3) ;
  108.  
  109. 'OPTION' 'ELEM' 'CUB8' ;
  110. DOM1 = 'VOLUME' DOM1P 'TRANSLATION' NZ (0.0 0.0 H1) ;
  111. DOM2 = 'VOLUME' DOM2P 'TRANSLATION' NZ (0.0 0.0 H1) ;
  112. DOM3 = 'VOLUME' DOM3P 'TRANSLATION' NZ (0.0 0.0 H1) ;
  113.  
  114. DOMTOT = DOM1 'ET' DOM2 'ET' DOM3 ;
  115. 'ELIMINATION' (1.0D-3 '/' RAF) DOMTOT ;
  116.  
  117. *
  118. **** The tables 'DOMAINE'
  119. *
  120.  
  121. $DOMTOT = 'MODELISER' DOMTOT 'EULER' ;
  122. $DOM1 = 'MODELISER' DOM1 'EULER' ;
  123. $DOM2 = 'MODELISER' DOM2 'EULER' ;
  124. $DOM3 = 'MODELISER' DOM3 'EULER' ;
  125.  
  126. TDOMTOT = 'DOMA' $DOMTOT 'VF' ;
  127. TDOM1 = 'DOMA' $DOM1 'VF' ;
  128. TDOM2 = 'DOMA' $DOM2 'VF' ;
  129. TDOM3 = 'DOMA' $DOM3 'VF' ;
  130.  
  131. QDOMTOT = TDOMTOT . 'QUAF' ;
  132. QDOM1 = TDOM1 . 'QUAF' ;
  133. QDOM2 = TDOM2 . 'QUAF' ;
  134. QDOM3 = TDOM3 . 'QUAF' ;
  135.  
  136. 'ELIMINATION' QDOMTOT (0.001 '/' RAF) QDOM1 ;
  137. 'ELIMINATION' QDOMTOT (0.001 '/' RAF) QDOM2 ;
  138. 'ELIMINATION' QDOMTOT (0.001 '/' RAF) QDOM3 ;
  139.  
  140. *
  141. **** MOD1 = model (created just to display the CHAMELEMs)
  142. *
  143.  
  144. MOD1 = 'MODELISER' ('DOMA' $DOMTOT 'MAILLAGE') 'THERMIQUE' ;
  145.  
  146. *
  147. **** Line for graphics
  148. *
  149.  
  150. 'OPTION' 'ELEM' 'SEG2' ;
  151. P1 = (DX '/' 2) (DX '/' 2) (DX '/' 2) ;
  152. P2 = ((L1 '+' L2 '+' L3) '-' (DX '/' 2)) (DX '/' 2) (DX '/' 2) ;
  153. LIGEVO = (P1 'DROIT' (N1 '+' N2 '+' N3 '-' 1) P2) 'COULEUR' 'ROUG' ;
  154. 'ELIMINATION' LIGEVO ('DOMA' $DOMTOT 'CENTRE') (0.001 '/' RAF) ;
  155.  
  156. * 'OPTION' 'SAUVER' ('CHAINE' 'mesh.sauv_raf' RAF) ;
  157. * 'SAUVER' RAF DOMTOT $DOMTOT $DOM1 $DOM2 $DOM3 LIGEVO MOD1 ;
  158.  
  159. ****************************************************************
  160. ****************************************************************
  161. ***** Initial conditions and gas properties. *****
  162. ****************************************************************
  163. ****************************************************************
  164.  
  165. * 'OPTION' 'ECHO' 1 'TRAC' 'X' ;
  166.  
  167. * RAF = 1 ;
  168. * 'OPTION' 'REST' ('CHAINE' 'mesh.sauv_raf' RAF) ;
  169. * 'RESTITUER' ;
  170.  
  171. *
  172. **** 0 from a numerical point of view
  173. *
  174.  
  175. zero = 1.0d-9 ;
  176.  
  177. *
  178. **** (Non-Uniform) initial conditions.(DOM1 et DOM2)
  179. * We compute the conservative variables.
  180. *
  181. *
  182. * Contact discontinuity between DOM2 and DOM3 (same pressure,
  183. * different temperature)
  184. *
  185.  
  186. PINI = ('MANUEL' 'CHPO' (('DOMA' $DOM1 'CENTRE') 'ET'
  187. ('DOMA' $DOM2 'CENTRE')) 1 'SCAL' 99700 'NATU' 'DISCRET') 'ET'
  188. ('MANUEL' 'CHPO' (('DOMA' $DOM3 'CENTRE')) 1 'SCAL' 99700
  189. 'NATU' 'DISCRET') ;
  190. TINI = ('MANUEL' 'CHPO' (('DOMA' $DOM1 'CENTRE') 'ET'
  191. ('DOMA' $DOM2 'CENTRE')) 1 'SCAL' 285. 'NATU' 'DISCRET') 'ET'
  192. ('MANUEL' 'CHPO' (('DOMA' $DOM3 'CENTRE')) 1 'SCAL' 400
  193. 'NATU' 'DISCRET') ;
  194. WINI = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 3 'UX' 0.0
  195. 'UY' 0.0 'UZ' 0.0 ;
  196. *
  197. **** From initial conditions on molar fractions, we duduce
  198. * the data for the virtual mixture of burned/unburned
  199. * gases
  200.  
  201. *
  202. **** Molar fractions (before combustion)
  203. *
  204.  
  205. XH21 = ('MANUEL' 'CHPO' (('DOMA' $DOM1 'CENTRE') 'ET'
  206. ('DOMA' $DOM2 'CENTRE')) 1 'H2' 0.3 'NATU' 'DISCRET') 'ET'
  207. ('MANUEL' 'CHPO' (('DOMA' $DOM3 'CENTRE')) 1 'H2' 0.2
  208. 'NATU' 'DISCRET') ;
  209. XH2O1 = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'H2O' zero
  210. 'NATURE' 'DISCRET' ;
  211. XO21 = ('MANUEL' 'CHPO' (('DOMA' $DOM1 'CENTRE') 'ET'
  212. ('DOMA' $DOM2 'CENTRE')) 1 'O2' 0.147 'NATU' 'DISCRET') 'ET'
  213. ('MANUEL' 'CHPO' (('DOMA' $DOM3 'CENTRE')) 1 'O2' 0.2
  214. 'NATU' 'DISCRET') ;
  215. XN = XH21 'ET' XH2O1 'ET' XO21 ;
  216. CHUN = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 1.0D0) ;
  217. XN21 = CHUN '-' ('PSCAL' XN CHUN ('MOTS' 'H2' 'O2' 'H2O')
  218. ('MOTS' 'SCAL' 'SCAL' 'SCAL') ) ;
  219. XN21 = 'NOMC' 'N2' XN21 'NATURE' 'DISCRET' ;
  220. XN = XN 'ET' XN21 ;
  221.  
  222. *
  223. ***** Gas properties
  224. *
  225.  
  226. PGAZ = 'TABLE' ;
  227.  
  228. * Polynomial degree of specific heats
  229.  
  230. PGAZ . 'NORD' = 4 ;
  231.  
  232. * Species explicitly treated in the Euler Equations
  233.  
  234. PGAZ . 'ESPEULE' = 'MOTS' 'H2 ' 'O2 ' 'H2O ' ;
  235.  
  236. * Species non explicitly treated
  237.  
  238. PGAZ . 'ESPNEULE' = 'N2 ';
  239.  
  240. * Single gases properties
  241.  
  242. PGAZ . 'H2 ' = 'TABLE' ;
  243. PGAZ . 'H2O ' = 'TABLE' ;
  244. PGAZ . 'N2 ' = 'TABLE' ;
  245. PGAZ . 'O2 ' = 'TABLE' ;
  246.  
  247. * R (J/Kg/K)
  248.  
  249. mH2 = 2. '*' 1.00797E-3 ;
  250. mo2 = 2. '*' 15.9994E-3 ;
  251. mH2O = mh2 '+' (0.5 '*' mo2) ;
  252. mN2 = 2 '*' 14.0067E-3 ;
  253. RGAS = 8.31441 ;
  254.  
  255. PGAZ . 'H2 ' . 'R' = RGAS '/' mh2 ;
  256. PGAZ . 'H2O ' . 'R' = RGAS '/' mh2o ;
  257. PGAZ . 'N2 ' . 'R' = RGAS '/' mn2 ;
  258. PGAZ . 'O2 ' . 'R' = RGAS '/' mo2 ;
  259.  
  260. * Polynomials regressions coefficients
  261.  
  262. PGAZ . 'H2 ' . 'A' = 'PROG' 9834.91866 0.54273926 0.000862203836
  263. -2.37281455E-07 1.84701105E-11 ;
  264. PGAZ . 'H2O ' . 'A' = 'PROG' 1155.95625 0.768331151 -5.73129958E-05
  265. -1.82753232E-08 2.44485692E-12 ;
  266. PGAZ . 'N2 ' . 'A' = 'PROG' 652.940766 0.288239099 -7.80442298E-05
  267. 8.78233606E-09 -3.05514485E-13 ;
  268. PGAZ . 'O2 ' . 'A' = 'PROG' 575.012333 0.350522002 -0.000128294865
  269. 2.33636971E-08 -1.53304905E-12;
  270.  
  271. * Formation enthalpies at 0K (J/Kg))
  272. *
  273. * h_i(0K) = h_i(T0) '-' \int_0^{T0} cp_i(x) dx
  274. * = h_i(T0) '-' (\int_0^{T0} cv_i(x) dx '+' R_i * T0)
  275. *
  276.  
  277. PGAZ . 'H2 ' . 'H0K' = -4.195D6 ;
  278. PGAZ . 'H2O ' . 'H0K' = -1.395D7 ;
  279. PGAZ . 'N2 ' . 'H0K' = -2.953D5 ;
  280. PGAZ . 'O2 ' . 'H0K' = -2.634D5 ;
  281.  
  282.  
  283. * 'OPTION' 'SAUVER' 'gas_properties.sauv' ;
  284. * 'SAUVER' PGAZ ;
  285.  
  286. *
  287. **** We compute the mass fractions
  288. *
  289.  
  290. MMOL = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'H2' Mh2
  291. 'NATURE' 'DISCRET') 'ET'
  292. ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'O2' Mo2
  293. 'NATURE' 'DISCRET') 'ET'
  294. ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'H2O' Mh2o
  295. 'NATURE' 'DISCRET') 'ET'
  296. ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'N2' Mn2
  297. 'NATURE' 'DISCRET') ;
  298.  
  299. MTOT = 'PSCAL' MMOL XN ('MOTS' 'H2' 'O2' 'H2O' 'N2')
  300. ('MOTS' 'H2' 'O2' 'H2O' 'N2') ;
  301.  
  302. YH21 = (XH21 '*' MH2) '/' MTOT ;
  303. YO21 = (XO21 '*' MO2) '/' MTOT ;
  304. YN21 = (XN21 '*' MN2) '/' MTOT ;
  305. YH2O1 = (XH2O1 '*' MH2O) '/' MTOT ;
  306.  
  307. *
  308. **** The conservative variables
  309. *
  310.  
  311. RINI = (('NOMC' 'SCAL' yh21) '*' (PGAZ .'H2' . 'R')) '+'
  312. (('NOMC' 'SCAL' yo21) '*' (PGAZ .'O2' . 'R')) '+'
  313. (('NOMC' 'SCAL' yh2o1) '*' (PGAZ .'H2O' . 'R')) '+'
  314. (('NOMC' 'SCAL' yn21) '*' (PGAZ .'N2' . 'R'))
  315. ;
  316.  
  317. RN = PINI '/' (RINI '*' TINI) ;
  318.  
  319. * Internal energy
  320.  
  321. eini = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 0.0 ;
  322. Tfois = Tini ;
  323.  
  324. 'REPETER' BL1 ((PGAZ . 'NORD') '+' 1) ;
  325.  
  326. acel = (('NOMC' 'SCAL' yh21) '*' ('EXTRAIRE' (PGAZ .'H2 ' . 'A')
  327. &BL1)) '+'
  328. (('NOMC' 'SCAL' yo21) '*' ('EXTRAIRE' (PGAZ .'O2 ' . 'A')
  329. &BL1)) '+'
  330. (('NOMC' 'SCAL' yh2o1) '*' ('EXTRAIRE' (PGAZ .'H2O ' . 'A')
  331. &BL1)) '+'
  332. (('NOMC' 'SCAL' yn21) '*' ('EXTRAIRE' (PGAZ .'N2 ' . 'A')
  333. &BL1)) ;
  334.  
  335. eini = eini '+' (acel '*' (Tfois '/' &BL1)) ;
  336.  
  337. Tfois = Tfois * tini ;
  338.  
  339. 'FIN' BL1 ;
  340.  
  341. RETN = RN '*' (eini '+' (0.5 '*' ('PSCAL' WINI WINI
  342. ('MOTS' 'UX' 'UY' 'UZ') ('MOTS' 'UX' 'UY' 'UZ')))) ;
  343. GN = RN '*' WINI ;
  344. YN = YH21 '+' YO21 '+' YH2O1 ;
  345. RYN = RN '*' YN ;
  346.  
  347. 'SI' VRAI ;
  348. * Test
  349. VN P T Y GAMN = 'PRIM' 'PERFTEMP' PGAZ RN GN RETN RYN ;
  350. PCEL = 'MAXIMUM' PINI ;
  351. TCEL = 'MAXIMUM' TINI ;
  352. 'SI' (('MAXIMUM' ((P '-' pini) '/' PCEL) 'ABS')> 1.0D-3) ;
  353. 'MESSAGE' 'Probleme calcul energie totale' ;
  354. 'ERREUR' 21 ;
  355. 'FINSI' ;
  356. 'SI' (('MAXIMUM' ((T '-' Tini) '/' TCEL)) > 1.0D-3) ;
  357. 'MESSAGE' 'Probleme calcul energie totale' ;
  358. 'ERREUR' 21 ;
  359. 'FINSI' ;
  360. 'FINSI' ;
  361.  
  362. * 'OPTION' 'SAUV' 'ic.sauv';
  363. * 'SAUVER' RN RYN GN RETN zero ;
  364. * 'SAUVER' RAF DOMTOT $DOMTOT $DOM1 $DOM2 $DOM3 LIGEVO MOD1 ;
  365.  
  366.  
  367. ****************************************************************
  368. ****************************************************************
  369. ***** Parameters for the computations ******
  370. ****************************************************************
  371. ****************************************************************
  372.  
  373. * Upwind scheme
  374. * METO = 'VLH' ;
  375. METO = 'SS' ;
  376.  
  377. * Iterations
  378. * Final time
  379. * Safety Factor fot the time step
  380. * Second order reconstruction?
  381.  
  382. NITER = 10000 ;
  383. TFINAL = 5.0D-3 ;
  384. SAFFAC = 0.7 ;
  385. LOGSO = VRAI ;
  386.  
  387. * 'OPTION' 'SAUVER' 'parameters.sauv' ;
  388. * 'SAUVER' METO NITER TFINAL SAFFAC LOGSO ;
  389.  
  390. ****************************************************************
  391. ****************************************************************
  392. ***** The computation ******
  393. ****************************************************************
  394. ****************************************************************
  395.  
  396. ************************
  397. **** PROCEDURE DETO ****
  398. ************************
  399.  
  400. 'DEBPROC' DETO ;
  401. 'ARGUMENT' PGAZ*'TABLE' TN*'CHPOINT' RYN*'CHPOINT' DTI*'FLOTTANT' ;
  402.  
  403. *
  404. * dRYO2/dT = MO2 * A * (T ** -B) EXP( - TA / T)
  405. * (RYH2 ** C) * (RYO2)
  406. *
  407. **** Les parametres physiques
  408. *
  409. * Ts = temperature de seuil
  410. *
  411.  
  412. TS = 'MANUEL' 'CHPO' ('EXTRAIRE' TN 'MAILLAGE') 1 'SCAL' 600 ;
  413. TA = 8310.;
  414. A = 1.1725D14;
  415. B = 0.91;
  416. CON = 2;
  417.  
  418. H0H2 = PGAZ . 'H2 ' . 'H0K' ;
  419. H0O2 = PGAZ . 'O2 ' . 'H0K' ;
  420. H0H2O = PGAZ . 'H2O ' . 'H0K' ;
  421.  
  422. RYH2 = 'EXCO' 'H2' RYN 'H2' 'NATU' 'DISCRET' ;
  423.  
  424. RYO2 = 'EXCO' 'O2' RYN 'O2' 'NATU' 'DISCRET' ;
  425.  
  426. RYH2O = 'EXCO' 'H2O' RYN 'H2O' 'NATU' 'DISCRET' ;
  427.  
  428. RYH2 RYO2 RYH2O DELTAE = 'FLAM' 'ARRHENIU' TS A B CON TA
  429. H0H2 H0O2 H0H2O DTI RYH2 RYO2 RYH2O
  430. TN ;
  431.  
  432. RY = RYH2 'ET' RYO2 'ET' RYH2O ;
  433.  
  434. 'FINPROC' RY DELTAE ;
  435.  
  436. ****************************
  437. **** FIN PROCEDURE DETO ****
  438. ****************************
  439.  
  440.  
  441. *
  442. **** The table of gas properties
  443. * (PGAZ)
  444.  
  445. * 'OPTI' 'REST' 'gas_properties.sauv' ;
  446. * 'REST' ;
  447.  
  448. *
  449. **** The mesh
  450. * RAF = refinement parameter
  451. * DX = mesh dimension
  452. * DOM1 = activation region
  453. * DOM1 and DOM2 = zone 1
  454. * DOM3 = zone 2
  455. * DOMTOT = total region
  456. * LIGEVO (line for evolutions)
  457. * The MMODEL objects
  458. * $DOMTOT
  459. * $DOM1
  460. * $DOM2
  461. * $DOM3
  462. * MOD1 = model object to plot 2D graphics
  463.  
  464. *
  465. **** Initial conditions
  466. *
  467. * RYN : densities for H2, O2, H2O (kg/m^3)
  468. * RN : total density (kg/m^3)
  469. * GN : total momentum (kg/m^3 m/s)
  470. * RETN : total energy (J/m^3)
  471. *
  472. * zero : "the numerical value of zero"
  473. *
  474. *
  475.  
  476. * 'OPTI' 'REST' 'ic.sauv' ;
  477. * 'REST' ;
  478.  
  479. *
  480. **** Parameters for the computation
  481. *
  482. * METO : upwind scheme
  483. * NITER : max iterations number
  484. * TFINAL : final time
  485. * SAFFAC : safety factor for the time step
  486. * LOGSO : second order reconstruction ?
  487.  
  488. * 'OPTION' 'REST' 'parameters.sauv' ;
  489. * 'RESTITUER' ;
  490.  
  491.  
  492. *
  493. **** Chemical time step
  494. *
  495. * We compute d(RHY2)/dT at the von Neumann state
  496. *
  497. * Molar reaction rate
  498. *
  499.  
  500. TVN = 2000 ;
  501. TA = 8310.;
  502. A = 1.1725D14;
  503. B = 0.91;
  504. CON = 2;
  505.  
  506. H0H2 = PGAZ . 'H2 ' . 'H0K' ;
  507. H0O2 = PGAZ . 'O2 ' . 'H0K' ;
  508. H0H2O = PGAZ . 'H2O ' . 'H0K' ;
  509.  
  510. RYNRED = 'REDU' RYN ('DOMA' $DOM2 'CENTRE') ;
  511. RYH2 = 'MAXIMUM' ('EXCO' 'H2' RYNRED 'SCAL') ;
  512. RYO2 = 'MAXIMUM' ('EXCO' 'O2' RYNRED 'SCAL') ;
  513.  
  514. OMEGA = A '*' (RYH2 '**' CON) '*' RYO2 '*' (TVN '**' (-1.0 '*' B))
  515. '*' ('EXP' (-1.0 '*' TA '*' (TVN '**' -1))) ;
  516.  
  517. * OMEGA in (mol/m3/s)
  518. * OMEGAH2 in (kg/m3/s)
  519.  
  520. OMEGAH2 = OMEGA '*' 2 '*' 2E-3 ;
  521. DELTATC = RYH2 '/' OMEGAH2 ;
  522.  
  523. * NB DELTATC << DELTAT_CON
  524.  
  525. *
  526. **** Zone d'activation = etat AICC
  527. *
  528.  
  529. VN PN TN YN GAMN = 'PRIM' 'PERFTEMP' PGAZ RN GN RETN RYN ;
  530. RYH2 = ('EXCO' 'H2' RYN 'H2' 'NATU' 'DISCRET') ;
  531. RYO2 = ('EXCO' 'O2' RYN 'O2' 'NATU' 'DISCRET') ;
  532. RYH2O = ('EXCO' 'H2O' RYN 'H2O' 'NATU' 'DISCRET') ;
  533. TN = TN '-' ('REDU' TN ('DOMA' $DOM1 'CENTRE')) '+'
  534. ('MANUEL' 'CHPO' ('DOMA' $DOM1 'CENTRE') 1 'SCAL' TVN) ;
  535. TS = 'MANUEL' 'CHPO' ('EXTRAIRE' TN 'MAILLAGE') 1 'SCAL' (0.9 '*' TVN)
  536. ;
  537. RYH2 RYO2 RYH2O DELTARE = 'FLAM' 'ARRHENIU' TS A B CON TA
  538. H0H2 H0O2 H0H2O (1.0D5 '*' DELTATC)
  539. RYH2 RYO2 RYH2O TN ;
  540.  
  541. RYN = RYH2 'ET' RYO2 'ET' RYH2O ;
  542. RETN = RETN '+' DELTARE ;
  543.  
  544. RN0 = 'COPIER' RN ;
  545. GN0 = 'COPIER' GN ;
  546. RETN0 = 'COPIER' RETN ;
  547. RYN0 = 'COPIER' RYN ;
  548.  
  549. *
  550. **** Parameter for the time loop
  551. *
  552.  
  553. * Names of the residuum components
  554.  
  555. LISTINCO = 'MOTS' 'RN' 'RUX' 'RUY' 'RUZ' 'RETN' 'H2' 'O2' 'H2O' ;
  556.  
  557. *
  558. **** Geometrical coefficient to compute gradients
  559. *
  560.  
  561. GRADR CACCA COEFSCAL = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'NOLIMITE'
  562. ('MOTS' 'SCAL') RN ;
  563.  
  564. GRADV CACCA COEFVECT = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'NOLIMITE'
  565. ('MOTS' 'UX' 'UY' 'UZ') GN ;
  566.  
  567. TPS = 0.0 ;
  568.  
  569. *
  570. **** The chemistry time step is too little
  571. * We take DT_CHEM > DELTATC
  572. *
  573. *
  574.  
  575. DT_CHEM = 50 '*' DELTATC ;
  576.  
  577. *
  578. **** Temporal loop
  579. *
  580.  
  581. 'MESSAGE' ;
  582. 'MESSAGE' ('CHAINE' 'Methode = ' METO) ;
  583. 'MESSAGE' ('CHAINE' 'SAFFAC = ' SAFFAC) ;
  584. 'MESSAGE' ;
  585.  
  586. VN PN TN YN SN GAMMAN = 'PRIM' 'PERFTEMP' PGAZ RN GN RETN RYN RSN ;
  587.  
  588. TNM1 = 'COPIER' TN ;
  589.  
  590. 'TEMPS' 'ZERO' ;
  591. 'REPETER' BL1 NITER ;
  592.  
  593. *
  594. **** Primitive variables
  595. *
  596.  
  597. VN PN TN YN GAMMAN = 'PRIM' 'PERFTEMP' PGAZ RN GN RETN RYN
  598. TNM1 ;
  599.  
  600. TNM1 = 'COPIER' TN ;
  601.  
  602. 'SI' LOGSO ;
  603.  
  604. GRADR ALR = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
  605. ('MOTS' 'SCAL') RN 'GRADGEO' COEFSCAL ;
  606.  
  607. GRADP ALP = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
  608. ('MOTS' 'SCAL') PN 'GRADGEO' COEFSCAL ;
  609.  
  610. GRADV ALV = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'LIMITEUR'
  611. ('MOTS' 'UX' 'UY' 'UZ') VN 'GRADGEO' COEFVECT ;
  612.  
  613. GRADY ALY = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
  614. ('MOTS' 'H2' 'O2' 'H2O') YN 'GRADGEO' COEFSCAL ;
  615.  
  616. ROF VITF PF YF = 'PRET' 'PERFTEMP' 2 1
  617. $DOMTOT PGAZ
  618. RN GRADR ALR
  619. VN GRADV ALV
  620. PN GRADP ALP
  621. YN GRADY ALY ;
  622.  
  623. 'SINON' ;
  624.  
  625. ROF VITF PF YF = 'PRET' 'PERFTEMP' 1 1
  626. $DOMTOT PGAZ
  627. RN
  628. VN
  629. PN
  630. YN ;
  631.  
  632. 'FINSI' ;
  633.  
  634. RESIDU DELTAT = 'KONV' 'VF' 'PERFTEMP' 'RESI' METO
  635. $DOMTOT PGAZ LISTINCO ROF VITF PF YF ;
  636.  
  637. DT_CON = SAFFAC '*' DELTAT ;
  638. *
  639. **** The time step linked to tps
  640. *
  641.  
  642. DTTPS = (TFINAL '-' TPS) * (1. '+' ZERO) ;
  643.  
  644. *
  645. **** Total time step
  646. *
  647.  
  648. DTMIN = 'MINIMUM' ('PROG' DT_CON DTTPS DT_CHEM) ;
  649.  
  650. *
  651. **** Increment of the variables (convection)
  652. *
  653.  
  654. RESIDU = DTMIN '*' RESIDU ;
  655.  
  656. DRN = 'EXCO' 'RN' RESIDU 'SCAL' ;
  657. DGN = 'EXCO' ('MOTS' 'RUX' 'RUY' 'RUZ') RESIDU
  658. ('MOTS' 'UX' 'UY' 'UZ') ;
  659. DRETN = 'EXCO' 'RETN' RESIDU 'SCAL' ;
  660. DRYN = 'EXCO' ('MOTS' 'H2' 'O2' 'H2O') RESIDU
  661. ('MOTS' 'H2' 'O2' 'H2O') ;
  662.  
  663.  
  664. TPS = TPS '+' DTMIN ;
  665. RN = RN '+' DRN ;
  666. GN = GN '+' DGN ;
  667. RETN = RETN '+' DRETN ;
  668. RYN = RYN '+' DRYN ;
  669.  
  670. *
  671. **** Increment of the variables (chemical source)
  672. *
  673.  
  674. VN PN TN YN GAMMAN = 'PRIM' 'PERFTEMP' PGAZ RN GN RETN RYN
  675. TNM1 ;
  676.  
  677. RYN DRETN = DETO PGAZ TN RYN DTMIN ;
  678. RETN = RETN '+' DRETN ;
  679.  
  680.  
  681. 'SI' (((&BL1 '/' 20) '*' 20) 'EGA' &BL1) ;
  682. 'MESSAGE' ('CHAINE' 'ITER =' &BL1 ' TPS =' TPS) ;
  683. 'FINSI' ;
  684.  
  685. 'SI' (TPS > TFINAL) ;
  686. 'QUITTER' BL1 ;
  687. 'FINSI' ;
  688.  
  689. 'FIN' BL1 ;
  690. 'TEMPS' ;
  691.  
  692. * 'OPTION' 'SAUVER' ('CHAINE' 'result.sauv_' RAF 'tps_' TPS ) ;
  693. * 'SAUVER' ;
  694.  
  695. ****************************************************************
  696. ****************************************************************
  697. ***** The post-treatment ******
  698. ****************************************************************
  699. ****************************************************************
  700.  
  701. * 'OPTI' 'REST' 'result.sauv_1tps_5' ;
  702. * 'REST' ;
  703.  
  704. GRAPH = VRAI ;
  705. GRAPH = FAUX ;
  706.  
  707. *
  708. **** The mesh
  709. *
  710.  
  711. 'SI' GRAPH ;
  712. 'TRACER' DOMTOT 'TITR' ('CHAINE' 'Maillage: '
  713. ('NBEL' DOMTOT) ' elts');
  714. 'FINSI' ;
  715.  
  716. *
  717. **** Initial conditions
  718. *
  719.  
  720. MOD1 = 'MODELISER' ('DOMA' $DOMTOT 'MAILLAGE') 'THERMIQUE' ;
  721.  
  722. 'SI' GRAPH ;
  723. VN PN TN YN GAMMAN = 'PRIM' 'PERFTEMP'
  724. PGAZ RN0 GN0 RETN0 RYN0 ;
  725. CHM_RN = 'KCHA' $DOMTOT 'CHAM' RN0 ;
  726. CHM_VN = 'KCHA' $DOMTOT 'CHAM' VN ;
  727. CHM_PN = 'KCHA' $DOMTOT 'CHAM' PN ;
  728. CHM_TN = 'KCHA' $DOMTOT 'CHAM' TN ;
  729. CHM_YN = 'KCHA' $DOMTOT 'CHAM' YN ;
  730. 'TRAC' CHM_RN MOD1
  731. 'TITR' ('CHAINE' 'rho at t=' 0.0) ;
  732. 'TRAC' CHM_VN MOD1
  733. 'TITR' ('CHAINE' 'v at t= ' 0.0) ;
  734. 'TRAC' CHM_PN MOD1
  735. 'TITR' ('CHAINE' 'p at t= ' 0.0) ;
  736. 'TRAC' CHM_TN MOD1
  737. 'TITR' ('CHAINE' 'T at t= ' 0.0) ;
  738. 'TRAC' CHM_YN MOD1
  739. 'TITR' ('CHAINE' 'y at t= ' 0.0) ;
  740. 'FINSI' ;
  741.  
  742. *
  743. **** Results
  744. *
  745.  
  746. VN PN TN YN GAMMAN = 'PRIM' 'PERFTEMP' PGAZ RN GN RETN RYN ;
  747.  
  748. 'SI' GRAPH ;
  749.  
  750. CHM_RN = 'KCHA' $DOMTOT 'CHAM' RN ;
  751. CHM_VN = 'KCHA' $DOMTOT 'CHAM' VN ;
  752. CHM_PN = 'KCHA' $DOMTOT 'CHAM' PN ;
  753. CHM_TN = 'KCHA' $DOMTOT 'CHAM' TN ;
  754. CHM_YN = 'KCHA' $DOMTOT 'CHAM' YN ;
  755.  
  756. 'TRAC' CHM_RN MOD1
  757. 'TITR' ('CHAINE' 'rho at t=' TPS) ;
  758. 'TRAC' CHM_VN MOD1
  759. 'TITR' ('CHAINE' 'v at t= ' TPS) ;
  760. 'TRAC' CHM_PN MOD1
  761. 'TITR' ('CHAINE' 'p at t= ' TPS) ;
  762. 'TRAC' CHM_TN MOD1
  763. 'TITR' ('CHAINE' 'T at t= ' TPS) ;
  764. 'TRAC' CHM_YN MOD1
  765. 'TITR' ('CHAINE' 'y at t= ' TPS) ;
  766.  
  767. 'FINSI' ;
  768.  
  769. *
  770. *** Evolution Objects
  771. *
  772.  
  773. SS = 'COORDONNEE' 1 LIGEVO;
  774.  
  775. evxx = 'EVOL' 'CHPO' ss LIGEVO ;
  776. lxx = 'EXTRAIRE' evxx 'ORDO' ;
  777.  
  778. x0 = 'MINIMUM' lxx;
  779. x1 = 'MAXIMUM' lxx ;
  780.  
  781. titolo = 'CHAINE' ' at t = ' TPS ' Methode = ' METO
  782. ' SF = ' SAFFAC ;
  783.  
  784. VNN = 'EXCO' 'UX' VN ;
  785. VNT = 'EXCO' 'UY' VN ;
  786.  
  787. * rho
  788.  
  789. evro = 'EVOL' 'CHPO' RN LIGEVO ;
  790. lro = 'EXTRAIRE' evro 'ORDO' ;
  791. evro = 'EVOL' 'MANU' 'x' lxx 'ro' lro ;
  792. tro = 'CHAINE' 'ro ' titolo ;
  793.  
  794. * u
  795.  
  796. evu = 'EVOL' 'CHPO' VNN LIGEVO ;
  797. lu = 'EXTRAIRE' evu 'ORDO' ;
  798. evu = 'EVOL' 'MANU' 'x' lxx 'u' lu ;
  799. tu = 'CHAINE' 'u ' titolo ;
  800.  
  801. * v
  802.  
  803. evv = 'EVOL' 'CHPO' VNT LIGEVO ;
  804. lv = 'EXTRAIRE' evv 'ORDO' ;
  805. evv = 'EVOL' 'MANU' 'x' lxx 'v' lv ;
  806. tv = 'CHAINE' 'v ' titolo ;
  807.  
  808.  
  809. * p
  810.  
  811. evp = 'EVOL' 'CHPO' PN LIGEVO ;
  812. lp = 'EXTRAIRE' evp 'ORDO' ;
  813. evp = 'EVOL' 'MANU' 'x' lxx 'p' lp ;
  814. tp = 'CHAINE' 'p ' titolo ;
  815.  
  816.  
  817. * T
  818.  
  819. evT = 'EVOL' 'CHPO' TN LIGEVO ;
  820. lT = 'EXTRAIRE' evT 'ORDO' ;
  821. evT = 'EVOL' 'MANU' 'x' lxx 'T' lT ;
  822. tT = 'CHAINE' 'T ' titolo ;
  823.  
  824. 'SI' GRAPH ;
  825. 'DESSIN' evro 'TITRE' tro 'XBOR' x0 x1 'MIMA' ;
  826. 'DESSIN' evp 'TITRE' tp 'XBOR' x0 x1 'MIMA' ;
  827. 'DESSIN' evu 'TITRE' tu 'XBOR' x0 x1 'MIMA' ;
  828. 'DESSIN' evv 'TITRE' tv 'XBOR' x0 x1 'MIMA' ;
  829. 'DESSIN' evT 'TITRE' tT 'XBOR' x0 x1 'MIMA' ;
  830. 'FINSI' ;
  831.  
  832.  
  833. * Test
  834.  
  835. PVN = 3.2E6 ;
  836. PCJ = 1.166 ;
  837. RHOVN = 3.7 ;
  838. RHOCJ = 1.4 ;
  839.  
  840.  
  841. PMAX = 'MAXIMUM' PN ;
  842. 'SI' ((PMAX '>' PVN) 'OU' (PMAX '<' PCJ)) ;
  843. 'MESSAGE' 'Pression = ???' ;
  844. 'ERREUR' 5 ;
  845. 'FINSI' ;
  846.  
  847. RHOMAX = 'MAXIMUM' RN ;
  848. 'SI' ((RHOMAX '>' RHOVN) 'OU' (RHOMAX '<' (0.85 '*' RHOCJ))) ;
  849. 'MESSAGE' 'Densite = ???' ;
  850. 'ERREUR' 5 ;
  851. 'FINSI' ;
  852.  
  853. 'FIN' ;
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.  

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