Télécharger execrxt.procedur

Retour à la liste

Numérotation des lignes :

  1. * EXECRXT PROCEDUR FD144363 24/04/03 21:15:05 11890
  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' 'Kqn2' &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. 'SI' ('EXIS' btimp 'KKC1') ;
  952. len1 = 'DIME' Btimp . 'Ltbpi' ;
  953. len2 = 'DIME' tic . 'LTPS' ;
  954. 'SI' ('NEG' len1 len2) ;
  955. 'MESS' 'TIMP : pb deuxieme passage ou reprise' ;
  956. Btimp . 'Ltbpi' = 'IPOL' tic . 'LTPS' Btimp . 't' Btimp . 'TIMP' ;
  957. 'FINS' ;
  958. 'SINO' ;
  959. Btimp . 'KKC1' = 'CHAI' 'KKC1' &BBTIMP ;
  960. Btimp . 'ROVI1' = 'CHAI' 'ROVI1' &BBTIMP ;
  961. Btimp . 'FHP1' = 'CHAI' 'FHP1' &BBTIMP ;
  962. Btimp . 'KH1' = 'CHAI' 'KH1' &BBTIMP ;
  963. Btimp . 'Fcond1'= 'CHAI' 'Fcond1' &BBTIMP ;
  964. Btimp . 'Mcond1'= 'CHAI' 'Mcond1' &BBTIMP ;
  965. Btimp . 'TPI1' = 'CHAI' 'TPI1' &BBTIMP ;
  966. Btimp . 'TBP1' = 'CHAI' 'TBP1' &BBTIMP ;
  967. Btimp . 'KHE1' = 'CHAI' 'KHE1' &BBTIMP ;
  968. Btimp . 'Qc1' = 'CHAI' 'Qc1' &BBTIMP ;
  969. Btimp . 'Ltbpi' = 'IPOL' tic . 'LTPS' Btimp . 't' Btimp . 'TIMP' ;
  970. 'FINS' ;
  971. 'FIN' BBTIMP ;
  972. TBT . 'TIMP' = rxt . 'TIMP' ;
  973. 'FINS' ;
  974.  
  975. *
  976. * TECHANP = vrai si paroi à T constant ou imposé via une procédure personnelle
  977. TBT . 'TECHANP' = FAUX ;
  978. 'SI' ('EXIS' rxt 'ECHANP') ;
  979. TBT . 'TECHANP' = VRAI ;
  980. vertytab rxt 'ECHANP' 'TABLE' ;
  981. vertytab (rxt . 'ECHANP') 'MAILLAGE' 'MAILLAGE' ;
  982. vertytab (rxt . 'ECHANP') 'ECHAN' 'FLOTTANT' ;
  983. vertytab (rxt . 'ECHANP') 'TMUR' 'FLOTTANT' ;
  984. 'FINS' ;
  985.  
  986. *
  987. * TRECOMB = vrai si présence de PARs (recombineurs)
  988. TBT . 'TRECOMB' = FAUX ;
  989. 'SI' ('EXIS' rxt 'RECOMB') ;
  990. vertytab rxt 'RECOMB' 'TABLE ' ;
  991. NBREC = 'DIME' rxt . 'RECOMB' ;
  992. 'REPE' BCL1 NBREC ;
  993. TRECI = rxt . 'RECOMB' . &BCL1 ;
  994. lxt = 'TABL' ;
  995. lxt . 'PAREXT' = ' ' ;
  996. lxt . 'ENTREE' = ' ' ;
  997. lxt . 'SORTIE' = ' ' ;
  998. lxt . 'direntr' = ' ' ;
  999. lxt . 'dirsort' = ' ' ;
  1000. lxt . 'NSECTION' = ' ' ;
  1001. lxt . 'TYPR' = ' ' ;
  1002. vertytab TRECI 'PAREXT' 'MAILLAGE' ;
  1003. vertytab TRECI 'ENTREE' 'MAILLAGE' ;
  1004. vertytab TRECI 'SORTIE' 'MAILLAGE' ;
  1005. vertytab TRECI 'direntr' 'POINT ' ;
  1006. vertytab TRECI 'dirsort' 'POINT ' ;
  1007. 'SI' ('EXIS' TRECI 'NSECTION') ;
  1008. vertytab TRECI 'NSECTION' 'ENTIER ' ;
  1009. 'SINO' ;
  1010. TRECI . 'NSECTION' = 1 ;
  1011. 'FINS' ;
  1012. 'SI' ('EXIS' TRECI 'TYPR') ;
  1013. vertytab TRECI 'TYPR' 'MOT' ;
  1014. lm1 = 'MOTS' 'SIEMENS' 'HEATER' ;
  1015. vertytab lm1 (TRECI . 'TYPR') 'MOT' ;
  1016. 'SINO' ;
  1017. TRECI . 'TYPR' = 'SIEMENS' ;
  1018. 'FINS' ;
  1019. typr = TRECI . 'TYPR' ;
  1020. 'SI' ('EGA' typr 'SIEMENS') ;
  1021. lxt . 'A' = ' ' ;
  1022. lxt . 'B' = ' ' ;
  1023. lxt . 'XH2ON' = ' ' ;
  1024. lxt . 'XH2OFF' = ' ' ;
  1025. lxt . 'BETA' = ' ' ;
  1026. 'SI' ('EXIS' TRECI 'A') ;
  1027. vertytab TRECI 'A' 'FLOTTANT' ;
  1028. 'SINO' ;
  1029. TRECI . 'A' = 0.48D-8 ;
  1030. 'FINS' ;
  1031. 'SI' ('EXIS' TRECI 'B') ;
  1032. vertytab TRECI 'B' 'FLOTTANT' ;
  1033. 'SINO' ;
  1034. TRECI . 'B' = 0.58D-3 ;
  1035. 'FINS' ;
  1036. 'SI' ('EXIS' TRECI 'XH2ON') ;
  1037. vertytab TRECI 'XH2ON' 'FLOTTANT' ;
  1038. 'SINO' ;
  1039. TRECI . 'XH2ON' = 0.005D0 ;
  1040. 'FINS' ;
  1041. 'SI' ('EXIS' TRECI 'XH2OFF') ;
  1042. vertytab TRECI 'XH2OFF' 'FLOTTANT' ;
  1043. 'SINO' ;
  1044. TRECI . 'XH2OFF' = 0.005D0 ;
  1045. 'FINS' ;
  1046. 'SI' ('EXIS' TRECI 'BETA') ;
  1047. vertytab TRECI 'BETA' 'FLOTTANT' ;
  1048. 'SINO' ;
  1049. TRECI . 'BETA' = 0.2D0 ;
  1050. 'FINS' ;
  1051. 'SINO' ;
  1052. lxt . 'PUISSANCE' = ' ' ;
  1053. lxt . 'QHOUSING' = ' ' ;
  1054. lxt . 'HRAPP' = ' ' ;
  1055. lxt . 'CRAPP' = ' ' ;
  1056. vertytab TRECI 'PUISSANCE' 'EVOLUTIO' ;
  1057. 'SI' ('EXIS' TRECI 'QHOUSING') ;
  1058. vertytab TRECI 'QHOUSING' 'FLOTTANT' ;
  1059. 'SINO' ;
  1060. TRECI . 'QHOUSING' = 0.1D0 ;
  1061. 'FINS' ;
  1062. 'SI' ('EXIS' TRECI 'HRAPP') ;
  1063. vertytab TRECI 'HRAPP' 'FLOTTANT' ;
  1064. 'SINO' ;
  1065. TRECI . 'HRAPP' = 1.7D0 ;
  1066. 'FINS' ;
  1067. 'SI' ('EXIS' TRECI 'CRAPP') ;
  1068. vertytab TRECI 'CRAPP' 'FLOTTANT' ;
  1069. 'SINO' ;
  1070. TRECI . 'CRAPP' = 136.0868234D0 ;
  1071. 'FINS' ;
  1072. 'FINS' ;
  1073. indtrec = 'INDE' treci ;
  1074. nind = 'DIME' indtrec ;
  1075. 'REPE' bouind nind ;
  1076. 'SI' ('NON' ('EXIS' lxt ('MOT' indtrec . &bouind))) ;
  1077. 'MESS' ' ' ;
  1078. 'MESS' '*********************************************************' ;
  1079. 'MESS' ' ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ' ;
  1080. 'MESS' ' ' ;
  1081. 'MESS' ' ' ;
  1082. 'MESS' 'Il y a un indice non reconnu :' ' ' (indtrec . &bouind)
  1083. ' ' ' dans la table RECOMB .' ' ' &bcl1 ;
  1084. 'MESS' ' ' ;
  1085. 'MESS' '*********************************************************' ;
  1086. 'ERRE' 21 ;
  1087. 'QUIT' EXECRXT ;
  1088. 'FINS' ;
  1089. 'FIN' bouind ;
  1090. 'FIN' BCL1 ;
  1091. TBT . 'TRECOMB' = VRAI ;
  1092. TBT . 'RECOMB' = rxt . 'RECOMB' ;
  1093. 'FINS' ;
  1094.  
  1095. *
  1096. * Gestion du modèle de turbulence MODTURB
  1097. * (NUTURB ou LMEL ou KEPSILON)
  1098. 'SI' ('EXIS' rxt 'MODTURB') ;
  1099. vertytab rxt 'MODTURB' 'MOT' ;
  1100. TBT . 'MODTURB' = rxt . 'MODTURB' ;
  1101. lxt = 'TABL' ;
  1102. lxt . 'NUTURB' = ' ' ;
  1103. lxt . 'LMEL' = ' ' ;
  1104. lxt . 'KEPSILON' = ' ' ;
  1105. vertytab lxt rxt . 'MODTURB' 'MOT' ;
  1106.  
  1107. 'SI' ('EGA' rxt . 'MODTURB' 'NUTURB') ;
  1108. listentr . 'NUT' = '' ;
  1109. vertytab rxt 'NUT' 'FLOTTANT' ;
  1110. TBT . 'NUT' = rxt .'NUT' ;
  1111. 'FINS' ;
  1112.  
  1113. 'SI' ('EGA' rxt . 'MODTURB' 'LMEL') ;
  1114. listentr . 'LMEL' = '' ;
  1115. vertytab rxt 'LMEL' 'FLOTTANT' ;
  1116. TBT . 'LMEL' = rxt . 'LMEL' ;
  1117. 'FINS' ;
  1118.  
  1119. 'MESS' ': ==> Scenario avec modèle de turbulence'
  1120. ' ' rxt . 'MODTURB' ;
  1121. 'SINO' ;
  1122. 'MESS' ': ==> Scenario sans modèle de turbulence' ;
  1123. 'FINS' ;
  1124.  
  1125. *
  1126. * FPAROI = vrai si utilisation de fonctions de paroi
  1127. TBT . 'FPAROI' = FAUX ;
  1128. 'SI' ('EXIS' rxt 'FPAROI') ;
  1129. vertytab rxt 'FPAROI' 'LOGIQUE' ;
  1130. TBT . 'FPAROI' = rxt . 'FPAROI' ;
  1131. 'FINS' ;
  1132.  
  1133. 'SI' TBT . 'FPAROI' ;
  1134. 'MESS' ': ==> Scenario avec fonction de paroi ' ;
  1135. listentr . 'YP' = '' ;
  1136. vertytab rxt 'YP' 'FLOTTANT' ;
  1137. TBT . 'YP' = rxt . 'YP' ;
  1138. 'FINS' ;
  1139.  
  1140. *
  1141. * Gestion du modèle de condensation en paroi MODCOND
  1142. * (CHIL0 ou CHIL1)
  1143. TBT . 'MODCOND' = 'CHIL0' ;
  1144. 'SI' ('EXIS' rxt 'MODCOND') ;
  1145. vertytab rxt 'MODCOND' 'MOT' ;
  1146. TBT . 'MODCOND' = rxt . 'MODCOND' ;
  1147. lxt = 'TABL' ;
  1148. lxt . 'CHIL0' = ' ' ;
  1149. lxt . 'CHIL1' = ' ' ;
  1150. vertytab lxt rxt . 'MODCOND' 'MOT' ;
  1151. 'FINS' ;
  1152. 'MESS' ': ==> Scenario avec flux de condensation' ' ' TBT . 'MODCOND' ;
  1153.  
  1154. *
  1155. * PERSO = vrai si une procédure personnelle est indiquée
  1156. TBT . 'PERSO' = FAUX ;
  1157. 'SI' ('EXIS' rxt 'PERSO') ;
  1158. vertytab rxt 'PERSO' 'LOGIQUE' ;
  1159. TBT . 'PERSO' = rxt . 'PERSO' ;
  1160. 'FINS' ;
  1161.  
  1162. 'SI' TBT . 'PERSO' ;
  1163. 'MESS' ': ==> Scenario avec execution d une procedure personnelle' ;
  1164. listentr . 'PRCPERSO' = '' ;
  1165. vertytab rxt 'PRCPERSO' 'MOT' ;
  1166. TBT . 'PRCPERSO' = rxt . 'PRCPERSO' ;
  1167. 'FINS' ;
  1168.  
  1169. 'SI' ('EXIS' rxt 'TABPERSO') ;
  1170. vertytab rxt 'TABPERSO' 'TABLE' ;
  1171. TBT . 'TABPERSO' = rxt . 'TABPERSO' ;
  1172. 'FINS' ;
  1173.  
  1174. *
  1175. * Identification des incondensables et des entrées associées
  1176. * (à choisir parmi H2, HE, O2, N2, CO, CO2)
  1177. LINCOND = 'MOTS' ;
  1178.  
  1179. TBT . 'TH2' = FAUX ;
  1180. 'SI' ('EXIS' rxt 'H2') ;
  1181. vertytab rxt 'H2' 'LOGIQUE' ;
  1182. TBT . 'TH2' = rxt . 'H2' ;
  1183. 'SI' TBT . 'TH2' ;
  1184. LINCOND = LINCOND 'ET' ('MOTS' 'H2') ;
  1185. vertytab rxt 'Yh20' 'FLOTTANT' ;
  1186. listentr . 'Yh20' = '' ;
  1187. 'SI' ('EXIS' rxt 'scenario') ;
  1188. vertytab (rxt . 'scenario') 'qh2' 'LISTREEL' ;
  1189. 'FINS' ;
  1190. 'FINS' ;
  1191. 'FINS' ;
  1192.  
  1193. TBT . 'THE' = FAUX ;
  1194. 'SI' ('EXIS' rxt 'HE') ;
  1195. vertytab rxt 'HE' 'LOGIQUE' ;
  1196. TBT . 'THE' = rxt . 'HE' ;
  1197. 'SI' TBT . 'THE' ;
  1198. LINCOND = LINCOND 'ET' ('MOTS' 'HE') ;
  1199. vertytab rxt 'Yhe0' 'FLOTTANT' ;
  1200. listentr.'Yhe0' = '' ;
  1201. 'SI' ('EXIS' rxt 'scenario') ;
  1202. vertytab (rxt . 'scenario') 'qhe' 'LISTREEL' ;
  1203. 'FINS' ;
  1204. 'FINS' ;
  1205. 'FINS' ;
  1206.  
  1207. TBT . 'TO2' = FAUX ;
  1208. 'SI' ('EXIS' rxt 'O2' ) ;
  1209. vertytab rxt 'O2' 'LOGIQUE' ;
  1210. TBT . 'TO2' = rxt . 'O2' ;
  1211. 'SI' TBT . 'TO2' ;
  1212. LINCOND = LINCOND 'ET' ('MOTS' 'O2') ;
  1213. vertytab rxt 'Yo20' 'FLOTTANT' ;
  1214. listentr . 'Yo20' = '' ;
  1215. 'SI' ('EXIS' rxt 'scenario') ;
  1216. vertytab (rxt . 'scenario') 'qo2' 'LISTREEL' ;
  1217. 'FINS' ;
  1218. 'FINS' ;
  1219. 'FINS' ;
  1220.  
  1221. TBT . 'TN2' = FAUX ;
  1222. 'SI' ('EXIS' rxt 'N2') ;
  1223. vertytab rxt 'N2' 'LOGIQUE' ;
  1224. TBT . 'TN2' = rxt . 'N2' ;
  1225. 'SI' TBT . 'TN2' ;
  1226. LINCOND = LINCOND 'ET' ('MOTS' 'N2') ;
  1227. vertytab rxt 'Yn20' 'FLOTTANT' ;
  1228. listentr . 'Yn20' = '' ;
  1229. 'SI' ('EXIS' rxt 'scenario') ;
  1230. vertytab (rxt . 'scenario') 'qn2' 'LISTREEL' ;
  1231. 'FINS' ;
  1232. 'FINS' ;
  1233. 'FINS' ;
  1234.  
  1235. TBT . 'TCO' = FAUX ;
  1236. 'SI' ('EXIS' rxt 'CO') ;
  1237. vertytab rxt 'CO' 'LOGIQUE' ;
  1238. TBT . 'TCO' = rxt . 'CO' ;
  1239. 'SI' TBT . 'TCO' ;
  1240. LINCOND = LINCOND 'ET' ('MOTS' 'CO') ;
  1241. vertytab rxt 'Yco0' 'FLOTTANT' ;
  1242. listentr . 'Yco0' = '' ;
  1243. 'SI' ('EXIS' rxt 'scenario') ;
  1244. vertytab (rxt . 'scenario') 'qco' 'LISTREEL' ;
  1245. 'FINS' ;
  1246. 'FINS' ;
  1247. 'FINS' ;
  1248.  
  1249. TBT . 'TCO2' = FAUX ;
  1250. 'SI' ('EXIS' rxt 'CO2') ;
  1251. vertytab rxt 'CO2' 'LOGIQUE' ;
  1252. TBT . 'TCO2' = rxt .'CO2' ;
  1253. 'SI' TBT . 'TCO2' ;
  1254. LINCOND = LINCOND 'ET' ('MOTS' 'CO2') ;
  1255. vertytab rxt 'Yco20' 'FLOTTANT' ;
  1256. listentr . 'Yco20' = '' ;
  1257. 'SI' ('EXIS' rxt 'scenario') ;
  1258. vertytab (rxt . 'scenario') 'qco2' 'LISTREEL' ;
  1259. 'FINS' ;
  1260. 'FINS' ;
  1261. 'FINS' ;
  1262.  
  1263. *FD
  1264. * Quid de l'injection d'air sans transport de l'air
  1265. *FD
  1266. TBT . 'TAIR' = FAUX ;
  1267. 'SI' ('EXIS' rxt 'AIR') ;
  1268. vertytab rxt 'AIR' 'LOGIQUE' ;
  1269. TBT . 'TAIR' = rxt . 'AIR' ;
  1270. 'SI' TBT . 'TAIR' ;
  1271. LINCOND = LINCOND 'ET' ('MOTS' 'AIR') ;
  1272. 'SI' ('EXIS' rxt 'scenario') ;
  1273. vertytab (rxt . 'scenario') 'qair' 'LISTREEL' ;
  1274. 'FINS' ;
  1275. 'FINS' ;
  1276. 'FINS' ;
  1277.  
  1278. 'SI' (('EGA' ('DIME' LINCOND) 0) 'OU' ('NON' tbt . 'TAIR'));
  1279. LINCOND = LINCOND 'ET' ('MOTS' 'AIR') ;
  1280. 'FINS' ;
  1281. 'MESS' ' Liste des incondensables : ' ;
  1282. 'LIST' LINCOND ;
  1283.  
  1284. *
  1285. * VAPEUR = vrai en présence de vapeur dans le mélange
  1286. TBT . 'VAPEUR' = FAUX ;
  1287. 'SI' ('EXIS' rxt 'VAPEUR') ;
  1288. vertytab rxt 'VAPEUR' 'LOGIQUE' ;
  1289. TBT . 'VAPEUR' = rxt . 'VAPEUR' ;
  1290. 'SI' TBT . 'VAPEUR' ;
  1291. vertytab rxt 'Yvap0' 'FLOTTANT' ;
  1292. listentr .'Yvap0' = '' ;
  1293. 'SI' ('EXIS' rxt 'scenario') ;
  1294. vertytab (rxt . 'scenario') 'qeau' 'LISTREEL' ;
  1295. 'FINS' ;
  1296. listentr .'Mliq0' = '' ;
  1297. listentr .'Lv' = '' ;
  1298. listentr .'Cpvap' = '' ;
  1299. 'FINS' ;
  1300. 'FINS' ;
  1301.  
  1302. *
  1303. * CONDMAS = vrai si condensation en masse et présence de VAPEUR
  1304. TBT . 'CONDMAS' = FAUX ;
  1305. 'SI' TBT . 'VAPEUR' ;
  1306. 'SI' ('EXIS' rxt 'CONDMAS') ;
  1307. vertytab rxt 'CONDMAS' 'LOGIQUE' ;
  1308. listentr . 'CONDMAS' = '' ;
  1309. TBT . 'CONDMAS' = rxt . 'CONDMAS' ;
  1310. listand = listand 'ET' (MOTS 'CONDMAS') ;
  1311. 'FINS' ;
  1312. 'FINS' ;
  1313. *
  1314. * ASPER = vrai aspersion et présence de VAPEUR
  1315. TBT . 'ASPER' = FAUX ;
  1316. 'SI' TBT . 'VAPEUR' ;
  1317. 'SI' ('EXIS' rxt 'ASPER') ;
  1318. vertytab rxt 'ASPER' 'LOGIQUE' ;
  1319. listentr . 'ASPER' = '' ;
  1320. TBT . 'ASPER' = rxt . 'ASPER' ;
  1321. 'SI' TBT . 'ASPER' ;
  1322. vertytab rxt 'scenasp' 'TABLE ' ;
  1323. listentr . 'scenasp' = '' ;
  1324. vertytab rxt 'aspinj' 'MAILLAGE' ;
  1325. listentr . 'aspinj' = '' ;
  1326. vertytab rxt 'toitf' 'MAILLAGE' ;
  1327. listentr . 'toitf' = '' ;
  1328. vertytab rxt 'rod' 'FLOTTANT' ;
  1329. listentr . 'rod' = '' ;
  1330. vertytab rxt 'Cpd' 'FLOTTANT' ;
  1331. listentr . 'Cpd' = '' ;
  1332. 'FINS' ;
  1333. 'FINS' ;
  1334. 'FINS' ;
  1335.  
  1336. *
  1337. * TRECOMB possible si présence de H2, O2, N2 et VAPEUR
  1338. 'SI' TBT . 'TRECOMB' ;
  1339. LOG0 = TBT . 'TH2' 'ET' TBT . 'VAPEUR' 'ET'
  1340. TBT . 'TN2' 'ET' TBT . 'TO2' ;
  1341. NBREC = 'DIME' rxt . 'RECOMB' ;
  1342. 'SI' ('NON' LOG0) ;
  1343. 'MESS' ' ' ;
  1344. 'MESS' '*********************************************************' ;
  1345. 'MESS' ' ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ' ;
  1346. 'MESS' ' ' ;
  1347. 'MESS' ' ' ;
  1348. 'SI' ('NON' tbt . 'TH2')
  1349. 'MESS' 'RECOMBINEUR ==> H2 est obligatoire' ;
  1350. 'FINS' ;
  1351. 'SI' ('NON' tbt . 'TO2')
  1352. 'MESS' 'RECOMBINEUR ==> O2 est obligatoire' ;
  1353. 'FINS' ;
  1354. 'SI' ('NON' tbt . 'TN2')
  1355. 'MESS' 'RECOMBINEUR ==> N2 est obligatoire' ;
  1356. 'FINS' ;
  1357. 'SI' ('NON' tbt . 'VAPEUR')
  1358. 'MESS' 'RECOMBINEUR ==> H2O est obligatoire' ;
  1359. 'FINS' ;
  1360. 'MESS' ' ' ;
  1361. 'MESS' '*********************************************************' ;
  1362. 'ERRE' 5 ;
  1363. 'FINS' ;
  1364. 'FINS' ;
  1365.  
  1366. *
  1367. * Vérification des entrées de RXT
  1368. lindex = 'INDE' rxt ;
  1369. n = 'DIME' lindex ;
  1370. 'REPE' Bver n ;
  1371. tae = 'TYPE' lindex . &bver ;
  1372.  
  1373. 'SI' ('NON' ('EGA' tae 'MOT')) ;
  1374. 'MESS' ;
  1375. 'MESS' '*********************************************************' ;
  1376. 'MESS' ' ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ' ;
  1377. 'MESS' ' ' ;
  1378. 'MESS' ' ' ;
  1379. 'MESS' ' Un des indices de la table rxt n est pas de type MOT ' ;
  1380. 'MESS' ' ' ;
  1381. 'MESS' '*********************************************************' ;
  1382. 'ERRE' 21 ;
  1383. 'QUIT' EXECRXT ;
  1384. 'FINS' ;
  1385.  
  1386. 'SI' ('NON' ('EXIS' listentr lindex . &bver)) ;
  1387. 'MESS' ;
  1388. 'MESS' '*********************************************************' ;
  1389. 'MESS' ' ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ' ;
  1390. 'MESS' ' ' ;
  1391. 'MESS' ' ' ;
  1392. 'MESS' ' Il y a un indice non reconnu :' ' ' lindex . &bver ;
  1393. 'MESS' ' ' ;
  1394. 'MESS' '*********************************************************' ;
  1395. 'ERRE' 21 ;
  1396. 'QUIT' EXECRXT ;
  1397. 'FINS' ;
  1398.  
  1399. 'FIN' Bver ;
  1400.  
  1401. *
  1402. * Affichage des options surchargées
  1403. n = 'DIME' listand ;
  1404. 'SI' ('NON' ('EGA' n 0)) ;
  1405. 'MESS' ' ' ;
  1406. 'MESS' ' Liste des options surchargees :' ;
  1407. 'LIST' listand ;
  1408. 'SI' ('EXIS' listand 'THCO') ;
  1409. 'MESS' ' ' ;
  1410. 'MESS' 'Commentaire : le couplage fluide/paroi est implicite' ;
  1411. 'FINS' ;
  1412. 'MESS' ' ' ;
  1413. 'FINS' ;
  1414.  
  1415. *
  1416. * Vérification des compatibilités entre entrées
  1417.  
  1418. 'SI' (('EGA' TBT . 'ALGO' 'EFM1') 'ET' ('EGA' TBT . 'discr' 'QUAF')) ;
  1419. vertytab 'ERREUR' 'ERREUR'
  1420. ('CHAI' 'Options QUAF et EFM1 incompatibles');
  1421. 'FINS' ;
  1422.  
  1423.  
  1424. 'SI' ('EXIS' TBT 'MODTURB') ;
  1425. 'SI' (('EGA' TBT . 'MODTURB' 'KEPSILON')
  1426. 'ET' ('NON' ('EGA' TBT . 'ALGO' 'EFM1')));
  1427. vertytab 'ERREUR' 'ERREUR'
  1428. ('CHAI' 'Option EFM1 necessaire pour le modèle K-epsilon');
  1429. 'FINS' ;
  1430. 'FINS' ;
  1431.  
  1432.  
  1433. 'MESS' WWW ;
  1434. 'MESS' '----------- FIN DES INITIALISATIONS ET VERIFICATIONS ---------';
  1435. 'MESS' '----------------------- DEBUT DU CALCUL ----------------------';
  1436. 'MESS' WWW ;
  1437. 'MESS' ' ' ;
  1438.  
  1439. *-----------------------------------------------------------------------
  1440. *-----------------------------------------------------------------------
  1441. *-----------------------------------------------------------------------
  1442. * ------------- FIN DES INITIALISATIONS ET VERIFICATIONS ---------------
  1443. *-----------------------------------------------------------------------
  1444. *-----------------------------------------------------------------------
  1445. *-----------------------------------------------------------------------
  1446.  
  1447. 'SI' TPREPA ;
  1448. PREPAENC rxt TBT GEO TIC ;
  1449. 'FINS' ;
  1450. rxt . 'TBT' = TBT ;
  1451. GEO = rxt .'GEO' ;
  1452. tic = rxt . 'TIC' ;
  1453.  
  1454. vtf = GEO . 'vtf' ;
  1455. 'SI' TBT . 'THERMP' ;
  1456. $vtp = GEO . '$vtp' ;
  1457. $paroif = GEO . '$paroif' ;
  1458. paroif = GEO . 'paroif' ;
  1459. 'FINS' ;
  1460. Diag = 'DOMA' $vtf 'XXDIAGSI' ;
  1461. Volvtf = 'DOMA' $vtf 'VOLUME' ;
  1462. VTotal = GEO . 'VTotal' ;
  1463.  
  1464. 'MESS' ' ************* GEOMETRIE *********************' ;
  1465. 'MESS' ' **********************************************' ;
  1466. 'DOMA' $vtf 'IMPR' ;
  1467. 'SI' TBT . 'THERMP' ;
  1468. 'DOMA' $vtp 'IMPR' ;
  1469. 'FINS' ;
  1470.  
  1471. 'MESS' ' ************* DISCRETISATION *****************' ;
  1472. 'MESS' ' **********************************************' ;
  1473. 'MESS' ' Discr =' ' ' tbt . 'discr' ' ' 'Pression =' ' ' tbt . 'KPRE' ;
  1474. 'MESS' ' Algo =' ' ' algo ' ' 'Niveau impression =' ' ' nimpr ;
  1475. 'MESS' ' Pas de temps DT =' ' ' rxt . 'DT0' ;
  1476.  
  1477. 'MESS' ' **** PROPRIETES PHYSIQUES INITIALISATIONS ****' ;
  1478. 'MESS' ' **********************************************' ;
  1479.  
  1480. Tfm = 'EXTR' (tic . 'Tfm') ndl ;
  1481. Tkm = Tfm '+' 273.15 ;
  1482.  
  1483. *
  1484. * Initialisation et affichage des propriétés physiques
  1485. * (Cp (Tfm), Cv et Mu (Tkm))
  1486. Rgh2 = TBT . 'Rgh2' ;
  1487. Rghe = TBT . 'Rghe' ;
  1488. Rgo2 = TBT . 'Rgo2' ;
  1489. Rgn2 = TBT . 'Rgn2' ;
  1490. Rgco = TBT . 'Rgco' ;
  1491. Rgco2 = TBT . 'Rgco2' ;
  1492. Rgvap = TBT . 'Rgvap' ;
  1493. Rgair = TBT . 'Rgair' ;
  1494.  
  1495. Cph2 Cphe Cpo2 Cpn2 Cpco2 Cpco Cpair = CALCP Tfm ;
  1496. Cpvap = TBT . 'Cpvap' ;
  1497.  
  1498. Cvair = Cpair '-' Rgair ;
  1499. Cvvap = Cpvap '-' Rgvap ;
  1500. Cvhe = Cphe '-' Rghe ;
  1501. Cvh2 = Cph2 '-' Rgh2 ;
  1502. Cvo2 = Cpo2 '-' Rgo2 ;
  1503. Cvn2 = Cpn2 '-' Rgn2 ;
  1504. Cvco = Cpco '-' Rgco ;
  1505. Cvco2 = Cpco2 '-' Rgco2 ;
  1506. Cvair = Cpair '-' Rgair ;
  1507.  
  1508. Muh2 Muhe Muo2 Mun2 Muco2 Muco Muvap Muair = CALMU Tkm ;
  1509.  
  1510. Lv = TBT . 'Lv' ;
  1511.  
  1512. 'MESS' ' ***** Air ***** ' ;
  1513. 'MESS' '==> Cpair =' ' ' Cpair ' ' 'J/kg/K' ;
  1514. 'MESS' '==> Cvair =' ' ' Cvair ' ' 'J/kg/K' ;
  1515. 'MESS' '==> Rgair =' ' ' Rgair ' ' 'J/kg/K' ;
  1516.  
  1517. 'SI' TBT . 'VAPEUR' ;
  1518. 'MESS' ' ***** Vapeur H2o ***** ' ;
  1519. 'MESS' '==> Cpvap =' ' ' Cpvap ' ' 'J/kg/K' ;
  1520. 'MESS' '==> Cvvap =' ' ' Cvvap ' ' 'J/kg/K' ;
  1521. 'MESS' '==> Rgvap =' ' ' Rgvap ' ' 'J/kg/K' ;
  1522. 'MESS' '==> Lv =' ' ' Lv ' ' 'J/kg/K' ;
  1523. 'FINS' ;
  1524.  
  1525. 'SI' TBT . 'THE' ;
  1526. 'MESS' ' ***** He ***** ' ;
  1527. 'MESS' '==> Cphe =' ' ' Cphe ' ' 'J/kg/K' ;
  1528. 'MESS' '==> Cvhe =' ' ' Cvhe ' ' 'J/kg/K' ;
  1529. 'MESS' '==> Rghe =' ' ' Rghe ' ' 'J/kg/K' ;
  1530. 'FINS' ;
  1531.  
  1532. 'SI' TBT . 'TH2' ;
  1533. 'MESS' ' ***** H2 ***** ' ;
  1534. 'MESS' '==> Cph2 =' ' ' Cph2 ' ' 'J/kg/K' ;
  1535. 'MESS' '==> Cvh2 =' ' ' Cvh2 ' ' 'J/kg/K' ;
  1536. 'MESS' '==> Rgh2 =' ' ' Rgh2 ' ' 'J/kg/K' ;
  1537. 'FINS' ;
  1538.  
  1539. 'SI' TBT . 'TO2' ;
  1540. 'MESS' ' ***** O2 ***** ' ;
  1541. 'MESS' '==> Cpo2 =' ' ' Cpo2 ' ' 'J/kg/K' ;
  1542. 'MESS' '==> Cvo2 =' ' ' Cvo2 ' ' 'J/kg/K' ;
  1543. 'MESS' '==> Rgo2 =' ' ' Rgo2 ' ' 'J/kg/K' ;
  1544. 'FINS' ;
  1545.  
  1546. 'SI' TBT . 'TN2' ;
  1547. 'MESS' ' ***** N2 ***** ' ;
  1548. 'MESS' '==> Cpn2 =' ' ' Cpn2 ' ' 'J/kg/K' ;
  1549. 'MESS' '==> Cvn2 =' ' ' Cvn2 ' ' 'J/kg/K' ;
  1550. 'MESS' '==> Rgn2 =' ' ' Rgn2 ' ' 'J/kg/K' ;
  1551. 'FINS' ;
  1552.  
  1553. 'SI' TBT . 'TCO' ;
  1554. 'MESS' ' ***** CO ***** ' ;
  1555. 'MESS' '==> Cpco =' ' ' Cpco ' ' 'J/kg/K' ;
  1556. 'MESS' '==> Cvco =' ' ' Cvco ' ' 'J/kg/K' ;
  1557. 'MESS' '==> Rgco =' ' ' Rgco ' ' 'J/kg/K' ;
  1558. 'FINS' ;
  1559.  
  1560. 'SI' TBT . 'TCO2' ;
  1561. 'MESS' ' ***** CO2 ***** ' ;
  1562. 'MESS' '==> Cpco2 =' ' ' Cpco2 ' ' 'J/kg/K' ;
  1563. 'MESS' '==> Cvco2 =' ' ' Cvco2 ' ' 'J/kg/K' ;
  1564. 'MESS' '==> Rgco2 =' ' ' Rgco2 ' ' 'J/kg/K' ;
  1565. 'FINS' ;
  1566.  
  1567. ***'SI' TBT . 'TAIR' ;
  1568. 'MESS' ' ***** AIR ***** ' ;
  1569. 'MESS' '==> Cpair =' ' ' Cpair ' ' 'J/kg/K' ;
  1570. 'MESS' '==> Cvair =' ' ' Cvair ' ' 'J/kg/K' ;
  1571. 'MESS' '==> Rgair =' ' ' Rgair ' ' 'J/kg/K' ;
  1572. ***'FINS' ;
  1573.  
  1574. 'MESS' ' *************** ' ;
  1575. 'MESS' ' Diffusion browniene db = ' db ;
  1576. 'SI' TBT . 'THERMP' ;
  1577. 'SI' ('EGA' ('TYPE' tic . 'KHW') 'CHPOINT') ;
  1578. 'MESS' ' Coefficient d echange ECHAN (Min/Max)=' ' '
  1579. ('MINI' tic . 'KHW') ' ' ('MAXI' tic . 'KHW') ' ' 'W/m2/K' ;
  1580. 'SINO' ;
  1581. 'MESS' ' Coefficient d echange ECHAN=' ' ' tic . 'KHW' ' ' 'W/m2/K';
  1582. 'FINS' ;
  1583. 'FINS' ;
  1584.  
  1585. *
  1586. * Initialisation et affichage des bilans initiaux 0D/CFD
  1587.  
  1588. 'MESS' '*** Bilans initiaux 0D-MultiD ***' ;
  1589. 'MESS' '_____________________________________________'
  1590. '____________________' ;
  1591. 'MESS' '___Bilans 0D_________Bilans MultiD _____ Erreur Relative (%)';
  1592.  
  1593. Rhomn = 'EXTR' (tic . 'Rhomn') ndl ;
  1594. M0D = Rhomn '*' Vtotal ;
  1595. MMD = 'SOMT' (Diag '*' rxt . 'TIC' . 'RHO') ;
  1596.  
  1597. 'SI' TBT . 'VAPEUR' ;
  1598. Rhomv = 'EXTR' (tic . 'Rhomv') ndl ;
  1599. MV0D = Rhomv '*' Vtotal ;
  1600. MVMD = 'SOMT' (Diag '*' rxt . 'TIC' . 'ROVP') ;
  1601. Rhomvg = 'EXTR' (tic . 'Rhomvg') ndl ;
  1602. MVG0D = Rhomvg '*' Vtotal ;
  1603. MVGMD = 'SOMT' (Diag '*' rxt . 'TIC' . 'RVP') ;
  1604. 'FINS' ;
  1605. 'SI' TBT . 'THE' ;
  1606. Rhomhe = 'EXTR' (tic . 'Rhomhe') ndl ;
  1607. MHE0D = Rhomhe '*' Vtotal ;
  1608. MHEMD = 'SOMT' (Diag '*' rxt . 'TIC' . 'RHE') ;
  1609. 'FINS' ;
  1610. 'SI' TBT . 'TH2' ;
  1611. Rhomh2 = 'EXTR' (tic . 'Rhomh2') ndl ;
  1612. MH20D = Rhomh2 '*' Vtotal ;
  1613. MH2MD = 'SOMT' (Diag '*' rxt . 'TIC' . 'RH2') ;
  1614. 'FINS' ;
  1615. 'SI' TBT . 'TO2' ;
  1616. Rhomo2 = 'EXTR' (tic . 'Rhomo2') ndl ;
  1617. MO20D = Rhomo2 '*' Vtotal ;
  1618. MO2MD = 'SOMT' (Diag '*' rxt . 'TIC' . 'RO2') ;
  1619. 'FINS' ;
  1620. 'SI' TBT . 'TN2' ;
  1621. Rhomn2 = 'EXTR' (tic . 'Rhomn2') ndl ;
  1622. MN20D = Rhomn2 '*' Vtotal ;
  1623. MN2MD = 'SOMT' (Diag '*' rxt . 'TIC' . 'RN2') ;
  1624. 'FINS' ;
  1625. 'SI' TBT . 'TCO' ;
  1626. Rhomco = 'EXTR' (tic . 'Rhomco') ndl ;
  1627. MCO0D = Rhomco '*' Vtotal ;
  1628. MCOMD = 'SOMT' (Diag '*' rxt . 'TIC' . 'RCO') ;
  1629. 'FINS' ;
  1630. 'SI' TBT . 'TCO2' ;
  1631. Rhomco2 = 'EXTR' (tic . 'Rhomco2') ndl ;
  1632. MCO20D = Rhomco2 '*' Vtotal ;
  1633. MCO2MD = 'SOMT' (Diag '*' rxt . 'TIC' . 'RCO2') ;
  1634. 'FINS' ;
  1635. ***'SI' TBT . 'TAIR' ;
  1636. Rhomair = 'EXTR' (tic . 'Rhomair') ndl ;
  1637. MAIR0D = Rhomair '*' Vtotal ;
  1638. MAIRMD = 'SOMT' (Diag '*' rxt . 'TIC' . 'RAIR') ;
  1639. ***'FINS' ;
  1640.  
  1641. 'SI' ('EGA' ndl 1) ;
  1642. Cvm = 'EXTR' (tic . 'Cvm') ndl ;
  1643. 'SINO' ;
  1644. Cvm = 'EXTR' (tic . 'Cvm') (ndl '-' 1) ;
  1645. 'FINS' ;
  1646. Remn = 'EXTR' (tic . 'Remn') ndl ;
  1647. E0D = Remn ;
  1648. EMD = ('SOMT' (Diag '*' Cvm '*' rxt . 'TIC' . 'RHO' '*'
  1649. (rxt . 'TIC' . 'TF' '+' 273.15)) ) '/' Vtotal ;
  1650.  
  1651. 'MESS' ' Masse (kg)' ' ' M0D '_______' MMD '________'
  1652. (100. '*'(M0D '-' MMD) '/'M0D) ;
  1653. 'MESS' ' Energie (J/m3)' E0D '_______' EMD '________'
  1654. (100. '*' (E0D '-' EMD) '/' E0D) ;
  1655.  
  1656. 'SI' (TBT . 'VAPEUR' 'ET' ('NON' ('EGA' MV0D 0.0))) ;
  1657. 'MESS' ' M Vapeur(kg) ' MV0D '_______' MVMD '_______'
  1658. (100. '*' (MV0D '-' MVMD) '/' MV0D) ;
  1659. 'FINS' ;
  1660. 'SI' (TBT . 'THE' 'ET' ('NON' ('EGA' MHE0D 0.0))) ;
  1661. 'MESS' ' M Helium (kg) ' MHE0D '_______' MHEMD '_______'
  1662. (100. '*' (MHE0D '-' MHEMD) '/' MHE0D) ;
  1663. 'FINS' ;
  1664. 'SI' (TBT . 'TH2' 'ET' ('NON' ('EGA' MH20D 0.0))) ;
  1665. 'MESS' ' M Hydrogene (kg) ' MH20D '_______' MH2MD '_______'
  1666. (100. '*' (MH20D '-' MH2MD) '/' MH20D) ;
  1667. 'FINS' ;
  1668. 'SI' (TBT . 'TO2' 'ET' ('NON' ('EGA' MO20D 0.0))) ;
  1669. 'MESS' ' M Oxygene (kg) ' MO20D '_______' MO2MD '_______'
  1670. (100. '*' (MO20D '-' MO2MD) '/' MO20D) ;
  1671. 'FINS' ;
  1672. 'SI' (TBT . 'TN2' 'ET' ('NON' ('EGA' MN20D 0.0))) ;
  1673. 'MESS' ' M Azote (Kk) ' MN20D '_______' MN2MD '_______'
  1674. (100. '*' (MN20D '-' MN2MD) '/' MN20D) ;
  1675. 'FINS' ;
  1676. 'SI' (TBT . 'TCO' 'ET' ('NON' ('EGA' MCO0D 0.0))) ;
  1677. 'MESS' ' M CO (kg) ' MCO0D '_______' MCOMD '_______'
  1678. (100. '*' (MCO0D '-' MCOMD) '/' MCO0D) ;
  1679. 'FINS' ;
  1680. 'SI' (TBT . 'TCO2' 'ET' ('NON' ('EGA' MCO20D 0.0))) ;
  1681. 'MESS' ' M CO2 (kg) ' MCO20D '_______' MCO2MD '_______'
  1682. (100. '*' (MCO20D '-' MCO2MD) '/' MCO20D) ;
  1683. 'FINS' ;
  1684. ***'SI' (TBT . 'TAIR' 'ET' ('NON' ('EGA' MAIR0D 0.0))) ;
  1685. 'SI' ('NON' ('EGA' MAIR0D 0.0)) ;
  1686. 'MESS' ' M AIR (kg) ' MAIR0D '_______' MAIRMD '_______'
  1687. (100. '*' (MAIR0D '-' MAIRMD) '/' MAIR0D) ;
  1688. 'FINS' ;
  1689.  
  1690. 'MESS' '_____________________________________________'
  1691. '____________________' ;
  1692. 'SI' TBT . 'THERMP' ;
  1693. Emurn = 'EXTR' (tic . 'Emur') ndl ;
  1694. 'MESS' ' Energie Stockee Mur (J) ' Emurn ;
  1695. 'MESS' '_____________________________________________'
  1696. '____________________' ;
  1697. 'FINS' ;
  1698.  
  1699. 'MESS' ' ' ;
  1700. 'MESS' ' *** Divers **** ' ;
  1701. 'MESS' ' Dimension espace: ' idim ;
  1702. 'MESS' ' Nombre d elements/noeuds' ' ' ('NBEL' vtf) ' ' ('NBNO' vtf) ;
  1703.  
  1704. 'MESS' ' ' ;
  1705. 'MESS' ' *** Volumes' ;
  1706. 'MESS' ' VTotal=' VTotal ' ' 'm3' ;
  1707. 'SI' TBT . 'THERMP' ;
  1708. 'MESS' ' VTotal paroi =' GEO . 'VTotalp' ' '
  1709. 'm3 Sparoif =' GEO . 'Sparoif' ' ' 'm2' ;
  1710. 'FINS' ;
  1711. 'SI' TBT . 'TTIMP' ;
  1712. NBTIMP = 'DIME' rxt . 'TIMP' ;
  1713. itimp = 'INDE' rxt . 'TIMP' ;
  1714. 'REPE' BBTIMP NBTIMP ;
  1715. Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ;
  1716. 'MESS' ' Surface T imposee' ' ' (itimp . &BBTIMP) ' ' '=' ' '
  1717. Btimp . 'Smtpi' ' ' 'm2' ;
  1718. 'FIN' BBTIMP ;
  1719. 'FINS' ;
  1720. 'MESS' ' ************************************************************' ;
  1721.  
  1722. *----------------------------------------------------------
  1723. *----- BOUCLE PRINCIPALE DE RESOLUTION SUR LE NB ----------
  1724. *----- TOTAL DE PAS DE TEMPS A REALISER -------------------
  1725. *----------------------------------------------------------
  1726.  
  1727. *
  1728. * Initialisation du pas de temps
  1729. 'SI' ('NON' ('EXIS' tic 'DT')) ;
  1730. tic . 'DT' = rxt . 'DT0' ;
  1731. 'FINS' ;
  1732.  
  1733. *
  1734. * Initialisation pour le bilan de masse en vapeur
  1735. 'SI' TBT . 'VAPEUR' ;
  1736. 'SI' ('NON' ('EXIS' TIC 'Mcondm')) ;
  1737. tic . 'Mcondm' = 'PROG' ndl '*' 0. ;
  1738. 'FINS' ;
  1739. 'SI' ('NON' ('EXIS' TIC 'Qcm')) ;
  1740. tic . 'Qcm' = 'PROG' ndl '*' 0. ;
  1741. 'FINS' ;
  1742. 'SI' TBT . 'TPAROIF' ;
  1743. 'SI' ('NON' ('EXIS' TIC 'Mcondw')) ;
  1744. tic . 'Mcondw' = 'PROG' ndl '*' 0. ;
  1745. 'FINS' ;
  1746. 'SI' ('NON' ('EXIS' TIC 'Qcw')) ;
  1747. tic . 'Qcw' = 'PROG' ndl '*' 0. ;
  1748. 'FINS' ;
  1749. 'FINS' ;
  1750. 'SI' TBT . 'TTIMP' ;
  1751. NBTIMP = 'DIME' rxt . 'TIMP' ;
  1752. itimp = 'INDE' rxt . 'TIMP' ;
  1753. 'REPE' BBTIMP NBTIMP ;
  1754. Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ;
  1755. CQc1 = Btimp . 'Qc1' ;
  1756. 'SI' ('NON' ('EXIS' TIC CQc1)) ;
  1757. tic . CQc1 = 'PROG' ndl '*' 0. ;
  1758. 'FINS' ;
  1759. CMcond1 = Btimp . 'Mcond1' ;
  1760. 'SI' ('NON' ('EXIS' tic CMcond1)) ;
  1761. tic . CMcond1 = 'PROG' ndl '*' 0. ;
  1762. 'FINS' ;
  1763. 'FIN' BBTIMP ;
  1764. 'FINS' ;
  1765. 'SI' TBT . 'TECHANP' ;
  1766. 'SI' ('NON' ('EXIS' TIC 'Mcond0')) ;
  1767. tic . 'Mcond0' = 'PROG' ndl '*' 0. ;
  1768. 'FINS' ;
  1769. 'SI' ('NON' ('EXIS' TIC 'Qc0')) ;
  1770. tic . 'Qc0' = 'PROG' ndl '*' 0. ;
  1771. 'FINS' ;
  1772. 'FINS' ;
  1773. 'FINS' ;
  1774.  
  1775. *
  1776. * Initialisation systématique à 0. pour tous les constituants
  1777. * (correction de masse, densité, fraction massique, densité moyenne)
  1778. *dRhoair= 0. ;
  1779. dRhov = 0. ;
  1780. dRhohe = 0. ;
  1781. dRhoh2 = 0. ;
  1782. dRhoo2 = 0. ;
  1783. dRhon2 = 0. ;
  1784. dRhoco = 0. ;
  1785. dRhoco2= 0. ;
  1786. *
  1787. *rair = 0. ;
  1788. rvp = 0. ;
  1789. rhe = 0. ;
  1790. rh2 = 0. ;
  1791. ro2 = 0. ;
  1792. rn2 = 0. ;
  1793. rco = 0. ;
  1794. rco2 = 0. ;
  1795. *
  1796. *Yair = 0. ;
  1797. Yvap = 0. ;
  1798. Yhe = 0. ;
  1799. Yh2 = 0. ;
  1800. Yo2 = 0. ;
  1801. Yn2 = 0. ;
  1802. Yco = 0. ;
  1803. Yco2 = 0. ;
  1804. *
  1805. Rmvn = 0. ;
  1806. Rmvgn = 0. ;
  1807. Rmliqn = 0. ;
  1808. Rmbron = 0. ;
  1809. Rmhen = 0. ;
  1810. Rmh2n = 0. ;
  1811. Rmn2n = 0. ;
  1812. Rmo2n = 0. ;
  1813. Rmcon = 0. ;
  1814. Rmco2n = 0. ;
  1815. *
  1816. drclair = 0. ;
  1817. drclvp = 0. ;
  1818. drclhe = 0. ;
  1819. drclh2 = 0. ;
  1820. drclo2 = 0. ;
  1821. drcln2 = 0. ;
  1822. drclco = 0. ;
  1823. drclco2 = 0. ;
  1824. *
  1825. Emurn = 0. ;
  1826. Mcondmn = 0. ;
  1827. Mliqn = 0. ;
  1828. *
  1829. * Valeurs moyennes au début de pas de temps
  1830. Rgpn = tic . 'Rgp' ;
  1831. Tfn = tic . 'TF' ;
  1832. Tkn = Tfn '+' 273.15 ;
  1833. Rhon = tic . 'RHO' ;
  1834. *
  1835. ndl = 'DIME' tic . 'LTPS' ;
  1836. Cvmn = 'EXTR' tic . 'Cvm' ndl ;
  1837. Gamn = 'EXTR' tic . 'Gamm' ndl ;
  1838. Cpmn = 'EXTR' tic . 'Cpm' ndl ;
  1839. Ptmn = 'EXTR' tic . 'PT' ndl ;
  1840. Rhomn = 'EXTR' tic . 'Rhomn' ndl ;
  1841. Remn = 'EXTR' tic . 'Remn' ndl ;
  1842. Rmairn = 'EXTR' tic . 'Rhomair' ndl ;
  1843. *
  1844. 'SI' TBT . 'VAPEUR' ;
  1845. Rmvn = 'EXTR' tic . 'Rhomv' ndl ;
  1846. Rmvgn = 'EXTR' tic . 'Rhomvg' ndl ;
  1847. Mcondmn = 'EXTR' tic . 'Mcondm' ndl ;
  1848. 'SI' TBT . 'CONDMAS' ;
  1849. Rmliqn = 'EXTR' tic . 'Rliqm' ndl ;
  1850. Rmbron = 'EXTR' tic . 'Rbrom' ndl ;
  1851. 'FINS' ;
  1852. 'SI' ('EXIS' tic 'drclvp') ;
  1853. drclvp = tic . 'drclvp' ;
  1854. 'FINS' ;
  1855. 'FINS' ;
  1856. 'SI' TBT . 'THE' ;
  1857. Rmhen = 'EXTR' tic . 'Rhomhe' ndl ;
  1858. 'SI' ('EXIS' tic 'drclhe') ;
  1859. drclhe = tic . 'drclhe' ;
  1860. 'FINS' ;
  1861. 'FINS' ;
  1862. 'SI' TBT.'TH2' ;
  1863. Rmh2n = 'EXTR' tic . 'Rhomh2' ndl ;
  1864. 'SI' ('EXIS' tic 'drclh2') ;
  1865. drclh2 = tic . 'drclh2' ;
  1866. 'FINS' ;
  1867. 'FINS' ;
  1868. 'SI' TBT.'TO2' ;
  1869. Rmo2n = 'EXTR' tic . 'Rhomo2' ndl ;
  1870. 'SI' ('EXIS' tic 'drclo2') ;
  1871. drclo2 = tic . 'drclo2' ;
  1872. 'FINS' ;
  1873. 'FINS' ;
  1874. 'SI' TBT.'TN2' ;
  1875. Rmn2n = 'EXTR' tic . 'Rhomn2' ndl ;
  1876. 'SI' ('EXIS' tic 'drcln2') ;
  1877. drcln2 = tic . 'drcln2' ;
  1878. 'FINS' ;
  1879. 'FINS' ;
  1880. 'SI' TBT.'TCO' ;
  1881. Rmcon = 'EXTR' tic . 'Rhomco' ndl ;
  1882. 'SI' ('EXIS' tic 'drclco') ;
  1883. drclco = tic . 'drclco' ;
  1884. 'FINS' ;
  1885. 'FINS' ;
  1886. 'SI' TBT.'TCO2' ;
  1887. Rmco2n = 'EXTR' tic . 'Rhomco2' ndl ;
  1888. 'SI' ('EXIS' tic 'drclco2') ;
  1889. drclco2 = tic . 'drclco2' ;
  1890. 'FINS' ;
  1891. 'FINS' ;
  1892. *
  1893. 'SI' TBT . 'THERMP' ;
  1894. Emurn = 'EXTR' tic . 'Emur' ndl ;
  1895. 'FINS' ;
  1896. Qcn = 'EXTR' tic . 'Qc' ndl ;
  1897. Econdn = 'EXTR' tic . 'Econd' ndl ;
  1898. Econvn = 'EXTR' tic . 'Econv' ndl ;
  1899. Hcondn = 'EXTR' tic . 'Hcond' ndl ;
  1900. Mlq = 0. ;
  1901. Mbron = Rmbron '*' Vtotal ;
  1902. *
  1903. drhpar = 0. ;
  1904. *
  1905. *
  1906. *>> Boucle en temps
  1907. * On va de (n-1) à (n)
  1908. *
  1909. *
  1910. 'REPE' BCLTPS nbit ;
  1911.  
  1912. Tknm = Tkn ;
  1913. Tfnm = Tfn ;
  1914. Rhonm = Rhon;
  1915. MaxRho = ('MAXI' Rhonm) '*' 10. ;
  1916. *
  1917. *>>1 Gestion de la fréquence de préconditionnement
  1918. 'SI' ('OU' ('EGA' &BCLTPS 1) ('MULT' &BCLTPS RXT . 'FRPREC')) ;
  1919. calprec = VRAI ;
  1920. 'SINO' ;
  1921. calprec = FAUX ;
  1922. 'FINS' ;
  1923. 'SI' ('EGA' nbit 0) ;
  1924. 'QUIT' BCLTPS ;
  1925. 'FINS' ;
  1926. *>>1 Gestion de la fréquence de préconditionnement FIN
  1927. *
  1928.  
  1929. *
  1930. *>>2 Gestion du rang du pas de temps, de sa valeur, de la liste des temps
  1931. tic . 'NUPADT' = tic . 'NUPADT' '+' 1 ;
  1932. ndl = 'DIME' tic . 'LTPS' ;
  1933. Tps = tic . 'Tps' '+' tic . 'DT' ;
  1934. tic . 'Tps' = Tps ;
  1935. tic . 'LTPS' = tic . 'LTPS' 'ET' ('PROG' Tps ) ;
  1936. *
  1937. 'SI' ( TBT . 'IMPR' '>EG' 1) ;
  1938. 'MESS' '*************************************************************'
  1939. '***********************' ;
  1940. 'MESS' '*************************************************************'
  1941. '***********************' ;
  1942. 'MESS' '==> Pas de temps ' tic . 'NUPADT'
  1943. ' Temps = ' tps 'Secondes Pas de temps : DT= ' tic . 'DT' ;
  1944. 'FINS' ;
  1945. *>>2 Gestion du rang du pas de temps, etc FIN
  1946. *
  1947.  
  1948. *
  1949. *>>3 Gestion des E/S
  1950. *
  1951. *FD
  1952. * Il n'y a pas de Sorties et de Breches évanescentes contrairement aux
  1953. * anciennes syntaxe de Breche, Breche2 et Breche3 (Tbrechei=FAUX et tic
  1954. * . 'Qj' existe) où on complète par 0.
  1955. *FD
  1956. *
  1957. * Accumulation du débit massique (en kg/s) de chaque espèce xxx dans qoxxx
  1958. Qovp = 0. ; Qlovp = 0. ;
  1959. Qohe = 0. ;
  1960. Qoh2 = 0. ;
  1961. Qon2 = 0. ;
  1962. Qoo2 = 0. ;
  1963. Qoco = 0. ;
  1964. Qoco2 = 0. ;
  1965. * Débits de vapeur et de liquide pour les bilans (Minj et Mrest)
  1966. Qeau = 0. ;
  1967. Qlj = 0. ;
  1968. * Accumulation du débit massique dans Qtot (kg/s), du débit volumique
  1969. * dans srcs (m3/s), du débit enthalpique dans drh (J/s)
  1970. Qtot = 0. ;
  1971. drh = 0. ;
  1972. srcs = 0. ;
  1973. hmn = 0. ;
  1974. *
  1975. 'SI' TBT . 'TTsortie' ;
  1976. NBR = 'DIME' rxt . 'Sorties' ;
  1977. ibr = 'INDE' rxt . 'Sorties' ;
  1978. 'REPE' BBRS NBR ;
  1979. Qeau Qlj Qair Qhe Qh2 Qo2 Qn2 Qco Qco2
  1980. = broche 'KAS1' &BBRS rxt ;
  1981. Qovp = Qovp '+' Qeau ; Qlovp = Qlovp '+' Qlj ;
  1982. Qohe = Qohe '+' Qhe ;
  1983. Qoh2 = Qoh2 '+' Qh2 ;
  1984. Qon2 = Qon2 '+' Qn2 ;
  1985. Qoo2 = Qoo2 '+' Qo2 ;
  1986. Qoco = Qoco '+' Qco ;
  1987. Qoco2 = Qoco2 '+' Qco2 ;
  1988. 'FIN' BBRS ;
  1989. 'FINS' ;
  1990.  
  1991. 'SI' TBT . 'TTsortie' ;
  1992. NBR = 'DIME' rxt . 'Sorties' ;
  1993. ibr = 'INDE' rxt . 'Sorties' ;
  1994. 'REPE' BBRS NBR ;
  1995. Rvapj Rairj Rhej Rh2j Ro2j Rn2j Rco2j Rcoj Rgj Hj Ej
  1996. Tj aex Qj Roj gj guj unvf0 src = broche 'KAS2' &BBRS rxt ;
  1997. asrc = Roj '*' ('ABS' src) ;
  1998. Qtot = Qtot '+' (aex '*' asrc) ;
  1999. drh = drh '+' (Qj '*' (Hj - Hmn) '*' aex) ;
  2000. srcs = srcs '+' (aex '*' src) ;
  2001.  
  2002. Briches = rxt . 'Sorties' . (ibr . &BBRS) ;
  2003. 'SI' ('EXIS' Briches 'Qj') ;
  2004. Briches . 'guj' = Briches . 'guj' 'ET' ('PROG' guj) ;
  2005. Briches . 'Qj' = Briches . 'Qj' 'ET' ('PROG' asrc) ;
  2006. 'FINS' ;
  2007. 'FIN' BBRS ;
  2008. 'FINS' ;
  2009.  
  2010. 'SI' TBT . 'TTbreche' ;
  2011. Qeau Qlj Qair Qhe Qh2 Qo2 Qn2 Qco Qco2 Qtotb srcb drhb = bruche rxt ;
  2012. Qovp = Qovp '+' Qeau ; Qlovp = Qlovp '+' Qlj ;
  2013. Qohe = Qohe '+' Qhe ;
  2014. Qoh2 = Qoh2 '+' Qh2 ;
  2015. Qon2 = Qon2 '+' Qn2 ;
  2016. Qoo2 = Qoo2 '+' Qo2 ;
  2017. Qoco = Qoco '+' Qco ;
  2018. Qoco2 = Qoco2 '+' Qco2 ;
  2019. Qtot = Qtot '+' Qtotb ;
  2020. drh = drh '+' drhb ;
  2021. srcs = srcs '+' srcb ;
  2022. 'FINS' ;
  2023. *
  2024. Qeau = Qovp ;
  2025. Qlj = Qlovp ;
  2026. *>>3 Gestion des E/S FIN
  2027. *
  2028.  
  2029. *
  2030. *>>4 Gestion des sources diffuses
  2031. * Accumulation du débit massique (en kg/s) de chaque espèce xxx dans qoxxx
  2032. 'SI' TBT . 'TFIMP' ;
  2033. NBFIMP = 'DIME' rxt . 'XFIMP' ;
  2034. ifimp = 'INDE' rxt . 'XFIMP' ;
  2035. 'REPE' BBFIMP NBFIMP ;
  2036. Bfimp = rxt . 'XFIMP' . (ifimp . &BBFIMP) ;
  2037. Smfpi = Bfimp . 'Smfpi' ;
  2038.  
  2039. CKqt = Bfimp . 'Kqt' ;
  2040. qft = 'IPOL' tps Bfimp . 't' Bfimp . 'qt' ;
  2041. tic . CKqt = qft '/' Smfpi ;
  2042.  
  2043. CKqeau = Bfimp . 'Kqeau' ;
  2044. qfeau = 'IPOL' tps Bfimp . 't' Bfimp . 'qeau' ;
  2045. tic . CKqeau = qfeau '/' Smfpi ;
  2046.  
  2047. CKqair = Bfimp . 'Kqair' ;
  2048. qfair = 'IPOL' tps Bfimp . 't' Bfimp . 'qair' ;
  2049. tic . CKqair = qfair '/' Smfpi ;
  2050.  
  2051. CKqhe = Bfimp . 'Kqhe' ;
  2052. qfhe = 'IPOL' tps Bfimp . 't' Bfimp . 'qhe' ;
  2053. tic . CKqhe = qfhe '/' Smfpi;
  2054.  
  2055. CKqh2 = Bfimp . 'Kqh2' ;
  2056. qfh2 = 'IPOL' tps Bfimp . 't' Bfimp . 'qh2' ;
  2057. tic . CKqh2 = qfh2 '/' Smfpi ;
  2058.  
  2059. CKqn2 = Bfimp . 'Kqn2' ;
  2060. qfn2 = 'IPOL' tps Bfimp . 't' Bfimp . 'qn2' ;
  2061. tic . CKqn2 = qfn2 '/' Smfpi ;
  2062.  
  2063. CKqo2 = Bfimp . 'Kqo2' ;
  2064. qfo2 = 'IPOL' tps Bfimp . 't' Bfimp . 'qo2' ;
  2065. tic . CKqo2 = qfo2 '/' Smfpi ;
  2066.  
  2067. CKqco = Bfimp . 'Kqco' ;
  2068. qfco = 'IPOL' tps Bfimp . 't' Bfimp . 'qco' ;
  2069. tic . CKqco = qfco '/' Smfpi ;
  2070.  
  2071. CKqco2 = Bfimp . 'Kqco2' ;
  2072. qfco2 = 'IPOL' tps Bfimp . 't' Bfimp . 'qco2' ;
  2073. tic . CKqco2 = qfco2 '/' Smfpi ;
  2074.  
  2075. Qovp = Qovp '+' Qfeau ;
  2076. Qohe = Qohe '+' Qfhe ;
  2077. Qoh2 = Qoh2 '+' Qfh2 ;
  2078. Qon2 = Qon2 '+' Qfn2 ;
  2079. Qoo2 = Qoo2 '+' Qfo2 ;
  2080. Qoco = Qoco '+' Qfco ;
  2081. Qoco2 = Qoco2 '+' Qfco2 ;
  2082.  
  2083. 'FIN' BBFIMP ;
  2084. 'FINS';
  2085. *>>4 Gestion des sources diffuses FIN
  2086. *
  2087.  
  2088. *
  2089. *>>5 Gestion du flux de chaleur en paroi
  2090. * phi = h(t)(Tg-Tw(t)), mise à jour de Tw(t) et [h si h donné]
  2091. *FD
  2092. * (h(t) par une PROCPERSO ou la condensation en paroi)
  2093. *FD
  2094. 'SI' TBT . 'TTIMP' ;
  2095. NBTIMP = 'DIME' rxt . 'TIMP' ;
  2096. itimp = 'INDE' rxt . 'TIMP' ;
  2097. 'REPE' BBTIMP NBTIMP ;
  2098. Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ;
  2099. CTBP1 = Btimp . 'TBP1' ;
  2100. CKH1 = Btimp . 'KH1' ;
  2101. tic . CTBP1 = 'IPOL' tps Btimp . 't' Btimp . 'TIMP' ;
  2102. 'SI' ('NON' ((TBT . 'VAPEUR') 'ET' ('EXIS' tic CKH1))) ;
  2103. tic . CKH1 = Btimp . 'ECHAN' ;
  2104. 'FINS' ;
  2105. 'FIN' BBTIMP ;
  2106. 'FINS' ;
  2107.  
  2108. 'SI' TBT . 'TECHANP' ;
  2109. 'SI' ('NON' ('EXIS' TIC 'TBP0')) ;
  2110. tic . 'TBP0' = 'KCHT' RXT . 'GEO' . '$mtp0'
  2111. 'SCAL' 'SOMMET' rxt . 'ECHANP' . 'TMUR' ;
  2112. 'FINS' ;
  2113. 'SI' ('NON' ((TBT . 'VAPEUR') 'ET' ('EXIS' tic 'KH0'))) ;
  2114. tic . 'KH0' = 'KCHT' RXT . 'GEO' . '$mtp0'
  2115. 'SCAL' 'CENTRE' rxt . 'ECHANP' . 'ECHAN' ;
  2116. 'FINS' ;
  2117. 'FINS' ;
  2118. *>>5 Gestion du flux de chaleur en paroi FIN
  2119. *
  2120.  
  2121. *
  2122. *>>6 Traitement de l'aspersion
  2123.  
  2124. 'SI' TBT . 'ASPER ' ;
  2125. t = rxt.'scenasp'.'t' ;
  2126. vzinj = 'IPOL' tps t (rxt.'scenasp'.'vzinj') ;
  2127. xdinj = 'IPOL' tps t (rxt.'scenasp'.'xdinj') ;
  2128. tdinj = 'IPOL' tps t (rxt.'scenasp'.'tdinj') ;
  2129. ddinj = 'IPOL' tps t (rxt.'scenasp'.'ddinj') ;
  2130. $aspinj = GEO.'$aspinj' ;
  2131. $toitf = GEO.'$toitf' ;
  2132. * vnj = 'KCHT' $aspinj 'VECT' 'SOMMET' 'COMP'
  2133. * ('MOTS' 1VN 2VN 3VN) (0.0 0.0 vzinj) ;
  2134. 'SI' (DIM3D) ;
  2135. vnj = 'KCHT' $aspinj 'VECT' 'SOMMET' 'COMP'
  2136. ('MOTS' 1VN 2VN 3VN) (0.0 0.0 vzinj) ;
  2137. 'SINO' ;
  2138. *--------------------------------------------------------------
  2139. * modif Tojo 12/07/2007 *
  2140. *
  2141. * mise en place de vecteurs inclinés conformément
  2142. * à l'angle d'ouverture du jet
  2143. * ici l'inclinaison est fixée à 30°
  2144. * une prochaine évolution pourrait consister à mettre
  2145. * l'angle d'ouverture comme donnée d'entrée
  2146. * dans la table scenasp
  2147. *
  2148. *--------------------------------------------------------------
  2149. *
  2150. cc1 = coor 1 rxt.'aspinj' ;
  2151. z0 = (sin(300. '*' cc1)) '*' ((cos(300. '*' cc1)) '**' (-1.0));
  2152. z0 = z0 '*' (vzinj '*' -1.) ;
  2153. z0 = chan attribut z0 nature diffus;
  2154. z1 = z0 '*' 0. ;
  2155. ux0 = nomc '1VN' z0 ;
  2156. z1 = z1 '+' vzinj;
  2157. z1 = chan attribut z1 nature diffus;
  2158. uy0 = nomc '2VN' z1 ;
  2159. vnj1 = ux0 et uy0;
  2160. vnj = 'KCHT' $aspinj 'VECT' 'SOMMET' 'COMP'
  2161. ('MOTS' '1VN' '2VN') vnj1 ;
  2162. *
  2163. *--------------------------------------------------------------
  2164. 'FINS' ;
  2165. *--------------------fin modif Tojo Juillet 2007---------------
  2166.  
  2167. xdj = 'KCHT' $aspinj 'SCAL' 'SOMMET' 'COMP'
  2168. ('MOT' 'XD') xdinj ;
  2169. tdj = 'KCHT' $aspinj 'SCAL' 'SOMMET' 'COMP'
  2170. ('MOT' 'TD') tdinj ;
  2171. ddj = 'KCHT' $toitf 'SCAL' 'SOMMET' 'COMP'
  2172. ('MOT' 'DD') ddinj ;
  2173. 'FINS';
  2174. *>>6 Traitement de l'aspersion FIN
  2175. *
  2176.  
  2177. *
  2178. *>>7 Initialisation aux valeurs de début de pas de temps (n-1)
  2179.  
  2180. Rgpnm = Rgpn ;
  2181. Cvmnm = Cvmn ;
  2182. Gamnm = Gamn ;
  2183. Cpmnm = Cpmn ;
  2184.  
  2185. Ptmnm = Ptmn ;
  2186. Rhomnm = Rhomn ;
  2187.  
  2188. Remnm = Remn ;
  2189. Rmairnm = Rmairn ;
  2190. Rmvnm = Rmvn ;
  2191. Rmvgnm = Rmvgn ;
  2192. Rmliqnm = Rmliqn ;
  2193. Rmbronm = Rmbron ; Mbronm = Mbron ;
  2194. Rmhenm = Rmhen ;
  2195. Rmh2nm = Rmh2n ;
  2196. Rmn2nm = Rmn2n ;
  2197. Rmo2nm = Rmo2n ;
  2198. Rmconm = Rmcon ;
  2199. Rmco2nm = Rmco2n ;
  2200. Emurnm = Emurn ;
  2201.  
  2202. 'SI' TBT.'ASPER ' ;
  2203. Qasp = 'EXTR' (tic.'Qaspe') ndl ;
  2204. Easp = 'EXTR' (tic.'Easpe') ndl ;
  2205. Hasp = 'EXTR' (tic.'Haspe') ndl ;
  2206. 'SINO' ;
  2207. Qasp = 0.0 ;
  2208. Easp = 0.0 ;
  2209. Hasp = 0.0 ;
  2210. 'FINS' ;
  2211.  
  2212. Qcnm = Qcn ;
  2213. Econdnm = Econdn ;
  2214. Econvnm = Econvn ;
  2215. Hcondnm = Hcondn ;
  2216.  
  2217. MinjT = 'EXTR' tic . 'Minj' ndl ;
  2218. McondT = 'EXTR' tic . 'Mcond' ndl ;
  2219. Mcondmnm = Mcondmn ;
  2220.  
  2221. 'SI' TBT . 'VAPEUR' ;
  2222. 'SI' TBT . 'TPAROIF' ;
  2223. McondTw = 'EXTR' tic . 'Mcondw' ndl ;
  2224. 'FINS' ;
  2225. * FD : Ne sert a rien
  2226. 'SI' TBT . 'TTIMP' ;
  2227. NBTIMP = 'DIME' rxt . 'TIMP' ;
  2228. itimp = 'INDE' rxt . 'TIMP' ;
  2229. 'REPE' BBTIMP NBTIMP ;
  2230. Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ;
  2231. CMcond1 = Btimp . 'Mcond1' ;
  2232. McondT1 = 'EXTR' tic . CMcond1 ndl ;
  2233. 'FIN' BBTIMP ;
  2234. 'FINS' ;
  2235. 'SI' TBT . 'TECHANP' ;
  2236. McondT0 = 'EXTR' tic . 'Mcond0' ndl ;
  2237. 'FINS' ;
  2238. * FD : Ne sert a rien
  2239. 'FINS' ;
  2240. MrestT = 'EXTR' tic . 'Mrest' ndl ;
  2241. *>>7 Initialisation au début de pas de temps (n-1)FIN
  2242. *
  2243.  
  2244. *
  2245. *>>8 Initialisation des champs variables pour TF
  2246. 'SI' TBT . 'THERMP' ;
  2247. tic . 'KHEW' = tic . 'KHW' / (Rhomnm '*' Cpmnm) ;
  2248. tic . 'LHEW' = -1.0 * tic . 'KHEW' ;
  2249. tic . 'LHW' = -1.0 * tic . 'KHW' ;
  2250. 'SI' ('NEG' ('TYPE' tic . 'KHW') 'FLOTTANT') ;
  2251. 'SI' tbt . 'THERCO' ;
  2252. tic . 'KHEW' = 'KCHT' $paroif 'SCAL' 'SOMMET' tic . 'KHEW' ;
  2253. tic . 'LHEW' = 'KCHT' $paroif 'SCAL' 'SOMMET' tic . 'LHEW' ;
  2254. tic . 'LHW' = 'KCHT' $paroif 'SCAL' 'SOMMET' tic . 'LHW' ;
  2255. 'SINO' ;
  2256. tic . 'KHEW' = 'KCHT' $paroif 'SCAL' 'CENTRE' tic . 'KHEW' ;
  2257. tic . 'LHEW' = 'KCHT' $paroif 'SCAL' 'CENTRE' tic . 'LHEW' ;
  2258. 'FINS' ;
  2259. 'FINS' ;
  2260. 'FINS' ;
  2261.  
  2262. 'SI' TBT . 'TTIMP' ;
  2263. NBTIMP = 'DIME' rxt . 'TIMP' ;
  2264. itimp = 'INDE' rxt . 'TIMP' ;
  2265. 'REPE' BBTIMP NBTIMP ;
  2266. Btimp = rxt . 'TIMP' . (itimp . &BBTIMP) ;
  2267. CKHE1 = Btimp . 'KHE1' ;
  2268. CKH1 = Btimp . 'KH1' ;
  2269. tic . CKHE1 = tic . CKH1 '/' (Rhomnm '*' Cpmnm) ;
  2270. 'FIN' BBTIMP ;
  2271. 'FINS';
  2272.  
  2273. 'SI' TBT . 'TECHANP' ;
  2274. tic . 'KHE0' = tic . 'KH0' '/' (Rhomnm '*' Cpmnm) ;
  2275. 'FINS';
  2276. *>>8 Initialisation des champs variables pour TF FIN
  2277. *
  2278.  
  2279.  
  2280. *
  2281. *>>10 Gestion des recombineurs :
  2282. *
  2283. * Bilan 0D : Débit enthalpique (drhpar) et bilans de masse à cause de la
  2284. * combustion et de la décomposition de l'air en N2 et O2. Comme Qin=Qout
  2285. * aucune variation globale de la masse globale.
  2286. *
  2287. * Les conditions aux limites sont stockées dans rxt . 'RECOMB' . indice
  2288. * pour la vitesse et les densités partielles.
  2289. 'SI' TBT . 'TRECOMB' ;
  2290. QO_H2p QO_O2p QO_H2Op QO_N2p drhpar = MDRECOMB RXT ;
  2291. 'SI' TBT . 'VAPEUR' ;
  2292. Qovp = Qovp '+' QO_H2Op ;
  2293. 'FINS' ;
  2294. 'SI' TBT . 'TH2' ;
  2295. Qoh2 = Qoh2 '+' QO_H2p ;
  2296. 'FINS' ;
  2297. 'SI' TBT . 'TN2' ;
  2298. Qon2 = Qon2 '+' QO_N2p ;
  2299. 'FINS' ;
  2300. 'SI' TBT . 'TO2' ;
  2301. Qoo2 = Qoo2 '+' QO_O2p ;
  2302. 'FINS' ;
  2303. 'FINS' ;
  2304. *>>10 Gestion des recombineurs FIN
  2305. *
  2306.  
  2307. *
  2308. *>>11 Avancement et stockage des grandeurs moyennes 0D au temps (n)
  2309. * à partir de l'intégrale des conditions aux limites
  2310. * (E/S, parois, PAR)
  2311. drh = drh '-' (Econvnm '-' Easp) '-' (Hcondnm '-' Hasp) '+' drhpar ;
  2312. Qtot = Qtot '+' Qasp '-' Qcnm ;
  2313.  
  2314. 'MESS' ' Debit condensation Fin pas de temps precedent Qcnm=' Qcnm ;
  2315. 'MESS' ' Etot ' (Econvnm '-' Easp)
  2316. ' Htot ' (Hcondnm '-' Hasp)
  2317. ' drh=' drh ;
  2318.  
  2319. *
  2320. *>>11.1 Calcul par bilan 0D de Rhomn et Remn au temps (n)
  2321. *FD
  2322. *WARNING : On suppose que la masse est constante en ouvert
  2323. *WARNING : et Remn = Rho(n-1) Cv(n-1) Tk(n-1) en ouvert
  2324. *'SI' TBT . 'Tsortie' ;
  2325. * Rhomn = Rhomnm ;
  2326. * Remn = ('SOMT' (Diag * Rhonm * cvmnm * Tknm)) '/' VTotal ;
  2327. * tic . 'Rhomn' = tic . 'Rhomn' 'ET' ('PROG' Rhomn) ;
  2328. * tic . 'Remn' = tic . 'Remn' 'ET' ('PROG' Remn) ;
  2329. *'SINO' ;
  2330. Rhomn = 'MAXI' ('PROG' 0.
  2331. (Rhomnm '+' (tic . 'DT' '*' Qtot '/' VTotal))) ;
  2332. *DEBUG
  2333. *'MESS' 'DEBUG Rhomnm Qtot Rhomn' ;
  2334. *'MESS' rhomnm ' ' (rhomnm '*' Vtotal) ;
  2335. *'MESS' qtot ' ' (tic . 'DT' '*' Qtot) ;
  2336. *'MESS' rhomn ' ' (rhomn '*' Vtotal) ;
  2337. *DEBUG
  2338. Remn = 'MAXI' ('PROG' 0.
  2339. (Remnm '+' (tic . 'DT' '*' drh '/' VTotal)));
  2340. 'MESS' 'VERIF: densite et energie moyennes au pas de temps (n)' ;
  2341. 'MESS' 'VERIF: &BCLTPS : Rhomn=' Rhomn ' ' 'Remn=' Remn ;
  2342. *'FINS' ;
  2343. *>>11.1 Calcul Rhomn et Remn FIN
  2344. *
  2345.  
  2346. *
  2347. *>>11.2 Calcul de l'énergie par condensation (il manque la convection)
  2348. * WARNING : Lorsque Lv dépendra de Tw on ne pourra pas
  2349. 'SI' TBT.'THERMP' ;
  2350. Emurn = Emurnm '+' ( tic . 'DT' '*' Qcnm '*' TBT . 'Lv') ;
  2351. tic . 'Emur' = tic . 'Emur' 'ET' ('PROG' Emurn) ;
  2352. 'FINS' ;
  2353. *>>11.2 Calcul de l'énergie par condensation (il manque la convection)
  2354. *
  2355.  
  2356. *
  2357. *>>11.3 Calcul par bilan 0D des densités moyennes au temps (n)
  2358. *FD
  2359. *WARNING Pourquoi s'intéresser au brouillard en suspension ?
  2360. *WARNING C'est bien Rmbronm car le brouillard est en (n-1)
  2361. *FD
  2362. Rmairn = Rhomn ;
  2363. 'SI' TBT . 'VAPEUR' ;
  2364. Rmvgn = 'MAXI' ('PROG' 0.
  2365. (Rmvgnm '+' (tic . 'DT' '*' (Qovp '-' Qcnm '+' Qasp) '/' VTotal ))) ;
  2366. Rmvn = Rmvgn '-' Rmbronm ;
  2367. Rmairn = Rmairn '-' Rmvn ;
  2368. 'FINS' ;
  2369. 'SI' TBT . 'THE' ;
  2370. Rmhen = 'MAXI' ('PROG' 0.
  2371. (Rmhenm '+' (tic . 'DT' '*' Qohe '/' VTotal ))) ;
  2372. Rmairn = Rmairn '-' Rmhen ;
  2373. 'FINS' ;
  2374. 'SI' TBT . 'TH2' ;
  2375. Rmh2n = 'MAXI' ('PROG' 0.
  2376. (Rmh2nm '+' (tic . 'DT' '*' Qoh2 '/' VTotal ))) ;
  2377. Rmairn = Rmairn '-' Rmh2n ;
  2378. 'FINS' ;
  2379. 'SI' TBT . 'TN2' ;
  2380. Rmn2n= 'MAXI' ('PROG' 0.
  2381. (Rmn2nm '+' (tic . 'DT' '*' Qon2 '/' VTotal ))) ;
  2382. Rmairn = Rmairn '-' Rmn2n ;
  2383. 'FINS' ;
  2384. 'SI' TBT . 'TO2' ;
  2385. Rmo2n= 'MAXI' ('PROG' 0.
  2386. (Rmo2nm '+' (tic . 'DT' '*' Qoo2 '/' VTotal ))) ;
  2387. Rmairn = Rmairn '-' Rmo2n ;
  2388. 'FINS' ;
  2389. 'SI' TBT . 'TCO' ;
  2390. Rmcon= 'MAXI' ('PROG' 0.
  2391. (Rmconm '+' (tic . 'DT' '*' Qoco '/' VTotal ))) ;
  2392. Rmairn = Rmairn '-' Rmcon ;
  2393. 'FINS' ;
  2394. 'SI' TBT . 'TCO2';
  2395. Rmco2n = 'MAXI' ('PROG' 0.
  2396. (Rmco2nm '+' (tic . 'DT' '*' Qoco2 '/' VTotal ))) ;
  2397. Rmairn = Rmairn '-' Rmco2n ;
  2398. 'FINS' ;
  2399. 'SI' (Rmairn '<' 0.0) ;
  2400. 'MESS' 'Pb avec la masse d air 0D : 11.3 : Rmairn=' ' ' Rmairn ;
  2401. 'FINS' ;
  2402. *>>11.3 Calcul par bilan 0D des densités moyennes au temps (n)FIN
  2403. *
  2404.  
  2405. *
  2406. *>>12. Appel à la procédure PERSO
  2407. 'SI' TBT . 'PERSO' ;
  2408. 'SI' (TBT . 'IMPR' '>EG' 2) ;
  2409. mess ' ***********************************';
  2410. mess ' * Execution d une procedure PERSO *';
  2411. mess ' * '(rxt.'PRCPERSO')
  2412. ' *' ;
  2413. mess ' ***********************************';
  2414. 'FINS' ;
  2415. ('TEXT' rxt . 'PRCPERSO') Tps rxt ;
  2416. 'SI' (TBT . 'IMPR' '>EG' 2) ;
  2417. mess ' ***********************************';
  2418. mess ' * Fin execution de la procedure *';
  2419. mess ' * '(rxt.'PRCPERSO')
  2420. ' *' ;
  2421. mess ' ***********************************';
  2422. 'FINS' ;
  2423. 'FINS' ;
  2424. *>>12. Appel à la procédure PERSO FIN
  2425. *
  2426.  
  2427. *
  2428. *
  2429. *>>13. Résolution des EDP
  2430. *
  2431. *
  2432. * Terme source s de l'equation de QDM : divu = s
  2433. tic . 'DSRC' = ((-1.) '*' srcs '/' VTotal) ;
  2434. *DEBUG
  2435. *tic . 'DSRC' = ((-1.) '*' srcs '/' VTotal) ;
  2436. *'MESS' 'DSRC ' tic . 'DSRC' ;
  2437. *DEBUG
  2438. rv = TBT . 'RV' ;
  2439. *DEBUG
  2440. *tic . 'DSN2' = -1. '*' tic . 'DSRC' ;
  2441. *DEBUG
  2442.  
  2443. *
  2444. *>>13.1 CLIM injection u.n=uinj
  2445. gjo matxx = 'KOPS' 'MATRIK' ;
  2446. 'SI' TBT . 'TTsortie' ;
  2447. NBR = 'DIME' rxt . 'Sorties' ;
  2448. ibr = 'INDE' rxt . 'Sorties' ;
  2449. 'REPE' BBRS NBR ;
  2450. Briches = rxt . 'Sorties' . (ibr.&BBRS) ;
  2451. gjo = gjo 'ET' (Briches . 'gj') ;
  2452. 'FIN' BBRS ;
  2453. 'FINS' ;
  2454. 'SI' TBT . 'TTbreche' ;
  2455. ** NBR = 'DIME' rxt . 'Breches' ;
  2456. ** ibr = 'INDE' rxt . 'Breches' ;
  2457. ** 'REPE' BBRS NBR ;
  2458. ** Briches = rxt . 'Breches' . (ibr.&BBRS) ;
  2459. ** gjo = gjo 'ET' (Briches . 'gj') ;
  2460. gjo = gjo 'ET' (tic . 'Breches' . 'UN') ;
  2461. ** 'FIN' BBRS ;
  2462. 'FINS' ;
  2463. *
  2464. * Modèle K-Epsilon EFM1 : K-Epsilon aux E/S
  2465. *FD
  2466. *WARNING Où le cas K-EPSILON Implicite est-il pris en compte ?
  2467. *FD
  2468. 'SI'(('EGA' TBT.'MODTURB' 'KEPSILON') et ('EGA' TBT.'FEF' 'EFM1'));
  2469. 'SI' TBT . 'TTsortie';
  2470. NBR = 'DIME' rxt . 'Sorties' ;
  2471. ibr = 'INDE' rxt . 'Sorties' ;
  2472. Repeter BBRS NBR ;
  2473. Briches=rxt.'Sorties'.(ibr.&BBRS) ;
  2474. * mess ' Sorties CL pour QDM' (ibr.&BBRS) ;
  2475. gjs=Briches.'gj' ;
  2476. lcj=extr gjs 'COMP' ;
  2477. mdj=gjs 'PSCA' gjs lcj lcj ;
  2478. gk=((0.05**2.)*mdj) nomc 'KN' ;
  2479. gk=CHAN 'ATTRIBUT' gk 'NATURE' 'DISCRET';
  2480. ge=((gk**1.5)/(Briches.'Dbreche')) nomc 'EN';
  2481. gjo= gjo et gk ;
  2482. gjo= gjo et ge ;
  2483. FIN BBRS ;
  2484. FINS ;
  2485. Si (TBT.'TTbreche') ;
  2486. ** NBR=dime rxt.'Breches' ;
  2487. ** ibr=index (rxt.'Breches') ;
  2488. ** Repeter BBRS NBR ;
  2489. ** Briches=rxt.'Breches'.(ibr.&BBRS) ;
  2490. * mess ' Breches CL pour QDM' (ibr.&BBRS) ;
  2491. ** gjs=Briches.'gj' ;
  2492. gjs = tic . 'Breches' . 'UN' ;
  2493. lcj=extr gjs 'COMP' ;
  2494. mdj=gjs 'PSCA' gjs lcj lcj ;
  2495. gk=((0.05**2.)*mdj) nomc 'KN' ;
  2496. gk=CHAN 'ATTRIBUT' gk 'NATURE' 'DISCRET';
  2497. ge=((gk**1.5)/(Briches.'Dbreche')) nomc 'EN';
  2498. gjo= gjo et gk ;
  2499. gjo= gjo et ge ;
  2500. ** FIN BBRS ;
  2501. FINS ;
  2502.  
  2503. *---- Modèle K-Epsilon EFM1 -- FIN -------------------------
  2504. 'FINS' ;
  2505.  
  2506. * Si il y a au moins une brèche ou une sortie
  2507. 'SI' (TBT . 'TTbreche' 'OU' TBT . 'TTsortie') ;
  2508. rv . 'CLIM' = (rv . 'CLIM' '-' rv . 'CLIM') '+' gjo ;
  2509. 'FINS' ;
  2510. * Si il y a des PARs
  2511. 'SI' TBT . 'TRECOMB' ;
  2512. Urec0 = tic . 'RECOMB' . 'UN' ;
  2513. 'SI' (TBT . 'TTbreche' 'OU' TBT . 'TTsortie') ;
  2514. rv . 'CLIM' = rv . 'CLIM' '+' Urec0 ;
  2515. 'SINO' ;
  2516. rv . 'CLIM' = (rv . 'CLIM' '-' rv . 'CLIM') '+' Urec0 ;
  2517. 'FINS' ;
  2518. 'FINS' ;
  2519. *>>13.1 CLIM injection u.n=uinjFIN
  2520. *
  2521.  
  2522. 'SI' (TBT . 'IMPR' '>EG' 2) ;
  2523. 'MESS' '==> RESOLUTION QDM' ;
  2524. 'FINS' ;
  2525.  
  2526. *
  2527. *>>13.2 Actualisation de tic . 'NUEFF' et tic . 'MUT'
  2528. *FD
  2529. *WARNING TTbreches et TTsortie non pris en compte pour K-EPSILON
  2530. *FD
  2531. *
  2532. tic . 'NU' = tic . 'Mu' '/' Rhomnm ;
  2533. tic . 'NUm' = 'SOMT' (GEO . 'Diag' * tic . 'NU') / GEO . 'VTotal' ;
  2534. 'SI' TBT . 'FPAROI' ;
  2535. tic . 'YP' = rxt . 'YP' ;
  2536. 'FINS' ;
  2537. 'SI' ('EXIS' TBT 'MODTURB') ;
  2538.  
  2539. *---- Modèle viscosité tourbillonnaire constante -----------
  2540. 'SI' ('EGA' TBT . 'MODTURB' 'NUTURB') ;
  2541. tic . 'NUEFF' = tic . 'NU' + rxt . 'NUT' ;
  2542. 'FINS' ;
  2543. *---- Modèle viscosité tourbillonnaire constante FIN
  2544.  
  2545. *---- Modèle de longueur de mélange ------------------------
  2546. 'SI' ('EGA' TBT . 'MODTURB' 'LMEL') ;
  2547. un = tic . 'UN' ;
  2548. P = PRODT UN $vtf ;
  2549. lm = TBT . 'LMEL' ;
  2550. NUT = lm '*' lm '*' (P**0.5) ;
  2551. * Réalisabilité sur Nut
  2552. Nu = tic . 'NU' ;
  2553. a = 5000. '*' Nu ;
  2554. al = 0.8 ;
  2555. ala = al '*' a ;
  2556. b = ala '*' ((2. '*' (1.-al)) '**' (-1.)) ;
  2557. ik = 'MASQ' Nut 'INFERIEUR' ala ;
  2558. Nut=(ik*Nut)+( (1.-ik)*a*(Nut + b)*(inve (a + Nut + b)));
  2559. Nutsnu = Nut '*' ('INVE' Nu);
  2560. 'SI' (TBT . 'IMPR' '>EG' 2) ;
  2561. 'MESS' ' Mini Maxi Nut/Nu '
  2562. ('MINI' Nutsnu) ('MAXI' Nutsnu) ;
  2563. 'FINS' ;
  2564. tic . 'NUEFF' = NUT '+' tic . 'NU' ;
  2565. 'FINS' ;
  2566. *---- Modèle de longueur de mélange FIN
  2567.  
  2568. *---- Modèle K-Epsilon Implicite ---------------------------
  2569. 'SI' (('EGA' TBT . 'MODTURB' 'KEPSILON')
  2570. 'ET' ('NON' ('EGA' TBT . 'FEF' 'EFM1'))) ;
  2571. cnu = 0.09 ;
  2572. c1 = 1.44 ;
  2573. c2 = 1.92 ;
  2574. sgk = 1. ;
  2575. SGE = 1.3 ;
  2576.  
  2577. Dg = 'DOMA' $vtf 'XXDIAGSI';
  2578. Lma = ('SOMT' Dg) '**' (1. '/' ('VALE' DIME)) ;
  2579. Lmi = ('MINI' Dg) '**' (1. '/' ('VALE' DIME)) ;
  2580. un = tic . 'UN' ;
  2581. P = PRODT UN $vtf;
  2582.  
  2583. Rrk = TBT . 'Rrk' ;
  2584. Rre = TBT . 'Rre' ;
  2585. En = tic . 'EN' ;
  2586. Kn = tic . 'KN' ;
  2587. * Réalisabilité sur Nut : Nut > 1.e-15
  2588. *Nut=Cnu * Kn * Kn * (inve En) ;
  2589. Nut = Lmi '*' Lma '*' (P '**' 0.5) ;
  2590. ik = 'MASQ' Nut 'SUPERIEUR' 1.e-15 ;
  2591. Nut = (ik*Nut) '+' ((1.-ik)*1.e-15) ;
  2592. * Nut P < En
  2593. *a= En * (inve P) * 0.133 ;
  2594. *a = En * ('INVE' P) * 0.133 ;
  2595. *al = 0.8 ;
  2596. *ala = al*a;
  2597. *b = ala*((2.*(1.-al))**(-1.)) ;
  2598. *ik = 'MASQ' Nut 'INFERIEUR' ala ;
  2599. *Nut=(ik*Nut)+( (1.-ik)*a*(Nut+b)*(inve (a+Nut+b))) ;
  2600. *Nut = kcht $vtf scal sommet Nut ;
  2601. 'MESS' 'mini maxi Nut ' ('MINI' Nut) ('MAXI' Nut) ;
  2602. Sk = Nut * P - ((KN**1.5)*(1./Lma)) ;
  2603. Kn = 'KOPS' Kn '|<' 1.e-5 ;
  2604. EsK = En * ('INVE' Kn) ;
  2605. Se = EsK '*' (Nut * P - (c2*En)) ;
  2606. tic . 'Se' = Se ;
  2607. tic . 'Sk' = Sk ;
  2608. tic . 'NUEFF' = NUT + tic . 'NU' ;
  2609. *
  2610. cpv matxx = 'KOPS' 'MATRIK' ;
  2611. 'SI' (TBT . 'TTbreche' 'OU' TBT . 'TTsortie') ;
  2612. 'MESS' 'K epsilon au revoir' ;
  2613. 'ERRE' 5 ;
  2614. Rrk . 'CLIM' = cpv ;
  2615. 'FINS' ;
  2616. Rrk . 'METHINV' . 'CALPREC' = calprec;
  2617. EXEC Rrk ;
  2618. Kn= tic . 'KN' ;
  2619. Kn= 'KOPS' Kn '|<' 1.e-5 ;
  2620. tic . 'KN' = Kn ;
  2621. *
  2622. cpv matxx = 'KOPS' 'MATRIK' ;
  2623. 'SI' (TBT . 'TTbreche' 'OU' TBT . 'TTsortie') ;
  2624. 'MESS' 'K epsilon au revoir' ;
  2625. 'ERRE' 5 ;
  2626. Rre . 'CLIM' = cpv ;
  2627. 'FINS' ;
  2628. Rre . 'METHINV' . 'CALPREC' = calprec;
  2629. EXEC Rre ;
  2630. En= tic . 'EN' ;
  2631. En= 'KOPS' En '|<' 1.e-15 ;
  2632. tic . 'EN' = En ;
  2633. * Réalisabilité sur Nut
  2634. Nut = cnu * Kn * Kn * ('INVE' En) ;
  2635. Nu = tic . 'NU' ;
  2636. a = 1500. '*' Nu ;
  2637. al = 0.8 ;
  2638. ala = al*a;
  2639. b = ala*((2.*(1.-al))**(-1.)) ;
  2640. tic . 'ala' = ala ;
  2641. tic . 'nut' = nut ;
  2642. ik = 'MASQ' Nut 'INFERIEUR' ala ;
  2643. Nut = (ik*Nut)+( (1.-ik)*a*(Nut+b)*(inve (a+Nut+b))) ;
  2644. Nut = 'KCHT' $vtf 'SCAL' 'SOMMET' Nut;
  2645. Nutsnu = (1. '/' Nu) '*' Nut;
  2646. 'SI' (TBT . 'IMPR' '>EG' 2) ;
  2647. 'MESS' ' Mini Maxi Nut/Nu '
  2648. ('MINI' Nutsnu) ('MAXI' Nutsnu) ;
  2649. 'FINS' ;
  2650. tic . 'NUEFF' = NUT + tic . 'NU' ;
  2651. 'FINS' ;
  2652. *---- Modèle K-Epsilon ImpliciteFIN
  2653.  
  2654. *---- Modèle K-Epsilon EFM1 --------------------------------
  2655. *FD
  2656. *WARNING D'ou vient tic . NUT ?
  2657. *FD
  2658. 'SI' (('EGA' TBT . 'MODTURB' 'KEPSILON') 'ET'
  2659. ('EGA' TBT . 'FEF' 'EFM1')) ;
  2660. tic . 'NUEFF' = tic . 'NUT' + tic . 'NU' ;
  2661. 'FINS' ;
  2662. *---- Modèle K-Epsilon EFM1 FIN
  2663. 'SINO' ;
  2664. *---- Il n'y a pas de modèle de turbulence -----------------
  2665. tic . 'NUEFF' = tic . 'NU' ;
  2666. 'FINS' ;
  2667. tic . 'MUT' = tic . 'NUEFF' * Rhomnm ;
  2668. *>>13.2 Actualisation de tic . 'NUEFF' et tic . 'MUT' FIN
  2669. *
  2670.  
  2671. *
  2672. *>>13.3 Résolution
  2673. rv . 'METHINV' . 'CALPREC' = calprec ;
  2674. 'SI' ('EXIS' rv 'PROJ') ;
  2675. rv . 'PROJ' . 'METHINV' . 'CALPREC' = calprec ;
  2676. 'FINS' ;
  2677. RV . 'MRESOP' = VRAI ;
  2678. RV . 'TCPT' = rxt . 'TBT' . 'TCPT' ;
  2679. RV . 'TKPR' = rxt . 'TBT' . 'TKPR' ;
  2680. RV . 'TRESOU' = rxt . 'TBT' . 'TRESOU' ;
  2681. RV . 'IMPARA' = rxt . 'TBT' . 'IMPARA' ;
  2682. *
  2683. * NON TRTOUT = Aucun TKPR à VRAI (tout est séquentiel)
  2684. * alors on résout vitesse-pression en tête
  2685. *DEBUG
  2686. *'MESS' 'DEBUG CLIM en VITESSE' ;
  2687. *'LIST' rv . 'CLIM' ;
  2688. *DEBUG
  2689. 'SI' ('NON' TBT . 'TRTOUT') ;
  2690. EXEC rv ;
  2691. 'FINS' ;
  2692. *DEBUG
  2693. *'LIST' rxt . 'TIC' . 'UN' ;
  2694. *DEBUG
  2695. *
  2696. * Pour le // on concatène dans rv les résolutions à faire en //
  2697. * Puis on résout en // vitesse-pression et TKPR ad'hoc
  2698. 'SI' TBT . 'TRTF' ;
  2699. 'MESS' '$$$$ ON RAJOUTE LA TEMPERATURE TF à LA QDM ' ;
  2700. rtf = rv ;
  2701. dtfcl = CLINC RXT rtf (TBT . 'TRTF') 'TF' 'Tj' 'TFNM' ;
  2702. *FD
  2703. * Pourquoi n'a-t-on pas Rtf . 'resmn'
  2704. *FD
  2705. rtf . 'METHINV' . 'CALPREC' = calprec ;
  2706. 'FINS' ;
  2707. 'SI' (TBT . 'VAPEUR' 'ET' TBT . 'TRrvap') ;
  2708. 'MESS' '$$$$ ON RAJOUTE LA DENSITE DE VAPEUR à la QDM ' ;
  2709. Rrvap = rv ;
  2710. drvpcl = CLINC RXT Rrvap (TBT.'TRrvap') 'RVP' 'Rvapj' 'RVPNM' ;
  2711. *FD
  2712. * Pourquoi n'a-t-on pas Rrvap . 'resmn'
  2713. *FD
  2714. Rrvap . 'METHINV' . 'CALPREC' = calprec ;
  2715. 'FINS' ;
  2716. 'SI' (TBT . 'THE' 'ET' TBT . 'TRrhe') ;
  2717. 'MESS' '$$$$ ON RAJOUTE LA RESOLUTION DE LA DENSITE HELIUM' ;
  2718. Rrhe = rv ;
  2719. drhecl = CLINC RXT Rrhe (TBT . 'TRrhe') 'RHE' 'Rhej' 'RHEM' ;
  2720. Rrhe . 'resmn' = tic . 'RHE' NOMC 'RHE' ;
  2721. Rrhe . 'METHINV' . 'CALPREC' = calprec ;
  2722. 'FINS' ;
  2723. 'SI' (TBT . 'TH2' 'ET' TBT . 'TRrh2') ;
  2724. 'MESS' '$$$$ ON RAJOUTE LA RESOLUTION DE LA DENSITE HYDROGENE' ;
  2725. Rrh2 = rv ;
  2726. drh2cl = CLINC RXT Rrh2 (TBT . 'TRrh2') 'RH2' 'Rh2j' 'RH2M' ;
  2727. Rrh2 . 'resmn' = tic . 'RH2' NOMC 'RH2' ;
  2728. Rrh2 . 'METHINV' . 'CALPREC' = calprec ;
  2729. 'FINS' ;
  2730. 'SI' (TBT . 'TO2' 'ET' TBT . 'TRro2') ;
  2731. 'MESS' '$$$$ ON RAJOUTE LA RESOLUTION DE LA DENSITE OXYGENE' ;
  2732. Rro2 = rv ;
  2733. dro2cl = CLINC RXT Rro2 (TBT . 'TRro2') 'RO2' 'Ro2j' 'RO2M' ;
  2734. Rro2 . 'resmn' = tic . 'RO2' NOMC 'RO2' ;
  2735. Rro2 . 'METHINV' . 'CALPREC' = calprec ;
  2736. 'FINS' ;
  2737. 'SI' (TBT . 'TN2' 'ET' TBT . 'TRrn2') ;
  2738. 'MESS' '$$$$ ON RAJOUTE LA RESOLUTION DE LA DENSITE AZOTE' ;
  2739. Rrn2 = rv ;
  2740. drn2cl = CLINC RXT Rrn2 (TBT . 'TRrn2') 'RN2' 'Rn2j' 'RN2M' ;
  2741. Rrn2 . 'resmn' = tic . 'RN2' NOMC 'RN2' ;
  2742. Rrn2 . 'METHINV' . 'CALPREC' = calprec ;
  2743. 'FINS' ;
  2744. 'SI' (TBT . 'TCO2' 'ET' TBT . 'TRrco2') ;
  2745. 'MESS' '$$$$ ON RAJOUTE LA RESOLUTION DE LA DENSITE DIOX DE CARBONE';
  2746. Rrco2 = rv ;
  2747. drco2cl = CLINC RXT Rrco2 (TBT . 'TRrco2') 'RCO2' 'Rco2j' 'RCO2M' ;
  2748. Rrco2 . 'resmn' = tic . 'RCO2' NOMC 'RCO2' ;
  2749. Rrco2 . 'METHINV' . 'CALPREC' = calprec ;
  2750. 'FINS' ;
  2751. 'SI' (TBT . 'TCO' 'ET' TBT . 'TRrco') ;
  2752. 'MESS' '$$$$ ON RAJOUTE LA RESOLUTION DE LA DENSITE MONO DE CARBONE';
  2753. Rrco = rv ;
  2754. drcocl = CLINC RXT Rrco (TBT . 'TRrco') 'RCO' 'Rcoj' 'RCOM' ;
  2755. Rrco . 'resmn' = tic . 'RCO' NOMC 'RCO' ;
  2756. Rrco . 'METHINV' . 'CALPREC' = calprec ;
  2757. 'FINS' ;
  2758.  
  2759. 'SI' TBT . 'TRTOUT' ;
  2760. EXEC rv ;
  2761. 'FINS' ;
  2762. *
  2763. * Résolution séquentielle des champs scalaires restant
  2764. * (ajout de la CLIM dans CLINC avant l'appel à EXEC)
  2765. *FD
  2766. * Les densités sont bornées par 1D-10 et MaxRHO dans CORMASSE
  2767. * On le faisait 2 fois avant : ici et dans CORMASSE !
  2768. *FD
  2769. 'SI' (TBT . 'VAPEUR' 'ET' ('NON' TBT . 'TRrvap')) ;
  2770. Rrvap = TBT . 'Rrvap' ;
  2771. drvpcl = CLINC RXT Rrvap (TBT . 'TRrvap') 'RVP' 'Rvapj' 'RVPNM' ;
  2772. *FD
  2773. * Pourquoi n'a-t-on pas Rrvap . 'resmn' = tic . 'Rvp' NOMC 'RVP' ; ?
  2774. *FD
  2775. Rrvap . 'METHINV' . 'CALPREC' = calprec ;
  2776. EXEC Rrvap ;
  2777. 'FINS';
  2778. 'SI' (TBT . 'THE' 'ET' ('NON' TBT . 'TRrhe')) ;
  2779. Rrhe = TBT . 'Rrhe' ;
  2780. drhecl = CLINC RXT Rrhe (TBT . 'TRrhe') 'RHE' 'Rhej' 'RHEM' ;
  2781. Rrhe . 'resmn' = tic . 'RHE' NOMC 'RHE' ;
  2782. Rrhe . 'METHINV' . 'CALPREC' = calprec ;
  2783. EXEC Rrhe ;
  2784. 'FINS' ;
  2785. 'SI' (TBT . 'TH2' 'ET' ('NON' TBT . 'TRrh2')) ;
  2786. Rrh2 = TBT . 'Rrh2' ;
  2787. drh2cl = CLINC RXT Rrh2 (TBT . 'TRrh2') 'RH2' 'Rh2j' 'RH2M' ;
  2788. Rrh2 . 'resmn' = tic.'RH2' NOMC 'RH2' ;
  2789. Rrh2 . 'METHINV' . 'CALPREC' = calprec ;
  2790. EXEC Rrh2 ;
  2791. 'FINS' ;
  2792. 'SI' (TBT . 'TO2' 'ET' ('NON' TBT . 'TRro2')) ;
  2793. Rro2 = TBT . 'Rro2' ;
  2794. dro2cl = CLINC RXT Rro2 (TBT . 'TRro2') 'RO2' 'Ro2j' 'RO2M' ;
  2795. Rro2 . 'resmn' = tic . 'RO2' NOMC 'RO2' ;
  2796. Rro2 . 'METHINV' . 'CALPREC' = calprec ;
  2797. EXEC Rro2 ;
  2798. 'FINS' ;
  2799. 'SI' (TBT . 'TN2' 'ET' ('NON' TBT . 'TRrn2')) ;
  2800. Rrn2 = TBT . 'Rrn2' ;
  2801. drn2cl = CLINC RXT Rrn2 (TBT . 'TRrn2') 'RN2' 'Rn2j' 'RN2M' ;
  2802. Rrn2 . 'resmn' = tic . 'RN2' NOMC 'RN2' ;
  2803. Rrn2 . 'METHINV' . 'CALPREC' = calprec ;
  2804. EXEC Rrn2 ;
  2805. 'FINS' ;
  2806. 'SI' (TBT . 'TCO2' 'ET' ('NON' TBT . 'TRrco2')) ;
  2807. Rrco2 = TBT . 'Rrco2' ;
  2808. drco2cl = CLINC RXT Rrco2 (TBT . 'TRrco2') 'RCO2' 'Rco2j' 'RCO2M' ;
  2809. Rrco2 . 'resmn' = tic . 'RCO2' NOMC 'RCO2' ;
  2810. Rrco2 . 'METHINV' . 'CALPREC' = calprec ;
  2811. EXEC Rrco2 ;
  2812. 'FINS' ;
  2813. 'SI' (TBT . 'TCO' 'ET' ('NON' TBT . 'TRrco')) ;
  2814. Rrco = TBT . 'Rrco' ;
  2815. drcocl = CLINC RXT Rrco (TBT . 'TRrco') 'RCO' 'Rcoj' 'RCOM' ;
  2816. Rrco . 'resmn' = tic . 'RCO' NOMC 'RCO' ;
  2817. Rrco . 'METHINV' . 'CALPREC' = calprec ;
  2818. EXEC Rrco ;
  2819. 'FINS' ;
  2820. *
  2821. * Résolution séquentielle de la température
  2822. * (ajout de la CLIM dans CLINC avant l'appel à EXEC)
  2823. 'SI' ('NON' TBT . 'TRTF') ;
  2824. 'MESS' '$$$$ RESOLUTION SEQUENTIELLE DE LA TEMPERATURE DU FLUIDE' ;
  2825. rtf = TBT . 'RTF' ;
  2826. dtfcl = CLINC RXT rtf (TBT . 'TRTF') 'TF' 'Tj' 'TFNM' ;
  2827. rtf . 'METHINV' . 'CALPREC' = calprec ;
  2828. EXEC rtf ;
  2829. 'FINS' ;
  2830. *
  2831. * Résolution séquentielle de la Tparoi découplée du fluide
  2832. * (le flux tic . 'FHP1' est calculé dans CONDENS)
  2833. 'SI' TBT . 'THERMP' ;
  2834. 'SI' ('NON' TBT . 'THERCO') ;
  2835. rtp = TBT . 'RTP' ;
  2836. 'SI' (TBT . 'IMPR' '>EG' 2) ;
  2837. 'MESS' '==> RESOLUTION rtp ';
  2838. 'FINS' ;
  2839. rtp . 'METHINV' . 'CALPREC' = calprec ;
  2840. EXEC rtp ;
  2841. 'FINS' ;
  2842. Tp = tic . 'TP' ;
  2843. 'FINS' ;
  2844. *
  2845. *>>13.3 Résolution FIN
  2846. *
  2847. *
  2848.  
  2849. *
  2850. *>>13.4 Bornage de TF(n)
  2851. *
  2852. * Calcul de Tfmi, minimum de la condition initiale et des conditions aux limites
  2853. * Mise à jour de Ltbpi ici en cas de procédure PERSO (appel en 12.)
  2854. Tfmi = 'PROG' rxt . 'TF0' ;
  2855. CHrtf1 = rtf . 'CLIM';
  2856. MArtf1 = 'EXTR' CHrtf1 'MAILLAGE' ;
  2857. *FD
  2858. * C'est quoi ce test charabia MArtf1=0 ?
  2859. *FD
  2860. 'SI' ('NEG' MArtf1 0);
  2861. Tfmi = Tfmi 'ET' ('PROG' ('MINI' rtf . 'CLIM')) ;
  2862. 'FINS' ;
  2863. 'SI' TBT.'ASPER ' ;
  2864. Tfmi = Tfmi 'ET' ('PROG' Tdinj) ;
  2865. 'FINS' ;
  2866. 'SI' TBT.'THERMP' ;
  2867. Tfmi = Tfmi 'ET' ('PROG' ('MINI' tic . 'TP'));
  2868. 'FINS' ;
  2869. 'SI' TBT . 'TTIMP' ;