Télécharger enceinte.procedur

Retour à la liste

Numérotation des lignes :

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