Télécharger cube_CJDF3D.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : cube_CJDF3D.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ****************************************************************
  5. **** APPROCHE VF "Cell-Centred Formulation" pour la ****
  6. **** combustion. ****
  7. **** MODELE RDEM ****
  8. **** ****
  9. **** OPERATEURS 'PRIM', PRET, KONV ****
  10. **** ****
  11. **** PROPAGATION D'UNE DEFLAGRATION DANS UN CUBE ****
  12. **** We check some symmetry properties. ****
  13. **** ****
  14. **** A. BECCANTINI, SFME/LTMF, 22.12.10 ****
  15. **** ****
  16. ****************************************************************
  17. *
  18. * The file is divided into 6 parts
  19. *
  20. * 1) mesh
  21. * 2) initial conditions and gas properties
  22. * 3) parameters used in the computation
  23. * 4) the main part (where the computation is realised)
  24. * 5) the post-treatment
  25. *
  26. 'OPTION' 'ECHO' 1 'DIME' 3
  27. * 'TRAC' 'PSC' ;
  28. 'TRAC' 'X' ;
  29. GRAPH = VRAI ;
  30. GRAPH = FAUX ;
  31. * Upwind scheme
  32. * METO = 'VLH' ;
  33. * METO = 'SS' ;
  34. METO = 'AUSMPUP' ;
  35. *
  36. ******************
  37. **** PRIMCONS ****
  38. ******************
  39. 'DEBPROC' PRIMCONS ;
  40. 'ARGUMENT' PGAS*TABLE TN1*'CHPOINT ' TN2*'CHPOINT '
  41. PN1*'CHPOINT ' PN2*'CHPOINT ' VN1*'CHPOINT ' VN2*'CHPOINT ' ;
  42. *
  43. * ETHER = int_0^T cv(T') dT' T < TMAX
  44. * = int_0^TMAX cv(T') dT' '+'
  45. * cv(TMAX) T >= TMAX
  46. ESP1 = 'EXTRAIRE' (PGAS . 'SPECIES') 1 ;
  47. * DY1 = y_i - y_f for the species 1
  48. DY1 = (('EXTRAIRE' (PGAS . 'MASSFRA') 1) '-'
  49. ('EXTRAIRE' (PGAS . 'MASSFRA') 2)) ;
  50. COEF1 = ('EXTRAIRE' (PGAS . 'CHEMCOEF') 1) '*'
  51. (PGAS . ESP1 . 'W') ;
  52. YFINPH1 = 1.0 ;
  53. YFINPH2 = 1.0 ;
  54. 'SI' (COEF1 > 0) ;
  55. YPH2 = 'EXTRAIRE' (PGAS . 'MASSFRA') 2 ;
  56. YPH1 = YPH2 '+' DY1 ;
  57. 'SINON' ;
  58. YPH1 = 'EXTRAIRE' (PGAS . 'MASSFRA') 2 ;
  59. YPH2 = YPH1 '-' DY1 ;
  60. 'FINSI' ;
  61. YFINPH1 = YFINPH1 '-' YPH1 ;
  62. YFINPH2 = YFINPH2 '-' YPH2 ;
  63. PRYPH1 = 'PROG' YPH1 ;
  64. PRYPH2 = 'PROG' YPH2 ;
  65. 'REPETER' BLESP (('DIME' (PGAS . 'SPECIES')) '-' 2) ;
  66. ESP = 'EXTRAIRE' (PGAS . 'SPECIES') (&BLESP '+' 1) ;
  67. COEF = ('EXTRAIRE' (PGAS . 'CHEMCOEF') (&BLESP '+' 1))
  68. '*' (PGAS . ESP . 'W') ;
  69. DY = (DY1 * (COEF '/' COEF1)) ;
  70. 'SI' (COEF > 0) ;
  71. YPH2 = 'EXTRAIRE' (PGAS . 'MASSFRA') (&BLESP '+' 2) ;
  72. YPH1 = YPH2 '+' DY ;
  73. 'SINON' ;
  74. YPH1 = 'EXTRAIRE' (PGAS . 'MASSFRA') (&BLESP '+' 2) ;
  75. YPH2 = YPH1 '-' DY ;
  76. 'FINSI' ;
  77. PRYPH1 = PRYPH1 'ET' ('PROG' YPH1) ;
  78. PRYPH2 = PRYPH2 'ET' ('PROG' YPH2) ;
  79. YFINPH1 = YFINPH1 '-' YPH1 ;
  80. YFINPH2 = YFINPH2 '-' YPH2 ;
  81. 'FIN' BLESP ;
  82. PRYPH1 = PRYPH1 'ET' ('PROG' YFINPH1) ;
  83. PRYPH2 = PRYPH2 'ET' ('PROG' YFINPH2) ;
  84. * 'LISTE' PRYPH1 ;
  85. * 'LISTE' PRYPH2 ;
  86. *
  87. TMAX = (PGAS . 'TMAX') ;
  88. * TCAL1 = MIN TN1, TMAX
  89. TCAL1 = 0.5D0 '*' ((TMAX '+' TN1) '-' ('ABS' (TN1 '-' TMAX))) ;
  90. DTN1 = TN1 '-' TCAL1 ;
  91. * TCAL1 = MIN TN1, TMAX
  92. TCAL2 = 0.5D0 '*' ((TMAX '+' TN2) '-' ('ABS' (TN2 '-' TMAX))) ;
  93. DTN2 = TN2 '-' TCAL2 ;
  94. *
  95. * Internal energy (J/kg in SI)
  96. *
  97. ETHER1 = 0.0 ;
  98. CV1 = 0.0 ;
  99. ETHER2 = 0.0 ;
  100. CV2 = 0.0 ;
  101. FUNTN1 = 1.0 ;
  102. FUNTN2 = 1.0 ;
  103. 'REPETER' BLPO ((PGAS . 'NORD') '+' 1) ;
  104. 'REPETER' BLESP ('DIME' (PGAS . 'SPECIES')) ;
  105. ESP = 'EXTRAIRE' (PGAS . 'SPECIES') &BLESP ;
  106. YCEL1 = 'EXTRAIRE' PRYPH1 &BLESP ;
  107. YCEL2 = 'EXTRAIRE' PRYPH2 &BLESP ;
  108. AA = 'EXTRAIRE' (PGAS . ESP . 'A') &BLPO ;
  109. DCV1 = (AA * YCEL1 * FUNTN1) ;
  110. DCV2 = (AA * YCEL2 * FUNTN2) ;
  111. CV1 = CV1 '+' DCV1 ;
  112. CV2 = CV2 '+' DCV2 ;
  113. ETHER1 = ETHER1 '+' (DCV1 * TCAL1 '/' (&BLPO)) ;
  114. ETHER2 = ETHER2 '+' (DCV2 * TCAL2 '/' (&BLPO)) ;
  115. 'FIN' BLESP ;
  116. FUNTN1 = FUNTN1 '*' TCAL1 ;
  117. FUNTN2 = FUNTN2 '*' TCAL2 ;
  118. 'FIN' BLPO ;
  119. ETHER1 = ETHER1 '+' (CV1 '*' DTN1) ;
  120. ETHER2 = ETHER2 '+' (CV2 '*' DTN2) ;
  121. *
  122. * Formation energy/enthalpy (J/kg in SI) and gas constant (J/kg/K)
  123. *
  124. EFORM1 = 0.0 ;
  125. EFORM2 = 0.0 ;
  126. RGAS1 = 0.0 ;
  127. RGAS2 = 0.0 ;
  128. 'REPETER' BLESP ('DIME' (PGAS . 'SPECIES')) ;
  129. ESP = 'EXTRAIRE' (PGAS . 'SPECIES') &BLESP ;
  130. YCEL1 = 'EXTRAIRE' PRYPH1 &BLESP ;
  131. YCEL2 = 'EXTRAIRE' PRYPH2 &BLESP ;
  132. EFORM1 = EFORM1 '+' (YCEL1 * (PGAS . ESP . 'H0K')) ;
  133. EFORM2 = EFORM2 '+' (YCEL2 * (PGAS . ESP . 'H0K')) ;
  134. RGAS1 = RGAS1 '+' (YCEL1 * (PGAS . 'RUNIV') '/'
  135. (PGAS . ESP . 'W')) ;
  136. RGAS2 = RGAS2 '+' (YCEL2 * (PGAS . 'RUNIV') '/'
  137. (PGAS . ESP . 'W')) ;
  138. 'FIN' BLESP ;
  139. *
  140. * Computation of the conservative variables
  141. *
  142. RN1 = PN1 '/' (RGAS1 '*' TN1) ;
  143. RN2 = PN2 '/' (RGAS2 '*' TN2) ;
  144. GN1 = RN1 * VN1 ;
  145. GN2 = RN2 * VN2 ;
  146. LVEL = 'MOTS' 'UX' 'UY' 'UZ' ;
  147. ECIN1 = 0.5D0 '*' ('PSCAL' VN1 VN1 LVEL LVEL) ;
  148. ECIN2 = 0.5D0 '*' ('PSCAL' VN2 VN2 LVEL LVEL) ;
  149. RETN1 = RN1 '*' (ETHER1 '+' ECIN1 '+' EFORM1) ;
  150. RETN2 = RN2 '*' (ETHER2 '+' ECIN2 '+' EFORM2) ;
  151. *
  152. 'RESPRO' RN1 RN2 GN1 GN2 RETN1 RETN2 ;
  153. 'FINPROC' ;
  154.  
  155. *
  156. ****************************************************************
  157. ***** Cube *****
  158. ****************************************************************
  159. *
  160. *
  161. * A4 ------ A3
  162. * | |
  163. * | |
  164. * | ZONE |
  165. * A1 ------ A2
  166. * |
  167. * | L1 |
  168. * >|<------->|
  169. *
  170. * AR = activation region close to A1
  171. * ZONE1
  172. * ZONE2
  173. *
  174.  
  175. RAF = 10 ;
  176.  
  177. L1 = 1. ;
  178. L2 = 1. ;
  179. L3 = 1. ;
  180.  
  181. DX = L1 '/' RAF ;
  182. N1 = RAF ;
  183. N2 = RAF ;
  184. N3 = RAF ;
  185.  
  186. A1 = 0.0 0.0 0.0 ;
  187. A2 = L1 0.0 0.0 ;
  188. A3 = L1 L1 0.0 ;
  189. A4 = 0.0 L2 0.0 ;
  190. *
  191. 'OPTION' 'ELEM' 'SEG2' ;
  192. A1A2 = A1 'DROIT' N1 A2 ;
  193. A2A3 = A2 'DROIT' N2 A3 ;
  194. A3A4 = A3 'DROIT' N1 A4 ;
  195. A4A1 = A4 'DROIT' N2 A1 ;
  196. *
  197. *
  198. **** 2D mesh
  199. *
  200. 'OPTION' 'ELEM' 'QUA4' ;
  201. DOMP = 'DALLER' A1A2 A2A3 A3A4 A4A1 ;
  202. *
  203. 'OPTION' 'ELEM' 'CUB8' ;
  204. DOMTOT = DOMP 'VOLUME' 'TRANSLATION' N3 (0.0 0.0 L3) ;
  205. DOM1 = DOMTOT 'ELEM' 'APPU' 'LARG' A1 ;
  206. DOM2 = 'DIFF' DOMTOT DOM1 ;
  207. *
  208. * DOMTOT = total region
  209. *
  210. DOMLIM = 'ENVE' DOMTOT ;
  211. *
  212. **** The tables 'DOMAINE'
  213. *
  214. $DOMTOT = 'MODELISER' DOMTOT 'EULER' ;
  215. $DOMLIM = 'MODELISER' DOMLIM 'EULER' ;
  216. $DOM1 = 'MODELISER' DOM1 'EULER' ;
  217. $DOM2 = 'MODELISER' DOM2 'EULER' ;
  218. *
  219. TDOMTOT = 'DOMA' $DOMTOT 'VF' ;
  220. TDOMLIM = 'DOMA' $DOMLIM 'VF' ;
  221. TDOM1 = 'DOMA' $DOM1 'VF' ;
  222. TDOM2 = 'DOMA' $DOM2 'VF' ;
  223. *
  224. QDOMTOT = TDOMTOT . 'QUAF' ;
  225. QDOMLIM = TDOMLIM . 'QUAF' ;
  226. QDOM1 = TDOM1 . 'QUAF' ;
  227. QDOM2 = TDOM2 . 'QUAF' ;
  228. *
  229. 'ELIMINATION' QDOMTOT (0.001 '*' DX) QDOMLIM ;
  230. 'ELIMINATION' QDOMTOT (0.001 '*' DX) QDOM1 ;
  231. 'ELIMINATION' QDOMTOT (0.001 '*' DX) QDOM2 ;
  232. *
  233. **** MOD1 = model (created just to display the CHAMELEMs)
  234. *
  235. MOD1 = 'MODELISER' ('DOMA' $DOMTOT 'MAILLAGE') 'THERMIQUE' ;
  236. *
  237. **** Lines for graphics
  238. *
  239. DOMX = 'POIN' ('COORDONNEE' 2 DOMTOT) 'MINI' ;
  240. DOMX = 'POIN' ('COORDONNEE' 3 DOMX) 'MINI' ;
  241. DOMX = DOMTOT 'ELEM' 'APPU' 'LARG' DOMX ;
  242. DOMY = 'POIN' ('COORDONNEE' 3 DOMTOT) 'MINI' ;
  243. DOMY = 'POIN' ('COORDONNEE' 1 DOMY) 'MINI' ;
  244. DOMY = DOMTOT 'ELEM' 'APPU' 'LARG' DOMY ;
  245. DOMZ = 'POIN' ('COORDONNEE' 1 DOMTOT) 'MINI' ;
  246. DOMZ = 'POIN' ('COORDONNEE' 2 DOMZ) 'MINI' ;
  247. DOMZ = DOMTOT 'ELEM' 'APPU' 'LARG' DOMZ ;
  248. $DOMX = 'MODELISER' DOMX 'EULER' ;
  249. $DOMY = 'MODELISER' DOMY 'EULER' ;
  250. $DOMZ = 'MODELISER' DOMZ 'EULER' ;
  251. TDOMX = 'DOMA' $DOMX 'VF' ;
  252. TDOMY = 'DOMA' $DOMY 'VF' ;
  253. TDOMZ = 'DOMA' $DOMZ 'VF' ;
  254. QDOMX = TDOMX . 'QUAF' ;
  255. QDOMY = TDOMY . 'QUAF' ;
  256. QDOMZ = TDOMZ . 'QUAF' ;
  257. 'ELIMINATION' QDOMTOT (0.001 '*' DX) QDOMX ;
  258. 'ELIMINATION' QDOMTOT (0.001 '*' DX) QDOMY ;
  259. 'ELIMINATION' QDOMTOT (0.001 '*' DX) QDOMZ ;
  260.  
  261. LIGEX = (TDOMX . 'CENTRE') ;
  262. * P1 = 'POIN' (COOR 1 LIGEX) 'MINIMUM' ;
  263. * 'ORDONNER' LIGEX P1 ;
  264. 'ORDONNER' LIGEX ;
  265. LIGEX = 'QUELCONQUE' 'SEG2' LIGEX 'COULEUR' 'VERT';
  266. *
  267. LIGEY = (TDOMY . 'CENTRE') ;
  268. * P1 = 'POIN' (COOR 2 LIGEY) 'MINIMUM' ;
  269. * 'ORDONNER' LIGEY P1 ;
  270. 'ORDONNER' LIGEY ;
  271. LIGEY = 'QUELCONQUE' 'SEG2' LIGEY 'COULEUR' 'ROSE';
  272. *
  273. LIGEZ = (TDOMZ . 'CENTRE') ;
  274. * P1 = 'POIN' (COOR 3 LIGEZ) 'MINIMUM' ;
  275. * 'ORDONNER' LIGEZ P1 ;
  276. 'ORDONNER' LIGEZ ;
  277. LIGEZ = 'QUELCONQUE' 'SEG2' LIGEZ 'COULEUR' 'ROUG';
  278.  
  279. 'SI' GRAPH ;
  280. 'TRACER' (QDOMTOT 'ET' LIGEX 'ET' LIGEY 'ET' LIGEZ) ;
  281. 'FINSI' ;
  282.  
  283. * 'OPTION' 'SAUVER' ('CHAINE' 'mesh.sauv_raf' RAF) ;
  284. * 'SAUVER' RAF DOMTOT $DOMTOT $DOM1 $DOM2 $DOM3 LIGEVO MOD1 ;
  285.  
  286. ****************************************************************
  287. ****************************************************************
  288. ***** Initial conditions and gas properties. *****
  289. ****************************************************************
  290. ****************************************************************
  291. *
  292. *************************************************
  293. **** The table for the properties of the gas ****
  294. *************************************************
  295. *
  296. PGAS = 'TABLE' ;
  297. *
  298. **** Order of the polynomial order for cv = cv(T)
  299. * For T > TMAX, cv(T) = cv(Tmax)
  300. *
  301. PGAS . 'TMAX' = 6000.0 ;
  302. PGAS . 'NORD' = 4 ;
  303. *
  304. **** Species involved in the mixture (before or after
  305. * the chemical reaction)
  306. *
  307. PGAS . 'SPECIES' = 'MOTS' 'H2 ' 'O2 ' 'H2O ' 'N2 ' ;
  308. *
  309. *
  310. **** Coefficient of the chemical reaction.
  311. * Note that for the first species this coefficient should be positive
  312. * Normal, we take it equal to 1.
  313. *
  314. * H2 '+' 0.5 O2 ---> H2O
  315. *
  316. PGAS . 'CHEMCOEF' = 'PROG' 1.0 0.5 -1.0 0.0 ;
  317. *
  318. **** Mass fraction of the first species before and after the combustion
  319. * Final mass fractions of the species with positive coefficients.
  320. * Final mass fractions of the species with non-positive coefficient.
  321. * The mass fraction of the last species is not given.
  322. *
  323. PGAS . 'MASSFRA' = 'PROG' 0.285219E-01 0.964039E-11 0.765104E-10
  324. 0.127442E-10 ;
  325. *
  326. **** Coef with the gas properties
  327. *
  328. PGAS . 'H2 ' = 'TABLE' ;
  329. PGAS . 'H2O ' = 'TABLE' ;
  330. PGAS . 'N2 ' = 'TABLE' ;
  331. PGAS . 'O2 ' = 'TABLE' ;
  332. *
  333. **** Runiv (J/mole/K)
  334. *
  335. PGAS . 'RUNIV' = 8.31441 ;
  336. *
  337. **** W (kg/mole). Gas constant (J/kg/K = Runiv/W)
  338. *
  339. PGAS . 'H2 ' . 'W' = 2. * 1.00797E-3 ;
  340. PGAS . 'O2 ' . 'W' = 2. * 15.9994E-3 ;
  341. PGAS . 'H2O ' . 'W' = (PGAS . 'H2 ' . 'W' ) '+'
  342. (0.5 * (PGAS . 'O2 ' . 'W' )) ;
  343. PGAS . 'N2 ' . 'W' = 2 * 14.0067E-3 ;
  344. *
  345. **** Polynomial coefficients
  346. *
  347. PGAS . 'H2 ' . 'A' = 'PROG' 9834.91866 0.54273926 0.000862203836
  348. -2.37281455E-07 1.84701105E-11 ;
  349. PGAS . 'H2O ' . 'A' = 'PROG' 1155.95625 0.768331151 -5.73129958E-05
  350. -1.82753232E-08 2.44485692E-12 ;
  351. PGAS . 'N2 ' . 'A' = 'PROG' 652.940766 0.288239099 -7.80442298E-05
  352. 8.78233606E-09 -3.05514485E-13 ;
  353. PGAS . 'O2 ' . 'A' = 'PROG' 575.012333 0.350522002 -0.000128294865
  354. 2.33636971E-08 -1.53304905E-12;
  355. *
  356. **** Formation enthalpies (energies) at 0K (J/Kg)
  357. *
  358. PGAS . 'H2 ' . 'H0K' = -4.195D6 ;
  359. PGAS . 'H2O ' . 'H0K' = -1.395D7 ;
  360. PGAS . 'N2 ' . 'H0K' = -2.953D5 ;
  361. PGAS . 'O2 ' . 'H0K' = -2.634D5 ;
  362. *
  363. *************************************************
  364. **** The initial conditions *********************
  365. *************************************************
  366. *
  367. eps = 1.0D-64 ;
  368. K0 = 200. ;
  369. *
  370. T1 = 293. ;
  371. alph11 = 1 '-' 0.0001 ;
  372. alph12 = 0.0001 ;
  373. alph21 = 1.0 '-' alph11 ;
  374. alph22 = 1.0 - alph12 ;
  375. T2 = 2800. ;
  376. un1 = 100.;
  377. un2 = 100.;
  378. ut1 = 100.;
  379. ut2 = 100.;
  380. uv1 = 100.;
  381. uv2 = 100.;
  382. pre1 = 1.013D5 ;
  383. pre2 = 2.013D5 ;
  384. *
  385. CHVN1 = ('MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 3 'UX' un1
  386. 'UY' ut1 'UZ' uv1) ;
  387. CHVN2 = ('MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 3 'UX' un2
  388. 'UY' ut2 'UZ' uv2) ;
  389. *
  390. CHTN1 = ('MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' T1) ;
  391. CHTN2 = ('MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' T2) ;
  392. *
  393. CHPN1 = ('MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' pre1) ;
  394. CHPN2 = ('MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' pre2) ;
  395. * CHPN1 = CHPN1 '+' ('MANUEL' 'CHPO' (TDOM1 . 'CENTRE') 1 'SCAL' pre1) ;
  396. * 'ERREUR' 21 ;
  397. *
  398. CHAL1 = ('MANUEL' 'CHPO' (TDOM1 . 'CENTRE') 1 'SCAL'
  399. alph11) '+'
  400. ('MANUEL' 'CHPO' (TDOM2 . 'CENTRE') 1 'SCAL'
  401. alph12) ;
  402. CHAL2 = ('MANUEL' 'CHPO' (TDOM1 . 'CENTRE') 1 'SCAL'
  403. alph21) '+'
  404. ('MANUEL' 'CHPO' (TDOM2 . 'CENTRE') 1 'SCAL'
  405. alph22) ;
  406. *
  407. CHRN1 CHRN2 CHGN1 CHGN2 CHRET1 CHRET2 = PRIMCONS
  408. PGAS CHTN1 CHTN2 CHPN1 CHPN2 CHVN1 CHVN2 ;
  409. *
  410. RN1 RN2 VN1 VN2 PN1 PN2 TN1 TN2 = 'PRIM' 'DEM' PGAS CHAL1 CHAL2
  411. (CHAL1 * CHRN1) (CHAL2 * CHRN2) (CHAL1 * CHGN1)
  412. (CHAL2 * CHGN2) (CHAL1 * CHRET1) (CHAL2 * CHRET2)
  413. CHTN1 CHTN2 EPS ;
  414. TN1M = COPIER TN1 ;
  415. TN2M = COPIER TN2 ;
  416. *
  417. ERRO = 'MAXIMUM' (PRE1 '-' ('REDU' PN1 (TDOM1 . 'CENTRE'))) 'ABS' ;
  418. ERRO = ERRO '/' (pre1) ;
  419. 'SI' (ERRO > 1.0D-6) ;
  420. 'MESSAGE' ('CHAINE' 'Erreur PRIM ' ERRO);
  421. 'ERREUR' 21 ;
  422. 'FINSI' ;
  423. ERRO = 'MAXIMUM' (PRE2 '-' ('REDU' PN2 (TDOM2 . 'CENTRE'))) 'ABS' ;
  424. ERRO = ERRO '/' (pre2) ;
  425. 'SI' (ERRO > 1.0D-6) ;
  426. 'MESSAGE' ('CHAINE' 'Erreur PRIM ' ERRO);
  427. 'ERREUR' 21 ;
  428. 'FINSI' ;
  429. ERRO = 'MAXIMUM' (T1 '-' ('REDU' TN1 (TDOM1 . 'CENTRE'))) 'ABS' ;
  430. ERRO = ERRO '/' (T1) ;
  431. 'SI' (ERRO > 1.0D-6) ;
  432. 'MESSAGE' ('CHAINE' 'Erreur PRIM ' ERRO);
  433. 'ERREUR' 21 ;
  434. 'FINSI' ;
  435. ERRO = 'MAXIMUM' (T2 '-' ('REDU' TN2 (TDOM2 . 'CENTRE'))) 'ABS' ;
  436. ERRO = ERRO '/' (T2) ;
  437. 'SI' (ERRO > 1.0D-6) ;
  438. 'MESSAGE' ('CHAINE' 'Erreur PRIM ' ERRO);
  439. 'ERREUR' 21 ;
  440. 'FINSI' ;
  441. *
  442. **** Parameter for the time loop
  443. *
  444. * Names of the residuum components
  445. *
  446. LISTINCO = ('MOTS' 'ALF1' 'RN1' 'RNX1' 'RNY1' 'RNZ1' 'RET1'
  447. 'ALF2' 'RN2' 'RNX2' 'RNY2' 'RNZ2' 'RET2') ;
  448. *
  449. **** BC
  450. *
  451. KONLIM = 'DIFF' DOMTOT DOMTOT ;
  452. CHPVID CHMVID = 'KOPS' 'MATRIK' ;
  453. RESLIM = 'COPIER' CHPVID ;
  454.  
  455. *
  456. ****************************************************************
  457. ****************************************************************
  458. ***** Parameters for the computations ******
  459. ****************************************************************
  460. ****************************************************************
  461. *
  462.  
  463. * Iterations
  464. * Final time
  465. * Safety Factor fot the time step
  466. * Second order reconstruction?
  467. * We compute the gradients during the correction or not ?
  468.  
  469. NITER = 10000 ;
  470. TFINAL = 0.4D-3 ;
  471. SAFFAC = 0.25 ;
  472. LOGSO = VRAI ;
  473. LOGGRA = VRAI ;
  474.  
  475.  
  476. * 'OPTION' 'SAUVER' 'parameters.sauv' ;
  477. * 'SAUVER' METO NITER TFINAL SAFFAC LOGSO ;
  478.  
  479. ****************************************************************
  480. ****************************************************************
  481. ***** The computation ******
  482. ****************************************************************
  483. ****************************************************************
  484.  
  485. AL1 = CHAL1 ;
  486. AL2 = CHAL2 ;
  487. ARN1 = CHAL1 * CHRN1 ;
  488. ARN2 = CHAL2 * CHRN2 ;
  489. AGN1 = CHAL1 * CHGN1 ;
  490. AGN2 = CHAL2 * CHGN2 ;
  491. AREN1 = CHAL1 * CHRET1 ;
  492. AREN2 = CHAL2 * CHRET2 ;
  493. *
  494. AL10 = 'COPIER' AL1 ;
  495. AL20 = 'COPIER' AL2 ;
  496. ARN10 = 'COPIER' ARN1 ;
  497. ARN20 = 'COPIER' ARN2 ;
  498. AGN10 = 'COPIER' AGN1 ;
  499. AGN20 = 'COPIER' AGN2 ;
  500. AREN10 = 'COPIER' AREN1 ;
  501. AREN20 = 'COPIER' AREN2 ;
  502. TN10 = 'COPIER' TN1 ;
  503. TN20 = 'COPIER' TN2 ;
  504.  
  505. *
  506. **** Geometrical coefficient to compute grad(alpha)/|grad(alpha)|
  507. *
  508.  
  509. EPSGR = 1.0D-6 ;
  510. CHPL1 = CHPVID ;
  511. CHPL2 = 'MANUEL' 'CHPO' (TDOMLIM . 'CENTRE') 3
  512. 'P1DX' 0.0 'P1DY' 0.0 'P1DZ' 0.0 ;
  513. GRALP1 GRAL = 'PENT' $DOMTOT 'FACE'
  514. 'DIAMAN2' ('MOTS' 'SCAL') ('MOTS' 'P1DX' 'P1DY' 'P1DZ')
  515. AL1 CHPL1 CHPL2 ;
  516. * 'SI' VRAI ;
  517. * V1 = 'VECTEUR'
  518. * ('NOMC' ('MOTS' 'P1DX' 'P1DY' 'P1DZ') GRALP1
  519. * ('MOTS' 'UX' 'UY' 'UZ')) ;
  520. * 'TRACER' DOMTOT V1 DOMLIM ;
  521. * 'FINSI' ;
  522. GRALP1 = GRALP1 '+' EPSGR ;
  523. GRALP1 = GRALP1 '/' (('PSCAL' GRALP1 GRALP1
  524. ('MOTS' 'P1DX' 'P1DY' 'P1DZ')
  525. ('MOTS' 'P1DX' 'P1DY' 'P1DZ')) '**' 0.5) ;
  526. * 'SI' VRAI ;
  527. * V1 = 'VECTEUR'
  528. * ('NOMC' ('MOTS' 'P1DX' 'P1DY' 'P1DZ') GRALP1
  529. * ('MOTS' 'UX' 'UY' 'UZ')) ;
  530. * 'TRACER' DOMTOT V1 DOMLIM ;
  531. * 'FINSI' ;
  532.  
  533. *
  534. **** Geometrical coefficient to compute gradients
  535. *
  536. GRADR0 ALR0 COEFSCAL = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'NOLIMITE'
  537. ('MOTS' 'SCAL') AL10 ;
  538. GRADR0 = GRADR0 * 0.0 ;
  539. ALR0 = ALR0 * 0.0 ;
  540.  
  541. GRADV0 ALV0 COEFVECT = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'NOLIMITE'
  542. ('MOTS' 'UX' 'UY' 'UZ') AGN10 ;
  543. GRADV0 = GRADV0 * 0.0 ;
  544. ALV0 = ALV0 * 0.0 ;
  545.  
  546. VINF1 = 'MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' 10. ;
  547. VINF2 = 'MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' 100. ;
  548. *
  549. **** Temporal loop
  550. *
  551.  
  552. TPS = 0.0 ;
  553.  
  554. 'MESSAGE' ;
  555. 'MESSAGE' ('CHAINE' 'Methode = ' METO) ;
  556. 'MESSAGE' ('CHAINE' 'SAFFAC = ' SAFFAC) ;
  557. 'MESSAGE' ;
  558.  
  559. 'TEMPS' 'ZERO' ;
  560. 'REPETER' BLITER NITER ;
  561.  
  562. *
  563. **** Primitive variables
  564. *
  565.  
  566. RN1 RN2 VN1 VN2 PN1 PN2 TN1 TN2 = 'PRIM' 'DEM' PGAS AL1 AL2
  567. ARN1 ARN2 AGN1 AGN2 AREN1 AREN2 TN1M TN2M EPS ;
  568.  
  569. TN1M = 'COPIER' TN1 ;
  570. TN2M = 'COPIER' TN2 ;
  571.  
  572. **** Gradient of alpha
  573.  
  574. GRALP1 = 'PENT' $DOMTOT 'FACE'
  575. 'DIAMAN2' ('MOTS' 'SCAL') ('MOTS' 'P1DX' 'P1DY' 'P1DZ')
  576. AL1 CHPL1 CHPL2 'GRADGEO' GRAL ;
  577. * 'SI' VRAI ;
  578. * V1 = 'VECTEUR'
  579. * ('NOMC' ('MOTS' 'P1DX' 'P1DY' 'P1DZ') GRALP1
  580. * ('MOTS' 'UX' 'UY' 'UZ')) ;
  581. * 'TRACER' DOMTOT V1 DOMLIM ;
  582. * 'FINSI' ;
  583. GRALP1 = GRALP1 '+' EPSGR ;
  584. GRALP1 = GRALP1 '/' (('PSCAL' GRALP1 GRALP1
  585. ('MOTS' 'P1DX' 'P1DY' 'P1DZ')
  586. ('MOTS' 'P1DX' 'P1DY' 'P1DZ')) '**' 0.5) ;
  587.  
  588. 'SI' LOGSO ;
  589.  
  590. GRADA1 ALA1 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
  591. ('MOTS' 'SCAL') AL1 'GRADGEO' COEFSCAL ;
  592.  
  593. GRADR1 ALR1 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
  594. ('MOTS' 'SCAL') RN1 'GRADGEO' COEFSCAL ;
  595.  
  596. GRADP1 ALP1 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
  597. ('MOTS' 'SCAL') PN1 'GRADGEO' COEFSCAL ;
  598.  
  599. GRADV1 ALV1 = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'LIMITEUR'
  600. ('MOTS' 'UX' 'UY' 'UZ') VN1 'GRADGEO' COEFVECT ;
  601.  
  602. GRADA2 ALA2 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
  603. ('MOTS' 'SCAL') AL2 'GRADGEO' COEFSCAL ;
  604.  
  605. GRADR2 ALR2 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
  606. ('MOTS' 'SCAL') RN2 'GRADGEO' COEFSCAL ;
  607.  
  608. GRADP2 ALP2 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
  609. ('MOTS' 'SCAL') PN2 'GRADGEO' COEFSCAL ;
  610.  
  611. GRADV2 ALV2 = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'LIMITEUR'
  612. ('MOTS' 'UX' 'UY' 'UZ') VN2 'GRADGEO' COEFVECT ;
  613.  
  614. CHFAL1 CHFAL2 CHFRN1 CHFRN2 CHFVN1 CHFVN2 CHFPN1 CHFPN2 =
  615. 'PRET' 'DEM' $DOMTOT
  616. AL1 GRADA1 ALA1
  617. AL2 GRADA2 ALA2
  618. * AL1 GRADA1 ALR0
  619. * AL2 GRADA2 ALR0
  620. RN1 GRADR1 ALR1
  621. RN2 GRADR2 ALR2
  622. VN1 GRADV1 ALV1
  623. VN2 GRADV2 ALV2
  624. PN1 GRADP1 ALP1
  625. PN2 GRADP2 ALP2 ;
  626.  
  627. 'SINON' ;
  628.  
  629. CHFAL1 CHFAL2 CHFRN1 CHFRN2 CHFVN1 CHFVN2 CHFPN1 CHFPN2 =
  630. 'PRET' 'DEM' $DOMTOT
  631. AL1 GRADR0 ALR0
  632. AL2 GRADR0 ALR0
  633. RN1 GRADR0 ALR0
  634. RN2 GRADR0 ALR0
  635. VN1 GRADV0 ALV0
  636. VN2 GRADV0 ALV0
  637. PN1 GRADR0 ALR0
  638. PN2 GRADR0 ALR0 ;
  639.  
  640. 'FINSI' ;
  641.  
  642. SI ('EGA' METO 'AUSMPUP') ;
  643. RESIDU DELTAT SURF = 'KONV' 'VF' 'DEM' 'RESI' METO 'CONS'
  644. $DOMTOT PGAS LISTINCO AL1 AL2 CHFAL1 CHFAL2 CHFRN1 CHFRN2
  645. CHFVN1 CHFVN2 CHFPN1 CHFPN2 K0 GRALP1 EPS KONLIM VINF1 VINF2 ;
  646. 'SINON' ;
  647. RESIDU DELTAT SURF = 'KONV' 'VF' 'DEM' 'RESI' METO 'CONS'
  648. $DOMTOT PGAS LISTINCO AL1 AL2 CHFAL1 CHFAL2 CHFRN1 CHFRN2
  649. CHFVN1 CHFVN2 CHFPN1 CHFPN2 K0 GRALP1 EPS KONLIM ;
  650. 'FINSI' ;
  651. *
  652. RESIDU = RESIDU '+' RESLIM ;
  653. *
  654. * 'REPETER' BL1 ('DIME' LISTINCO) ;
  655. * mot1 = 'EXTRAIRE' LISTINCO &BL1 ;
  656. * valre1 = 'MAXIMUM' ('EXCO' RESLIM mot1) 'ABS' ;
  657. * tit1 = 'CHAINE' 'Component ' mot1 ', reference value ' valre1 ;
  658. * evaa = 'EVOL' 'CHPO' RESIDU mot1 LIGEVO ;
  659. * 'DESSIN' evaa 'TITRE' tit1 ;
  660. * 'FIN' BL1 ;
  661.  
  662. * Problem with RNY1, RNY2
  663.  
  664. DT_CON = SAFFAC '*' DELTAT ;
  665. *
  666. **** The time step linked to tps
  667. *
  668.  
  669. DTTPS = (TFINAL '-' TPS) * (1. '+' 1.0D-6) ;
  670.  
  671. *
  672. **** Total time step
  673. *
  674.  
  675. DTMIN = 'MINIMUM' ('PROG' DT_CON DTTPS) ;
  676.  
  677. *
  678. **** Increment of the variables (predictor)
  679. *
  680. * RN1 RN2 VN1 VN2 PN1 PN2 TN1 TN2 = 'PRIM' 'DEM' PGAS AL1 AL2
  681. * ARN1 ARN2 AGN1 AGN2 AREN1 AREN2 CHTN1 CHTN2 EPS ;
  682.  
  683. RESIDU = (0.5 * DTMIN) '*' RESIDU ;
  684.  
  685. DALP1 = 'EXCO' 'ALF1' RESIDU 'SCAL' ;
  686. DRN1 = 'EXCO' 'RN1' RESIDU 'SCAL' ;
  687. DGN1 = 'EXCO' ('MOTS' 'RNX1' 'RNY1' 'RNZ1') RESIDU
  688. ('MOTS' 'UX' 'UY' 'UZ') ;
  689. DRET1 = 'EXCO' 'RET1' RESIDU 'SCAL' ;
  690. DALP2 = 'EXCO' 'ALF2' RESIDU 'SCAL' ;
  691. DRN2 = 'EXCO' 'RN2' RESIDU 'SCAL' ;
  692. DGN2 = 'EXCO' ('MOTS' 'RNX2' 'RNY2' 'RNZ2') RESIDU
  693. ('MOTS' 'UX' 'UY' 'UZ') ;
  694. DRET2 = 'EXCO' 'RET2' RESIDU 'SCAL' ;
  695.  
  696. AL1B = AL1 '+' DALP1 ;
  697. ARN1B = ARN1 '+' DRN1 ;
  698. AGN1B = AGN1 '+' DGN1 ;
  699. AREN1B = AREN1 '+' DRET1 ;
  700. AL2B = AL2 '+' DALP2 ;
  701. ARN2B = ARN2 '+' DRN2 ;
  702. AGN2B = AGN2 '+' DGN2 ;
  703. AREN2B = AREN2 '+' DRET2 ;
  704.  
  705. *
  706. **** Corrector
  707. *
  708.  
  709. RN1 RN2 VN1 VN2 PN1 PN2 TN1 TN2 = 'PRIM' 'DEM' PGAS AL1B AL2B
  710. ARN1B ARN2B AGN1B AGN2B AREN1B AREN2B TN1M TN2M EPS ;
  711.  
  712. **** Gradient of alpha
  713.  
  714. GRALP1 = 'PENT' $DOMTOT 'FACE'
  715. 'DIAMAN2' ('MOTS' 'SCAL') ('MOTS' 'P1DX' 'P1DY' 'P1DZ')
  716. AL1B CHPL1 CHPL2 'GRADGEO' GRAL ;
  717. * 'SI' VRAI ;
  718. * V1 = 'VECTEUR'
  719. * ('NOMC' ('MOTS' 'P1DX' 'P1DY' 'P1DZ') GRALP1
  720. * ('MOTS' 'UX' 'UY' 'UZ')) ;
  721. * 'TRACER' DOMTOT V1 DOMLIM ;
  722. * 'FINSI' ;
  723. GRALP1 = GRALP1 '+' EPSGR ;
  724. GRALP1 = GRALP1 '/' (('PSCAL' GRALP1 GRALP1
  725. ('MOTS' 'P1DX' 'P1DY' 'P1DZ')
  726. ('MOTS' 'P1DX' 'P1DY' 'P1DZ')) '**' 0.5) ;
  727.  
  728. 'SI' LOGSO ;
  729.  
  730. SI LOGGRA ;
  731. GRADA1 ALA1 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
  732. ('MOTS' 'SCAL') AL1B 'GRADGEO' COEFSCAL ;
  733.  
  734. GRADR1 ALR1 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
  735. ('MOTS' 'SCAL') RN1 'GRADGEO' COEFSCAL ;
  736.  
  737. GRADP1 ALP1 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
  738. ('MOTS' 'SCAL') PN1 'GRADGEO' COEFSCAL ;
  739.  
  740. GRADV1 ALV1 = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'LIMITEUR'
  741. ('MOTS' 'UX' 'UY' 'UZ') VN1 'GRADGEO' COEFVECT ;
  742.  
  743. GRADA2 ALA2 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
  744. ('MOTS' 'SCAL') AL2B 'GRADGEO' COEFSCAL ;
  745.  
  746. GRADR2 ALR2 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
  747. ('MOTS' 'SCAL') RN2 'GRADGEO' COEFSCAL ;
  748.  
  749. GRADP2 ALP2 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
  750. ('MOTS' 'SCAL') PN2 'GRADGEO' COEFSCAL ;
  751.  
  752. GRADV2 ALV2 = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'LIMITEUR'
  753. ('MOTS' 'UX' 'UY' 'UZ') VN2 'GRADGEO' COEFVECT ;
  754. 'FINSI' ;
  755.  
  756. CHFAL1 CHFAL2 CHFRN1 CHFRN2 CHFVN1 CHFVN2 CHFPN1 CHFPN2 =
  757. 'PRET' 'DEM' $DOMTOT
  758. AL1B GRADA1 ALA1
  759. AL2B GRADA2 ALA2
  760. * AL1B GRADA1 ALR0
  761. * AL2B GRADA2 ALR0
  762. RN1 GRADR1 ALR1
  763. RN2 GRADR2 ALR2
  764. VN1 GRADV1 ALV1
  765. VN2 GRADV2 ALV2
  766. PN1 GRADP1 ALP1
  767. PN2 GRADP2 ALP2 ;
  768.  
  769. 'SINON' ;
  770.  
  771. CHFAL1 CHFAL2 CHFRN1 CHFRN2 CHFVN1 CHFVN2 CHFPN1 CHFPN2 =
  772. 'PRET' 'DEM' $DOMTOT
  773. AL1B GRADR0 ALR0
  774. AL2B GRADR0 ALR0
  775. RN1 GRADR0 ALR0
  776. RN2 GRADR0 ALR0
  777. VN1 GRADV0 ALV0
  778. VN2 GRADV0 ALV0
  779. PN1 GRADR0 ALR0
  780. PN2 GRADR0 ALR0 ;
  781.  
  782. 'FINSI' ;
  783.  
  784. SI ('EGA' METO 'AUSMPUP') ;
  785. RESIDU DELTAT SURF = 'KONV' 'VF' 'DEM' 'RESI' METO 'CONS'
  786. $DOMTOT PGAS LISTINCO AL1B AL2B CHFAL1 CHFAL2 CHFRN1 CHFRN2
  787. CHFVN1 CHFVN2 CHFPN1 CHFPN2 K0 GRALP1 EPS KONLIM VINF1 VINF2 ;
  788. 'SINON' ;
  789. RESIDU DELTAT SURF = 'KONV' 'VF' 'DEM' 'RESI' METO 'CONS'
  790. $DOMTOT PGAS LISTINCO AL1B AL2B CHFAL1 CHFAL2 CHFRN1 CHFRN2
  791. CHFVN1 CHFVN2 CHFPN1 CHFPN2 K0 GRALP1 EPS KONLIM ;
  792. 'FINSI' ;
  793.  
  794. RESIDU = RESIDU '+' RESLIM ;
  795. *
  796. * 'REPETER' BL1 ('DIME' LISTINCO) ;
  797. * mot1 = 'EXTRAIRE' LISTINCO &BL1 ;
  798. * valre1 = 'MAXIMUM' ('EXCO' RESLIM mot1) 'ABS' ;
  799. * tit1 = 'CHAINE' 'Component ' mot1 ', reference value ' valre1 ;
  800. * evaa = 'EVOL' 'CHPO' RESIDU mot1 LIGEVO ;
  801. * 'DESSIN' evaa 'TITRE' tit1 ;
  802. * 'FIN' BL1 ;
  803.  
  804. * 'OPTION' DONN 5 ;
  805. * Problem with RNY1, RNY2
  806.  
  807.  
  808. RESIDU = DTMIN '*' RESIDU ;
  809.  
  810. DALP1 = 'EXCO' 'ALF1' RESIDU 'SCAL' ;
  811. DRN1 = 'EXCO' 'RN1' RESIDU 'SCAL' ;
  812. DGN1 = 'EXCO' ('MOTS' 'RNX1' 'RNY1' 'RNZ1') RESIDU
  813. ('MOTS' 'UX' 'UY' 'UZ') ;
  814. DRET1 = 'EXCO' 'RET1' RESIDU 'SCAL' ;
  815. DALP2 = 'EXCO' 'ALF2' RESIDU 'SCAL' ;
  816. DRN2 = 'EXCO' 'RN2' RESIDU 'SCAL' ;
  817. DGN2 = 'EXCO' ('MOTS' 'RNX2' 'RNY2' 'RNZ2')
  818. RESIDU ('MOTS' 'UX' 'UY' 'UZ') ;
  819. DRET2 = 'EXCO' 'RET2' RESIDU 'SCAL' ;
  820.  
  821. TPS = TPS '+' DTMIN ;
  822. AL1 = AL1 '+' DALP1 ;
  823. ARN1 = ARN1 '+' DRN1 ;
  824. AGN1 = AGN1 '+' DGN1 ;
  825. AREN1 = AREN1 '+' DRET1 ;
  826. AL2 = AL2 '+' DALP2 ;
  827. ARN2 = ARN2 '+' DRN2 ;
  828. AGN2 = AGN2 '+' DGN2 ;
  829. AREN2 = AREN2 '+' DRET2 ;
  830.  
  831. 'SI' (((&BLITER '/' 20) '*' 20) 'EGA' &BLITER) ;
  832. 'MESSAGE' ('CHAINE' 'ITER =' &BLITER ' TPS =' TPS) ;
  833. 'FINSI' ;
  834.  
  835. 'SI' (TPS > TFINAL) ;
  836. 'QUITTER' BLITER ;
  837. 'FINSI' ;
  838.  
  839. 'FIN' BLITER ;
  840. * 'TEMPS' 'IMPR' ;
  841. 'TEMPS' ;
  842.  
  843. * 'OPTION' 'SAUVER' ('CHAINE' 'result.sauv_' RAF 'tps_' TPS ) ;
  844. * 'SAUVER' ;
  845.  
  846. ****************************************************************
  847. ****************************************************************
  848. ***** The post-treatment ******
  849. ****************************************************************
  850. ****************************************************************
  851.  
  852. * 'OPTI' 'REST' 'result.sauv_1tps_5' ;
  853. * 'REST' ;
  854.  
  855. *
  856. **** The mesh
  857. *
  858.  
  859. 'SI' GRAPH ;
  860. 'TRACER' ('DOMA' $DOMTOT 'MAILLAGE')
  861. 'TITR' ('CHAINE' 'Maillage: ' ('NBEL' DOMTOT) ' elts');
  862. 'FINSI' ;
  863.  
  864. *
  865. **** Initial conditions
  866. *
  867.  
  868. MOD1 = 'MODELISER' ('DOMA' $DOMTOT 'MAILLAGE') 'THERMIQUE' ;
  869.  
  870. 'SI' (VRAI ET GRAPH) ;
  871.  
  872. RN10 RN20 VN10 VN20 PN10 PN20 TN10 TN20 = 'PRIM' 'DEM' PGAS
  873. AL10 AL20 ARN10 ARN20 AGN10 AGN20 AREN10 AREN20 TN1M TN2M EPS ;
  874.  
  875. CHM_AL10 = 'KCHA' $DOMTOT 'CHAM' AL10 ;
  876. CHM_RN10 = 'KCHA' $DOMTOT 'CHAM' RN10 ;
  877. CHM_VN10 = 'KCHA' $DOMTOT 'CHAM' VN10 ;
  878. CHM_PN10 = 'KCHA' $DOMTOT 'CHAM' PN10 ;
  879. CHM_TN10 = 'KCHA' $DOMTOT 'CHAM' TN10 ;
  880. CHM_AL20 = 'KCHA' $DOMTOT 'CHAM' AL20 ;
  881. CHM_RN20 = 'KCHA' $DOMTOT 'CHAM' RN20 ;
  882. CHM_VN20 = 'KCHA' $DOMTOT 'CHAM' VN20 ;
  883. CHM_PN20 = 'KCHA' $DOMTOT 'CHAM' PN20 ;
  884. CHM_TN20 = 'KCHA' $DOMTOT 'CHAM' TN20 ;
  885.  
  886. 'TRAC' CHM_AL10 MOD1
  887. 'TITR' ('CHAINE' 'alp_1 at t=' 0.0) ;
  888. 'TRAC' CHM_RN10 MOD1
  889. 'TITR' ('CHAINE' 'rho_1 at t=' 0.0) ;
  890. 'TRAC' CHM_VN10 MOD1
  891. 'TITR' ('CHAINE' 'v_1 at t= ' 0.0) ;
  892. 'TRAC' CHM_PN10 MOD1
  893. 'TITR' ('CHAINE' 'p_1 at t= ' 0.0) ;
  894. 'TRAC' CHM_TN10 MOD1
  895. 'TITR' ('CHAINE' 'T_1 at t= ' 0.0) ;
  896. 'TRAC' CHM_AL20 MOD1
  897. 'TITR' ('CHAINE' 'alp_2 at t=' 0.0) ;
  898. 'TRAC' CHM_RN20 MOD1
  899. 'TITR' ('CHAINE' 'rho_2 at t=' 0.0) ;
  900. 'TRAC' CHM_VN20 MOD1
  901. 'TITR' ('CHAINE' 'v_2 at t= ' 0.0) ;
  902. 'TRAC' CHM_PN20 MOD1
  903. 'TITR' ('CHAINE' 'p_2 at t= ' 0.0) ;
  904. 'TRAC' CHM_TN20 MOD1
  905. 'TITR' ('CHAINE' 'T_2 at t= ' 0.0) ;
  906.  
  907. 'FINSI' ;
  908.  
  909. *
  910. **** Results
  911. *
  912.  
  913. RN1 RN2 VN1 VN2 PN1 PN2 TN1 TN2 = 'PRIM' 'DEM' PGAS AL1 AL2
  914. ARN1 ARN2 AGN1 AGN2 AREN1 AREN2 TN1M TN2M EPS ;
  915.  
  916. 'SI' (VRAI ET GRAPH) ;
  917.  
  918. CHM_AL1 = 'KCHA' $DOMTOT 'CHAM' AL1 ;
  919. CHM_RN1 = 'KCHA' $DOMTOT 'CHAM' RN1 ;
  920. CHM_VN1 = 'KCHA' $DOMTOT 'CHAM' VN1 ;
  921. CHM_PN1 = 'KCHA' $DOMTOT 'CHAM' PN1 ;
  922. CHM_TN1 = 'KCHA' $DOMTOT 'CHAM' TN1 ;
  923. CHM_AL2 = 'KCHA' $DOMTOT 'CHAM' AL2 ;
  924. CHM_RN2 = 'KCHA' $DOMTOT 'CHAM' RN2 ;
  925. CHM_VN2 = 'KCHA' $DOMTOT 'CHAM' VN2 ;
  926. CHM_PN2 = 'KCHA' $DOMTOT 'CHAM' PN2 ;
  927. CHM_TN2 = 'KCHA' $DOMTOT 'CHAM' TN2 ;
  928.  
  929. 'TRAC' CHM_AL1 MOD1
  930. 'TITR' ('CHAINE' 'alp_1 at t=' TPS) ;
  931. 'TRAC' CHM_RN1 MOD1
  932. 'TITR' ('CHAINE' 'rho_1 at t=' TPS) ;
  933. 'TRAC' CHM_VN1 MOD1
  934. 'TITR' ('CHAINE' 'v_1 at t= ' TPS) ;
  935. 'TRAC' CHM_PN1 MOD1
  936. 'TITR' ('CHAINE' 'p_1 at t= ' TPS) ;
  937. 'TRAC' CHM_TN1 MOD1
  938. 'TITR' ('CHAINE' 'T_1 at t= ' TPS) ;
  939. 'TRAC' CHM_AL2 MOD1
  940. 'TITR' ('CHAINE' 'alp_2 at t=' TPS) ;
  941. 'TRAC' CHM_RN2 MOD1
  942. 'TITR' ('CHAINE' 'rho_2 at t=' TPS) ;
  943. 'TRAC' CHM_VN2 MOD1
  944. 'TITR' ('CHAINE' 'v_2 at t= ' TPS) ;
  945. 'TRAC' CHM_PN2 MOD1
  946. 'TITR' ('CHAINE' 'p_2 at t= ' TPS) ;
  947. 'TRAC' CHM_TN2 MOD1
  948. 'TITR' ('CHAINE' 'T_2 at t= ' TPS) ;
  949.  
  950. 'FINSI' ;
  951.  
  952. *
  953. *** Evolution Objects
  954. *
  955. * LIGEX
  956. evxal1 = ('EVOL' 'CHPO' al1 LIGEX) 'COULEUR' 'ROUG' ;
  957. evxal2 = ('EVOL' 'CHPO' al2 LIGEX) 'COULEUR' 'BLEU' ;
  958. evxone = (evxal1 '+' evxal2) 'COULEUR' 'VERT' ;
  959.  
  960. evxrn1 = ('EVOL' 'CHPO' rn1 LIGEX) 'COULEUR' 'ROUG' ;
  961. evxrn2 = ('EVOL' 'CHPO' rn2 LIGEX) 'COULEUR' 'BLEU' ;
  962.  
  963. evxpn1 = ('EVOL' 'CHPO' pn1 LIGEX) 'COULEUR' 'ROUG' ;
  964. evxpn2 = ('EVOL' 'CHPO' pn2 LIGEX) 'COULEUR' 'BLEU' ;
  965.  
  966. evxux1 = ('EVOL' 'CHPO' vn1 LIGEX 'UX') 'COULEUR' 'ROUG' ;
  967. evxux2 = ('EVOL' 'CHPO' vn2 LIGEX 'UX') 'COULEUR' 'BLEU' ;
  968.  
  969. evxuy1 = ('EVOL' 'CHPO' vn1 LIGEX 'UY') 'COULEUR' 'ROUG' ;
  970. evxuy2 = ('EVOL' 'CHPO' vn2 LIGEX 'UY') 'COULEUR' 'BLEU' ;
  971.  
  972. evxuz1 = ('EVOL' 'CHPO' vn1 LIGEX 'UZ') 'COULEUR' 'ROUG' ;
  973. evxuz2 = ('EVOL' 'CHPO' vn2 LIGEX 'UZ') 'COULEUR' 'BLEU' ;
  974.  
  975. evxtn1 = ('EVOL' 'CHPO' tn1 LIGEX) 'COULEUR' 'ROUG' ;
  976. evxtn2 = ('EVOL' 'CHPO' tn2 LIGEX) 'COULEUR' 'BLEU' ;
  977. * LIGEY
  978. evyal1 = ('EVOL' 'CHPO' al1 LIGEY) 'COULEUR' 'ROUG' ;
  979. evyal2 = ('EVOL' 'CHPO' al2 LIGEY) 'COULEUR' 'BLEU' ;
  980. evyone = (evyal1 '+' evyal2) 'COULEUR' 'VERT' ;
  981.  
  982. evyrn1 = ('EVOL' 'CHPO' rn1 LIGEY) 'COULEUR' 'ROUG' ;
  983. evyrn2 = ('EVOL' 'CHPO' rn2 LIGEY) 'COULEUR' 'BLEU' ;
  984.  
  985. evypn1 = ('EVOL' 'CHPO' pn1 LIGEY) 'COULEUR' 'ROUG' ;
  986. evypn2 = ('EVOL' 'CHPO' pn2 LIGEY) 'COULEUR' 'BLEU' ;
  987.  
  988. evyux1 = ('EVOL' 'CHPO' vn1 LIGEY 'UX') 'COULEUR' 'ROUG' ;
  989. evyux2 = ('EVOL' 'CHPO' vn2 LIGEY 'UX') 'COULEUR' 'BLEU' ;
  990.  
  991. evyuy1 = ('EVOL' 'CHPO' vn1 LIGEY 'UY') 'COULEUR' 'ROUG' ;
  992. evyuy2 = ('EVOL' 'CHPO' vn2 LIGEY 'UY') 'COULEUR' 'BLEU' ;
  993.  
  994. evyuz1 = ('EVOL' 'CHPO' vn1 LIGEY 'UZ') 'COULEUR' 'ROUG' ;
  995. evyuz2 = ('EVOL' 'CHPO' vn2 LIGEY 'UZ') 'COULEUR' 'BLEU' ;
  996.  
  997. evytn1 = ('EVOL' 'CHPO' tn1 LIGEY) 'COULEUR' 'ROUG' ;
  998. evytn2 = ('EVOL' 'CHPO' tn2 LIGEY) 'COULEUR' 'BLEU' ;
  999. * LIGEZ
  1000. evzal1 = ('EVOL' 'CHPO' al1 LIGEZ) 'COULEUR' 'ROUG' ;
  1001. evzal2 = ('EVOL' 'CHPO' al2 LIGEZ) 'COULEUR' 'BLEU' ;
  1002. evzone = (evzal1 '+' evzal2) 'COULEUR' 'VERT' ;
  1003.  
  1004. evzrn1 = ('EVOL' 'CHPO' rn1 LIGEZ) 'COULEUR' 'ROUG' ;
  1005. evzrn2 = ('EVOL' 'CHPO' rn2 LIGEZ) 'COULEUR' 'BLEU' ;
  1006.  
  1007. evzpn1 = ('EVOL' 'CHPO' pn1 LIGEZ) 'COULEUR' 'ROUG' ;
  1008. evzpn2 = ('EVOL' 'CHPO' pn2 LIGEZ) 'COULEUR' 'BLEU' ;
  1009.  
  1010. evzux1 = ('EVOL' 'CHPO' vn1 LIGEZ 'UX') 'COULEUR' 'ROUG' ;
  1011. evzux2 = ('EVOL' 'CHPO' vn2 LIGEZ 'UX') 'COULEUR' 'BLEU' ;
  1012.  
  1013. evzuy1 = ('EVOL' 'CHPO' vn1 LIGEZ 'UY') 'COULEUR' 'ROUG' ;
  1014. evzuy2 = ('EVOL' 'CHPO' vn2 LIGEZ 'UY') 'COULEUR' 'BLEU' ;
  1015.  
  1016. evzuz1 = ('EVOL' 'CHPO' vn1 LIGEZ 'UZ') 'COULEUR' 'ROUG' ;
  1017. evzuz2 = ('EVOL' 'CHPO' vn2 LIGEZ 'UZ') 'COULEUR' 'BLEU' ;
  1018.  
  1019. evztn1 = ('EVOL' 'CHPO' tn1 LIGEZ) 'COULEUR' 'ROUG' ;
  1020. evztn2 = ('EVOL' 'CHPO' tn2 LIGEZ) 'COULEUR' 'BLEU' ;
  1021. *
  1022. erro1 = (evxtn1 '-' evytn1) ;
  1023. erro2 = (evxtn1 '-' evztn1) ;
  1024. erro1 = 'MAXIMUM' ('ABS' ('EXTR' erro1 'ORDO')) ;
  1025. erro2 = 'MAXIMUM' ('ABS' ('EXTR' erro2 'ORDO')) ;
  1026. erro = 'MAXIMUM' ('PROG' erro1 erro2) ;
  1027. SI (ERRO > 1.0D-8) ;
  1028. 'Phase 1, problem with T' ;
  1029. 'ERREUR' 21 ;
  1030. 'FINSI' ;
  1031. *
  1032. erro1 = (evxtn2 '-' evytn2) ;
  1033. erro2 = (evxtn2 '-' evztn2) ;
  1034. erro1 = 'MAXIMUM' ('ABS' ('EXTR' erro1 'ORDO')) ;
  1035. erro2 = 'MAXIMUM' ('ABS' ('EXTR' erro2 'ORDO')) ;
  1036. erro = 'MAXIMUM' ('PROG' erro1 erro2) ;
  1037. SI (ERRO > 1.0D-8) ;
  1038. 'Phase 2, problem with T' ;
  1039. 'ERREUR' 21 ;
  1040. 'FINSI' ;
  1041. *
  1042. erro1 = (evxpn1 '-' evypn1) ;
  1043. erro2 = (evxpn1 '-' evzpn1) ;
  1044. erro1 = 'MAXIMUM' ('ABS' ('EXTR' erro1 'ORDO')) ;
  1045. erro2 = 'MAXIMUM' ('ABS' ('EXTR' erro2 'ORDO')) ;
  1046. erro = 'MAXIMUM' ('PROG' erro1 erro2) ;
  1047. SI (ERRO > 1.0D-8) ;
  1048. 'Phase 1, problem with P' ;
  1049. 'ERREUR' 21 ;
  1050. 'FINSI' ;
  1051. *
  1052. erro1 = (evxpn2 '-' evypn2) ;
  1053. erro2 = (evxpn2 '-' evzpn2) ;
  1054. erro1 = 'MAXIMUM' ('ABS' ('EXTR' erro1 'ORDO')) ;
  1055. erro2 = 'MAXIMUM' ('ABS' ('EXTR' erro2 'ORDO')) ;
  1056. erro = 'MAXIMUM' ('PROG' erro1 erro2) ;
  1057. SI (ERRO > 1.0D-8) ;
  1058. 'Phase 2, problem with P' ;
  1059. 'ERREUR' 21 ;
  1060. 'FINSI' ;
  1061. *
  1062. *
  1063. erro1 = (evxux1 '-' evyuy1) ;
  1064. erro2 = (evxux1 '-' evzuz1) ;
  1065. erro1 = 'MAXIMUM' ('ABS' ('EXTR' erro1 'ORDO')) ;
  1066. erro2 = 'MAXIMUM' ('ABS' ('EXTR' erro2 'ORDO')) ;
  1067. erro = 'MAXIMUM' ('PROG' erro1 erro2) ;
  1068. SI (ERRO > 1.0D-8) ;
  1069. 'Phase 1, problem with un' ;
  1070. 'ERREUR' 21 ;
  1071. 'FINSI' ;
  1072. *
  1073. erro1 = (evxux2 '-' evyuy2) ;
  1074. erro2 = (evxux2 '-' evzuz2) ;
  1075. erro1 = 'MAXIMUM' ('ABS' ('EXTR' erro1 'ORDO')) ;
  1076. erro2 = 'MAXIMUM' ('ABS' ('EXTR' erro2 'ORDO')) ;
  1077. erro = 'MAXIMUM' ('PROG' erro1 erro2) ;
  1078. SI (ERRO > 1.0D-8) ;
  1079. 'Phase 2, problem with un' ;
  1080. 'ERREUR' 21 ;
  1081. 'FINSI' ;
  1082. *
  1083. *
  1084. erro1 = (evxuy1 '-' evyuz1) ;
  1085. erro2 = (evxuy1 '-' evzux1) ;
  1086. erro1 = 'MAXIMUM' ('ABS' ('EXTR' erro1 'ORDO')) ;
  1087. erro2 = 'MAXIMUM' ('ABS' ('EXTR' erro2 'ORDO')) ;
  1088. erro = 'MAXIMUM' ('PROG' erro1 erro2) ;
  1089. SI (ERRO > 1.0D-8) ;
  1090. 'Phase 1, problem with un' ;
  1091. 'ERREUR' 21 ;
  1092. 'FINSI' ;
  1093. *
  1094. erro1 = (evxuy2 '-' evyuz2) ;
  1095. erro2 = (evxuy2 '-' evzux2) ;
  1096. erro1 = 'MAXIMUM' ('ABS' ('EXTR' erro1 'ORDO')) ;
  1097. erro2 = 'MAXIMUM' ('ABS' ('EXTR' erro2 'ORDO')) ;
  1098. erro = 'MAXIMUM' ('PROG' erro1 erro2) ;
  1099. SI (ERRO > 1.0D-8) ;
  1100. 'Phase 2, problem with un' ;
  1101. 'ERREUR' 21 ;
  1102. 'FINSI' ;
  1103. *
  1104. 'FIN' ;
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  

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