Télécharger execrxt.procedur

Retour à la liste

Numérotation des lignes :

  1. * EXECRXT PROCEDUR FD144363 23/12/11 21:15:05 11807
  2. 'DEBP' EXECRXT nbit*'ENTIER ' rxt*'TABLE ' ;
  3. *
  4. * E/ nbit : Nombre de pas de temps
  5. * E/S rxt : Interface avec l'utilisateur
  6. *
  7. WWW = 'CHAI' 'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW';
  8. WWW = 'CHAI' WWW 'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW' ;
  9.  
  10. 'MESS' ' ' ;
  11. 'MESS' WWW ;
  12. 'MESS' 'DEBUT PROCEDURE EXECRXT : CHOIX DES PRINCIPAUX PARAMETRES';
  13. 'MESS' WWW ;
  14.  
  15. *
  16. * Détection 2D/3D
  17. idim = 'VALE' 'DIME' ;
  18. 'SI' ('EGA' idim 2) ;
  19. DIM3D = FAUX ;
  20. 'SINO' ;
  21. 'SI' ('EGA' idim 3) ;
  22. DIM3D = VRAI ;
  23. 'SINO' ;
  24. 'ERRE' 219 ;
  25. 'QUIT' EXECRXT ;
  26. 'FINS' ;
  27. 'FINS' ;
  28.  
  29. *
  30. * Gestion des indices de rxt
  31. *
  32. * listentr = table dont les indices sont ceux autorisés dans rxt
  33. * (est complété durant le décodage par les indices optionnels lus)
  34. * listand = liste des options surchargées par l'utilisateur
  35. * (correspond aux valeurs par défaut modifiées par l'utilisateur)
  36. *
  37. *FD Ne sert à rien ? TPAROIS non pris en compte ?
  38. * listchp = liste des indices pouvant contenir un CHPO (FLOTTANT sinon)
  39. *FD
  40. listentr = 'TABL' ;
  41. listand = 'MOTS' ;
  42. listchp = 'MOTS' ;
  43.  
  44. listentr . 'VERSION' = '' ;
  45. listentr . 'vtf' = '' ;
  46. listentr . 'TF0' = '' ;
  47. listentr . 'PT0' = '' ;
  48. * Relatif à la thermiqe des parois
  49. listentr . 'THERMP' = '' ;
  50. listentr . 'PAROIS' = '' ;
  51. listentr . 'THERCO' = '' ;
  52. listentr . 'vtp' = '' ;
  53. listentr . 'ROCP' = '' ;
  54. listentr . 'LAMBDA' = '' ;
  55. listentr . 'Tp0' = '' ;
  56. listentr . 'ECHAN' = '' ;
  57. listentr . 'ECHEXT' = '' ;
  58. listentr . 'parext' = '' ;
  59. listentr . 'HEXT' = '' ;
  60. listentr . 'TPEXT' = '' ;
  61. listentr . 'TIMP' = '' ;
  62. listentr . 'ECHANP' = '' ;
  63. * Relatif aux E/S fluide
  64. listentr . 'XFIMP' = '' ;
  65. listentr . 'Sorties' = '' ;
  66. listentr . 'Breches' = '' ;
  67. listentr . 'axe' = '' ;
  68. listentr . 'epsi' = '' ;
  69. listentr . 'pi' = '' ;
  70. * Table utilisée pour la définition de recombineurs
  71. listentr . 'RECOMB' = '' ;
  72. * Table de travail ajoutées par la procédure
  73. listentr . 'REINIT' = '' ;
  74. listentr . 'TIC' = '' ;
  75. listentr . 'GEO' = '' ;
  76. listentr . 'TBT' = '' ;
  77. * Paramètres numériques / algorithmes
  78. listentr . 'DISCR' = '' ;
  79. listentr . 'KPRE' = '' ;
  80. listentr . 'MAXELPRE' = '' ;
  81. listentr . 'STAB' = '' ;
  82. listentr . 'ALGO' = '' ;
  83. * Paramètres de fonctionnement
  84. listentr . 'CATHARE2' = '' ;
  85. listentr . 'DT0' = '' ;
  86. listentr . 'PERSO' = '' ;
  87. listentr . 'TABPERSO' = '' ;
  88. listentr . 'GRAPH' = '' ;
  89. listentr . 'RENU' = '' ;
  90. listentr . 'TYPINV' = '' ;
  91. listentr . 'IMPR' = '' ;
  92. listentr . 'FRPREC' = '' ;
  93. listentr . 'PPDT' = '' ;
  94. listentr . 'RESIDU' = '' ;
  95. listentr . 'NTIT' = '' ;
  96. listentr . 'TCPT' = '' ;
  97. listentr . 'TKPR' = '' ;
  98. listentr . 'TRESOU' = '' ;
  99. listentr . 'IMPARA' = '' ;
  100. listentr . 'TRTF' = '' ;
  101. listentr . 'TRrvap' = '' ;
  102. listentr . 'TRrhe' = '' ;
  103. listentr . 'TRrh2' = '' ;
  104. listentr . 'TRro2' = '' ;
  105. listentr . 'TRrn2' = '' ;
  106. listentr . 'TRrco2' = '' ;
  107. listentr . 'TRrair' = '' ;
  108. listentr . 'TRrco' = '' ;
  109. * Constituant (air par défaut ) vapeur et incondensables
  110. listentr . 'LOI-ETAT' = '' ;
  111. listentr . 'VAPEUR' = '' ;
  112. listentr . 'YBRO' = '' ;
  113. listentr . 'V1alfa' = '' ;
  114. listentr . 'TAUXcm' = '' ;
  115. listentr . 'HE' = '' ;
  116. listentr . 'H2' = '' ;
  117. listentr . 'O2' = '' ;
  118. listentr . 'N2' = '' ;
  119. listentr . 'CO' = '' ;
  120. listentr . 'CO2' = '' ;
  121. listentr . 'AIR' = '' ;
  122. * Modèles de turbulence
  123. listentr . 'MODTURB' = '' ;
  124. listentr . 'FPAROI' = '' ;
  125. * Modèle de condensation en masse
  126. listentr.'MODCOND' = '' ;
  127.  
  128. *
  129. * On (re)crée les tables si l'utilisateur le demande où si elles
  130. * n'existent pas (premier passage) -> TPREPA=VRAI
  131. 'SI' ('EXIS' rxt 'REINIT') ;
  132. vertytab rxt 'REINIT' 'LOGIQUE' ;
  133. REINIT = rxt . 'REINIT' ;
  134. 'SINO' ;
  135. REINIT = 'NON' ('EXIS' rxt 'TBT') ;
  136. 'FINS' ;
  137.  
  138. 'SI' (('EXIS' rxt 'TBT') 'ET' ('NON' REINIT)) ;
  139. vertytab rxt 'TBT' 'TABLE ' ;
  140. vertytab rxt 'GEO' 'TABLE ' ;
  141. TPREPA = FAUX ;
  142. TBT = rxt . 'TBT' ;
  143. GEO = rxt . 'GEO' ;
  144. 'SINO' ;
  145. TPREPA = VRAI ;
  146. TBT = 'TABLE' ;
  147. GEO = 'TABLE' ;
  148. rxt . 'GEO' = GEO ;
  149. 'FINS' ;
  150.  
  151. *
  152. * epsi = tolérance pour les maillages (ELIM)
  153. GEO . 'epsi' = 1.e-4 ;
  154. 'SI' ('EXIS' rxt 'epsi') ;
  155. vertytab rxt 'epsi' 'FLOTTANT' ;
  156. GEO . 'epsi' = rxt . 'epsi' ;
  157. 'FINS' ;
  158.  
  159. *
  160. * ndl = nbre de temps connus
  161. * Tps = dernier temps connu (début du pas de temps)
  162. 'SI' ('EXIS' rxt 'TIC') ;
  163. vertytab rxt 'TIC' 'TABLE ' ;
  164. vertytab (rxt . 'TIC') 'LTPS' 'LISTREEL' ;
  165. tic = rxt . 'TIC' ;
  166. 'SINO' ;
  167. tic = 'TABLE' 'INCO' ;
  168. rxt . 'TIC' = tic ;
  169. tic . 'LTPS' = 'PROG' 0.0 ;
  170. 'FINS' ;
  171. ndl = 'DIME' tic . 'LTPS' ;
  172. Tps = 'EXTR' tic . 'LTPS' ndl ;
  173. 'MESS' 'Le calcul demarre a partir du temps' ' ' Tps ;
  174.  
  175. *
  176. * Liste des Gaz pris en compte
  177. LINCOND = 'MOTS' 'N2' 'H2' 'HE' 'O2' 'CO' 'CO2' 'VAPE' ;
  178.  
  179. *
  180. *FD A commenter
  181. 'SI' ('NON' ('EXIS' tic 'Lg0D')) ;
  182. tic . 'Lg0D' = 'MOTS' ;
  183. tic . 'Li0D' = 'PROG' ;
  184. 'FINS' ;
  185. *
  186. *-------------------------------------------------------------
  187. * Les données de l'utilisateur (table rxt) sont décodées,
  188. * vérifiées et dupliquées (tables tbt et geo)
  189. *-------------------------------------------------------------
  190. *
  191. * Conditions initiales
  192. vertytab rxt 'TF0' 'FLOTTANT' ;
  193. vertytab rxt 'PT0' 'FLOTTANT' ;
  194.  
  195. *
  196. * Maillage fluide
  197. vertytab rxt 'vtf' 'MAILLAGE' ;
  198. vtf = rxt . 'vtf' ;
  199. vertytab 0 GEO vtf ;
  200. GEO . 'Mvtf' = 'CHAN' 'QUAF' rxt . 'vtf' ;
  201.  
  202. *
  203. * DT0 = pas de temps
  204. vertytab rxt 'DT0' 'FLOTTANT' ;
  205. tic . 'DT' = rxt . 'DT0' ;
  206.  
  207. *
  208. * Couplage éventuel avec CATHARE2
  209. TBT . 'CATHARE2' = FAUX ;
  210. 'SI' ('EXIS' rxt 'CATHARE2') ;
  211. vertytab rxt 'CATHARE2' 'LOGIQUE' ;
  212. TBT . 'CATHARE2' = rxt . 'CATHARE2' ;
  213. 'FINS' ;
  214.  
  215. *
  216. * On interdit VERSION = V1
  217. TBT . 'VERSION' = 0 ;
  218. 'SI' ('EXIS' rxt 'VERSION') ;
  219. lxt = 'MOTS' 'V0' 'V1' ;
  220. vertytab lxt (rxt . 'VERSION') 'MOT' ;
  221. tbvs = 'TABL' ;
  222. tbvs . 'V0' = 0 ;
  223. tbvs . 'V1' = 1 ;
  224. TBT . 'VERSION' = tbvs . (rxt . 'VERSION') ;
  225. 'SI' ('EGA' TBT . 'VERSION' 1) ;
  226. 'MESS' ;
  227. 'MESS' '*********************************************************' ;
  228. 'MESS' ' ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ' ;
  229. 'MESS' ' ' ;
  230. 'MESS' ' ' ;
  231. 'MESS' ' Pas de VERSION V1 pour l instant ' ;
  232. 'MESS' ' ' ;
  233. 'MESS' '*********************************************************' ;
  234. 'ERRE' 19 ;
  235. 'QUIT' EXECRXT ;
  236. 'FINS' ;
  237. 'FINS' ;
  238.  
  239. 'SI' ('EGA' TBT . 'VERSION' 1) ;
  240. TBT . 'YBRO' = 1.e-4 ;
  241. TBT . 'V1alfa' = 0.8 ;
  242. TBT . 'TAUXcm' = 1. ;
  243. 'SI' ('EXIS' rxt 'YBRO') ;
  244. vertytab rxt 'YBRO' 'FLOTTANT' ;
  245. TBT . 'YBRO' = rxt . 'YBRO' ;
  246. 'FINS' ;
  247. 'SI' ('EXIS' rxt 'V1alfa') ;
  248. vertytab rxt 'V1alfa' 'FLOTTANT' ;
  249. TBT . 'V1alfa' = rxt . 'V1alfa' ;
  250. 'FINS' ;
  251. 'SI' ('EXIS' rxt 'TAUXcm') ;
  252. vertytab rxt 'TAUXcm' 'FLOTTANT' ;
  253. TBT . 'TAUXcm' = rxt . 'TAUXcm' ;
  254. 'FINS' ;
  255. 'FINS' ;
  256.  
  257. *
  258. * On interdit LOI-ETAT = GR
  259. TBT . 'LOI-ETAT' = 'GP' ;
  260. 'SI' ('EXIS' rxt 'LOI-ETAT') ;
  261. lxt = 'MOTS' 'GP' 'GR' ;
  262. vertytab lxt (rxt . 'LOI-ETAT') 'MOT' ;
  263. TBT . 'LOI-ETAT' = rxt . 'LOI-ETAT' ;
  264. 'SI' ('EGA' TBT . 'LOI-ETAT' 'GR') ;
  265. 'MESS' ;
  266. 'MESS' '*********************************************************' ;
  267. 'MESS' ' ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ' ;
  268. 'MESS' ' ' ;
  269. 'MESS' ' ' ;
  270. 'MESS' ' Pas de loi d etat gaz reel pour l instant ' ;
  271. 'MESS' ' ' ;
  272. 'MESS' '*********************************************************' ;
  273. 'ERRE' 19 ;
  274. 'QUIT' EXECRXT ;
  275. 'FINS' ;
  276. 'FINS' ;
  277.  
  278. *
  279. * GRAPH = Logique permettant les dessins
  280. TBT . 'GRAPH' = FAUX ;
  281. 'SI' ('EXIS' rxt 'GRAPH') ;
  282. vertytab rxt 'GRAPH' 'LOGIQUE ' ;
  283. TBT . 'GRAPH' = rxt . 'GRAPH' ;
  284. 'FINS' ;
  285.  
  286. *
  287. * Niveau d'impression = 0 pour les supprimer et 2 pour le mode DEBUG
  288. TBT . 'nimpr' = 0 ;
  289. TBT . 'IMPR' = 2 ;
  290. 'SI' ('EXIS' rxt 'IMPR') ;
  291. vertytab rxt 'IMPR' 'ENTIER' ;
  292. TBT . 'IMPR' = rxt . 'IMPR' ;
  293. 'FINS' ;
  294.  
  295. *
  296. * STAB = coefficient de Stabilisation pour les MACRO
  297. TBT . 'STAB' = 1. ;
  298. 'SI' ('EXIS' rxt 'STAB') ;
  299. vertytab rxt 'STAB' 'FLOTTANT' ;
  300. TBT . 'STAB' = rxt . 'STAB' ;
  301. listand = listand 'ET' ('MOTS' 'STAB') ;
  302. 'FINS' ;
  303.  
  304. *
  305. * FRPREC = fréquence de recalcul du préconditionnement
  306. 'SI' ('EXIS' rxt 'FRPREC') ;
  307. vertytab rxt 'FRPREC' 'ENTIER' ;
  308. TBT . 'FRPREC' = rxt . 'FRPREC' ;
  309. 'FINS' ;
  310.  
  311. *
  312. * DETMAT = vrai si on détruit les matrices à la fin du calcul
  313. TBT . 'DETMAT' = VRAI ;
  314. 'SI' ('EXIS ' rxt 'DETMAT') ;
  315. vertytab rxt 'DETMAT' 'LOGIQUE' ;
  316. listentr . 'DETMAT' = '' ;
  317. TBT . 'DETMAT' = rxt . 'DETMAT' ;
  318. 'FINS' ;
  319.  
  320. *
  321. * CORTEMP = vrai si on controle le bilan d'énergie
  322. TBT . 'CORTEMP' = vrai ;
  323. 'SI' ('EXIS' rxt 'CORTEMP') ;
  324. vertytab rxt 'CORTEMP' 'LOGIQUE' ;
  325. listentr . 'CORTEMP' = '' ;
  326. TBT . 'CORTEMP' = rxt . 'CORTEMP' ;
  327. listand = listand 'ET' (MOTS 'CORTEMP') ;
  328. 'FINS' ;
  329.  
  330. *
  331. * CORLIM = vrai si on controle le bilan de masse en incorporant les points de la frontière où sont
  332. * définies les conditions aux limites (sinon ces points sont exclus)
  333. TBT . 'CORLIM' = vrai ;
  334. 'SI' ('EXIS' rxt 'CORLIM') ;
  335. vertytab rxt 'CORLIM' 'LOGIQUE' ;
  336. listentr . 'CORLIM' = '' ;
  337. TBT . 'CORLIM' = rxt . 'CORLIM' ;
  338. listand = listand 'ET' (MOTS 'CORLIM') ;
  339. 'FINS' ;
  340. corlim = tbt . 'CORLIM' ;
  341.  
  342. *
  343. * RENU = Type de renumérotation pour les méthodes d'inversion
  344. TBT . 'RENU' = 'SLOA' ;
  345. 'SI' ('EXIS' rxt 'RENU') ;
  346. vertytab rxt 'RENU' 'MOT' ;
  347. lxt = 'MOTS' 'RIEN' 'SLOA' 'GIBR' 'GIBA' ;
  348. vertytab lxt (rxt . 'RENU') 'MOT' ;
  349. TBT . 'RENU' = rxt . 'RENU' ;
  350. listand = listand 'ET' ('MOTS' 'RENU') ;
  351. 'FINS' ;
  352.  
  353. *
  354. * TYPINV = Type d'inversion et paramètres pour les méthodes itératives
  355. * (cf notice KRES)
  356. TBT . 'TYPINV' = 3 ;
  357. 'SI' ('EXIS' rxt 'TYPINV') ;
  358. vertytab rxt 'TYPINV' 'ENTIER' ;
  359. TBT . 'TYPINV' = rxt . 'TYPINV' ;
  360. listand = listand 'ET' ('MOTS' 'TYPINV') ;
  361. 'FINS' ;
  362.  
  363. TBT . 'RESIDU' = 1.E-20 ;
  364. 'SI' ('EXIS' rxt 'RESIDU') ;
  365. vertytab rxt 'RESIDU' 'FLOTTANT' ;
  366. TBT . 'RESIDU' = rxt . 'RESIDU' ;
  367. listand = listand 'ET' (MOTS 'RESIDU') ;
  368. 'FINS' ;
  369.  
  370. TBT . 'NTIT' = 800 ;
  371. 'SI' ('EXIS' rxt 'NTIT') ;
  372. vertytab rxt 'NTIT' 'ENTIER' ;
  373. TBT .'NTIT' = rxt . 'NTIT' ;
  374. listand = listand 'ET' ('MOTS' 'NTIT') ;
  375. 'FINS' ;
  376.  
  377. *
  378. * TRESOU = vrai si RESO est le solveur linéaire
  379. TBT . 'TRESOU' = FAUX ;
  380. 'SI' ('EXIS' rxt 'TRESOU') ;
  381. vertytab rxt 'TRESOU' 'LOGIQUE' ;
  382. TBT . 'TRESOU' = rxt . 'TRESOU' ;
  383. listand = listand 'ET' ('MOTS' 'TRESOU') ;
  384. 'FINS' ;
  385.  
  386. *
  387. * TCPT = vrai si les matrices élémentaires sont calclées en //
  388. TBT . 'TCPT' = FAUX ;
  389. 'SI' ('EXIS' rxt 'TCPT') ;
  390. vertytab rxt 'TCPT' 'LOGIQUE' ;
  391. TBT . 'TCPT' = rxt . 'TCPT' ;
  392. listand = listand 'ET' ('MOTS' 'TCPT') ;
  393. 'FINS' ;
  394.  
  395. *
  396. * TKPR = vrai si la résolution des champs scalaires est en //
  397. * Le // est effectif si au moins un champ est // (TRTOUT = vrai)
  398. TBT . 'TKPR' = FAUX ;
  399. 'SI' ('EXIS' rxt 'TKPR') ;
  400. vertytab rxt 'TKPR' 'LOGIQUE' ;
  401. TBT . 'TKPR' = rxt . 'TKPR' ;
  402. listand = listand 'ET' ('MOTS' 'TKPR') ;
  403. 'FINS' ;
  404.  
  405. TBT . 'IMPARA' = FAUX ;
  406. 'SI' ('EXIS' rxt 'IMPARA') ;
  407. vertytab rxt 'IMPARA' 'LOGIQUE' ;
  408. TBT . 'IMPARA' = rxt . 'IMPARA' ;
  409. listand = listand 'ET' (MOTS 'IMPARA') ;
  410. 'FINS' ;
  411.  
  412. TBT . 'TRTF' = TBT . 'TKPR' ;
  413. 'SI' ('EXIS' rxt 'TRTF') ;
  414. vertytab rxt 'TRTF' 'LOGIQUE' ;
  415. TBT . 'TRTF' = rxt . 'TRTF' ;
  416. listand = listand 'ET' (MOTS 'TRTF') ;
  417. 'FINS' ;
  418.  
  419. TBT . 'TRrvap' = TBT . 'TKPR' ;
  420. 'SI' ('EXIS' rxt 'TRrvap') ;
  421. vertytab rxt 'TRrvap' 'LOGIQUE' ;
  422. TBT . 'TRrvap' = rxt . 'TRrvap' ;
  423. listand = listand 'ET' ('MOTS' 'TRrvap') ;
  424. 'FINS' ;
  425.  
  426. TBT . 'TRrhe' = TBT . 'TKPR' ;
  427. 'SI' ('EXIS' rxt 'TRrhe') ;
  428. vertytab rxt 'TRrhe' 'LOGIQUE' ;
  429. TBT . 'TRrhe' = rxt . 'TRrhe' ;
  430. listand = listand 'ET' ('MOTS' 'TRrhe') ;
  431. 'FINS' ;
  432.  
  433. TBT . 'TRrh2' = TBT . 'TKPR' ;
  434. 'SI' ('EXIS' rxt 'TRrh2') ;
  435. vertytab rxt 'TRrh2' 'LOGIQUE' ;
  436. TBT . 'TRrh2' = rxt . 'TRrh2' ;
  437. listand = listand 'ET' ('MOTS' 'TRrh2') ;
  438. 'FINS' ;
  439.  
  440. TBT . 'TRro2' = TBT . 'TKPR' ;
  441. 'SI' ('EXIS' rxt 'TRro2') ;
  442. vertytab rxt 'TRro2' 'LOGIQUE' ;
  443. TBT . 'TRro2' = rxt . 'TRro2' ;
  444. listand = listand 'ET' ('MOTS' 'TRro2') ;
  445. 'FINS' ;
  446.  
  447. TBT . 'TRrn2' = TBT . 'TKPR' ;
  448. 'SI' ('EXIS' rxt 'TRrn2') ;
  449. vertytab rxt 'TRrn2' 'LOGIQUE' ;
  450. TBT . 'TRrn2' = rxt . 'TRrn2' ;
  451. listand = listand 'ET' ('MOTS' 'TRrn2') ;
  452. 'FINS' ;
  453.  
  454. TBT . 'TRrco' = TBT . 'TKPR' ;
  455. 'SI' ('EXIS' rxt 'TRrco') ;
  456. vertytab rxt 'TRrco' 'LOGIQUE' ;
  457. TBT . 'TRrco' = rxt . 'TRrco' ;
  458. listand = listand 'ET' (MOTS 'TRrco') ;
  459. 'FINS' ;
  460.  
  461. TBT . 'TRrco2' = TBT . 'TKPR' ;
  462. 'SI' ('EXIS' rxt 'TRrco2') ;
  463. vertytab rxt 'TRrco2' 'LOGIQUE' ;
  464. TBT . 'TRrco2' = rxt . 'TRrco2' ;
  465. listand = listand 'ET' ('MOTS' 'TRrco2') ;
  466. 'FINS' ;
  467.  
  468. TBT . 'TRrair' = TBT . 'TKPR' ;
  469. 'SI' ('EXIS' rxt 'TRrair') ;
  470. vertytab rxt 'TRrair' 'LOGIQUE' ;
  471. TBT . 'TRrair' = rxt . 'TRrair' ;
  472. listand = listand 'ET' ('MOTS' 'TRrair') ;
  473. 'FINS' ;
  474.  
  475. TBT . 'TRTOUT' =
  476. TBT . 'TRTF' 'OU' TBT . 'TRrvap' 'OU' TBT . 'TRrhe' 'OU'
  477. TBT . 'TRrh2' 'OU' TBT . 'TRro2' 'OU' TBT . 'TRrn2' 'OU'
  478. TBT . 'TRrco' 'OU' TBT . 'TRrco2' 'OU' TBT . 'TRrair' ;
  479.  
  480. *
  481. * PPDT formulation conservative ou non conservative
  482. * (désignée petits/grands pas de temps)
  483. TBT . 'PPDT' = FAUX ;
  484. 'SI' ('EXIS' rxt 'PPDT') ;
  485. vertytab rxt 'PPDT' 'LOGIQUE' ;
  486. TBT . 'PPDT' = rxt . 'PPDT' ;
  487. listand = listand 'ET' ('MOTS' 'PPDT') ;
  488. 'FINS' ;
  489. 'SI' TBT . 'PPDT' ;
  490. TBT . 'FCONS' = 'CONS2' ;
  491. 'SINO' ;
  492. TBT . 'FCONS' = 'NOCONS' ;
  493. 'FINS' ;
  494.  
  495. *
  496. * ALGO = choix de l'algorithme implicite / explicite
  497. * (IMPL = semi implicite / EFM1 = semi explicite)
  498. TBT . 'ALGO' = 'IMPL' ;
  499. TBT . 'SPGNU' = 'CHAI' 'SOMMET' ;
  500. TBT . 'FEF' = 'EF' ;
  501. TBT . 'FIMPL' = 'IMPL' ;
  502. 'SI' ('EXIS' rxt 'ALGO') ;
  503. vertytab rxt 'ALGO' 'MOT' ;
  504. lxt = 'MOTS' 'IMPL' 'EFM1' ;
  505. vertytab lxt (rxt . 'ALGO') 'MOT' ;
  506. TBT . 'ALGO' = rxt . 'ALGO' ;
  507. 'SI' ('EGA' TBT . 'ALGO' 'EFM1') ;
  508. TBT . 'SPGNU' = 'CHAI' 'CENTRE' ;
  509. TBT . 'FEF' = 'EFM1' ;
  510. TBT . 'FIMPL' = 'EXPL' ;
  511. 'FINS' ;
  512. listand = listand 'ET' ('MOTS' 'ALGO') ;
  513. 'FINS' ;
  514. 'MESS' '==> Algorithme choisi' ' ' TBT . 'ALGO' ;
  515.  
  516. *
  517. * DISCR = Eléments pour la vitessse et les scalaires autres que P
  518. * (LINE = linéaires / MACRO (par DEFAUT) / QUAF = quadratiques fluide)
  519. TBT . 'discr' = 'MACRO' ;
  520. 'SI' ('EXIS' rxt 'DISCR') ;
  521. vertytab rxt 'DISCR' 'MOT' ;
  522. lxt = 'MOTS' 'MACRO' 'LINE' 'QUAF' ;
  523. vertytab lxt (rxt . 'DISCR') 'MOT' ;
  524. TBT . 'discr' = rxt . 'DISCR' ;
  525. listand = listand 'ET' ('MOTS' 'DISCR') ;
  526. 'FINS' ;
  527. 'MESS' '==> Discretisation choisie pour la vitesse' ' ' TBT . 'discr' ;
  528. TBT . 'discrH' = TBT . 'discr' ;
  529. 'SI' (('EGA' TBT . 'discr' 'QUAF') 'ET' DIM3D) ;
  530. TBT . 'discrH' = 'MACRO' ;
  531. 'FINS' ;
  532.  
  533. *
  534. * KPRE = Eléments pour la pression
  535. TBT . 'KPRE' = 'CENTRE' ;
  536. 'SI' ('EXIS' rxt 'KPRE') ;
  537. vertytab rxt 'KPRE' 'MOT' ;
  538. lxt = 'TABL' ;
  539. lxt . 'CENTRE' = ' ' ;
  540. lxt . 'CENTREP1' = ' ' ;
  541. lxt . 'MSOMMET' = ' ' ;
  542. vertytab lxt (rxt . 'KPRE') 'MOT' ;
  543. TBT . 'KPRE' = rxt . 'KPRE' ;
  544. listand = listand 'ET' ('MOTS' 'KPRE') ;
  545. 'FINS' ;
  546. 'MESS' '==> Discretisation choisie pour la pression' ' ' TBT . 'KPRE' ;
  547.  
  548. *
  549. * MAXELPRE = nombre maximum d'éléments pour lequel on utilise
  550. * une méthode directe (Cholesky) pour inverser la matrice.
  551. TBT . 'MAXELPRE' = 150000 ;
  552. 'SI' ('EXIS' rxt 'MAXELPRE') ;
  553. vertytab rxt 'MAXELPRE' 'ENTIER' ;
  554. TBT . 'MAXELPRE' = rxt . 'MAXELPRE' ;
  555. listand = listand 'ET' ('MOTS' 'MAXELPRE') ;
  556. 'FINS' ;
  557. 'MESS' '==> Resolution directe pour la pression jusqu à' ' '
  558. TBT . 'MAXELPRE' ' ' 'elements' ;
  559.  
  560. *
  561. * Definition des grandeurs Physiques :
  562. * Rabs = constante universel des GP (J/mol/K)
  563. * Rgi = constante des gaz (J/kg/K)
  564. * Mki = masse molaire (kg/mol)
  565. *
  566. * Cpvap/Cvvap = Chaleur specifique à pression/volume constant supposé
  567. * constant durant le calcul + hypothèse vapeur gaz parfait (J/kg/K)
  568. * Lv = Chaleur Latente supposée constante (J/kg)
  569. Rabs = 6.022*1.38066 ;
  570. TBT . 'Rabs' = Rabs ;
  571. TBT . 'Rgh2' = Rabs '/' 2.E-3 ; TBT . 'Mkh2' = 2.016E-3 ;
  572. TBT . 'Rghe' = Rabs '/' 4.E-3 ; TBT . 'Mkhe' = 4.003E-3 ;
  573. TBT . 'Rgo2' = Rabs '/' 3.2E-2 ; TBT . 'Mko2' = 32.00E-3 ;
  574. TBT . 'Rgn2' = Rabs '/' 2.8E-2 ; TBT . 'Mkn2' = 28.02E-3 ;
  575. TBT . 'Rgco2' = Rabs '/' 4.4E-2 ; TBT . 'Mkco2' = 44.01E-3 ;
  576. TBT . 'Rgco' = Rabs '/' 2.8E-2 ; TBT . 'Mkco' = 28.01E-3 ;
  577. TBT . 'Rgar' = Rabs '/' 4.E-2 ; TBT . 'Mkar' = 39.94E-3 ;
  578. TBT . 'Rgch4' = Rabs '/' 16.E-3 ; TBT . 'Mkch4' = 16.04E-3 ;
  579.  
  580. TBT . 'Rgvap' = Rabs '/' 1.8E-2 ; TBT . 'Mkvap' = 18.02E-3 ;
  581.  
  582. *Rabs = 6.02214076 '*' 1.380649 ;
  583. *TBT . 'Mkh2' = 2.D0 * 0.00100794D0 ;
  584. *TBT . 'Rgh2' = Rabs '/' TBT . 'Mkh2' ;
  585. *TBT . 'Mkhe' = 0.004002602D0 ;
  586. *TBT . 'Rghe' = Rabs '/' TBT . 'Mkhe' ;
  587. *TBT . 'Mko2' = 2.D0 * 0.0159994D0 ;
  588. *TBT . 'Rgo2' = Rabs '/' TBT . 'Mko2' ;
  589. *TBT . 'Mkn2' = 2.D0 * 0.0140067D0 ;
  590. *TBT . 'Rgn2' = Rabs '/' TBT . 'Mkn2' ;
  591. *TBT . 'Mkco2' = 2.D0 * 0.0159994D0 + 0.0120107D0 ;
  592. *TBT . 'Rgco2' = Rabs '/' TBT . 'Mkco2' ;
  593. *TBT . 'Mkco' = 0.0120107D0 + 0.0159994D0 ;
  594. *TBT . 'Rgco' = Rabs '/' TBT . 'Mkco' ;
  595. *TBT . 'Mkvap' = 2.D0 * 0.00100794D0 + 0.0159994D0 ;
  596. *TBT . 'Rgvap' = Rabs '/' TBT . 'Mkvap' ;
  597. *
  598. *TBT . 'Mkar' = 39.94E-3 ; TBT . 'Rgar' = Rabs '/' TBT . 'Mkar' ;
  599. *TBT . 'Mkch4' = 16.04E-3 ; TBT . 'Rgch4' = Rabs '/' TBT . 'Mkch4' ;
  600.  
  601. 'SI' ('EXIS' rxt 'Cpvap') ;
  602. vertytab rxt 'Cpvap' 'FLOTTANT' ;
  603. Cpvap = rxt . 'Cpvap' ;
  604. 'SINO' ;
  605. Cpvap = 1700. ;
  606. 'MESS' '==> Cpvap mis par defaut a 1700 J/kg/K' ;
  607. 'FINS' ;
  608. TBT . 'Cpvap' = Cpvap ;
  609. TBT . 'Cvvap' = TBT . 'Cpvap' - TBT . 'Rgvap' ;
  610.  
  611. 'SI' ('EXIS' rxt 'Lv') ;
  612. vertytab rxt 'Lv' 'FLOTTANT' ;
  613. Lv = rxt . 'Lv' ;
  614. 'SINO' ;
  615. Lv = 2.3E6 ;
  616. 'MESS' '==> Chaleur latente Lv mise par defaut a 2.3E6 J/kg' ;
  617. 'FINS' ;
  618. TBT . 'Lv' = Lv ;
  619.  
  620. TBT . 'Rgair' = 287.1 ; TBT . 'Mkair' = 28.97E-3 ;
  621. TBT . 'lamair' = 2.580e-2 ;
  622.  
  623. *
  624. * Coefficients pour les tables de l'eau
  625. TBT . 'B0' = -4512.70756 ; TBT . 'B1' = 4245585.9 ;
  626. TBT . 'B2' = -1584624342.;
  627.  
  628. *
  629. * DB = coefficient de diffusion Brownienne
  630. 'SI' ('EXIS' rxt 'db') ;
  631. vertytab rxt 'db' 'FLOTTANT' ;
  632. db = rxt . 'db' ;
  633. 'SINO' ;
  634. db = 1.000e-5 ;
  635. 'FINS' ;
  636. TBT . 'db' = db ;
  637.  
  638. *
  639. * Définition de l'axe (ou du plan) de symétrie
  640. TBT . 'Taxe' = FAUX ;
  641. 'SI' ('EXIS' rxt 'axe') ;
  642. vertytab rxt 'axe' 'MAILLAGE' ;
  643. TBT . 'Taxe' = VRAI ;
  644. 'FINS' ;
  645.  
  646. *
  647. * Définition des Sorties
  648. TBT . 'TTsortie' = FAUX ;
  649. 'SI' ('EXIS' rxt 'Sorties') ;
  650. vertytab rxt 'Sorties' 'TABLE' ;
  651. TBT . 'TTsortie' = VRAI ;
  652. NBR = 'DIME' rxt . 'Sorties' ;
  653. mess ' Il y a' ' ' NBR ' ' 'Sortie(s)' ;
  654. ibr = 'INDE' rxt . 'Sorties' ;
  655. 'REPE' BBRS NBR ;
  656. Sriches = rxt . 'Sorties' . (ibr . &BBRS) ;
  657. 'MESS' 'Verification Sortie' ' ' (ibr . &BBRS) ;
  658. vertytab Sriches 'Maillage' 'MAILLAGE' ;
  659. vertytab Sriches 'scenario' 'TABLE ' ;
  660. scn = Sriches . 'scenario' ;
  661. Sriches . 'Modinj' = 'MOT' 'A' ;
  662. 'SI' ('EXIS' Sriches . 'scenario' 'Modinj') ;
  663. Sriches . 'Modinj' = Sriches . 'scenario' . 'Modinj' ;
  664. 'FINS' ;
  665. *FD
  666. * Quid si reprise ?
  667. *FD
  668. 'SI' ('NON' ('EXIS' Sriches 'Qj')) ;
  669. Sriches . 'guj' = 'PROG' 0. ;
  670. Sriches . 'Qj' = 'PROG' 0. ;
  671. Sriches . 'Ksi' = 'PROG' 0. ;
  672. Sriches . 'Hj' = 'PROG' 0. ;
  673. Sriches . 'Ej' = 'PROG' 0. ;
  674. Sriches . 'Ltbp1' = 'PROG' 0. ;
  675. Sriches . 'Qlj' = 'PROG' 0. ;
  676. Sriches . 'Hlj' = 'PROG' 0. ;
  677. Sriches . 'Tinj' = 'PROG' 0. ;
  678. 'FINS' ;
  679. 'FIN' BBRS ;
  680. TBT . 'Sorties' = rxt . 'Sorties' ;
  681. 'FINS' ;
  682.  
  683. *
  684. * Définition des Breches
  685. TBT . 'TTbreche' = FAUX ;
  686. 'SI' ('EXIS' rxt 'Breches') ;
  687. vertytab rxt 'Breches' 'TABLE' ;
  688. TBT . 'TTbreche' = VRAI ;
  689. NBR = 'DIME' rxt . 'Breches' ;
  690. 'MESS' ' Il y a' ' ' NBR ' ' 'Brèche(s)' ;
  691. ibr = 'INDE' rxt . 'Breches' ;
  692. 'REPE' BBRS NBR ;
  693. Briches = rxt . 'Breches' . (ibr . &BBRS) ;
  694. 'MESS' 'Verification Breche' ' ' (ibr . &BBRS) ;
  695. vertytab Briches 'diru' 'POINT ' ;
  696. Briches . 'diru' = Briches . 'diru' '/' ('NORM' Briches . 'diru') ;
  697. vertytab Briches 'Maillage' 'MAILLAGE' ;
  698. vertytab Briches 'scenario' 'TABLE ' ;
  699. scn = Briches . 'scenario' ;
  700. Briches . 'Modinj' = 'MOT' 'A' ;
  701. 'SI' ('EXIS' Briches . 'scenario' 'Modinj') ;
  702. Briches . 'Modinj' = Briches . 'scenario' . 'Modinj' ;
  703. 'FINS' ;
  704. *FD
  705. * Quid si reprise ?
  706. *FD
  707. 'SI' ('NON' ('EXIS' Briches 'Qj')) ;
  708. Briches . 'guj' = 'PROG' 0. ;
  709. Briches . 'Qj' = 'PROG' 0. ;
  710. Briches . 'Ksi' = 'PROG' 0. ;
  711. Briches . 'Hj' = 'PROG' 0. ;
  712. Briches . 'Ej' = 'PROG' 0. ;
  713. Briches . 'Ltbp1' = 'PROG' 0. ;
  714. Briches . 'Qlj' = 'PROG' 0. ;
  715. Briches . 'Hlj' = 'PROG' 0. ;
  716. Briches . 'Tinj' = 'PROG' 0. ;
  717. 'FINS' ;
  718. 'FIN' BBRS ;
  719. TBT . 'Breches' = rxt . 'Breches' ;
  720. *
  721. 'SI' ('NON' ('EXIS' tic 'Breches')) ;
  722. tic . 'Breches' = 'TABLE' ;
  723. 'FINS' ;
  724. 'FINS' ;
  725.  
  726. *
  727. * Définition des Flux de masse imposés
  728. TBT . 'TFIMP' = FAUX ;
  729. 'SI' ('EXIS' rxt 'XFIMP') ;
  730. TBT . 'TFIMP' = VRAI ;
  731. vertytab rxt 'XFIMP' 'TABLE' ;
  732. NBFIMP = 'DIME' rxt . 'XFIMP' ;
  733. ifimp = 'INDE' rxt . 'XFIMP' ;
  734. 'REPE' BBFIMP NBFIMP ;
  735. Bfimp = rxt . 'XFIMP' . (ifimp . &BBFIMP) ;
  736. vertytab (rxt.'XFIMP') (ifimp . &BBFIMP) 'TABLE' ;
  737. vertytab Bfimp 'MAILLAGE' 'MAILLAGE' ;
  738. vertytab Bfimp 't' 'LISTREEL' ;
  739. *FD
  740. * A mettre dans prepaenc ?
  741. *FD
  742. nds = 'DIME' Bfimp . 't' ;
  743. 'SI' ('EXIS' Bfimp 'qt') ;
  744. vertytab Bfimp 'qt' 'LISTREEL' ;
  745. 'SINO' ;
  746. Bfimp . 'qt' = 'PROG' nds*0. ;
  747. 'FINS' ;
  748. 'SI' ('EXIS' Bfimp 'qeau') ;
  749. vertytab Bfimp 'qeau' 'LISTREEL' ;
  750. 'SINO' ;
  751. Bfimp . 'qeau' = 'PROG' nds*0. ;
  752. 'FINS' ;
  753. 'SI' ('EXIS' Bfimp 'qair') ;
  754. vertytab Bfimp 'qair' 'LISTREEL' ;
  755. 'SINO' ;
  756. Bfimp . 'qair' = 'PROG' nds*0. ;
  757. 'FINS' ;
  758. 'SI' ('EXIS' Bfimp 'qhe') ;
  759. vertytab Bfimp 'qhe' 'LISTREEL' ;
  760. 'SINO' ;
  761. Bfimp . 'qhe' = 'PROG' nds*0. ;
  762. 'FINS' ;
  763. 'SI' ('EXIS' Bfimp 'qh2') ;
  764. vertytab Bfimp 'qh2' 'LISTREEL' ;
  765. 'SINO' ;
  766. Bfimp . 'qh2' = 'PROG' nds*0. ;
  767. 'FINS' ;
  768. 'SI' ('EXIS' Bfimp 'qo2') ;
  769. vertytab Bfimp 'qo2' 'LISTREEL' ;
  770. 'SINO' ;
  771. Bfimp . 'qo2' = 'PROG' nds*0. ;
  772. 'FINS' ;
  773. 'SI' ('EXIS' Bfimp 'qn2') ;
  774. vertytab Bfimp 'qn2' 'LISTREEL' ;
  775. 'SINO' ;
  776. Bfimp . 'qn2' = 'PROG' nds*0. ;
  777. 'FINS' ;
  778. 'SI' ('EXIS' Bfimp 'qco') ;
  779. vertytab Bfimp 'qco' 'LISTREEL' ;
  780. 'SINO' ;
  781. Bfimp . 'qco' = 'PROG' nds*0. ;
  782. 'FINS' ;
  783. 'SI' ('EXIS' Bfimp 'qco2');
  784. vertytab Bfimp 'qco2' 'LISTREEL' ;
  785. 'SINO' ;
  786. Bfimp . 'qco2' = 'PROG' nds*0. ;
  787. 'FINS' ;
  788. Bfimp . 'Kqt' = 'CHAI' 'Kqt' &BBTIMP ;
  789. Bfimp . 'Kqeau' = 'CHAI' 'Kqeau' &BBTIMP ;
  790. Bfimp . 'Kqair' = 'CHAI' 'Kqair' &BBTIMP ;
  791. Bfimp . 'Kqhe' = 'CHAI' 'Kqhe' &BBTIMP ;
  792. Bfimp . 'Kqh2' = 'CHAI' 'Kqh2' &BBTIMP ;
  793. Bfimp . 'Kqo2' = 'CHAI' 'Kqo2' &BBTIMP ;
  794. Bfimp . 'Kqn2' = 'CHAI' 'K qn2' &BBTIMP ;
  795. Bfimp . 'Kqco' = 'CHAI' 'Kqco' &BBTIMP ;
  796. Bfimp . 'Kqco2' = 'CHAI' 'Kqco2' &BBTIMP ;
  797. Bfimp . 'KFL1' = 'CHAI' 'KFL1' &BBTIMP ;
  798. 'FIN' BBFIMP ;
  799. TBT . 'XFIMP' = rxt . 'XFIMP' ;
  800. 'FINS' ;
  801.  
  802. *
  803. * THERMP = vrai si Problème couplé Fluide-Structure
  804. * THERCO = vrai si couplage implicite Fluide-Structure
  805. TBT . 'THERMP' = FAUX ;
  806. TBT . 'THERCO' = FAUX ;
  807. TBT . 'ECHEXT' = FAUX ;
  808.  
  809. 'SI' ('EXIS' rxt 'THERMP') ;
  810. vertytab rxt 'THERMP' 'LOGIQUE' ;
  811. TBT . 'THERMP' = rxt . 'THERMP' ;
  812. 'FINS' ;
  813.  
  814. 'SI' ('EXIS' rxt 'THERCO') ;
  815. vertytab rxt 'THERCO' 'LOGIQUE' ;
  816. TBT . 'THERCO' = rxt . 'THERCO' ;
  817. 'SI' TBT . 'THERCO' ;
  818. TBT . 'THERMP' = VRAI ;
  819. listand = listand 'ET' ('MOTS' 'THCO') ;
  820. 'FINS' ;
  821. 'FINS' ;
  822.  
  823. *
  824. * TPAROIS = vrai si résolution thermique dans les parois
  825. * (nouvelle définition des parois thermiques)
  826. TBT . 'TPAROIS' = FAUX ;
  827. 'SI' ('EXIS' rxt 'PAROIS') ;
  828. vertytab rxt 'PAROIS' 'TABLE' ;
  829. *FD
  830. * ECHAN est défini globalement au lieu de localement pour chaque PAROI
  831. * (héritage de l'époque ou on avait une seulle paroi ?)
  832. *FD
  833. vertytab rxt 'ECHAN' 'FLOTTANT' 'CHPOINT' ;
  834. NPAR = 'DIME' rxt . 'PAROIS' ;
  835. 'MESS' 'Il y a' ' ' NPAR ' ' 'Parois(s)' ;
  836. ipr = 'INDE' rxt . 'PAROIS' ;
  837. Mvtp = 'VIDE' 'MAILLAGE' ;
  838. 'REPE' BPRS NPAR ;
  839. Parois = rxt . 'PAROIS' . (ipr . &BPRS) ;
  840. vertytab (rxt . 'PAROIS') (ipr . &BPRS) 'TABLE' ;
  841. 'MESS' ' Verification Paroi' ' ' (ipr . &BPRS) ;
  842. vertytab Parois 'vtp' 'MAILLAGE' ;
  843. Mvtp = Mvtp 'ET' Parois . 'vtp' ;
  844. vertytab Parois 'ROCP' 'FLOTTANT' 'CHPOINT' ;
  845. vertytab Parois 'LAMBDA' 'FLOTTANT' 'CHPOINT' ;
  846. vertytab Parois 'Tp0' 'FLOTTANT' 'CHPOINT' ;
  847. *? vertytab Parois 'ECHAN' 'FLOTTANT' 'CHPOINT' ;
  848. CROCP = 'CHAI' 'ROCP' &BPRS ;
  849. CLAMBDA = 'CHAI' 'LAMBDA' &BPRS ;
  850. CTP0 = 'CHAI' 'Tp0' &BPRS ;
  851. 'SI' ('NON' ('EXIS' tic CROCP)) ;
  852. tic . CROCP = Parois . 'ROCP' ;
  853. 'FINS' ;
  854. 'SI' ('NON' ('EXIS' tic CLAMBDA)) ;
  855. tic . CLAMBDA = Parois . 'LAMBDA' ;
  856. 'FINS' ;
  857. 'SI' ('NON' ('EXIS' tic CTp0)) ;
  858. tic . CTp0 = Parois . 'Tp0' ;
  859. 'FINS' ;
  860. 'FIN' BPRS ;
  861. vertytab 1 GEO Mvtp ;
  862. GEO . 'Mvtp' = 'CHAN' 'QUAF' Mvtp ;
  863. 'ELIM' GEO . 'Mvtp' rxt . 'epsi' ;
  864. 'ELIM' GEO . 'Mvtf' GEO . 'Mvtp' rxt . 'epsi' ;
  865. TBT . 'PAROIS' = rxt . 'PAROIS' ;
  866. TBT . 'THERMP' = VRAI ;
  867. TBT . 'TPAROIS' = VRAI ;
  868. 'FINS' ;
  869.  
  870. 'SI' TBT . 'THERMP' ;
  871. *FD
  872. * Ancienne définition d'une PAROI : à detruire ?
  873. *FD
  874. *
  875. * TPAROIS = faux mais THERMP = vrai (ancienne définition de LA paroi thermique)
  876. 'SI' ('NON' (TBT . 'TPAROIS')) ;
  877. vertytab rxt 'vtp' 'MAILLAGE' ;
  878. vertytab 1 GEO (rxt . 'vtp') ;
  879. GEO . 'Mvtp' = 'CHAN' 'QUAF' rxt . 'vtp' ;
  880. 'ELIM' GEO . 'Mvtf' GEO . 'Mvtp' rxt . 'epsi' ;
  881. vertytab rxt 'ROCP' 'FLOTTANT' 'CHPOINT' ;
  882. vertytab rxt 'LAMBDA' 'FLOTTANT' 'CHPOINT' ;
  883. vertytab rxt 'Tp0' 'FLOTTANT' 'CHPOINT' ;
  884. vertytab rxt 'ECHAN' 'FLOTTANT' 'CHPOINT' ;
  885. listchp = listchp 'ET' ('MOTS' 'ROCP') ;
  886. listchp = listchp 'ET' ('MOTS' 'LAMBDA') ;
  887. listchp = listchp 'ET' ('MOTS' 'Tp0' ) ;
  888. listchp = listchp 'ET' ('MOTS' 'ECHAN' ) ;
  889. 'SI' ('NON' ('EXIS' tic 'ROCP')) ;
  890. tic . 'ROCP' = rxt . 'ROCP' ;
  891. 'FINS' ;
  892. 'SI' ('NON' ('EXIS' tic 'LAMBDA')) ;
  893. tic . 'LAMBDA' = rxt . 'LAMBDA' ;
  894. 'FINS' ;
  895. 'SI' ('NON' ('EXIS' tic 'Tp0')) ;
  896. tic . 'Tp0' = rxt . 'Tp0' ;
  897. 'FINS' ;
  898. 'FINS' ;
  899.  
  900. *
  901. * Initialisation de KHW à ECHAN
  902. 'SI' ('NON' ('EXIS' tic 'KHW')) ;
  903. tic . 'KHW' = rxt . 'ECHAN' ;
  904. 'FINS' ;
  905.  
  906. *
  907. * ECHEXT = vrai si échange thermique avec l'extérieur
  908. 'SI' ('EXIS' rxt 'ECHEXT') ;
  909. vertytab rxt 'ECHEXT' 'LOGIQUE' ;
  910. TBT . 'ECHEXT' = rxt . 'ECHEXT' ;
  911. 'FINS' ;
  912.  
  913. 'SI' TBT . 'ECHEXT' ;
  914. vertytab rxt 'parext' 'MAILLAGE' ;
  915. GEO . 'Mparext' = 'CHAN' 'QUAF' rxt . 'parext' ;
  916. 'ELIM' GEO . 'Mvtp' GEO . 'Mparext' rxt . 'epsi' ;
  917. vertytab rxt 'HEXT' 'FLOTTANT' 'CHPOINT' ;
  918. vertytab rxt 'TPEXT' 'FLOTTANT' 'CHPOINT' ;
  919. listchp = listchp 'ET' ('MOTS' 'HEXT') ;
  920. listchp = listchp 'ET' ('MOTS' 'TPEXT') ;
  921. 'SI' ('NON' ('EXIS' tic 'HEXT'));
  922. tic . 'HEXT' = rxt . 'HEXT' ;
  923. 'FINS' ;
  924. 'SI' ('NON' ('EXIS' tic 'TPEXT')) ;
  925. tic . 'TPEXT' = rxt . 'TPEXT' ;
  926. 'FINS' ;
  927. 'FINS' ;
  928.  
  929. 'MESS' ': ==> Scenario avec thermique paroi' ;
  930.  
  931. 'SINO' ;
  932. 'MESS' ' : ==> Scenario sans thermique paroi ' ;
  933. 'FINS' ;
  934.  
  935. *
  936. * TTIMP = vrai si parois à température imposée
  937. TBT . 'TTIMP' = FAUX ;
  938. 'SI' ('EXIS' rxt 'TIMP') ;
  939. TBT . 'TTIMP' = VRAI ;
  940. vertytab rxt 'TIMP' 'TABLE' ;
  941. NBTIMP = 'DIME' rxt . 'TIMP' ;
  942. itimp = 'INDE' rxt . 'TIMP' ;
  943. 'REPE' BBTIMP NBTIMP ;
  944. 'MESS' 'Verification TIMP ->' ' ' (itimp . &BBTIMP) ;
  945. Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ;
  946. vertytab (rxt . 'TIMP') (itimp . &BBTIMP) 'TABLE' ;
  947. vertytab Btimp 'MAILLAGE' 'MAILLAGE' ;
  948. vertytab Btimp 'ECHAN' 'FLOTTANT' ;
  949. vertytab Btimp 't' 'LISTREEL' ;
  950. vertytab Btimp 'TIMP' 'LISTREEL' ;
  951. Btimp . 'KKC1' = 'CHAI' 'KKC1' &BBTIMP ;
  952. Btimp . 'ROVI1' = 'CHAI' 'ROVI1' &BBTIMP ;
  953. Btimp . 'FHP1' = 'CHAI' 'FHP1' &BBTIMP ;
  954. Btimp . 'KH1' = 'CHAI' 'KH1' &BBTIMP ;
  955. Btimp . 'Fcond1'= 'CHAI' 'Fcond1' &BBTIMP ;
  956. Btimp . 'Mcond1'= 'CHAI' 'Mcond1' &BBTIMP ;
  957. Btimp . 'TPI1' = 'CHAI' 'TPI1' &BBTIMP ;
  958. Btimp . 'TBP1' = 'CHAI' 'TBP1' &BBTIMP ;
  959. Btimp . 'KHE1' = 'CHAI' 'KHE1' &BBTIMP ;
  960. Btimp . 'Qc1' = 'CHAI' 'Qc1' &BBTIMP ;
  961. * Btimp . 'Ltbpi' = 'PROG' ('IPOL' tps Btimp . 't' Btimp . 'TIMP') ;
  962. Btimp . 'Ltbpi' = 'IPOL' tic . 'LTPS' Btimp . 't' Btimp . 'TIMP' ;
  963. 'FIN' BBTIMP ;
  964. TBT . 'TIMP' = rxt . 'TIMP' ;
  965. 'FINS' ;
  966.  
  967. *
  968. * TECHANP = vrai si paroi à T constant ou imposé via une procédure personnelle
  969. TBT . 'TECHANP' = FAUX ;
  970. 'SI' ('EXIS' rxt 'ECHANP') ;
  971. TBT . 'TECHANP' = VRAI ;
  972. vertytab rxt 'ECHANP' 'TABLE' ;
  973. vertytab (rxt . 'ECHANP') 'MAILLAGE' 'MAILLAGE' ;
  974. vertytab (rxt . 'ECHANP') 'ECHAN' 'FLOTTANT' ;
  975. vertytab (rxt . 'ECHANP') 'TMUR' 'FLOTTANT' ;
  976. 'FINS' ;
  977.  
  978. *
  979. * TRECOMB = vrai si présence de PARs (recombineurs)
  980. TBT . 'TRECOMB' = FAUX ;
  981. 'SI' ('EXIS' rxt 'RECOMB') ;
  982. vertytab rxt 'RECOMB' 'TABLE ' ;
  983. NBREC = 'DIME' rxt . 'RECOMB' ;
  984. 'REPE' BCL1 NBREC ;
  985. TRECI = rxt . 'RECOMB' . &BCL1 ;
  986. lxt = 'TABL' ;
  987. lxt . 'PAREXT' = ' ' ;
  988. lxt . 'ENTREE' = ' ' ;
  989. lxt . 'SORTIE' = ' ' ;
  990. lxt . 'direntr' = ' ' ;
  991. lxt . 'dirsort' = ' ' ;
  992. lxt . 'NSECTION' = ' ' ;
  993. lxt . 'TYPR' = ' ' ;
  994. vertytab TRECI 'PAREXT' 'MAILLAGE' ;
  995. vertytab TRECI 'ENTREE' 'MAILLAGE' ;
  996. vertytab TRECI 'SORTIE' 'MAILLAGE' ;
  997. vertytab TRECI 'direntr' 'POINT ' ;
  998. vertytab TRECI 'dirsort' 'POINT ' ;
  999. 'SI' ('EXIS' TRECI 'NSECTION') ;
  1000. vertytab TRECI 'NSECTION' 'ENTIER ' ;
  1001. 'SINO' ;
  1002. TRECI . 'NSECTION' = 1 ;
  1003. 'FINS' ;
  1004. 'SI' ('EXIS' TRECI 'TYPR') ;
  1005. vertytab TRECI 'TYPR' 'MOT' ;
  1006. lm1 = 'MOTS' 'SIEMENS' 'HEATER' ;
  1007. vertytab lm1 (TRECI . 'TYPR') 'MOT' ;
  1008. 'SINO' ;
  1009. TRECI . 'TYPR' = 'SIEMENS' ;
  1010. 'FINS' ;
  1011. typr = TRECI . 'TYPR' ;
  1012. 'SI' ('EGA' typr 'SIEMENS') ;
  1013. lxt . 'A' = ' ' ;
  1014. lxt . 'B' = ' ' ;
  1015. lxt . 'XH2ON' = ' ' ;
  1016. lxt . 'XH2OFF' = ' ' ;
  1017. lxt . 'BETA' = ' ' ;
  1018. 'SI' ('EXIS' TRECI 'A') ;
  1019. vertytab TRECI 'A' 'FLOTTANT' ;
  1020. 'SINO' ;
  1021. TRECI . 'A' = 0.48D-8 ;
  1022. 'FINS' ;
  1023. 'SI' ('EXIS' TRECI 'B') ;
  1024. vertytab TRECI 'B' 'FLOTTANT' ;
  1025. 'SINO' ;
  1026. TRECI . 'B' = 0.58D-3 ;
  1027. 'FINS' ;
  1028. 'SI' ('EXIS' TRECI 'XH2ON') ;
  1029. vertytab TRECI 'XH2ON' 'FLOTTANT' ;
  1030. 'SINO' ;
  1031. TRECI . 'XH2ON' = 0.005D0 ;
  1032. 'FINS' ;
  1033. 'SI' ('EXIS' TRECI 'XH2OFF') ;
  1034. vertytab TRECI 'XH2OFF' 'FLOTTANT' ;
  1035. 'SINO' ;
  1036. TRECI . 'XH2OFF' = 0.005D0 ;
  1037. 'FINS' ;
  1038. 'SI' ('EXIS' TRECI 'BETA') ;
  1039. vertytab TRECI 'BETA' 'FLOTTANT' ;
  1040. 'SINO' ;
  1041. TRECI . 'BETA' = 0.2D0 ;
  1042. 'FINS' ;
  1043. 'SINO' ;
  1044. lxt . 'PUISSANCE' = ' ' ;
  1045. lxt . 'QHOUSING' = ' ' ;
  1046. lxt . 'HRAPP' = ' ' ;
  1047. lxt . 'CRAPP' = ' ' ;
  1048. vertytab TRECI 'PUISSANCE' 'EVOLUTIO' ;
  1049. 'SI' ('EXIS' TRECI 'QHOUSING') ;
  1050. vertytab TRECI 'QHOUSING' 'FLOTTANT' ;
  1051. 'SINO' ;
  1052. TRECI . 'QHOUSING' = 0.1D0 ;
  1053. 'FINS' ;
  1054. 'SI' ('EXIS' TRECI 'HRAPP') ;
  1055. vertytab TRECI 'HRAPP' 'FLOTTANT' ;
  1056. 'SINO' ;
  1057. TRECI . 'HRAPP' = 1.7D0 ;
  1058. 'FINS' ;
  1059. 'SI' ('EXIS' TRECI 'CRAPP') ;
  1060. vertytab TRECI 'CRAPP' 'FLOTTANT' ;
  1061. 'SINO' ;
  1062. TRECI . 'CRAPP' = 136.0868234D0 ;
  1063. 'FINS' ;
  1064. 'FINS' ;
  1065. indtrec = 'INDE' treci ;
  1066. nind = 'DIME' indtrec ;
  1067. 'REPE' bouind nind ;
  1068. 'SI' ('NON' ('EXIS' lxt ('MOT' indtrec . &bouind))) ;
  1069. 'MESS' ' ' ;
  1070. 'MESS' '*********************************************************' ;
  1071. 'MESS' ' ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ' ;
  1072. 'MESS' ' ' ;
  1073. 'MESS' ' ' ;
  1074. 'MESS' 'Il y a un indice non reconnu :' ' ' (indtrec . &bouind)
  1075. ' ' ' dans la table RECOMB .' ' ' &bcl1 ;
  1076. 'MESS' ' ' ;
  1077. 'MESS' '*********************************************************' ;
  1078. 'ERRE' 21 ;
  1079. 'QUIT' EXECRXT ;
  1080. 'FINS' ;
  1081. 'FIN' bouind ;
  1082. 'FIN' BCL1 ;
  1083. TBT . 'TRECOMB' = VRAI ;
  1084. TBT . 'RECOMB' = rxt . 'RECOMB' ;
  1085. 'FINS' ;
  1086.  
  1087. *
  1088. * Gestion du modèle de turbulence MODTURB
  1089. * (NUTURB ou LMEL ou KEPSILON)
  1090. 'SI' ('EXIS' rxt 'MODTURB') ;
  1091. vertytab rxt 'MODTURB' 'MOT' ;
  1092. TBT . 'MODTURB' = rxt . 'MODTURB' ;
  1093. lxt = 'TABL' ;
  1094. lxt . 'NUTURB' = ' ' ;
  1095. lxt . 'LMEL' = ' ' ;
  1096. lxt . 'KEPSILON' = ' ' ;
  1097. vertytab lxt rxt . 'MODTURB' 'MOT' ;
  1098.  
  1099. 'SI' ('EGA' rxt . 'MODTURB' 'NUTURB') ;
  1100. listentr . 'NUT' = '' ;
  1101. vertytab rxt 'NUT' 'FLOTTANT' ;
  1102. TBT . 'NUT' = rxt .'NUT' ;
  1103. 'FINS' ;
  1104.  
  1105. 'SI' ('EGA' rxt . 'MODTURB' 'LMEL') ;
  1106. listentr . 'LMEL' = '' ;
  1107. vertytab rxt 'LMEL' 'FLOTTANT' ;
  1108. TBT . 'LMEL' = rxt . 'LMEL' ;
  1109. 'FINS' ;
  1110.  
  1111. 'MESS' ': ==> Scenario avec modèle de turbulence'
  1112. ' ' rxt . 'MODTURB' ;
  1113. 'SINO' ;
  1114. 'MESS' ': ==> Scenario sans modèle de turbulence' ;
  1115. 'FINS' ;
  1116.  
  1117. *
  1118. * FPAROI = vrai si utilisation de fonctions de paroi
  1119. TBT . 'FPAROI' = FAUX ;
  1120. 'SI' ('EXIS' rxt 'FPAROI') ;
  1121. vertytab rxt 'FPAROI' 'LOGIQUE' ;
  1122. TBT . 'FPAROI' = rxt . 'FPAROI' ;
  1123. 'FINS' ;
  1124.  
  1125. 'SI' TBT . 'FPAROI' ;
  1126. 'MESS' ': ==> Scenario avec fonction de paroi ' ;
  1127. listentr . 'YP' = '' ;
  1128. vertytab rxt 'YP' 'FLOTTANT' ;
  1129. TBT . 'YP' = rxt . 'YP' ;
  1130. 'FINS' ;
  1131.  
  1132. *
  1133. * Gestion du modèle de condensation en paroi MODCOND
  1134. * (CHIL0 ou CHIL1)
  1135. TBT . 'MODCOND' = 'CHIL0' ;
  1136. 'SI' ('EXIS' rxt 'MODCOND') ;
  1137. vertytab rxt 'MODCOND' 'MOT' ;
  1138. TBT . 'MODCOND' = rxt . 'MODCOND' ;
  1139. lxt = 'TABL' ;
  1140. lxt . 'CHIL0' = ' ' ;
  1141. lxt . 'CHIL1' = ' ' ;
  1142. vertytab lxt rxt . 'MODCOND' 'MOT' ;
  1143. 'FINS' ;
  1144. 'MESS' ': ==> Scenario avec flux de condensation' ' ' TBT . 'MODCOND' ;
  1145.  
  1146. *
  1147. * PERSO = vrai si une procédure personnelle est indiquée
  1148. TBT . 'PERSO' = FAUX ;
  1149. 'SI' ('EXIS' rxt 'PERSO') ;
  1150. vertytab rxt 'PERSO' 'LOGIQUE' ;
  1151. TBT . 'PERSO' = rxt . 'PERSO' ;
  1152. 'FINS' ;
  1153.  
  1154. 'SI' TBT . 'PERSO' ;
  1155. 'MESS' ': ==> Scenario avec execution d une procedure personnelle' ;
  1156. listentr . 'PRCPERSO' = '' ;
  1157. vertytab rxt 'PRCPERSO' 'MOT' ;
  1158. TBT . 'PRCPERSO' = rxt . 'PRCPERSO' ;
  1159. 'FINS' ;
  1160.  
  1161. 'SI' ('EXIS' rxt 'TABPERSO') ;
  1162. vertytab rxt 'TABPERSO' 'TABLE' ;
  1163. TBT . 'TABPERSO' = rxt . 'TABPERSO' ;
  1164. 'FINS' ;
  1165.  
  1166. *
  1167. * Identification des incondensables et des entrées associées
  1168. * (à choisir parmi H2, HE, O2, N2, CO, CO2)
  1169. LINCOND = 'MOTS' ;
  1170.  
  1171. TBT . 'TH2' = FAUX ;
  1172. 'SI' ('EXIS' rxt 'H2') ;
  1173. vertytab rxt 'H2' 'LOGIQUE' ;
  1174. TBT . 'TH2' = rxt . 'H2' ;
  1175. 'SI' TBT . 'TH2' ;
  1176. LINCOND = LINCOND 'ET' ('MOTS' 'H2') ;
  1177. vertytab rxt 'Yh20' 'FLOTTANT' ;
  1178. listentr . 'Yh20' = '' ;
  1179. 'SI' ('EXIS' rxt 'scenario') ;
  1180. vertytab (rxt . 'scenario') 'qh2' 'LISTREEL' ;
  1181. 'FINS' ;
  1182. 'FINS' ;
  1183. 'FINS' ;
  1184.  
  1185. TBT . 'THE' = FAUX ;
  1186. 'SI' ('EXIS' rxt 'HE') ;
  1187. vertytab rxt 'HE' 'LOGIQUE' ;
  1188. TBT . 'THE' = rxt . 'HE' ;
  1189. 'SI' TBT . 'THE' ;
  1190. LINCOND = LINCOND 'ET' ('MOTS' 'HE') ;
  1191. vertytab rxt 'Yhe0' 'FLOTTANT' ;
  1192. listentr.'Yhe0' = '' ;
  1193. 'SI' ('EXIS' rxt 'scenario') ;
  1194. vertytab (rxt . 'scenario') 'qhe' 'LISTREEL' ;
  1195. 'FINS' ;
  1196. 'FINS' ;
  1197. 'FINS' ;
  1198.  
  1199. TBT . 'TO2' = FAUX ;
  1200. 'SI' ('EXIS' rxt 'O2' ) ;
  1201. vertytab rxt 'O2' 'LOGIQUE' ;
  1202. TBT . 'TO2' = rxt . 'O2' ;
  1203. 'SI' TBT . 'TO2' ;
  1204. LINCOND = LINCOND 'ET' ('MOTS' 'O2') ;
  1205. vertytab rxt 'Yo20' 'FLOTTANT' ;
  1206. listentr . 'Yo20' = '' ;
  1207. 'SI' ('EXIS' rxt 'scenario') ;
  1208. vertytab (rxt . 'scenario') 'qo2' 'LISTREEL' ;
  1209. 'FINS' ;
  1210. 'FINS' ;
  1211. 'FINS' ;
  1212.  
  1213. TBT . 'TN2' = FAUX ;
  1214. 'SI' ('EXIS' rxt 'N2') ;
  1215. vertytab rxt 'N2' 'LOGIQUE' ;
  1216. TBT . 'TN2' = rxt . 'N2' ;
  1217. 'SI' TBT . 'TN2' ;
  1218. LINCOND = LINCOND 'ET' ('MOTS' 'N2') ;
  1219. vertytab rxt 'Yn20' 'FLOTTANT' ;
  1220. listentr . 'Yn20' = '' ;
  1221. 'SI' ('EXIS' rxt 'scenario') ;
  1222. vertytab (rxt . 'scenario') 'qn2' 'LISTREEL' ;
  1223. 'FINS' ;
  1224. 'FINS' ;
  1225. 'FINS' ;
  1226.  
  1227. TBT . 'TCO' = FAUX ;
  1228. 'SI' ('EXIS' rxt 'CO') ;
  1229. vertytab rxt 'CO' 'LOGIQUE' ;
  1230. TBT . 'TCO' = rxt . 'CO' ;
  1231. 'SI' TBT . 'TCO' ;
  1232. LINCOND = LINCOND 'ET' ('MOTS' 'CO') ;
  1233. vertytab rxt 'Yco0' 'FLOTTANT' ;
  1234. listentr . 'Yco0' = '' ;
  1235. 'SI' ('EXIS' rxt 'scenario') ;
  1236. vertytab (rxt . 'scenario') 'qco' 'LISTREEL' ;
  1237. 'FINS' ;
  1238. 'FINS' ;
  1239. 'FINS' ;
  1240.  
  1241. TBT . 'TCO2' = FAUX ;
  1242. 'SI' ('EXIS' rxt 'CO2') ;
  1243. vertytab rxt 'CO2' 'LOGIQUE' ;
  1244. TBT . 'TCO2' = rxt .'CO2' ;
  1245. 'SI' TBT . 'TCO2' ;
  1246. LINCOND = LINCOND 'ET' ('MOTS' 'CO2') ;
  1247. vertytab rxt 'Yco20' 'FLOTTANT' ;
  1248. listentr . 'Yco20' = '' ;
  1249. 'SI' ('EXIS' rxt 'scenario') ;
  1250. vertytab (rxt . 'scenario') 'qco2' 'LISTREEL' ;
  1251. 'FINS' ;
  1252. 'FINS' ;
  1253. 'FINS' ;
  1254.  
  1255. *FD
  1256. * Quid de l'injection d'air sans transport de l'air
  1257. *FD
  1258. TBT . 'TAIR' = FAUX ;
  1259. 'SI' ('EXIS' rxt 'AIR') ;
  1260. vertytab rxt 'AIR' 'LOGIQUE' ;
  1261. TBT . 'TAIR' = rxt . 'AIR' ;
  1262. 'SI' TBT . 'TAIR' ;
  1263. LINCOND = LINCOND 'ET' ('MOTS' 'AIR') ;
  1264. 'SI' ('EXIS' rxt 'scenario') ;
  1265. vertytab (rxt . 'scenario') 'qair' 'LISTREEL' ;
  1266. 'FINS' ;
  1267. 'FINS' ;
  1268. 'FINS' ;
  1269.  
  1270. 'SI' (('EGA' ('DIME' LINCOND) 0) 'OU' ('NON' tbt . 'TAIR'));
  1271. LINCOND = LINCOND 'ET' ('MOTS' 'AIR') ;
  1272. 'FINS' ;
  1273. 'MESS' ' Liste des incondensables : ' ;
  1274. 'LIST' LINCOND ;
  1275.  
  1276. *
  1277. * VAPEUR = vrai en présence de vapeur dans le mélange
  1278. TBT . 'VAPEUR' = FAUX ;
  1279. 'SI' ('EXIS' rxt 'VAPEUR') ;
  1280. vertytab rxt 'VAPEUR' 'LOGIQUE' ;
  1281. TBT . 'VAPEUR' = rxt . 'VAPEUR' ;
  1282. 'SI' TBT . 'VAPEUR' ;
  1283. vertytab rxt 'Yvap0' 'FLOTTANT' ;
  1284. listentr .'Yvap0' = '' ;
  1285. 'SI' ('EXIS' rxt 'scenario') ;
  1286. vertytab (rxt . 'scenario') 'qeau' 'LISTREEL' ;
  1287. 'FINS' ;
  1288. listentr .'Mliq0' = '' ;
  1289. listentr .'Lv' = '' ;
  1290. listentr .'Cpvap' = '' ;
  1291. 'FINS' ;
  1292. 'FINS' ;
  1293.  
  1294. *
  1295. * CONDMAS = vrai si condensation en masse et présence de VAPEUR
  1296. TBT . 'CONDMAS' = FAUX ;
  1297. 'SI' TBT . 'VAPEUR' ;
  1298. 'SI' ('EXIS' rxt 'CONDMAS') ;
  1299. vertytab rxt 'CONDMAS' 'LOGIQUE' ;
  1300. listentr . 'CONDMAS' = '' ;
  1301. TBT . 'CONDMAS' = rxt . 'CONDMAS' ;
  1302. listand = listand 'ET' (MOTS 'CONDMAS') ;
  1303. 'FINS' ;
  1304. 'FINS' ;
  1305. *
  1306. * ASPER = vrai aspersion et présence de VAPEUR
  1307. TBT . 'ASPER' = FAUX ;
  1308. 'SI' TBT . 'VAPEUR' ;
  1309. 'SI' ('EXIS' rxt 'ASPER') ;
  1310. vertytab rxt 'ASPER' 'LOGIQUE' ;
  1311. listentr . 'ASPER' = '' ;
  1312. TBT . 'ASPER' = rxt . 'ASPER' ;
  1313. 'SI' TBT . 'ASPER' ;
  1314. vertytab rxt 'scenasp' 'TABLE ' ;
  1315. listentr . 'scenasp' = '' ;
  1316. vertytab rxt 'aspinj' 'MAILLAGE' ;
  1317. listentr . 'aspinj' = '' ;
  1318. vertytab rxt 'toitf' 'MAILLAGE' ;
  1319. listentr . 'toitf' = '' ;
  1320. vertytab rxt 'rod' 'FLOTTANT' ;
  1321. listentr . 'rod' = '' ;
  1322. vertytab rxt 'Cpd' 'FLOTTANT' ;
  1323. listentr . 'Cpd' = '' ;
  1324. 'FINS' ;
  1325. 'FINS' ;
  1326. 'FINS' ;
  1327.  
  1328. *
  1329. * TRECOMB possible si présence de H2, O2, N2 et VAPEUR
  1330. 'SI' TBT . 'TRECOMB' ;
  1331. LOG0 = TBT . 'TH2' 'ET' TBT . 'VAPEUR' 'ET'
  1332. TBT . 'TN2' 'ET' TBT . 'TO2' ;
  1333. NBREC = 'DIME' rxt . 'RECOMB' ;
  1334. 'SI' ('NON' LOG0) ;
  1335. 'MESS' ' ' ;
  1336. 'MESS' '*********************************************************' ;
  1337. 'MESS' ' ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ' ;
  1338. 'MESS' ' ' ;
  1339. 'MESS' ' ' ;
  1340. 'SI' ('NON' tbt . 'TH2')
  1341. 'MESS' 'RECOMBINEUR ==> H2 est obligatoire' ;
  1342. 'FINS' ;
  1343. 'SI' ('NON' tbt . 'TO2')
  1344. 'MESS' 'RECOMBINEUR ==> O2 est obligatoire' ;
  1345. 'FINS' ;
  1346. 'SI' ('NON' tbt . 'TN2')
  1347. 'MESS' 'RECOMBINEUR ==> N2 est obligatoire' ;
  1348. 'FINS' ;
  1349. 'SI' ('NON' tbt . 'VAPEUR')
  1350. 'MESS' 'RECOMBINEUR ==> H2O est obligatoire' ;
  1351. 'FINS' ;
  1352. 'MESS' ' ' ;
  1353. 'MESS' '*********************************************************' ;
  1354. 'ERRE' 5 ;
  1355. 'FINS' ;
  1356. 'FINS' ;
  1357.  
  1358. *
  1359. * Vérification des entrées de RXT
  1360. lindex = 'INDE' rxt ;
  1361. n = 'DIME' lindex ;
  1362. 'REPE' Bver n ;
  1363. tae = 'TYPE' lindex . &bver ;
  1364.  
  1365. 'SI' ('NON' ('EGA' tae 'MOT')) ;
  1366. 'MESS' ;
  1367. 'MESS' '*********************************************************' ;
  1368. 'MESS' ' ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ' ;
  1369. 'MESS' ' ' ;
  1370. 'MESS' ' ' ;
  1371. 'MESS' ' Un des indices de la table rxt n est pas de type MOT ' ;
  1372. 'MESS' ' ' ;
  1373. 'MESS' '*********************************************************' ;
  1374. 'ERRE' 21 ;
  1375. 'QUIT' EXECRXT ;
  1376. 'FINS' ;
  1377.  
  1378. 'SI' ('NON' ('EXIS' listentr lindex . &bver)) ;
  1379. 'MESS' ;
  1380. 'MESS' '*********************************************************' ;
  1381. 'MESS' ' ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ' ;
  1382. 'MESS' ' ' ;
  1383. 'MESS' ' ' ;
  1384. 'MESS' ' Il y a un indice non reconnu :' ' ' lindex . &bver ;
  1385. 'MESS' ' ' ;
  1386. 'MESS' '*********************************************************' ;
  1387. 'ERRE' 21 ;
  1388. 'QUIT' EXECRXT ;
  1389. 'FINS' ;
  1390.  
  1391. 'FIN' Bver ;
  1392.  
  1393. *
  1394. * Affichage des options surchargées
  1395. n = 'DIME' listand ;
  1396. 'SI' ('NON' ('EGA' n 0)) ;
  1397. 'MESS' ' ' ;
  1398. 'MESS' ' Liste des options surchargees :' ;
  1399. 'LIST' listand ;
  1400. 'SI' ('EXIS' listand 'THCO') ;
  1401. 'MESS' ' ' ;
  1402. 'MESS' 'Commentaire : le couplage fluide/paroi est implicite' ;
  1403. 'FINS' ;
  1404. 'MESS' ' ' ;
  1405. 'FINS' ;
  1406.  
  1407. *
  1408. * Vérification des compatibilités entre entrées
  1409.  
  1410. 'SI' (('EGA' TBT . 'ALGO' 'EFM1') 'ET' ('EGA' TBT . 'discr' 'QUAF')) ;
  1411. vertytab 'ERREUR' 'ERREUR'
  1412. ('CHAI' 'Options QUAF et EFM1 incompatibles');
  1413. 'FINS' ;
  1414.  
  1415.  
  1416. 'SI' ('EXIS' TBT 'MODTURB') ;
  1417. 'SI' (('EGA' TBT . 'MODTURB' 'KEPSILON')
  1418. 'ET' ('NON' ('EGA' TBT . 'ALGO' 'EFM1')));
  1419. vertytab 'ERREUR' 'ERREUR'
  1420. ('CHAI' 'Option EFM1 necessaire pour le modèle K-epsilon');
  1421. 'FINS' ;
  1422. 'FINS' ;
  1423.  
  1424.  
  1425. 'MESS' WWW ;
  1426. 'MESS' '----------- FIN DES INITIALISATIONS ET VERIFICATIONS ---------';
  1427. 'MESS' '----------------------- DEBUT DU CALCUL ----------------------';
  1428. 'MESS' WWW ;
  1429. 'MESS' ' ' ;
  1430.  
  1431. *-----------------------------------------------------------------------
  1432. *-----------------------------------------------------------------------
  1433. *-----------------------------------------------------------------------
  1434. * ------------- FIN DES INITIALISATIONS ET VERIFICATIONS ---------------
  1435. *-----------------------------------------------------------------------
  1436. *-----------------------------------------------------------------------
  1437. *-----------------------------------------------------------------------
  1438.  
  1439. 'SI' TPREPA ;
  1440. PREPAENC rxt TBT GEO TIC ;
  1441. 'FINS' ;
  1442. rxt . 'TBT' = TBT ;
  1443. GEO = rxt .'GEO' ;
  1444. tic = rxt . 'TIC' ;
  1445.  
  1446. vtf = GEO . 'vtf' ;
  1447. 'SI' TBT . 'THERMP' ;
  1448. $vtp = GEO . '$vtp' ;
  1449. $paroif = GEO . '$paroif' ;
  1450. paroif = GEO . 'paroif' ;
  1451. 'FINS' ;
  1452. Diag = 'DOMA' $vtf 'XXDIAGSI' ;
  1453. Volvtf = 'DOMA' $vtf 'VOLUME' ;
  1454. VTotal = GEO . 'VTotal' ;
  1455.  
  1456. 'MESS' ' ************* GEOMETRIE *********************' ;
  1457. 'MESS' ' **********************************************' ;
  1458. 'DOMA' $vtf 'IMPR' ;
  1459. 'SI' TBT . 'THERMP' ;
  1460. 'DOMA' $vtp 'IMPR' ;
  1461. 'FINS' ;
  1462.  
  1463. 'MESS' ' ************* DISCRETISATION *****************' ;
  1464. 'MESS' ' **********************************************' ;
  1465. 'MESS' ' Discr =' ' ' tbt . 'discr' ' ' 'Pression =' ' ' tbt . 'KPRE' ;
  1466. 'MESS' ' Algo =' ' ' algo ' ' 'Niveau impression =' ' ' nimpr ;
  1467. 'MESS' ' Pas de temps DT =' ' ' rxt . 'DT0' ;
  1468.  
  1469. 'MESS' ' **** PROPRIETES PHYSIQUES INITIALISATIONS ****' ;
  1470. 'MESS' ' **********************************************' ;
  1471.  
  1472. Tfm = 'EXTR' (tic . 'Tfm') ndl ;
  1473. Tkm = Tfm '+' 273.15 ;
  1474.  
  1475. *
  1476. * Initialisation et affichage des propriétés physiques
  1477. * (Cp (Tfm), Cv et Mu (Tkm))
  1478. Rgh2 = TBT . 'Rgh2' ;
  1479. Rghe = TBT . 'Rghe' ;
  1480. Rgo2 = TBT . 'Rgo2' ;
  1481. Rgn2 = TBT . 'Rgn2' ;
  1482. Rgco = TBT . 'Rgco' ;
  1483. Rgco2 = TBT . 'Rgco2' ;
  1484. Rgvap = TBT . 'Rgvap' ;
  1485. Rgair = TBT . 'Rgair' ;
  1486.  
  1487. Cph2 Cphe Cpo2 Cpn2 Cpco2 Cpco Cpair = CALCP Tfm ;
  1488. Cpvap = TBT . 'Cpvap' ;
  1489.  
  1490. Cvair = Cpair '-' Rgair ;
  1491. Cvvap = Cpvap '-' Rgvap ;
  1492. Cvhe = Cphe '-' Rghe ;
  1493. Cvh2 = Cph2 '-' Rgh2 ;
  1494. Cvo2 = Cpo2 '-' Rgo2 ;
  1495. Cvn2 = Cpn2 '-' Rgn2 ;
  1496. Cvco = Cpco '-' Rgco ;
  1497. Cvco2 = Cpco2 '-' Rgco2 ;
  1498. Cvair = Cpair '-' Rgair ;
  1499.  
  1500. Muh2 Muhe Muo2 Mun2 Muco2 Muco Muvap Muair = CALMU Tkm ;
  1501.  
  1502. Lv = TBT . 'Lv' ;
  1503.  
  1504. 'MESS' ' ***** Air ***** ' ;
  1505. 'MESS' '==> Cpair =' ' ' Cpair ' ' 'J/kg/K' ;
  1506. 'MESS' '==> Cvair =' ' ' Cvair ' ' 'J/kg/K' ;
  1507. 'MESS' '==> Rgair =' ' ' Rgair ' ' 'J/kg/K' ;
  1508.  
  1509. 'SI' TBT . 'VAPEUR' ;
  1510. 'MESS' ' ***** Vapeur H2o ***** ' ;
  1511. 'MESS' '==> Cpvap =' ' ' Cpvap ' ' 'J/kg/K' ;
  1512. 'MESS' '==> Cvvap =' ' ' Cvvap ' ' 'J/kg/K' ;
  1513. 'MESS' '==> Rgvap =' ' ' Rgvap ' ' 'J/kg/K' ;
  1514. 'MESS' '==> Lv =' ' ' Lv ' ' 'J/kg/K' ;
  1515. 'FINS' ;
  1516.  
  1517. 'SI' TBT . 'THE' ;
  1518. 'MESS' ' ***** He ***** ' ;
  1519. 'MESS' '==> Cphe =' ' ' Cphe ' ' 'J/kg/K' ;
  1520. 'MESS' '==> Cvhe =' ' ' Cvhe ' ' 'J/kg/K' ;
  1521. 'MESS' '==> Rghe =' ' ' Rghe ' ' 'J/kg/K' ;
  1522. 'FINS' ;
  1523.  
  1524. 'SI' TBT . 'TH2' ;
  1525. 'MESS' ' ***** H2 ***** ' ;
  1526. 'MESS' '==> Cph2 =' ' ' Cph2 ' ' 'J/kg/K' ;
  1527. 'MESS' '==> Cvh2 =' ' ' Cvh2 ' ' 'J/kg/K' ;
  1528. 'MESS' '==> Rgh2 =' ' ' Rgh2 ' ' 'J/kg/K' ;
  1529. 'FINS' ;
  1530.  
  1531. 'SI' TBT . 'TO2' ;
  1532. 'MESS' ' ***** O2 ***** ' ;
  1533. 'MESS' '==> Cpo2 =' ' ' Cpo2 ' ' 'J/kg/K' ;
  1534. 'MESS' '==> Cvo2 =' ' ' Cvo2 ' ' 'J/kg/K' ;
  1535. 'MESS' '==> Rgo2 =' ' ' Rgo2 ' ' 'J/kg/K' ;
  1536. 'FINS' ;
  1537.  
  1538. 'SI' TBT . 'TN2' ;
  1539. 'MESS' ' ***** N2 ***** ' ;
  1540. 'MESS' '==> Cpn2 =' ' ' Cpn2 ' ' 'J/kg/K' ;
  1541. 'MESS' '==> Cvn2 =' ' ' Cvn2 ' ' 'J/kg/K' ;
  1542. 'MESS' '==> Rgn2 =' ' ' Rgn2 ' ' 'J/kg/K' ;
  1543. 'FINS' ;
  1544.  
  1545. 'SI' TBT . 'TCO' ;
  1546. 'MESS' ' ***** CO ***** ' ;
  1547. 'MESS' '==> Cpco =' ' ' Cpco ' ' 'J/kg/K' ;
  1548. 'MESS' '==> Cvco =' ' ' Cvco ' ' 'J/kg/K' ;
  1549. 'MESS' '==> Rgco =' ' ' Rgco ' ' 'J/kg/K' ;
  1550. 'FINS' ;
  1551.  
  1552. 'SI' TBT . 'TCO2' ;
  1553. 'MESS' ' ***** CO2 ***** ' ;
  1554. 'MESS' '==> Cpco2 =' ' ' Cpco2 ' ' 'J/kg/K' ;
  1555. 'MESS' '==> Cvco2 =' ' ' Cvco2 ' ' 'J/kg/K' ;
  1556. 'MESS' '==> Rgco2 =' ' ' Rgco2 ' ' 'J/kg/K' ;
  1557. 'FINS' ;
  1558.  
  1559. ***'SI' TBT . 'TAIR' ;
  1560. 'MESS' ' ***** AIR ***** ' ;
  1561. 'MESS' '==> Cpair =' ' ' Cpair ' ' 'J/kg/K' ;
  1562. 'MESS' '==> Cvair =' ' ' Cvair ' ' 'J/kg/K' ;
  1563. 'MESS' '==> Rgair =' ' ' Rgair ' ' 'J/kg/K' ;
  1564. ***'FINS' ;
  1565.  
  1566. 'MESS' ' *************** ' ;
  1567. 'MESS' ' Diffusion browniene db = ' db ;
  1568. 'SI' TBT . 'THERMP' ;
  1569. 'SI' ('EGA' ('TYPE' tic . 'KHW') 'CHPOINT') ;
  1570. 'MESS' ' Coefficient d echange ECHAN (Min/Max)=' ' '
  1571. ('MINI' tic . 'KHW') ' ' ('MAXI' tic . 'KHW') ' ' 'W/m2/K' ;
  1572. 'SINO' ;
  1573. 'MESS' ' Coefficient d echange ECHAN=' ' ' tic . 'KHW' ' ' 'W/m2/K';
  1574. 'FINS' ;
  1575. 'FINS' ;
  1576.  
  1577. *
  1578. * Initialisation et affichage des bilans initiaux 0D/CFD
  1579.  
  1580. 'MESS' '*** Bilans initiaux 0D-MultiD ***' ;
  1581. 'MESS' '_____________________________________________'
  1582. '____________________' ;
  1583. 'MESS' '___Bilans 0D_________Bilans MultiD _____ Erreur Relative (%)';
  1584.  
  1585. Rhomn = 'EXTR' (tic . 'Rhomn') ndl ;
  1586. M0D = Rhomn '*' Vtotal ;
  1587. MMD = 'SOMT' (Diag '*' rxt . 'TIC' . 'RHO') ;
  1588.  
  1589. 'SI' TBT . 'VAPEUR' ;
  1590. Rhomv = 'EXTR' (tic . 'Rhomv') ndl ;
  1591. MV0D = Rhomv '*' Vtotal ;
  1592. MVMD = 'SOMT' (Diag '*' rxt . 'TIC' . 'ROVP') ;
  1593. Rhomvg = 'EXTR' (tic . 'Rhomvg') ndl ;
  1594. MVG0D = Rhomvg '*' Vtotal ;
  1595. MVGMD = 'SOMT' (Diag '*' rxt . 'TIC' . 'RVP') ;
  1596. 'FINS' ;
  1597. 'SI' TBT . 'THE' ;
  1598. Rhomhe = 'EXTR' (tic . 'Rhomhe') ndl ;
  1599. MHE0D = Rhomhe '*' Vtotal ;
  1600. MHEMD = 'SOMT' (Diag '*' rxt . 'TIC' . 'RHE') ;
  1601. 'FINS' ;
  1602. 'SI' TBT . 'TH2' ;
  1603. Rhomh2 = 'EXTR' (tic . 'Rhomh2') ndl ;
  1604. MH20D = Rhomh2 '*' Vtotal ;
  1605. MH2MD = 'SOMT' (Diag '*' rxt . 'TIC' . 'RH2') ;
  1606. 'FINS' ;
  1607. 'SI' TBT . 'TO2' ;
  1608. Rhomo2 = 'EXTR' (tic . 'Rhomo2') ndl ;
  1609. MO20D = Rhomo2 '*' Vtotal ;
  1610. MO2MD = 'SOMT' (Diag '*' rxt . 'TIC' . 'RO2') ;
  1611. 'FINS' ;
  1612. 'SI' TBT . 'TN2' ;
  1613. Rhomn2 = 'EXTR' (tic . 'Rhomn2') ndl ;
  1614. MN20D = Rhomn2 '*' Vtotal ;
  1615. MN2MD = 'SOMT' (Diag '*' rxt . 'TIC' . 'RN2') ;
  1616. 'FINS' ;
  1617. 'SI' TBT . 'TCO' ;
  1618. Rhomco = 'EXTR' (tic . 'Rhomco') ndl ;
  1619. MCO0D = Rhomco '*' Vtotal ;
  1620. MCOMD = 'SOMT' (Diag '*' rxt . 'TIC' . 'RCO') ;
  1621. 'FINS' ;
  1622. 'SI' TBT . 'TCO2' ;
  1623. Rhomco2 = 'EXTR' (tic . 'Rhomco2') ndl ;
  1624. MCO20D = Rhomco2 '*' Vtotal ;
  1625. MCO2MD = 'SOMT' (Diag '*' rxt . 'TIC' . 'RCO2') ;
  1626. 'FINS' ;
  1627. ***'SI' TBT . 'TAIR' ;
  1628. Rhomair = 'EXTR' (tic . 'Rhomair') ndl ;
  1629. MAIR0D = Rhomair '*' Vtotal ;
  1630. MAIRMD = 'SOMT' (Diag '*' rxt . 'TIC' . 'RAIR') ;
  1631. ***'FINS' ;
  1632.  
  1633. 'SI' ('EGA' ndl 1) ;
  1634. Cvm = 'EXTR' (tic . 'Cvm') ndl ;
  1635. 'SINO' ;
  1636. Cvm = 'EXTR' (tic . 'Cvm') (ndl '-' 1) ;
  1637. 'FINS' ;
  1638. Remn = 'EXTR' (tic . 'Remn') ndl ;
  1639. E0D = Remn ;
  1640. EMD = ('SOMT' (Diag '*' Cvm '*' rxt . 'TIC' . 'RHO' '*'
  1641. (rxt . 'TIC' . 'TF' '+' 273.15)) ) '/' Vtotal ;
  1642.  
  1643. 'MESS' ' Masse (kg)' ' ' M0D '_______' MMD '________'
  1644. (100. '*'(M0D '-' MMD) '/'M0D) ;
  1645. 'MESS' ' Energie (J/m3)' E0D '_______' EMD '________'
  1646. (100. '*' (E0D '-' EMD) '/' E0D) ;
  1647.  
  1648. 'SI' (TBT . 'VAPEUR' 'ET' ('NON' ('EGA' MV0D 0.0))) ;
  1649. 'MESS' ' M Vapeur(kg) ' MV0D '_______' MVMD '_______'
  1650. (100. '*' (MV0D '-' MVMD) '/' MV0D) ;
  1651. 'FINS' ;
  1652. 'SI' (TBT . 'THE' 'ET' ('NON' ('EGA' MHE0D 0.0))) ;
  1653. 'MESS' ' M Helium (kg) ' MHE0D '_______' MHEMD '_______'
  1654. (100. '*' (MHE0D '-' MHEMD) '/' MHE0D) ;
  1655. 'FINS' ;
  1656. 'SI' (TBT . 'TH2' 'ET' ('NON' ('EGA' MH20D 0.0))) ;
  1657. 'MESS' ' M Hydrogene (kg) ' MH20D '_______' MH2MD '_______'
  1658. (100. '*' (MH20D '-' MH2MD) '/' MH20D) ;
  1659. 'FINS' ;
  1660. 'SI' (TBT . 'TO2' 'ET' ('NON' ('EGA' MO20D 0.0))) ;
  1661. 'MESS' ' M Oxygene (kg) ' MO20D '_______' MO2MD '_______'
  1662. (100. '*' (MO20D '-' MO2MD) '/' MO20D) ;
  1663. 'FINS' ;
  1664. 'SI' (TBT . 'TN2' 'ET' ('NON' ('EGA' MN20D 0.0))) ;
  1665. 'MESS' ' M Azote (Kk) ' MN20D '_______' MN2MD '_______'
  1666. (100. '*' (MN20D '-' MN2MD) '/' MN20D) ;
  1667. 'FINS' ;
  1668. 'SI' (TBT . 'TCO' 'ET' ('NON' ('EGA' MCO0D 0.0))) ;
  1669. 'MESS' ' M CO (kg) ' MCO0D '_______' MCOMD '_______'
  1670. (100. '*' (MCO0D '-' MCOMD) '/' MCO0D) ;
  1671. 'FINS' ;
  1672. 'SI' (TBT . 'TCO2' 'ET' ('NON' ('EGA' MCO20D 0.0))) ;
  1673. 'MESS' ' M CO2 (kg) ' MCO20D '_______' MCO2MD '_______'
  1674. (100. '*' (MCO20D '-' MCO2MD) '/' MCO20D) ;
  1675. 'FINS' ;
  1676. ***'SI' (TBT . 'TAIR' 'ET' ('NON' ('EGA' MAIR0D 0.0))) ;
  1677. 'SI' ('NON' ('EGA' MAIR0D 0.0)) ;
  1678. 'MESS' ' M AIR (kg) ' MAIR0D '_______' MAIRMD '_______'
  1679. (100. '*' (MAIR0D '-' MAIRMD) '/' MAIR0D) ;
  1680. 'FINS' ;
  1681.  
  1682. 'MESS' '_____________________________________________'
  1683. '____________________' ;
  1684. 'SI' TBT . 'THERMP' ;
  1685. Emurn = 'EXTR' (tic . 'Emur') ndl ;
  1686. 'MESS' ' Energie Stockee Mur (J) ' Emurn ;
  1687. 'MESS' '_____________________________________________'
  1688. '____________________' ;
  1689. 'FINS' ;
  1690.  
  1691. 'MESS' ' ' ;
  1692. 'MESS' ' *** Divers **** ' ;
  1693. 'MESS' ' Dimension espace: ' idim ;
  1694. 'MESS' ' Nombre d elements/noeuds' ' ' ('NBEL' vtf) ' ' ('NBNO' vtf) ;
  1695.  
  1696. 'MESS' ' ' ;
  1697. 'MESS' ' *** Volumes' ;
  1698. 'MESS' ' VTotal=' VTotal ' ' 'm3' ;
  1699. 'SI' TBT . 'THERMP' ;
  1700. 'MESS' ' VTotal paroi =' GEO . 'VTotalp' ' '
  1701. 'm3 Sparoif =' GEO . 'Sparoif' ' ' 'm2' ;
  1702. 'FINS' ;
  1703. 'SI' TBT . 'TTIMP' ;
  1704. NBTIMP = 'DIME' rxt . 'TIMP' ;
  1705. itimp = 'INDE' rxt . 'TIMP' ;
  1706. 'REPE' BBTIMP NBTIMP ;
  1707. Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ;
  1708. 'MESS' ' Surface T imposee' ' ' (itimp . &BBTIMP) ' ' '=' ' '
  1709. Btimp . 'Smtpi' ' ' 'm2' ;
  1710. 'FIN' BBTIMP ;
  1711. 'FINS' ;
  1712. 'MESS' ' ************************************************************' ;
  1713.  
  1714. *----------------------------------------------------------
  1715. *----- BOUCLE PRINCIPALE DE RESOLUTION SUR LE NB ----------
  1716. *----- TOTAL DE PAS DE TEMPS A REALISER -------------------
  1717. *----------------------------------------------------------
  1718.  
  1719. *
  1720. * Initialisation du pas de temps
  1721. 'SI' ('NON' ('EXIS' tic 'DT')) ;
  1722. tic . 'DT' = rxt . 'DT0' ;
  1723. 'FINS' ;
  1724.  
  1725. *
  1726. * Initialisation pour le bilan de masse en vapeur
  1727. 'SI' TBT . 'VAPEUR' ;
  1728. 'SI' ('NON' ('EXIS' TIC 'Mcondm')) ;
  1729. tic . 'Mcondm' = 'PROG' 0. ;
  1730. 'FINS' ;
  1731. 'SI' ('NON' ('EXIS' TIC 'Qcm')) ;
  1732. tic . 'Qcm' = 'PROG' 0. ;
  1733. 'FINS' ;
  1734. 'SI' TBT . 'TPAROIF' ;
  1735. 'SI' ('NON' ('EXIS' TIC 'Mcondw')) ;
  1736. tic . 'Mcondw' = 'PROG' 0. ;
  1737. 'FINS' ;
  1738. 'SI' ('NON' ('EXIS' TIC 'Qcw')) ;
  1739. tic . 'Qcw' = 'PROG' 0. ;
  1740. 'FINS' ;
  1741. 'FINS' ;
  1742. 'SI' TBT . 'TTIMP' ;
  1743. NBTIMP = 'DIME' rxt . 'TIMP' ;
  1744. itimp = 'INDE' rxt . 'TIMP' ;
  1745. 'REPE' BBTIMP NBTIMP ;
  1746. Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ;
  1747. CQc1 = Btimp . 'Qc1' ;
  1748. 'SI' ('NON' ('EXIS' TIC CQc1)) ;
  1749. tic . CQc1 = 'PROG' 0. ;
  1750. 'FINS' ;
  1751. CMcond1 = Btimp . 'Mcond1' ;
  1752. 'SI' ('NON' ('EXIS' tic CMcond1)) ;
  1753. tic . CMcond1 = 'PROG' 0. ;
  1754. 'FINS' ;
  1755. 'FIN' BBTIMP ;
  1756. 'FINS' ;
  1757. 'SI' TBT . 'TECHANP' ;
  1758. 'SI' ('NON' ('EXIS' TIC 'Mcond0')) ;
  1759. tic . 'Mcond0' = 'PROG' 0. ;
  1760. 'FINS' ;
  1761. 'SI' ('NON' ('EXIS' TIC 'Qc0')) ;
  1762. tic . 'Qc0' = 'PROG' 0. ;
  1763. 'FINS' ;
  1764. 'FINS' ;
  1765. 'FINS' ;
  1766.  
  1767. *
  1768. * Initialisation systématique à 0. pour tous les constituants
  1769. * (correction de masse, densité, fraction massique, densité moyenne)
  1770. *dRhoair= 0. ;
  1771. dRhov = 0. ;
  1772. dRhohe = 0. ;
  1773. dRhoh2 = 0. ;
  1774. dRhoo2 = 0. ;
  1775. dRhon2 = 0. ;
  1776. dRhoco = 0. ;
  1777. dRhoco2= 0. ;
  1778. *
  1779. *rair = 0. ;
  1780. rvp = 0. ;
  1781. rhe = 0. ;
  1782. rh2 = 0. ;
  1783. ro2 = 0. ;
  1784. rn2 = 0. ;
  1785. rco = 0. ;
  1786. rco2 = 0. ;
  1787. *
  1788. *Yair = 0. ;
  1789. Yvap = 0. ;
  1790. Yhe = 0. ;
  1791. Yh2 = 0. ;
  1792. Yo2 = 0. ;
  1793. Yn2 = 0. ;
  1794. Yco = 0. ;
  1795. Yco2 = 0. ;
  1796. *
  1797. Rmvn = 0. ;
  1798. Rmvgn = 0. ;
  1799. Rmliqn = 0. ;
  1800. Rmbron = 0. ;
  1801. Rmhen = 0. ;
  1802. Rmh2n = 0. ;
  1803. Rmn2n = 0. ;
  1804. Rmo2n = 0. ;
  1805. Rmcon = 0. ;
  1806. Rmco2n = 0. ;
  1807. *
  1808. drclair = 0. ;
  1809. drclvp = 0. ;
  1810. drclhe = 0. ;
  1811. drclh2 = 0. ;
  1812. drclo2 = 0. ;
  1813. drcln2 = 0. ;
  1814. drclco = 0. ;
  1815. drclco2 = 0. ;
  1816. *
  1817. Emurn = 0. ;
  1818. Mcondmn = 0. ;
  1819. Mliqn = 0. ;
  1820. *
  1821. * Valeurs moyennes au début de pas de temps
  1822. Rgpn = tic . 'Rgp' ;
  1823. Tfn = tic . 'TF' ;
  1824. Tkn = Tfn '+' 273.15 ;
  1825. Rhon = tic . 'RHO' ;
  1826. *
  1827. ndl = 'DIME' tic . 'LTPS' ;
  1828. Cvmn = 'EXTR' tic . 'Cvm' ndl ;
  1829. Gamn = 'EXTR' tic . 'Gamm' ndl ;
  1830. Cpmn = 'EXTR' tic . 'Cpm' ndl ;
  1831. Ptmn = 'EXTR' tic . 'PT' ndl ;
  1832. Rhomn = 'EXTR' tic . 'Rhomn' ndl ;
  1833. Remn = 'EXTR' tic . 'Remn' ndl ;
  1834. Rmairn = 'EXTR' tic . 'Rhomair' ndl ;
  1835. *
  1836. 'SI' TBT . 'VAPEUR' ;
  1837. Rmvn = 'EXTR' tic . 'Rhomv' ndl ;
  1838. Rmvgn = 'EXTR' tic . 'Rhomvg' ndl ;
  1839. Mcondmn = 'EXTR' tic . 'Mcondm' ndl ;
  1840. 'SI' TBT . 'CONDMAS' ;
  1841. Rmliqn = 'EXTR' tic . 'Rliqm' ndl ;
  1842. Rmbron = 'EXTR' tic . 'Rbrom' ndl ;
  1843. 'FINS' ;
  1844. 'SI' ('EXIS' tic 'drclvp') ;
  1845. drclvp = tic . 'drclvp' ;
  1846. 'FINS' ;
  1847. 'FINS' ;
  1848. 'SI' TBT . 'THE' ;
  1849. Rmhen = 'EXTR' tic . 'Rhomhe' ndl ;
  1850. 'SI' ('EXIS' tic 'drclhe') ;
  1851. drclhe = tic . 'drclhe' ;
  1852. 'FINS' ;
  1853. 'FINS' ;
  1854. 'SI' TBT.'TH2' ;
  1855. Rmh2n = 'EXTR' tic . 'Rhomh2' ndl ;
  1856. 'SI' ('EXIS' tic 'drclh2') ;
  1857. drclh2 = tic . 'drclh2' ;
  1858. 'FINS' ;
  1859. 'FINS' ;
  1860. 'SI' TBT.'TO2' ;
  1861. Rmo2n = 'EXTR' tic . 'Rhomo2' ndl ;
  1862. 'SI' ('EXIS' tic 'drclo2') ;
  1863. drclo2 = tic . 'drclo2' ;
  1864. 'FINS' ;
  1865. 'FINS' ;
  1866. 'SI' TBT.'TN2' ;
  1867. Rmn2n = 'EXTR' tic . 'Rhomn2' ndl ;
  1868. 'SI' ('EXIS' tic 'drcln2') ;
  1869. drcln2 = tic . 'drcln2' ;
  1870. 'FINS' ;
  1871. 'FINS' ;
  1872. 'SI' TBT.'TCO' ;
  1873. Rmcon = 'EXTR' tic . 'Rhomco' ndl ;
  1874. 'SI' ('EXIS' tic 'drclco') ;
  1875. drclco = tic . 'drclco' ;
  1876. 'FINS' ;
  1877. 'FINS' ;
  1878. 'SI' TBT.'TCO2' ;
  1879. Rmco2n = 'EXTR' tic . 'Rhomco2' ndl ;
  1880. 'SI' ('EXIS' tic 'drclco2') ;
  1881. drclco2 = tic . 'drclco2' ;
  1882. 'FINS' ;
  1883. 'FINS' ;
  1884. *
  1885. 'SI' TBT . 'THERMP' ;
  1886. Emurn = 'EXTR' tic . 'Emur' ndl ;
  1887. 'FINS' ;
  1888. Qcn = 'EXTR' tic . 'Qc' ndl ;
  1889. Econdn = 'EXTR' tic . 'Econd' ndl ;
  1890. Econvn = 'EXTR' tic . 'Econv' ndl ;
  1891. Hcondn = 'EXTR' tic . 'Hcond' ndl ;
  1892. Mlq = 0. ;
  1893. Mbron = Rmbron '*' Vtotal ;
  1894. *
  1895. drhpar = 0. ;
  1896. *
  1897. *
  1898. *>> Boucle en temps
  1899. * On va de (n-1) à (n)
  1900. *
  1901. *
  1902. 'REPE' BCLTPS nbit ;
  1903.  
  1904. Tknm = Tkn ;
  1905. Tfnm = Tfn ;
  1906. Rhonm = Rhon;
  1907. MaxRho = ('MAXI' Rhonm) '*' 10. ;
  1908. *
  1909. *>>1 Gestion de la fréquence de préconditionnement
  1910. 'SI' ('OU' ('EGA' &BCLTPS 1) ('MULT' &BCLTPS RXT . 'FRPREC')) ;
  1911. calprec = VRAI ;
  1912. 'SINO' ;
  1913. calprec = FAUX ;
  1914. 'FINS' ;
  1915. 'SI' ('EGA' nbit 0) ;
  1916. 'QUIT' BCLTPS ;
  1917. 'FINS' ;
  1918. *>>1 Gestion de la fréquence de préconditionnement FIN
  1919. *
  1920.  
  1921. *
  1922. *>>2 Gestion du rang du pas de temps, de sa valeur, de la liste des temps
  1923. tic . 'NUPADT' = tic . 'NUPADT' '+' 1 ;
  1924. ndl = 'DIME' tic . 'LTPS' ;
  1925. Tps = tic . 'Tps' '+' tic . 'DT' ;
  1926. tic . 'Tps' = Tps ;
  1927. tic . 'LTPS' = tic . 'LTPS' 'ET' ('PROG' Tps ) ;
  1928. *
  1929. 'SI' ( TBT . 'IMPR' '>EG' 1) ;
  1930. 'MESS' '*************************************************************'
  1931. '***********************' ;
  1932. 'MESS' '*************************************************************'
  1933. '***********************' ;
  1934. 'MESS' '==> Pas de temps ' tic . 'NUPADT'
  1935. ' Temps = ' tps 'Secondes Pas de temps : DT= ' tic . 'DT' ;
  1936. 'FINS' ;
  1937. *>>2 Gestion du rang du pas de temps, etc FIN
  1938. *
  1939.  
  1940. *
  1941. *>>3 Gestion des E/S
  1942. *
  1943. *FD
  1944. * Il n'y a pas de Sorties et de Breches évanescentes contrairement aux
  1945. * anciennes syntaxe de Breche, Breche2 et Breche3 (Tbrechei=FAUX et tic
  1946. * . 'Qj' existe) où on complète par 0.
  1947. *FD
  1948. *
  1949. * Accumulation du débit massique (en kg/s) de chaque espèce xxx dans qoxxx
  1950. Qovp = 0. ; Qlovp = 0. ;
  1951. Qohe = 0. ;
  1952. Qoh2 = 0. ;
  1953. Qon2 = 0. ;
  1954. Qoo2 = 0. ;
  1955. Qoco = 0. ;
  1956. Qoco2 = 0. ;
  1957. * Débits de vapeur et de liquide pour les bilans (Minj et Mrest)
  1958. Qeau = 0. ;
  1959. Qlj = 0. ;
  1960. * Accumulation du débit massique dans Qtot (kg/s), du débit volumique
  1961. * dans srcs (m3/s), du débit enthalpique dans drh (J/s)
  1962. Qtot = 0. ;
  1963. drh = 0. ;
  1964. srcs = 0. ;
  1965. hmn = 0. ;
  1966. *
  1967. 'SI' TBT . 'TTsortie' ;
  1968. NBR = 'DIME' rxt . 'Sorties' ;
  1969. ibr = 'INDE' rxt . 'Sorties' ;
  1970. 'REPE' BBRS NBR ;
  1971. Qeau Qlj Qair Qhe Qh2 Qo2 Qn2 Qco Qco2
  1972. = broche 'KAS1' &BBRS rxt ;
  1973. Qovp = Qovp '+' Qeau ; Qlovp = Qlovp '+' Qlj ;
  1974. Qohe = Qohe '+' Qhe ;
  1975. Qoh2 = Qoh2 '+' Qh2 ;
  1976. Qon2 = Qon2 '+' Qn2 ;
  1977. Qoo2 = Qoo2 '+' Qo2 ;
  1978. Qoco = Qoco '+' Qco ;
  1979. Qoco2 = Qoco2 '+' Qco2 ;
  1980. 'FIN' BBRS ;
  1981. 'FINS' ;
  1982.  
  1983. 'SI' TBT . 'TTsortie' ;
  1984. NBR = 'DIME' rxt . 'Sorties' ;
  1985. ibr = 'INDE' rxt . 'Sorties' ;
  1986. 'REPE' BBRS NBR ;
  1987. Rvapj Rairj Rhej Rh2j Ro2j Rn2j Rco2j Rcoj Rgj Hj Ej
  1988. Tj aex Qj Roj gj guj unvf0 src = broche 'KAS2' &BBRS rxt ;
  1989. asrc = Roj '*' ('ABS' src) ;
  1990. Qtot = Qtot '+' (aex '*' asrc) ;
  1991. drh = drh '+' (Qj '*' (Hj - Hmn) '*' aex) ;
  1992. srcs = srcs '+' (aex '*' src) ;
  1993.  
  1994. Briches = rxt . 'Sorties' . (ibr . &BBRS) ;
  1995. 'SI' ('EXIS' Briches 'Qj') ;
  1996. Briches . 'guj' = Briches . 'guj' 'ET' ('PROG' guj) ;
  1997. Briches . 'Qj' = Briches . 'Qj' 'ET' ('PROG' asrc) ;
  1998. 'FINS' ;
  1999. 'FIN' BBRS ;
  2000. 'FINS' ;
  2001.  
  2002. 'SI' TBT . 'TTbreche' ;
  2003. Qeau Qlj Qair Qhe Qh2 Qo2 Qn2 Qco Qco2 Qtotb srcb drhb = bruche rxt ;
  2004. Qovp = Qovp '+' Qeau ; Qlovp = Qlovp '+' Qlj ;
  2005. Qohe = Qohe '+' Qhe ;
  2006. Qoh2 = Qoh2 '+' Qh2 ;
  2007. Qon2 = Qon2 '+' Qn2 ;
  2008. Qoo2 = Qoo2 '+' Qo2 ;
  2009. Qoco = Qoco '+' Qco ;
  2010. Qoco2 = Qoco2 '+' Qco2 ;
  2011. Qtot = Qtot '+' Qtotb ;
  2012. drh = drh '+' drhb ;
  2013. srcs = srcs '+' srcb ;
  2014. 'FINS' ;
  2015. *
  2016. Qeau = Qovp ;
  2017. Qlj = Qlovp ;
  2018. *>>3 Gestion des E/S FIN
  2019. *
  2020.  
  2021. *
  2022. *>>4 Gestion des sources diffuses
  2023. * Accumulation du débit massique (en kg/s) de chaque espèce xxx dans qoxxx
  2024. 'SI' TBT . 'TFIMP' ;
  2025. NBFIMP = 'DIME' rxt . 'XFIMP' ;
  2026. ifimp = 'INDE' rxt . 'XFIMP' ;
  2027. 'REPE' BBFIMP NBFIMP ;
  2028. Bfimp = rxt . 'XFIMP' . (ifimp . &BBFIMP) ;
  2029. Smfpi = Bfimp . 'Smfpi' ;
  2030.  
  2031. CKqt = Bfimp . 'Kqt' ;
  2032. qft = 'IPOL' tps Bfimp . 't' Bfimp . 'qt' ;
  2033. tic . CKqt = qft '/' Smfpi ;
  2034.  
  2035. CKqeau = Bfimp . 'Kqeau' ;
  2036. qfeau = 'IPOL' tps Bfimp . 't' Bfimp . 'qeau' ;
  2037. tic . CKqeau = qfeau '/' Smfpi ;
  2038.  
  2039. CKqair = Bfimp . 'Kqair' ;
  2040. qfair = 'IPOL' tps Bfimp . 't' Bfimp . 'qair' ;
  2041. tic . CKqair = qfair '/' Smfpi ;
  2042.  
  2043. CKqhe = Bfimp . 'Kqhe' ;
  2044. qfhe = 'IPOL' tps Bfimp . 't' Bfimp . 'qhe' ;
  2045. tic . CKqhe = qfhe '/' Smfpi;
  2046.  
  2047. CKqh2 = Bfimp . 'Kqh2' ;
  2048. qfh2 = 'IPOL' tps Bfimp . 't' Bfimp . 'qh2' ;
  2049. tic . CKqh2 = qfh2 '/' Smfpi ;
  2050.  
  2051. CKqn2 = Bfimp . 'Kqn2' ;
  2052. qfn2 = 'IPOL' tps Bfimp . 't' Bfimp . 'qn2' ;
  2053. tic . CKqn2 = qfn2 '/' Smfpi ;
  2054.  
  2055. CKqo2 = Bfimp . 'Kqo2' ;
  2056. qfo2 = 'IPOL' tps Bfimp . 't' Bfimp . 'qo2' ;
  2057. tic . CKqo2 = qfo2 '/' Smfpi ;
  2058.  
  2059. CKqco = Bfimp . 'Kqco' ;
  2060. qfco = 'IPOL' tps Bfimp . 't' Bfimp . 'qco' ;
  2061. tic . CKqco = qfco '/' Smfpi ;
  2062.  
  2063. CKqco2 = Bfimp . 'Kqco2' ;
  2064. qfco2 = 'IPOL' tps Bfimp . 't' Bfimp . 'qco2' ;
  2065. tic . CKqco2 = qfco2 '/' Smfpi ;
  2066.  
  2067. Qovp = Qovp '+' Qfeau ;
  2068. Qohe = Qohe '+' Qfhe ;
  2069. Qoh2 = Qoh2 '+' Qfh2 ;
  2070. Qon2 = Qon2 '+' Qfn2 ;
  2071. Qoo2 = Qoo2 '+' Qfo2 ;
  2072. Qoco = Qoco '+' Qfco ;
  2073. Qoco2 = Qoco2 '+' Qfco2 ;
  2074.  
  2075. 'FIN' BBFIMP ;
  2076. 'FINS';
  2077. *>>4 Gestion des sources diffuses FIN
  2078. *
  2079.  
  2080. *
  2081. *>>5 Gestion du flux de chaleur en paroi
  2082. * phi = h(t)(Tg-Tw(t)), mise à jour de Tw(t) et [h si h donné]
  2083. *FD
  2084. * (h(t) par une PROCPERSO ou la condensation en paroi)
  2085. *FD
  2086. 'SI' TBT . 'TTIMP' ;
  2087. NBTIMP = 'DIME' rxt . 'TIMP' ;
  2088. itimp = 'INDE' rxt . 'TIMP' ;
  2089. 'REPE' BBTIMP NBTIMP ;
  2090. Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ;
  2091. CTBP1 = Btimp . 'TBP1' ;
  2092. CKH1 = Btimp . 'KH1' ;
  2093. tic . CTBP1 = 'IPOL' tps Btimp . 't' Btimp . 'TIMP' ;
  2094. 'SI' ('NON' ((TBT . 'VAPEUR') 'ET' ('EXIS' tic CKH1))) ;
  2095. tic . CKH1 = Btimp . 'ECHAN' ;
  2096. 'FINS' ;
  2097. Btimp . 'Ltbpi'
  2098. = Btimp . 'Ltbpi' 'ET' ('PROG' tic . (Btimp . 'TBP1')) ;
  2099. 'FIN' BBTIMP ;
  2100. 'FINS' ;
  2101.  
  2102. 'SI' TBT . 'TECHANP' ;
  2103. 'SI' ('NON' ('EXIS' TIC 'TBP0')) ;
  2104. tic . 'TBP0' = 'KCHT' RXT . 'GEO' . '$mtp0'
  2105. 'SCAL' 'SOMMET' rxt . 'ECHANP' . 'TMUR' ;
  2106. 'FINS' ;
  2107. 'SI' ('NON' ((TBT . 'VAPEUR') 'ET' ('EXIS' tic 'KH0'))) ;
  2108. tic . 'KH0' = 'KCHT' RXT . 'GEO' . '$mtp0'
  2109. 'SCAL' 'CENTRE' rxt . 'ECHANP' . 'ECHAN' ;
  2110. 'FINS' ;
  2111. 'FINS' ;
  2112. *>>5 Gestion du flux de chaleur en paroi FIN
  2113. *
  2114.  
  2115. *
  2116. *>>6 Traitement de l'aspersion
  2117.  
  2118. 'SI' TBT . 'ASPER ' ;
  2119. t = rxt.'scenasp'.'t' ;
  2120. vzinj = 'IPOL' tps t (rxt.'scenasp'.'vzinj') ;
  2121. xdinj = 'IPOL' tps t (rxt.'scenasp'.'xdinj') ;
  2122. tdinj = 'IPOL' tps t (rxt.'scenasp'.'tdinj') ;
  2123. ddinj = 'IPOL' tps t (rxt.'scenasp'.'ddinj') ;
  2124. $aspinj = GEO.'$aspinj' ;
  2125. $toitf = GEO.'$toitf' ;
  2126. * vnj = 'KCHT' $aspinj 'VECT' 'SOMMET' 'COMP'
  2127. * ('MOTS' 1VN 2VN 3VN) (0.0 0.0 vzinj) ;
  2128. 'SI' (DIM3D) ;
  2129. vnj = 'KCHT' $aspinj 'VECT' 'SOMMET' 'COMP'
  2130. ('MOTS' 1VN 2VN 3VN) (0.0 0.0 vzinj) ;
  2131. 'SINO' ;
  2132. *--------------------------------------------------------------
  2133. * modif Tojo 12/07/2007 *
  2134. *
  2135. * mise en place de vecteurs inclinés conformément
  2136. * à l'angle d'ouverture du jet
  2137. * ici l'inclinaison est fixée à 30°
  2138. * une prochaine évolution pourrait consister à mettre
  2139. * l'angle d'ouverture comme donnée d'entrée
  2140. * dans la table scenasp
  2141. *
  2142. *--------------------------------------------------------------
  2143. *
  2144. cc1 = coor 1 rxt.'aspinj' ;
  2145. z0 = (sin(300. '*' cc1)) '*' ((cos(300. '*' cc1)) '**' (-1.0));
  2146. z0 = z0 '*' (vzinj '*' -1.) ;
  2147. z0 = chan attribut z0 nature diffus;
  2148. z1 = z0 '*' 0. ;
  2149. ux0 = nomc '1VN' z0 ;
  2150. z1 = z1 '+' vzinj;
  2151. z1 = chan attribut z1 nature diffus;
  2152. uy0 = nomc '2VN' z1 ;
  2153. vnj1 = ux0 et uy0;
  2154. vnj = 'KCHT' $aspinj 'VECT' 'SOMMET' 'COMP'
  2155. ('MOTS' '1VN' '2VN') vnj1 ;
  2156. *
  2157. *--------------------------------------------------------------
  2158. 'FINS' ;
  2159. *--------------------fin modif Tojo Juillet 2007---------------
  2160.  
  2161. xdj = 'KCHT' $aspinj 'SCAL' 'SOMMET' 'COMP'
  2162. ('MOT' 'XD') xdinj ;
  2163. tdj = 'KCHT' $aspinj 'SCAL' 'SOMMET' 'COMP'
  2164. ('MOT' 'TD') tdinj ;
  2165. ddj = 'KCHT' $toitf 'SCAL' 'SOMMET' 'COMP'
  2166. ('MOT' 'DD') ddinj ;
  2167. 'FINS';
  2168. *>>6 Traitement de l'aspersion FIN
  2169. *
  2170.  
  2171. *
  2172. *>>7 Initialisation aux valeurs de début de pas de temps (n-1)
  2173.  
  2174. Rgpnm = Rgpn ;
  2175. Cvmnm = Cvmn ;
  2176. Gamnm = Gamn ;
  2177. Cpmnm = Cpmn ;
  2178.  
  2179. Ptmnm = Ptmn ;
  2180. Rhomnm = Rhomn ;
  2181.  
  2182. Remnm = Remn ;
  2183. Rmairnm = Rmairn ;
  2184. Rmvnm = Rmvn ;
  2185. Rmvgnm = Rmvgn ;
  2186. Rmliqnm = Rmliqn ;
  2187. Rmbronm = Rmbron ; Mbronm = Mbron ;
  2188. Rmhenm = Rmhen ;
  2189. Rmh2nm = Rmh2n ;
  2190. Rmn2nm = Rmn2n ;
  2191. Rmo2nm = Rmo2n ;
  2192. Rmconm = Rmcon ;
  2193. Rmco2nm = Rmco2n ;
  2194. Emurnm = Emurn ;
  2195.  
  2196. 'SI' TBT.'ASPER ' ;
  2197. Qasp = 'EXTR' (tic.'Qaspe') ndl ;
  2198. Easp = 'EXTR' (tic.'Easpe') ndl ;
  2199. Hasp = 'EXTR' (tic.'Haspe') ndl ;
  2200. 'SINO' ;
  2201. Qasp = 0.0 ;
  2202. Easp = 0.0 ;
  2203. Hasp = 0.0 ;
  2204. 'FINS' ;
  2205.  
  2206. Qcnm = Qcn ;
  2207. Econdnm = Econdn ;
  2208. Econvnm = Econvn ;
  2209. Hcondnm = Hcondn ;
  2210.  
  2211. MinjT = 'EXTR' tic . 'Minj' ndl ;
  2212. McondT = 'EXTR' tic . 'Mcond' ndl ;
  2213. Mcondmnm = Mcondmn ;
  2214.  
  2215. 'SI' TBT . 'VAPEUR' ;
  2216. 'SI' TBT . 'TPAROIF' ;
  2217. McondTw = 'EXTR' tic . 'Mcondw' ndl ;
  2218. 'FINS' ;
  2219. * FD : Ne sert a rien
  2220. 'SI' TBT . 'TTIMP' ;
  2221. NBTIMP = 'DIME' rxt . 'TIMP' ;
  2222. itimp = 'INDE' rxt . 'TIMP' ;
  2223. 'REPE' BBTIMP NBTIMP ;
  2224. Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ;
  2225. CMcond1 = Btimp . 'Mcond1' ;
  2226. McondT1 = 'EXTR' tic . CMcond1 ndl ;
  2227. 'FIN' BBTIMP ;
  2228. 'FINS' ;
  2229. 'SI' TBT . 'TECHANP' ;
  2230. McondT0 = 'EXTR' tic . 'Mcond0' ndl ;
  2231. 'FINS' ;
  2232. * FD : Ne sert a rien
  2233. 'FINS' ;
  2234. MrestT = 'EXTR' tic . 'Mrest' ndl ;
  2235. *>>7 Initialisation au début de pas de temps (n-1)FIN
  2236. *
  2237.  
  2238. *
  2239. *>>8 Initialisation des champs variables pour TF
  2240. 'SI' TBT . 'THERMP' ;
  2241. tic . 'KHEW' = tic . 'KHW' / (Rhomnm '*' Cpmnm) ;
  2242. tic . 'LHEW' = -1.0 * tic . 'KHEW' ;
  2243. tic . 'LHW' = -1.0 * tic . 'KHW' ;
  2244. 'SI' ('NEG' ('TYPE' tic . 'KHW') 'FLOTTANT') ;
  2245. 'SI' tbt . 'THERCO' ;
  2246. tic . 'KHEW' = 'KCHT' $paroif 'SCAL' 'SOMMET' tic . 'KHEW' ;
  2247. tic . 'LHEW' = 'KCHT' $paroif 'SCAL' 'SOMMET' tic . 'LHEW' ;
  2248. tic . 'LHW' = 'KCHT' $paroif 'SCAL' 'SOMMET' tic . 'LHW' ;
  2249. 'SINO' ;
  2250. tic . 'KHEW' = 'KCHT' $paroif 'SCAL' 'CENTRE' tic . 'KHEW' ;
  2251. tic . 'LHEW' = 'KCHT' $paroif 'SCAL' 'CENTRE' tic . 'LHEW' ;
  2252. 'FINS' ;
  2253. 'FINS' ;
  2254. 'FINS' ;
  2255.  
  2256. 'SI' TBT . 'TTIMP' ;
  2257. NBTIMP = 'DIME' rxt . 'TIMP' ;
  2258. itimp = 'INDE' rxt . 'TIMP' ;
  2259. 'REPE' BBTIMP NBTIMP ;
  2260. Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ;
  2261. CKHE1 = Btimp . 'KHE1' ;
  2262. CKH1 = Btimp . 'KH1' ;
  2263. tic . CKHE1 = tic . CKH1 '/' (Rhomnm '*' Cpmnm) ;
  2264. 'FIN' BBTIMP ;
  2265. 'FINS';
  2266.  
  2267. 'SI' TBT . 'TECHANP' ;
  2268. tic . 'KHE0' = tic . 'KH0' '/' (Rhomnm '*' Cpmnm) ;
  2269. 'FINS';
  2270. *>>8 Initialisation des champs variables pour TF FIN
  2271. *
  2272.  
  2273.  
  2274. *
  2275. *>>10 Gestion des recombineurs :
  2276. *
  2277. * Bilan 0D : Débit enthalpique (drhpar) et bilans de masse à cause de la
  2278. * combustion et de la décomposition de l'air en N2 et O2. Comme Qin=Qout
  2279. * aucune variation globale de la masse globale.
  2280. *
  2281. * Les conditions aux limites sont stockées dans rxt . 'RECOMB' . indice
  2282. * pour la vitesse et les densités partielles.
  2283. 'SI' TBT . 'TRECOMB' ;
  2284. QO_H2p QO_O2p QO_H2Op QO_N2p drhpar = MDRECOMB RXT ;
  2285. 'SI' TBT . 'VAPEUR' ;
  2286. Qovp = Qovp '+' QO_H2Op ;
  2287. 'FINS' ;
  2288. 'SI' TBT . 'TH2' ;
  2289. Qoh2 = Qoh2 '+' QO_H2p ;
  2290. 'FINS' ;
  2291. 'SI' TBT . 'TN2' ;
  2292. Qon2 = Qon2 '+' QO_N2p ;
  2293. 'FINS' ;
  2294. 'SI' TBT . 'TO2' ;
  2295. Qoo2 = Qoo2 '+' QO_O2p ;
  2296. 'FINS' ;
  2297. 'FINS' ;
  2298. *>>10 Gestion des recombineurs FIN
  2299. *
  2300.  
  2301. *
  2302. *>>11 Avancement et stockage des grandeurs moyennes 0D au temps (n)
  2303. * à partir de l'intégrale des conditions aux limites
  2304. * (E/S, parois, PAR)
  2305. drh = drh '-' (Econvnm '-' Easp) '-' (Hcondnm '-' Hasp) '+' drhpar ;
  2306. Qtot = Qtot '+' Qasp '-' Qcnm ;
  2307.  
  2308. 'MESS' ' Debit condensation Fin pas de temps precedent Qcnm=' Qcnm ;
  2309. 'MESS' ' Etot ' (Econvnm '-' Easp)
  2310. ' Htot ' (Hcondnm '-' Hasp)
  2311. ' drh=' drh ;
  2312.  
  2313. *
  2314. *>>11.1 Calcul par bilan 0D de Rhomn et Remn au temps (n)
  2315. *FD
  2316. *WARNING : On suppose que la masse est constante en ouvert
  2317. *WARNING : et Remn = Rho(n-1) Cv(n-1) Tk(n-1) en ouvert
  2318. *'SI' TBT . 'Tsortie' ;
  2319. * Rhomn = Rhomnm ;
  2320. * Remn = ('SOMT' (Diag * Rhonm * cvmnm * Tknm)) '/' VTotal ;
  2321. * tic . 'Rhomn' = tic . 'Rhomn' 'ET' ('PROG' Rhomn) ;
  2322. * tic . 'Remn' = tic . 'Remn' 'ET' ('PROG' Remn) ;
  2323. *'SINO' ;
  2324. Rhomn = 'MAXI' ('PROG' 0.
  2325. (Rhomnm '+' (tic . 'DT' '*' Qtot '/' VTotal))) ;
  2326. *DEBUG
  2327. *'MESS' 'DEBUG Rhomnm Qtot Rhomn' ;
  2328. *'MESS' rhomnm ' ' (rhomnm '*' Vtotal) ;
  2329. *'MESS' qtot ' ' (tic . 'DT' '*' Qtot) ;
  2330. *'MESS' rhomn ' ' (rhomn '*' Vtotal) ;
  2331. *DEBUG
  2332. Remn = 'MAXI' ('PROG' 0.
  2333. (Remnm '+' (tic . 'DT' '*' drh '/' VTotal)));
  2334. 'MESS' 'VERIF: densite et energie moyennes au pas de temps (n)' ;
  2335. 'MESS' 'VERIF: &BCLTPS : Rhomn=' Rhomn ' ' 'Remn=' Remn ;
  2336. *'FINS' ;
  2337. *>>11.1 Calcul Rhomn et Remn FIN
  2338. *
  2339.  
  2340. *
  2341. *>>11.2 Calcul de l'énergie par condensation (il manque la convection)
  2342. * WARNING : Lorsque Lv dépendra de Tw on ne pourra pas
  2343. 'SI' TBT.'THERMP' ;
  2344. Emurn = Emurnm '+' ( tic . 'DT' '*' Qcnm '*' TBT . 'Lv') ;
  2345. tic . 'Emur' = tic . 'Emur' 'ET' ('PROG' Emurn) ;
  2346. 'FINS' ;
  2347. *>>11.2 Calcul de l'énergie par condensation (il manque la convection)
  2348. *
  2349.  
  2350. *
  2351. *>>11.3 Calcul par bilan 0D des densités moyennes au temps (n)
  2352. *FD
  2353. *WARNING Pourquoi s'intéresser au brouillard en suspension ?
  2354. *WARNING C'est bien Rmbronm car le brouillard est en (n-1)
  2355. *FD
  2356. Rmairn = Rhomn ;
  2357. 'SI' TBT . 'VAPEUR' ;
  2358. Rmvgn = 'MAXI' ('PROG' 0.
  2359. (Rmvgnm '+' (tic . 'DT' '*' (Qovp '-' Qcnm '+' Qasp) '/' VTotal ))) ;
  2360. Rmvn = Rmvgn '-' Rmbronm ;
  2361. Rmairn = Rmairn '-' Rmvn ;
  2362. 'FINS' ;
  2363. 'SI' TBT . 'THE' ;
  2364. Rmhen = 'MAXI' ('PROG' 0.
  2365. (Rmhenm '+' (tic . 'DT' '*' Qohe '/' VTotal ))) ;
  2366. Rmairn = Rmairn '-' Rmhen ;
  2367. 'FINS' ;
  2368. 'SI' TBT . 'TH2' ;
  2369. Rmh2n = 'MAXI' ('PROG' 0.
  2370. (Rmh2nm '+' (tic . 'DT' '*' Qoh2 '/' VTotal ))) ;
  2371. Rmairn = Rmairn '-' Rmh2n ;
  2372. 'FINS' ;
  2373. 'SI' TBT . 'TN2' ;
  2374. Rmn2n= 'MAXI' ('PROG' 0.
  2375. (Rmn2nm '+' (tic . 'DT' '*' Qon2 '/' VTotal ))) ;
  2376. Rmairn = Rmairn '-' Rmn2n ;
  2377. 'FINS' ;
  2378. 'SI' TBT . 'TO2' ;
  2379. Rmo2n= 'MAXI' ('PROG' 0.
  2380. (Rmo2nm '+' (tic . 'DT' '*' Qoo2 '/' VTotal ))) ;
  2381. Rmairn = Rmairn '-' Rmo2n ;
  2382. 'FINS' ;
  2383. 'SI' TBT . 'TCO' ;
  2384. Rmcon= 'MAXI' ('PROG' 0.
  2385. (Rmconm '+' (tic . 'DT' '*' Qoco '/' VTotal ))) ;
  2386. Rmairn = Rmairn '-' Rmcon ;
  2387. 'FINS' ;
  2388. 'SI' TBT . 'TCO2';
  2389. Rmco2n = 'MAXI' ('PROG' 0.
  2390. (Rmco2nm '+' (tic . 'DT' '*' Qoco2 '/' VTotal ))) ;
  2391. Rmairn = Rmairn '-' Rmco2n ;
  2392. 'FINS' ;
  2393. 'SI' (Rmairn '<' 0.0) ;
  2394. 'MESS' 'Pb avec la masse d air 0D : 11.3 : Rmairn=' ' ' Rmairn ;
  2395. 'FINS' ;
  2396. *>>11.3 Calcul par bilan 0D des densités moyennes au temps (n)FIN
  2397. *
  2398.  
  2399. *
  2400. *>>12. Appel à la procédure PERSO
  2401. 'SI' TBT . 'PERSO' ;
  2402. 'SI' (TBT . 'IMPR' '>EG' 2) ;
  2403. mess ' ***********************************';
  2404. mess ' * Execution d une procedure PERSO *';
  2405. mess ' * '(rxt.'PRCPERSO')
  2406. ' *' ;
  2407. mess ' ***********************************';
  2408. 'FINS' ;
  2409. ('TEXT' rxt . 'PRCPERSO') Tps rxt ;
  2410. 'SI' (TBT . 'IMPR' '>EG' 2) ;
  2411. mess ' ***********************************';
  2412. mess ' * Fin execution de la procedure *';
  2413. mess ' * '(rxt.'PRCPERSO')
  2414. ' *' ;
  2415. mess ' ***********************************';
  2416. 'FINS' ;
  2417. 'FINS' ;
  2418. *>>12. Appel à la procédure PERSO FIN
  2419. *
  2420.  
  2421. *
  2422. *
  2423. *>>13. Résolution des EDP
  2424. *
  2425. *
  2426. * Terme source s de l'equation de QDM : divu = s
  2427. tic . 'DSRC' = ((-1.) '*' srcs '/' VTotal) ;
  2428. *DEBUG
  2429. *tic . 'DSRC' = ((-1.) '*' srcs '/' VTotal) ;
  2430. *'MESS' 'DSRC ' tic . 'DSRC' ;
  2431. *DEBUG
  2432. rv = TBT . 'RV' ;
  2433. *DEBUG
  2434. *tic . 'DSN2' = -1. '*' tic . 'DSRC' ;
  2435. *DEBUG
  2436.  
  2437. *
  2438. *>>13.1 CLIM injection u.n=uinj
  2439. gjo matxx = 'KOPS' 'MATRIK' ;
  2440. 'SI' TBT . 'TTsortie' ;
  2441. NBR = 'DIME' rxt . 'Sorties' ;
  2442. ibr = 'INDE' rxt . 'Sorties' ;
  2443. 'REPE' BBRS NBR ;
  2444. Briches = rxt . 'Sorties' . (ibr.&BBRS) ;
  2445. gjo = gjo 'ET' (Briches . 'gj') ;
  2446. 'FIN' BBRS ;
  2447. 'FINS' ;
  2448. 'SI' TBT . 'TTbreche' ;
  2449. ** NBR = 'DIME' rxt . 'Breches' ;
  2450. ** ibr = 'INDE' rxt . 'Breches' ;
  2451. ** 'REPE' BBRS NBR ;
  2452. ** Briches = rxt . 'Breches' . (ibr.&BBRS) ;
  2453. ** gjo = gjo 'ET' (Briches . 'gj') ;
  2454. gjo = gjo 'ET' (tic . 'Breches' . 'UN') ;
  2455. ** 'FIN' BBRS ;
  2456. 'FINS' ;
  2457. *
  2458. * Modèle K-Epsilon EFM1 : K-Epsilon aux E/S
  2459. *FD
  2460. *WARNING Où le cas K-EPSILON Implicite est-il pris en compte ?
  2461. *FD
  2462. 'SI'(('EGA' TBT.'MODTURB' 'KEPSILON') et ('EGA' TBT.'FEF' 'EFM1'));
  2463. 'SI' TBT . 'TTsortie';
  2464. NBR = 'DIME' rxt . 'Sorties' ;
  2465. ibr = 'INDE' rxt . 'Sorties' ;
  2466. Repeter BBRS NBR ;
  2467. Briches=rxt.'Sorties'.(ibr.&BBRS) ;
  2468. * mess ' Sorties CL pour QDM' (ibr.&BBRS) ;
  2469. gjs=Briches.'gj' ;
  2470. lcj=extr gjs 'COMP' ;
  2471. mdj=gjs 'PSCA' gjs lcj lcj ;
  2472. gk=((0.05**2.)*mdj) nomc 'KN' ;
  2473. gk=CHAN 'ATTRIBUT' gk 'NATURE' 'DISCRET';
  2474. ge=((gk**1.5)/(Briches.'Dbreche')) nomc 'EN';
  2475. gjo= gjo et gk ;
  2476. gjo= gjo et ge ;
  2477. FIN BBRS ;
  2478. FINS ;
  2479. Si (TBT.'TTbreche') ;
  2480. ** NBR=dime rxt.'Breches' ;
  2481. ** ibr=index (rxt.'Breches') ;
  2482. ** Repeter BBRS NBR ;
  2483. ** Briches=rxt.'Breches'.(ibr.&BBRS) ;
  2484. * mess ' Breches CL pour QDM' (ibr.&BBRS) ;
  2485. ** gjs=Briches.'gj' ;
  2486. gjs = tic . 'Breches' . 'UN' ;
  2487. lcj=extr gjs 'COMP' ;
  2488. mdj=gjs 'PSCA' gjs lcj lcj ;
  2489. gk=((0.05**2.)*mdj) nomc 'KN' ;
  2490. gk=CHAN 'ATTRIBUT' gk 'NATURE' 'DISCRET';
  2491. ge=((gk**1.5)/(Briches.'Dbreche')) nomc 'EN';
  2492. gjo= gjo et gk ;
  2493. gjo= gjo et ge ;
  2494. ** FIN BBRS ;
  2495. FINS ;
  2496.  
  2497. *---- Modèle K-Epsilon EFM1 -- FIN -------------------------
  2498. 'FINS' ;
  2499.  
  2500. * Si il y a au moins une brèche ou une sortie
  2501. 'SI' (TBT . 'TTbreche' 'OU' TBT . 'TTsortie') ;
  2502. rv . 'CLIM' = (rv . 'CLIM' '-' rv . 'CLIM') '+' gjo ;
  2503. 'FINS' ;
  2504. * Si il y a des PARs
  2505. 'SI' TBT . 'TRECOMB' ;
  2506. Urec0 = tic . 'RECOMB' . 'UN' ;
  2507. 'SI' (TBT . 'TTbreche' 'OU' TBT . 'TTsortie') ;
  2508. rv . 'CLIM' = rv . 'CLIM' '+' Urec0 ;
  2509. 'SINO' ;
  2510. rv . 'CLIM' = (rv . 'CLIM' '-' rv . 'CLIM') '+' Urec0 ;
  2511. 'FINS' ;
  2512. 'FINS' ;
  2513. *>>13.1 CLIM injection u.n=uinjFIN
  2514. *
  2515.  
  2516. 'SI' (TBT . 'IMPR' '>EG' 2) ;
  2517. 'MESS' '==> RESOLUTION QDM' ;
  2518. 'FINS' ;
  2519.  
  2520. *
  2521. *>>13.2 Actualisation de tic . 'NUEFF' et tic . 'MUT'
  2522. *FD
  2523. *WARNING TTbreches et TTsortie non pris en compte pour K-EPSILON
  2524. *FD
  2525. *
  2526. tic . 'NU' = tic . 'Mu' '/' Rhomnm ;
  2527. tic . 'NUm' = 'SOMT' (GEO . 'Diag' * tic . 'NU') / GEO . 'VTotal' ;
  2528. 'SI' TBT . 'FPAROI' ;
  2529. tic . 'YP' = rxt . 'YP' ;
  2530. 'FINS' ;
  2531. 'SI' ('EXIS' TBT 'MODTURB') ;
  2532.  
  2533. *---- Modèle viscosité tourbillonnaire constante -----------
  2534. 'SI' ('EGA' TBT . 'MODTURB' 'NUTURB') ;
  2535. tic . 'NUEFF' = tic . 'NU' + rxt . 'NUT' ;
  2536. 'FINS' ;
  2537. *---- Modèle viscosité tourbillonnaire constante FIN
  2538.  
  2539. *---- Modèle de longueur de mélange ------------------------
  2540. 'SI' ('EGA' TBT . 'MODTURB' 'LMEL') ;
  2541. un = tic . 'UN' ;
  2542. P = PRODT UN $vtf ;
  2543. lm = TBT . 'LMEL' ;
  2544. NUT = lm '*' lm '*' (P**0.5) ;
  2545. * Réalisabilité sur Nut
  2546. Nu = tic . 'NU' ;
  2547. a = 5000. '*' Nu ;
  2548. al = 0.8 ;
  2549. ala = al '*' a ;
  2550. b = ala '*' ((2. '*' (1.-al)) '**' (-1.)) ;
  2551. ik = 'MASQ' Nut 'INFERIEUR' ala ;
  2552. Nut=(ik*Nut)+( (1.-ik)*a*(Nut + b)*(inve (a + Nut + b)));
  2553. Nutsnu = Nut '*' ('INVE' Nu);
  2554. 'SI' (TBT . 'IMPR' '>EG' 2) ;
  2555. 'MESS' ' Mini Maxi Nut/Nu '
  2556. ('MINI' Nutsnu) ('MAXI' Nutsnu) ;
  2557. 'FINS' ;
  2558. tic . 'NUEFF' = NUT '+' tic . 'NU' ;
  2559. 'FINS' ;
  2560. *---- Modèle de longueur de mélange FIN
  2561.  
  2562. *---- Modèle K-Epsilon Implicite ---------------------------
  2563. 'SI' (('EGA' TBT . 'MODTURB' 'KEPSILON')
  2564. 'ET' ('NON' ('EGA' TBT . 'FEF' 'EFM1'))) ;
  2565. cnu = 0.09 ;
  2566. c1 = 1.44 ;
  2567. c2 = 1.92 ;
  2568. sgk = 1. ;
  2569. SGE = 1.3 ;
  2570.  
  2571. Dg = 'DOMA' $vtf 'XXDIAGSI';
  2572. Lma = ('SOMT' Dg) '**' (1. '/' ('VALE' DIME)) ;
  2573. Lmi = ('MINI' Dg) '**' (1. '/' ('VALE' DIME)) ;
  2574. un = tic . 'UN' ;
  2575. P = PRODT UN $vtf;
  2576.  
  2577. Rrk = TBT . 'Rrk' ;
  2578. Rre = TBT . 'Rre' ;
  2579. En = tic . 'EN' ;
  2580. Kn = tic . 'KN' ;
  2581. * Réalisabilité sur Nut : Nut > 1.e-15
  2582. *Nut=Cnu * Kn * Kn * (inve En) ;
  2583. Nut = Lmi '*' Lma '*' (P '**' 0.5) ;
  2584. ik = 'MASQ' Nut 'SUPERIEUR' 1.e-15 ;
  2585. Nut = (ik*Nut) '+' ((1.-ik)*1.e-15) ;
  2586. * Nut P < En
  2587. *a= En * (inve P) * 0.133 ;
  2588. *a = En * ('INVE' P) * 0.133 ;
  2589. *al = 0.8 ;
  2590. *ala = al*a;
  2591. *b = ala*((2.*(1.-al))**(-1.)) ;
  2592. *ik = 'MASQ' Nut 'INFERIEUR' ala ;
  2593. *Nut=(ik*Nut)+( (1.-ik)*a*(Nut+b)*(inve (a+Nut+b))) ;
  2594. *Nut = kcht $vtf scal sommet Nut ;
  2595. 'MESS' 'mini maxi Nut ' ('MINI' Nut) ('MAXI' Nut) ;
  2596. Sk = Nut * P - ((KN**1.5)*(1./Lma)) ;
  2597. Kn = 'KOPS' Kn '|<' 1.e-5 ;
  2598. EsK = En * ('INVE' Kn) ;
  2599. Se = EsK '*' (Nut * P - (c2*En)) ;
  2600. tic . 'Se' = Se ;
  2601. tic . 'Sk' = Sk ;
  2602. tic . 'NUEFF' = NUT + tic . 'NU' ;
  2603. *
  2604. cpv matxx = 'KOPS' 'MATRIK' ;
  2605. 'SI' (TBT . 'TTbreche' 'OU' TBT . 'TTsortie') ;
  2606. 'MESS' 'K epsilon au revoir' ;
  2607. 'ERRE' 5 ;
  2608. Rrk . 'CLIM' = cpv ;
  2609. 'FINS' ;
  2610. Rrk . 'METHINV' . 'CALPREC' = calprec;
  2611. EXEC Rrk ;
  2612. Kn= tic . 'KN' ;
  2613. Kn= 'KOPS' Kn '|<' 1.e-5 ;
  2614. tic . 'KN' = Kn ;
  2615. *
  2616. cpv matxx = 'KOPS' 'MATRIK' ;
  2617. 'SI' (TBT . 'TTbreche' 'OU' TBT . 'TTsortie') ;
  2618. 'MESS' 'K epsilon au revoir' ;
  2619. 'ERRE' 5 ;
  2620. Rre . 'CLIM' = cpv ;
  2621. 'FINS' ;
  2622. Rre . 'METHINV' . 'CALPREC' = calprec;
  2623. EXEC Rre ;
  2624. En= tic . 'EN' ;
  2625. En= 'KOPS' En '|<' 1.e-15 ;
  2626. tic . 'EN' = En ;
  2627. * Réalisabilité sur Nut
  2628. Nut = cnu * Kn * Kn * ('INVE' En) ;
  2629. Nu = tic . 'NU' ;
  2630. a = 1500. '*' Nu ;
  2631. al = 0.8 ;
  2632. ala = al*a;
  2633. b = ala*((2.*(1.-al))**(-1.)) ;
  2634. tic . 'ala' = ala ;
  2635. tic . 'nut' = nut ;
  2636. ik = 'MASQ' Nut 'INFERIEUR' ala ;
  2637. Nut = (ik*Nut)+( (1.-ik)*a*(Nut+b)*(inve (a+Nut+b))) ;
  2638. Nut = 'KCHT' $vtf 'SCAL' 'SOMMET' Nut;
  2639. Nutsnu = (1. '/' Nu) '*' Nut;
  2640. 'SI' (TBT . 'IMPR' '>EG' 2) ;
  2641. 'MESS' ' Mini Maxi Nut/Nu '
  2642. ('MINI' Nutsnu) ('MAXI' Nutsnu) ;
  2643. 'FINS' ;
  2644. tic . 'NUEFF' = NUT + tic . 'NU' ;
  2645. 'FINS' ;
  2646. *---- Modèle K-Epsilon ImpliciteFIN
  2647.  
  2648. *---- Modèle K-Epsilon EFM1 --------------------------------
  2649. *FD
  2650. *WARNING D'ou vient tic . NUT ?
  2651. *FD
  2652. 'SI' (('EGA' TBT . 'MODTURB' 'KEPSILON') 'ET'
  2653. ('EGA' TBT . 'FEF' 'EFM1')) ;
  2654. tic . 'NUEFF' = tic . 'NUT' + tic . 'NU' ;
  2655. 'FINS' ;
  2656. *---- Modèle K-Epsilon EFM1 FIN
  2657. 'SINO' ;
  2658. *---- Il n'y a pas de modèle de turbulence -----------------
  2659. tic . 'NUEFF' = tic . 'NU' ;
  2660. 'FINS' ;
  2661. tic . 'MUT' = tic . 'NUEFF' * Rhomnm ;
  2662. *>>13.2 Actualisation de tic . 'NUEFF' et tic . 'MUT' FIN
  2663. *
  2664.  
  2665. *
  2666. *>>13.3 Résolution
  2667. rv . 'METHINV' . 'CALPREC' = calprec ;
  2668. 'SI' ('EXIS' rv 'PROJ') ;
  2669. rv . 'PROJ' . 'METHINV' . 'CALPREC' = calprec ;
  2670. 'FINS' ;
  2671. RV . 'MRESOP' = VRAI ;
  2672. RV . 'TCPT' = rxt . 'TBT' . 'TCPT' ;
  2673. RV . 'TKPR' = rxt . 'TBT' . 'TKPR' ;
  2674. RV . 'TRESOU' = rxt . 'TBT' . 'TRESOU' ;
  2675. RV . 'IMPARA' = rxt . 'TBT' . 'IMPARA' ;
  2676. *
  2677. * NON TRTOUT = Aucun TKPR à VRAI (tout est séquentiel)
  2678. * alors on résout vitesse-pression en tête
  2679. *DEBUG
  2680. *'MESS' 'DEBUG CLIM en VITESSE' ;
  2681. *'LIST' rv . 'CLIM' ;
  2682. *DEBUG
  2683. 'SI' ('NON' TBT . 'TRTOUT') ;
  2684. EXEC rv ;
  2685. 'FINS' ;
  2686. *DEBUG
  2687. *'LIST' rxt . 'TIC' . 'UN' ;
  2688. *DEBUG
  2689. *
  2690. * Pour le // on concatène dans rv les résolutions à faire en //
  2691. * Puis on résout en // vitesse-pression et TKPR ad'hoc
  2692. 'SI' TBT . 'TRTF' ;
  2693. 'MESS' '$$$$ ON RAJOUTE LA TEMPERATURE TF à LA QDM ' ;
  2694. rtf = rv ;
  2695. dtfcl = CLINC RXT rtf (TBT . 'TRTF') 'TF' 'Tj' 'TFNM' ;
  2696. *FD
  2697. * Pourquoi n'a-t-on pas Rtf . 'resmn'
  2698. *FD
  2699. rtf . 'METHINV' . 'CALPREC' = calprec ;
  2700. 'FINS' ;
  2701. 'SI' (TBT . 'VAPEUR' 'ET' TBT . 'TRrvap') ;
  2702. 'MESS' '$$$$ ON RAJOUTE LA DENSITE DE VAPEUR à la QDM ' ;
  2703. Rrvap = rv ;
  2704. drvpcl = CLINC RXT Rrvap (TBT.'TRrvap') 'RVP' 'Rvapj' 'RVPNM' ;
  2705. *FD
  2706. * Pourquoi n'a-t-on pas Rrvap . 'resmn'
  2707. *FD
  2708. Rrvap . 'METHINV' . 'CALPREC' = calprec ;
  2709. 'FINS' ;
  2710. 'SI' (TBT . 'THE' 'ET' TBT . 'TRrhe') ;
  2711. 'MESS' '$$$$ ON RAJOUTE LA RESOLUTION DE LA DENSITE HELIUM' ;
  2712. Rrhe = rv ;
  2713. drhecl = CLINC RXT Rrhe (TBT . 'TRrhe') 'RHE' 'Rhej' 'RHEM' ;
  2714. Rrhe . 'resmn' = tic . 'RHE' NOMC 'RHE' ;
  2715. Rrhe . 'METHINV' . 'CALPREC' = calprec ;
  2716. 'FINS' ;
  2717. 'SI' (TBT . 'TH2' 'ET' TBT . 'TRrh2') ;
  2718. 'MESS' '$$$$ ON RAJOUTE LA RESOLUTION DE LA DENSITE HYDROGENE' ;
  2719. Rrh2 = rv ;
  2720. drh2cl = CLINC RXT Rrh2 (TBT . 'TRrh2') 'RH2' 'Rh2j' 'RH2M' ;
  2721. Rrh2 . 'resmn' = tic . 'RH2' NOMC 'RH2' ;
  2722. Rrh2 . 'METHINV' . 'CALPREC' = calprec ;
  2723. 'FINS' ;
  2724. 'SI' (TBT . 'TO2' 'ET' TBT . 'TRro2') ;
  2725. 'MESS' '$$$$ ON RAJOUTE LA RESOLUTION DE LA DENSITE OXYGENE' ;
  2726. Rro2 = rv ;
  2727. dro2cl = CLINC RXT Rro2 (TBT . 'TRro2') 'RO2' 'Ro2j' 'RO2M' ;
  2728. Rro2 . 'resmn' = tic . 'RO2' NOMC 'RO2' ;
  2729. Rro2 . 'METHINV' . 'CALPREC' = calprec ;
  2730. 'FINS' ;
  2731. 'SI' (TBT . 'TN2' 'ET' TBT . 'TRrn2') ;
  2732. 'MESS' '$$$$ ON RAJOUTE LA RESOLUTION DE LA DENSITE AZOTE' ;
  2733. Rrn2 = rv ;
  2734. drn2cl = CLINC RXT Rrn2 (TBT . 'TRrn2') 'RN2' 'Rn2j' 'RN2M' ;
  2735. Rrn2 . 'resmn' = tic . 'RN2' NOMC 'RN2' ;
  2736. Rrn2 . 'METHINV' . 'CALPREC' = calprec ;
  2737. 'FINS' ;
  2738. 'SI' (TBT . 'TCO2' 'ET' TBT . 'TRrco2') ;
  2739. 'MESS' '$$$$ ON RAJOUTE LA RESOLUTION DE LA DENSITE DIOX DE CARBONE';
  2740. Rrco2 = rv ;
  2741. drco2cl = CLINC RXT Rrco2 (TBT . 'TRrco2') 'RCO2' 'Rco2j' 'RCO2M' ;
  2742. Rrco2 . 'resmn' = tic . 'RCO2' NOMC 'RCO2' ;
  2743. Rrco2 . 'METHINV' . 'CALPREC' = calprec ;
  2744. 'FINS' ;
  2745. 'SI' (TBT . 'TCO' 'ET' TBT . 'TRrco') ;
  2746. 'MESS' '$$$$ ON RAJOUTE LA RESOLUTION DE LA DENSITE MONO DE CARBONE';
  2747. Rrco = rv ;
  2748. drcocl = CLINC RXT Rrco (TBT . 'TRrco') 'RCO' 'Rcoj' 'RCOM' ;
  2749. Rrco . 'resmn' = tic . 'RCO' NOMC 'RCO' ;
  2750. Rrco . 'METHINV' . 'CALPREC' = calprec ;
  2751. 'FINS' ;
  2752.  
  2753. 'SI' TBT . 'TRTOUT' ;
  2754. EXEC rv ;
  2755. 'FINS' ;
  2756. *
  2757. * Résolution séquentielle des champs scalaires restant
  2758. * (ajout de la CLIM dans CLINC avant l'appel à EXEC)
  2759. *FD
  2760. * Les densités sont bornées par 1D-10 et MaxRHO dans CORMASSE
  2761. * On le faisait 2 fois avant : ici et dans CORMASSE !
  2762. *FD
  2763. 'SI' (TBT . 'VAPEUR' 'ET' ('NON' TBT . 'TRrvap')) ;
  2764. Rrvap = TBT . 'Rrvap' ;
  2765. drvpcl = CLINC RXT Rrvap (TBT . 'TRrvap') 'RVP' 'Rvapj' 'RVPNM' ;
  2766. *FD
  2767. * Pourquoi n'a-t-on pas Rrvap . 'resmn' = tic . 'Rvp' NOMC 'RVP' ; ?
  2768. *FD
  2769. Rrvap . 'METHINV' . 'CALPREC' = calprec ;
  2770. EXEC Rrvap ;
  2771. 'FINS';
  2772. 'SI' (TBT . 'THE' 'ET' ('NON' TBT . 'TRrhe')) ;
  2773. Rrhe = TBT . 'Rrhe' ;
  2774. drhecl = CLINC RXT Rrhe (TBT . 'TRrhe') 'RHE' 'Rhej' 'RHEM' ;
  2775. Rrhe . 'resmn' = tic . 'RHE' NOMC 'RHE' ;
  2776. Rrhe . 'METHINV' . 'CALPREC' = calprec ;
  2777. EXEC Rrhe ;
  2778. 'FINS' ;
  2779. 'SI' (TBT . 'TH2' 'ET' ('NON' TBT . 'TRrh2')) ;
  2780. Rrh2 = TBT . 'Rrh2' ;
  2781. drh2cl = CLINC RXT Rrh2 (TBT . 'TRrh2') 'RH2' 'Rh2j' 'RH2M' ;
  2782. Rrh2 . 'resmn' = tic.'RH2' NOMC 'RH2' ;
  2783. Rrh2 . 'METHINV' . 'CALPREC' = calprec ;
  2784. EXEC Rrh2 ;
  2785. 'FINS' ;
  2786. 'SI' (TBT . 'TO2' 'ET' ('NON' TBT . 'TRro2')) ;
  2787. Rro2 = TBT . 'Rro2' ;
  2788. dro2cl = CLINC RXT Rro2 (TBT . 'TRro2') 'RO2' 'Ro2j' 'RO2M' ;
  2789. Rro2 . 'resmn' = tic . 'RO2' NOMC 'RO2' ;
  2790. Rro2 . 'METHINV' . 'CALPREC' = calprec ;
  2791. EXEC Rro2 ;
  2792. 'FINS' ;
  2793. 'SI' (TBT . 'TN2' 'ET' ('NON' TBT . 'TRrn2')) ;
  2794. Rrn2 = TBT . 'Rrn2' ;
  2795. drn2cl = CLINC RXT Rrn2 (TBT . 'TRrn2') 'RN2' 'Rn2j' 'RN2M' ;
  2796. Rrn2 . 'resmn' = tic . 'RN2' NOMC 'RN2' ;
  2797. Rrn2 . 'METHINV' . 'CALPREC' = calprec ;
  2798. EXEC Rrn2 ;
  2799. 'FINS' ;
  2800. 'SI' (TBT . 'TCO2' 'ET' ('NON' TBT . 'TRrco2')) ;
  2801. Rrco2 = TBT . 'Rrco2' ;
  2802. drco2cl = CLINC RXT Rrco2 (TBT . 'TRrco2') 'RCO2' 'Rco2j' 'RCO2M' ;
  2803. Rrco2 . 'resmn' = tic . 'RCO2' NOMC 'RCO2' ;
  2804. Rrco2 . 'METHINV' . 'CALPREC' = calprec ;
  2805. EXEC Rrco2 ;
  2806. 'FINS' ;
  2807. 'SI' (TBT . 'TCO' 'ET' ('NON' TBT . 'TRrco')) ;
  2808. Rrco = TBT . 'Rrco' ;
  2809. drcocl = CLINC RXT Rrco (TBT . 'TRrco') 'RCO' 'Rcoj' 'RCOM' ;
  2810. Rrco . 'resmn' = tic . 'RCO' NOMC 'RCO' ;
  2811. Rrco . 'METHINV' . 'CALPREC' = calprec ;
  2812. EXEC Rrco ;
  2813. 'FINS' ;
  2814. *
  2815. * Résolution séquentielle de la température
  2816. * (ajout de la CLIM dans CLINC avant l'appel à EXEC)
  2817. 'SI' ('NON' TBT . 'TRTF') ;
  2818. 'MESS' '$$$$ RESOLUTION SEQUENTIELLE DE LA TEMPERATURE DU FLUIDE' ;
  2819. rtf = TBT . 'RTF' ;
  2820. dtfcl = CLINC RXT rtf (TBT . 'TRTF') 'TF' 'Tj' 'TFNM' ;
  2821. rtf . 'METHINV' . 'CALPREC' = calprec ;
  2822. EXEC rtf ;
  2823. 'FINS' ;
  2824. *
  2825. * Résolution séquentielle de la Tparoi découplée du fluide
  2826. * (le flux tic . 'FHP1' est calculé dans CONDENS)
  2827. 'SI' TBT . 'THERMP' ;
  2828. 'SI' ('NON' TBT . 'THERCO') ;
  2829. rtp = TBT . 'RTP' ;
  2830. 'SI' (TBT . 'IMPR' '>EG' 2) ;
  2831. 'MESS' '==> RESOLUTION rtp ';
  2832. 'FINS' ;
  2833. rtp . 'METHINV' . 'CALPREC' = calprec ;
  2834. EXEC rtp ;
  2835. 'FINS' ;
  2836. Tp = tic . 'TP' ;
  2837. 'FINS' ;
  2838. *
  2839. *>>13.3 Résolution FIN
  2840. *
  2841. *
  2842.  
  2843. *
  2844. *>>13.4 Bornage de TF(n)
  2845. *
  2846. * Calcul de Tfmi, minimum de la condition initiale
  2847. * et des conditions aux limites
  2848. Tfmi = 'PROG' rxt . 'TF0' ;
  2849. CHrtf1 = rtf . 'CLIM';
  2850. MArtf1 = 'EXTR' CHrtf1 'MAILLAGE' ;
  2851. *FD
  2852. * C'est quoi ce test charabia MArtf1=0 ?
  2853. *FD
  2854. 'SI' ('NEG' MArtf1 0);
  2855. Tfmi = Tfmi 'ET' ('PROG' ('MINI' rtf . 'CLIM')) ;
  2856. 'FINS' ;
  2857. 'SI' TBT.'ASPER ' ;
  2858. Tfmi = Tfmi 'ET' ('PROG' Tdinj) ;
  2859. 'FINS' ;
  2860. 'SI' TBT.'THERMP' ;
  2861. Tfmi = Tfmi 'ET' ('PROG' ('MINI' tic . 'TP'));
  2862. 'FINS' ;
  2863. 'SI' TBT . 'TTIMP' ;
  2864. NBTIMP = 'DIME' rxt . 'TIMP' ;
  2865. itimp = 'INDE' rxt . 'TIMP' ;
  2866. tfmii = 'PROG' ;
  2867. 'REPE' BBTIMP NBTIMP ;
  2868. Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ;
  2869. tfmii = tfmii 'ET' ('PROG' tic . (Btimp . 'TBP1')) ;