Télécharger execrxt.procedur

Retour à la liste

Numérotation des lignes :

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