Télécharger execrxt.procedur

Retour à la liste

Numérotation des lignes :

  1. * EXECRXT PROCEDUR MAGN 19/02/11 21:15:03 10110
  2. 'DEBPROC' EXECRXT nbit*'ENTIER ' rxt*'TABLE ' KENC/'MOT';
  3. *----------------------------------------------------------
  4. *---- Suivi des modifications
  5. *--- 20/09/99 : ES prise en compte des incondensables
  6. * dans la procédure CONDENS
  7. *--- 18/05/00 : FP prises en comptes de la condensation en masse par
  8. * l'ajout d'une nouvelle équation sur la masse volumique
  9. * de liquide en suspension. Les équations sur rhovap et
  10. * sur T sont également complétées par l'introduction
  11. * d'une nouveau terme source. La détermination des
  12. * termes sources est réalisée dans une procedure appelée
  13. * CONDENSM.
  14. *--- 04/11/05 : Ajout d'un choix de formulation pour le flux condensé
  15. * (Chilton-Colburn) dans la procédure CONDENS
  16. *----------------------------------------------------------
  17.  
  18. *==============================================================
  19. Si(Exist KENC) ;
  20. MKENC=KENC ;
  21. Sinon ;
  22. MKENC='????' ;
  23. Finsi ;
  24. WWW=chai'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW';
  25. WWW=chai WWW 'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW';
  26.  
  27. mess WWW ;
  28. mess ' DEBUT PROCEDURE EXECRXT : CHOIX DES PRINCIPAUX PARAMETRES';
  29. mess WWW ;
  30. *-----------------------------------------------------------------------
  31. * Liste des entrées nécessaires ;
  32. *-----------------------------------------------------------------------
  33. * Géométrie
  34.  
  35. listand = MOTS ;
  36. listchp = MOTS ;
  37. listentr= table ;
  38. listentr.'VERSION' ='' ;
  39. listentr.'vtf' ='' ;
  40. listentr.'TF0' ='' ;
  41. listentr.'PT0' ='' ;
  42.  
  43. listentr.'XFIMP' ='' ;
  44.  
  45. listentr.'THERMP' ='' ;
  46. listentr.'PAROIS' ='' ;
  47. listentr.'THERCO' ='' ;
  48. listentr.'vtp' ='' ;
  49. listentr.'ROCP' ='' ;
  50. listentr.'LAMBDA' ='' ;
  51. listentr.'Tp0' ='' ;
  52. listentr.'ECHAN' ='' ;
  53.  
  54. listentr.'ECHEXT' ='' ;
  55. listentr.'parext' ='' ;
  56. listentr.'HEXT' ='' ;
  57. listentr.'TPEXT' ='' ;
  58.  
  59. listentr.'TIMP' ='' ;
  60. listentr.'TIMP1' ='' ;
  61. listentr.'TIMP2' ='' ;
  62. listentr.'TIMP3' ='' ;
  63.  
  64. listentr.'ECHANP' ='' ;
  65.  
  66. listentr.'Sorties' ='' ;
  67. listentr.'Breches' ='' ;
  68. listentr.'breche' ='' ;
  69. listentr.'breche2' ='' ;
  70. listentr.'breche3' ='' ;
  71. listentr.'sortie' ='' ;
  72. listentr.'axe' ='' ;
  73. listentr.'epsi' ='' ;
  74. listentr.'pi' ='' ;
  75.  
  76. * Table utilisée pour la définition de recombineurs
  77. listentr.'RECOMB' ='' ;
  78.  
  79. * Table de travail rajoutées par la procédure
  80. listentr.'REINIT' ='' ;
  81. listentr.'TIC' ='' ;
  82. listentr.'GEO' ='' ;
  83. listentr.'TBT' ='' ;
  84.  
  85. * paramètres numériques / algorithmes
  86. listentr.'DISCR' ='' ;
  87. listentr.'KPRE' ='' ;
  88. listentr.'MAXELPRE' ='' ;
  89. listentr.'STAB' ='' ;
  90. listentr.'ALGO' ='' ;
  91.  
  92. * paramètres de fonctionnement
  93. listentr.'CATHARE2' ='' ;
  94. listentr.'DT0' ='' ;
  95. listentr.'PERSO' ='' ;
  96. listentr.'TABPERSO' ='' ;
  97. listentr.'GRAPH' ='' ;
  98. listentr.'RENU' ='' ;
  99. listentr.'TYPINV' ='' ;
  100. listentr.'IMPR' ='' ;
  101. listentr.'FRPREC' ='' ;
  102. listentr.'PPDT' ='' ;
  103. listentr.'RESIDU' ='' ;
  104. listentr.'NTIT' ='' ;
  105. listentr.'TCPT' ='' ;
  106. listentr.'TKPR' ='' ;
  107. listentr.'TRESOU' ='' ;
  108. listentr.'IMPARA' ='' ;
  109. listentr.'TRTF' ='' ;
  110. listentr.'TRrvap' ='' ;
  111. listentr.'TRrhe' ='' ;
  112. listentr.'TRrh2' ='' ;
  113. listentr.'TRro2' ='' ;
  114. listentr.'TRrn2' ='' ;
  115. listentr.'TRrco2' ='' ;
  116. listentr.'TRrair' ='' ;
  117. listentr.'TRrco' ='' ;
  118. listentr.'TNPOD' ='' ;
  119.  
  120.  
  121. ** Modèles physiques
  122. * Constituant (air par défaut ) vapeur/incondensables
  123. listentr.'LOI-ETAT' ='' ;
  124. listentr.'VAPEUR' ='' ;
  125. listentr.'YBRO' ='' ;
  126. listentr.'V1alfa' ='' ;
  127. listentr.'TAUXcm' ='' ;
  128. listentr.'HE' ='' ;
  129. listentr.'H2' ='' ;
  130. listentr.'O2' ='' ;
  131. listentr.'N2' ='' ;
  132. listentr.'CO' ='' ;
  133. listentr.'CO2' ='' ;
  134. listentr.'AIR' ='' ;
  135.  
  136. * Modèles de turbulence
  137. listentr.'MODTURB' ='' ;
  138. listentr.'FPAROI' ='' ;
  139.  
  140. * Formulation pour le modèle de condensation
  141. listentr.'MODCOND' ='' ;
  142.  
  143. idim = vale 'DIME' ;
  144. DIM3D=FAUX ;
  145. Si(EGA idim 3) ;
  146. DIM3D=VRAI ;
  147. Finsi ;
  148.  
  149. *-----------------------------------------------------------------------
  150.  
  151.  
  152. REINIT= (NON ('EXIST' rxt 'TBT')) ;
  153. 'SI' ('EXIST' rxt 'REINIT') ;
  154. vertytab rxt 'REINIT' 'LOGIQUE' ;
  155. REINIT=rxt.'REINIT' ;
  156. 'FINSI' ;
  157.  
  158. 'SI'(('EXIST' rxt 'TBT') et (NON REINIT)) ;
  159. vertytab rxt 'TBT' 'TABLE ' ;
  160. vertytab rxt 'GEO' 'TABLE ' ;
  161. TPREPA=FAUX ;
  162. TBT=rxt.'TBT' ;
  163. GEO=rxt.'GEO' ;
  164. 'SINON' ;
  165. TPREPA=VRAI ;
  166. TBT='TABLE' ;
  167. GEO='TABLE' ;
  168. rxt.'GEO'=GEO ;
  169. 'FINSI' ;
  170.  
  171. *---------------------------------------------------------
  172. * epsi = tolérance pour les maillages (OPERATEUR ELIM)
  173. GEO.'epsi'= 1.e-4 ;
  174. 'SI' ('EXIST' rxt 'epsi') ;
  175. vertytab rxt 'epsi' 'FLOTTANT' ;
  176. GEO.'epsi'= rxt.'epsi' ;
  177. 'FINSI' ;
  178. *---------------------------------------------------------
  179.  
  180. *CREATION GEO MAILLAGE
  181.  
  182. 'SI' ('EXIST' rxt 'TIC') ;
  183. vertytab rxt 'TIC' 'TABLE ' ;
  184. vertytab (rxt.'TIC') 'LTPS' 'LISTREEL' ;
  185. tic=rxt.'TIC' ;
  186. 'SINON' ;
  187. tic= 'TABLE' 'INCO' ;
  188. rxt.'TIC'=tic ;
  189. tic.'LTPS' = 'PROG' 0.0 ;
  190. 'FINSI' ;
  191.  
  192. ndl = 'DIME' (tic.'LTPS') ;
  193. Tps='EXTR' (tic.'LTPS') ndl ;
  194. MESS ' Le calcul demarre a partir du temps ' Tps ;
  195.  
  196. * Initialisation
  197. * Liste des Gaz qui peuvent etre calcule
  198. LINCOND=MOTS 'N2' 'H2' 'HE' 'O2' 'CO' 'CO2' 'VAPE' ;
  199.  
  200. Si (non(exist tic 'Lg0D')) ;
  201. tic.'Lg0D'= Mots ;
  202. tic.'Li0D'= Prog ;
  203. Finsi ;
  204.  
  205. *-------------------------------------------------------------
  206. * On vérifie que l'utilisateur a bien crée un volume FLUIDE
  207. * Donnée obligatoire
  208. *-------------------------------------------------------------
  209.  
  210. vertytab rxt 'TF0' 'FLOTTANT' ;
  211. vertytab rxt 'PT0' 'FLOTTANT' ;
  212.  
  213. * Vérifie quelques impératifs sur le maillage
  214. vertytab rxt 'vtf' 'MAILLAGE' ;
  215. vtf = rxt.'vtf' ;
  216. vertytab 0 GEO vtf ;
  217.  
  218. GEO.'Mvtf'=chan 'QUAF' rxt.'vtf' ;
  219. *-------------------------------------------------------------
  220. * CATHARE2 couplage avec CATHARE2 : donnée non obligatoire
  221. *-------------------------------------------------------------
  222.  
  223. TBT.'CATHARE2' = FAUX ;
  224. 'SI' (exist rxt 'CATHARE2') ;
  225. vertytab rxt 'CATHARE2' 'LOGIQUE' ;
  226. TBT.'CATHARE2'= rxt.'CATHARE2' ;
  227. 'FINSI' ;
  228.  
  229. *-------------------------------------------------------------
  230. * DT0 Le pas de temps : Donnée obligatoire
  231. *-------------------------------------------------------------
  232.  
  233. vertytab rxt 'DT0' 'FLOTTANT' ;
  234. tic.'DT'=rxt.'DT0' ;
  235.  
  236. *----------------------------------------------------------
  237. * VERSION= 'MOT' indiquant le niveau de la version
  238. * Niveaux disponiblex V0 (standard) et V1
  239. *----------------------------------------------------------
  240.  
  241. TBT.'VERSION' = 1 ;
  242. 'SI' (exist rxt 'VERSION') ;
  243. lxt = mots 'V0' 'V1' ;
  244. tbvs= table; tbvs.'V0'=0; tbvs.'V1'=1; ;
  245. vertytab lxt (rxt.'VERSION') 'MOT' ;
  246. TBT.'VERSION'= tbvs.(rxt.'VERSION') ;
  247. 'SI' (TBT.'VERSION' > 0) ;
  248. TBT.'CONDMAS' = VRAI ;
  249. 'FINSI' ;
  250. 'FINSI' ;
  251.  
  252. 'SI' ('EGA' TBT.'VERSION' 1) ;
  253. TBT.'YBRO' = 1.e-4 ;
  254. TBT.'V1alfa' = 0.8 ;
  255. TBT.'TAUXcm' = 1. ;
  256. 'SI' (exist rxt 'YBRO') ;
  257. vertytab rxt 'YBRO' 'FLOTTANT' ;
  258. TBT.'YBRO' = rxt.'YBRO' ;
  259. 'FINSI' ;
  260. 'SI' (exist rxt 'V1alfa') ;
  261. vertytab rxt 'V1alfa' 'FLOTTANT' ;
  262. TBT.'V1alfa' = rxt.'V1alfa' ;
  263. 'FINSI' ;
  264. 'SI' (exist rxt 'TAUXcm') ;
  265. vertytab rxt 'TAUXcm' 'FLOTTANT' ;
  266. TBT.'TAUXcm' = rxt.'TAUXcm' ;
  267. 'FINSI' ;
  268. 'FINSI' ;
  269.  
  270. *----------------------------------------------------------
  271. * LOIDETAT = MOT Précise le type de la loi d'état
  272. *----------------------------------------------------------
  273.  
  274. TBT.'LOI-ETAT' = 'GP' ;
  275. 'SI' (exist rxt 'LOI-ETAT') ;
  276. lxt = mots 'GP' 'GR' ;
  277. vertytab lxt (rxt.'LOI-ETAT') 'MOT' ;
  278. TBT.'LOI-ETAT'= rxt.'LOI-ETAT' ;
  279.  
  280. Si ('EGA' TBT.'VERSION' 0) ;
  281. Si ('EGA' TBT.'LOI-ETAT' 'GR') ;
  282. Mess ;
  283. Mess '*********************************************************' ;
  284. Mess ' ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ' ;
  285. Mess ' ' ;
  286. Mess ' ' ;
  287. Mess ' Dans la version V0 la loi d état est obligatoirement une' ;
  288. Mess ' loi de gaz parfait ' ;
  289. ERREUR 21 ;
  290. Mess '*********************************************************' ;
  291. Mess ;
  292. QUITTER EXECRXT ;
  293. finsi ;
  294. finsi ;
  295. 'FINSI' ;
  296.  
  297. *----------------------------------------------------------
  298. * GRAPH = Logique permettant les dessins
  299. *----------------------------------------------------------
  300.  
  301. TBT.'GRAPH' = FAUX ;
  302. 'SI' (exist rxt 'GRAPH') ;
  303. vertytab rxt 'GRAPH' 'LOGIQUE ' ;
  304. TBT.'GRAPH'= rxt.'GRAPH' ;
  305. 'FINSI' ;
  306.  
  307. *---------------------------------------------------------
  308. * STAB = coefficient de Stabilisation pour les MACRO
  309. * pour l'algorithme de Projection
  310. *---------------------------------------------------------
  311.  
  312. TBT.'STAB' = 1. ;
  313. 'SI' ('EXIST' rxt 'STAB') ;
  314. vertytab rxt 'STAB' 'FLOTTANT' ;
  315. TBT.'STAB' = rxt.'STAB' ;
  316. listand=listand et (MOTS 'STAB') ;
  317. 'FINSI' ;
  318.  
  319. *---------------------------------------------------------
  320. * DETMAT Logique indiquant qu'on détruit toutes les
  321. * matrices à la fin du calcul.
  322. *---------------------------------------------------------
  323.  
  324. TBT.'DETMAT' = VRAI ;
  325. 'SI' ('EXIST' rxt 'DETMAT') ;
  326. vertytab rxt 'DETMAT' 'LOGIQUE' ;
  327. listentr.'DETMAT' ='' ;
  328. TBT.'DETMAT' = rxt.'DETMAT' ;
  329. 'FINSI' ;
  330.  
  331. *---------------------------------------------------------
  332. * CORTEMP Logique indiquant qu'on supprime ou non le controle
  333. * du bilan d'énergie.
  334. *---------------------------------------------------------
  335.  
  336. TBT.'CORTEMP' = VRAI ;
  337. 'SI' ('EXIST' rxt 'CORTEMP') ;
  338. vertytab rxt 'CORTEMP' 'LOGIQUE' ;
  339. listentr.'CORTEMP' ='' ;
  340. TBT.'CORTEMP' = rxt.'CORTEMP' ;
  341. listand=listand et (MOTS 'CORTEMP') ;
  342. 'FINSI' ;
  343.  
  344. *---------------------------------------------------------
  345. * RENU = Type de renumérotation pour les méthodes d'inversion
  346. * RIEN SLOA
  347. *---------------------------------------------------------
  348.  
  349. TBT.'RENU' = 'SLOA' ;
  350. 'SI' ('EXIST' rxt 'RENU') ;
  351. vertytab rxt 'RENU' 'MOT' ;
  352. lxt=mots 'RIEN' 'SLOA' 'GIBR' 'GIBA' ;
  353. vertytab lxt (rxt.'RENU') 'MOT' ;
  354. TBT.'RENU' = rxt.'RENU' ;
  355. listand=listand et (MOTS 'RENU') ;
  356. 'FINSI' ;
  357.  
  358. *---------------------------------------------------------
  359. * TYPINV Type d'inversion
  360. * RIEN BICG sinon voir notice KRES
  361. * RESIDU pour les méthodes itératives (défaut 1.e-20)
  362. *---------------------------------------------------------
  363.  
  364. TBT.'TYPINV'= 3 ;
  365. 'SI' ('EXIST' rxt 'TYPINV') ;
  366. vertytab rxt 'TYPINV' 'ENTIER' ;
  367. TBT.'TYPINV' = rxt.'TYPINV' ;
  368. listand=listand et (MOTS 'TYPINV') ;
  369. 'FINSI' ;
  370.  
  371. TBT.'RESIDU'= 1.E-20 ;
  372. 'SI' ('EXIST' rxt 'RESIDU') ;
  373. vertytab rxt 'RESIDU' 'FLOTTANT' ;
  374. TBT.'RESIDU' = rxt.'RESIDU' ;
  375. listand=listand et (MOTS 'RESIDU') ;
  376. 'FINSI' ;
  377.  
  378. TBT.'NTIT'= 800 ;
  379. 'SI' ('EXIST' rxt 'NTIT') ;
  380. vertytab rxt 'NTIT' 'ENTIER' ;
  381. TBT.'NTIT' = rxt.'NTIT' ;
  382. listand=listand et (MOTS 'NTIT') ;
  383. 'FINSI' ;
  384.  
  385. TBT.'TCPT'= FAUX ;
  386. 'SI' ('EXIST' rxt 'TCPT') ;
  387. vertytab rxt 'TCPT' 'LOGIQUE' ;
  388. TBT.'TCPT' = rxt.'TCPT' ;
  389. listand=listand et (MOTS 'TCPT') ;
  390. 'FINSI' ;
  391.  
  392. TBT.'TKPR'= FAUX ;
  393. 'SI' ('EXIST' rxt 'TKPR') ;
  394. vertytab rxt 'TKPR' 'LOGIQUE' ;
  395. TBT.'TKPR' = rxt.'TKPR' ;
  396. listand=listand et (MOTS 'TKPR') ;
  397. 'FINSI' ;
  398.  
  399. TBT.'TRESOU'= FAUX ;
  400. 'SI' ('EXIST' rxt 'TRESOU') ;
  401. vertytab rxt 'TRESOU' 'LOGIQUE' ;
  402. TBT.'TRESOU' = rxt.'TRESOU' ;
  403. listand=listand et (MOTS 'TRESOU') ;
  404. 'FINSI' ;
  405.  
  406. TBT.'IMPARA'= FAUX ;
  407. 'SI' ('EXIST' rxt 'IMPARA') ;
  408. vertytab rxt 'IMPARA' 'LOGIQUE' ;
  409. TBT.'IMPARA' = rxt.'IMPARA' ;
  410. listand=listand et (MOTS 'IMPARA') ;
  411. 'FINSI' ;
  412.  
  413. TBT.'TRTF' = TBT.'TKPR' ;
  414. 'SI' ('EXIST' rxt 'TRTF') ;
  415. vertytab rxt 'TRTF' 'LOGIQUE' ;
  416. TBT.'TRTF' = rxt.'TRTF' ;
  417. listand=listand et (MOTS 'TRTF') ;
  418. 'FINSI' ;
  419.  
  420. TBT.'TRrvap'=TBT.'TKPR' ;
  421. 'SI' ('EXIST' rxt 'TRrvap') ;
  422. vertytab rxt 'TRrvap' 'LOGIQUE' ;
  423. TBT.'TRrvap' = rxt.'TRrvap' ;
  424. listand=listand et (MOTS 'TRrvap') ;
  425. 'FINSI' ;
  426.  
  427. TBT.'TRrhe' =TBT.'TKPR' ;
  428. 'SI' ('EXIST' rxt 'TRrhe') ;
  429. vertytab rxt 'TRrhe' 'LOGIQUE' ;
  430. TBT.'TRrhe' = rxt.'TRrhe' ;
  431. listand=listand et (MOTS 'TRrhe') ;
  432. 'FINSI' ;
  433.  
  434. TBT.'TRrh2' =TBT.'TKPR' ;
  435. 'SI' ('EXIST' rxt 'TRrh2') ;
  436. vertytab rxt 'TRrh2' 'LOGIQUE' ;
  437. TBT.'TRrh2' = rxt.'TRrh2' ;
  438. listand=listand et (MOTS 'TRrh2') ;
  439. 'FINSI' ;
  440.  
  441. TBT.'TRro2' =TBT.'TKPR' ;
  442. 'SI' ('EXIST' rxt 'TRro2') ;
  443. vertytab rxt 'TRro2' 'LOGIQUE' ;
  444. TBT.'TRro2' = rxt.'TRro2' ;
  445. listand=listand et (MOTS 'TRro2') ;
  446. 'FINSI' ;
  447.  
  448. TBT.'TRrn2' =TBT.'TKPR' ;
  449. 'SI' ('EXIST' rxt 'TRrn2') ;
  450. vertytab rxt 'TRrn2' 'LOGIQUE' ;
  451. TBT.'TRrn2' = rxt.'TRrn2' ;
  452. listand=listand et (MOTS 'TRrn2') ;
  453. 'FINSI' ;
  454.  
  455. TBT.'TRrco' =TBT.'TKPR' ;
  456. 'SI' ('EXIST' rxt 'TRrco') ;
  457. vertytab rxt 'TRrco' 'LOGIQUE' ;
  458. TBT.'TRrco' = rxt.'TRrco' ;
  459. listand=listand et (MOTS 'TRrco') ;
  460. 'FINSI' ;
  461.  
  462. TBT.'TRrco2'=TBT.'TKPR' ;
  463. 'SI' ('EXIST' rxt 'TRrco2') ;
  464. vertytab rxt 'TRrco2' 'LOGIQUE' ;
  465. TBT.'TRrco2' = rxt.'TRrco2' ;
  466. listand=listand et (MOTS 'TRrco2') ;
  467. 'FINSI' ;
  468.  
  469. TBT.'TRrair'=TBT.'TKPR' ;
  470. 'SI' ('EXIST' rxt 'TRrair') ;
  471. vertytab rxt 'TRrair' 'LOGIQUE' ;
  472. TBT.'TRrair' = rxt.'TRrair' ;
  473. listand=listand et (MOTS 'TRrair') ;
  474. 'FINSI' ;
  475.  
  476. TBT.'TRTOUT' = TBT.'TRTF' ou TBT.'TRrvap' ou TBT.'TRrhe' ou
  477. TBT.'TRrh2' ou TBT.'TRro2' ou TBT.'TRrn2' ou TBT.'TRrco' ou
  478. TBT.'TRrco2' ou TBT.'TRrair' ;
  479.  
  480. TBT.'TNPOD' =FAUX ;
  481. 'SI' ('EXIST' rxt 'TNPOD' ) ;
  482. vertytab rxt 'TNPOD' 'LOGIQUE' ;
  483. TBT.'TNPOD' = rxt.'TNPOD' ;
  484. listand=listand et (MOTS 'TNPOD' ) ;
  485. 'FINSI' ;
  486.  
  487. *---------------------------------------------------------
  488. * PPDT formulation designé petits/grand pas de temps
  489. * conservative ou non conservative
  490. *---------------------------------------------------------
  491.  
  492. TBT.'PPDT'= FAUX ;
  493. 'SI' ('EXIST' rxt 'PPDT') ;
  494. vertytab rxt 'PPDT' 'LOGIQUE' ;
  495. TBT.'PPDT' = rxt.'PPDT' ;
  496. listand=listand et (MOTS 'PPDT') ;
  497. 'FINSI' ;
  498.  
  499. Si TBT.'PPDT' ;
  500. TBT.'FCONS'= 'CONS2' ;
  501. Sinon ;
  502. TBT.'FCONS'= 'NOCONS' ;
  503. Finsi ;
  504. *--------------------------------------------------------
  505. * ALGO = choix de l'algorithme implicite / explicite
  506. * Les choix possibles sont :
  507. * IMPL = semi implicite
  508. * EFM1 = semi explicite
  509. *--------------------------------------------------------
  510.  
  511. TBT.'ALGO' ='IMPL' ;
  512. TBT.'SPGNU'='CHAI' sommet ;
  513. TBT.'FEF' ='EF' ;
  514. TBT.'FIMPL'='IMPL' ;
  515. 'SI' ('EXIST' rxt 'ALGO') ;
  516. vertytab rxt 'ALGO' 'MOT' ;
  517. lxt=mots 'IMPL' 'EFM1' ;
  518. vertytab lxt (rxt.'ALGO') 'MOT' ;
  519. TBT.'ALGO' = rxt.'ALGO' ;
  520. Si (EGA TBT.'ALGO' 'EFM1') ;
  521. TBT.'SPGNU'='CHAI' centre ;
  522. TBT.'FEF' ='EFM1' ;
  523. TBT.'FIMPL'='EXPL' ;
  524. Finsi ;
  525. listand=listand et (MOTS 'ALGO') ;
  526. 'FINSI' ;
  527. 'MESS' '==> Algorithme choisi ' TBT.'ALGO' ;
  528.  
  529. *--------------------------------------------------------
  530. * DISCR = choix de la discrétisation
  531. * Les dicrétisations possibles sont :
  532. * LINE = éléments linéaires
  533. * MACRO = éléments MACRO (par DEFAUT)
  534. * QUAF = éléments quadratiques fluide
  535. *--------------------------------------------------------
  536.  
  537. TBT.'discr'='MACRO' ;
  538. 'SI' ('EXIST' rxt 'DISCR') ;
  539. vertytab rxt 'DISCR' 'MOT' ;
  540. lxt=mots 'MACRO' 'LINE' 'QUAF' ;
  541. vertytab lxt (rxt.'DISCR') 'MOT' ;
  542. TBT.'discr' = rxt.'DISCR' ;
  543. listand=listand et (MOTS 'DISCR') ;
  544. 'FINSI' ;
  545. 'MESS' '==> Discrétisation choisie pour la vitesse ' TBT.'discr' ;
  546. TBT.'discrH'=TBT.'discr' ;
  547. Si ((Ega TBT.'discr' 'QUAF') ET (EGA (VALE DIME) 3)) ;
  548. TBT.'discrH'='MACRO' ;
  549. Finsi ;
  550.  
  551. *---------------------------------------------------------
  552. * KPRE = position de l'inconnue de pression
  553. * possibilités : CENTRE avec algorithme de projection
  554. * CENTREP1 avec algorithme IMPLICIT
  555. *---------------------------------------------------------
  556.  
  557. TBT.'KPRE'='CENTRE' ;
  558. 'SI' ('EXIST' rxt 'KPRE') ;
  559. vertytab rxt 'KPRE' 'MOT' ;
  560. lxt=table; lxt.'CENTRE'=' '; lxt.'CENTREP1'=' ' ;
  561. lxt.'MSOMMET'=' ' ;
  562. vertytab lxt (rxt.'KPRE') 'MOT' ;
  563. TBT.'KPRE' = rxt.'KPRE' ;
  564. listand=listand et (MOTS 'KPRE') ;
  565. 'FINSI' ;
  566. 'MESS' '==> Discrétisation choisie pour la pression ' TBT.'KPRE';
  567.  
  568. *---------------------------------------------------------
  569. * MAXELPRE = nombre maximum d'éléments pour lequel on utilise
  570. * une méthode directe (Cholesky) pour inverser la matrice.
  571. * Par défaut 150000
  572. *---------------------------------------------------------
  573.  
  574. TBT.'MAXELPRE'= 150000 ;
  575. 'SI' ('EXIST' rxt 'MAXELPRE') ;
  576. vertytab rxt 'MAXELPRE' 'ENTIER' ;
  577. TBT.'MAXELPRE' = rxt.'MAXELPRE' ;
  578. listand=listand et (MOTS 'MAXELPRE') ;
  579. 'FINSI' ;
  580. 'MESS' '==> Résolution directe pour la pression jusqu à '
  581. TBT.'MAXELPRE' ' éléments';
  582.  
  583. *---------------------------------------------------------
  584. * Definition des grandeurs Physiques :
  585. * Rgi = constante des gaz pour chaque especes J/Kg/K
  586. *
  587. * Modif FP 26/06/00
  588. Rabs = 6.022*1.38066 ;
  589. TBT.'Rabs' = Rabs ;
  590. TBT.'Rgh2' = Rabs/2.E-3 ; TBT.'Mkh2' = 2.016E-3 ;
  591. TBT.'Rghe' = Rabs/4.E-3 ; TBT.'Mkhe' = 4.003E-3 ;
  592. TBT.'Rgo2' = Rabs/3.2E-2 ; TBT.'Mko2' = 32.00E-3 ;
  593. TBT.'Rgn2' = Rabs/2.8E-2 ; TBT.'Mkn2' = 28.02E-3 ;
  594. TBT.'Rgco2' = Rabs/4.4E-2 ; TBT.'Mkco2' = 44.01E-3 ;
  595. TBT.'Rgco' = Rabs/2.8E-2 ; TBT.'Mkco' = 28.01E-3 ;
  596. TBT.'Rgvap' = Rabs/1.8E-2 ; TBT.'Mkvap' = 18.02E-3 ;
  597. TBT.'Rgair' = 287.1 ; TBT.'Mkair' = 28.97E-3 ;
  598. TBT.'Rgar' = Rabs/4.E-2 ; TBT.'Mkar' = 39.94E-3 ;
  599. TBT.'Rgch4' = Rabs/16.E-3 ; TBT.'Mkch4' = 16.04E-3 ;
  600. TBT.'lamair'= 2.580e-2 ;
  601.  
  602. TBT.'B0' = -4512.70756 ; TBT.'B1' = 4245585.9 ;
  603. TBT.'B2' = -1584624342.;
  604.  
  605. * Ancienne mouture
  606. **TBT.'Rgh2' = 4156.5 ;
  607. **TBT.'Rghe' = 2078.25 ;
  608. **TBT.'Rgo2' = 259.8 ;
  609. **TBT.'Rgn2' = 296.9 ;
  610. **TBT.'Rgco2' = 188.9 ;
  611. **TBT.'Rgco' = 296.9 ;
  612. **TBT.'Rgvap' = 461.513 ;
  613. **TBT.'Rgair' = (0.8 '*' TBT.'Rgn2') '+' (0.2 '*' TBT.'Rgo2');
  614. *--------------------------------------------------------
  615. * Cpvap = Chaleur specifique a pression constante(J/Kg/K)
  616. * Hypothese de gaz parfait pour la vapeur d'eau
  617. *
  618. 'SI' ('EXIST' rxt 'Cpvap') ;
  619. vertytab rxt 'Cpvap' 'FLOTTANT' ;
  620. Cpvap = rxt.'Cpvap' ;
  621. 'SINON' ;
  622. Cpvap = 1700. ;
  623. 'MESS' '==> Cpvap mis par defaut a 1700 J/kg/K ' ;
  624. 'FINSI' ;
  625. TBT.'Cpvap'=Cpvap ;
  626. TBT.'Cvvap'=TBT.'Cpvap' - TBT.'Rgvap' ;
  627. *--------------------------------------------------------
  628. * Lv = Chaleur Latente supposée constante (J/kg)
  629. *
  630. 'SI' ('EXIST' rxt 'Lv') ;
  631. vertytab rxt 'Lv' 'FLOTTANT' ;
  632. Lv = rxt.'Lv' ;
  633. 'SINON' ;
  634. Lv = 2.3E6 ;
  635. 'MESS' '==> Chaleur latente Lv mise par defaut a 2.3E6 J/kg' ;
  636. 'FINSI' ;
  637. TBT.'Lv'=Lv ;
  638. *--------------------------------------------------------
  639. * DB = coefficient de diffusion Brownienne
  640. *
  641. 'SI' ('EXIST' rxt 'db') ;
  642. vertytab rxt 'db' 'FLOTTANT' ;
  643. db = rxt.'db' ;
  644. 'SINON' ;
  645. db = 1.000e-5 ;
  646. 'FINSI' ;
  647. TBT.'db'=db ;
  648. *----------------------------------------------------------
  649.  
  650. TBT.'Taxe' = FAUX ;
  651. Si (exist rxt 'axe') ;
  652. vertytab rxt 'axe' 'MAILLAGE' ;
  653. GEO.'Maxe'=chan 'QUAF' rxt.'axe' ;
  654. ELIM GEO.'Mvtf' GEO.'Maxe' rxt.'epsi' ;
  655. TBT.'Taxe' = VRAI ;
  656. Finsi ;
  657.  
  658. *----------------------------------------------------------
  659. * SCENARIO = on verifie existence de la TABLE necessaire
  660. * pour faire un calcul avec EXECRXT
  661. * si il y a au moins une brèche
  662.  
  663. *---------------------------------------------------------
  664. * Cas d'un nombre quelconque de Sorties
  665. TBT.'TTsortie' = FAUX ;
  666. Si (exist rxt 'Sorties') ;
  667.  
  668. vertytab rxt 'Sorties' 'TABLE' ;
  669. TBT.'TTsortie' = VRAI ;
  670. NBR=dime rxt.'Sorties' ;
  671. mess ' Il y a ' NBR ' Sortie(s)' ;
  672.  
  673. ibr=index (rxt.'Sorties') ;
  674.  
  675. Repeter BBRS NBR ;
  676. Sriches=rxt.'Sorties'.(ibr.&BBRS) ;
  677. mess ' Vérification Sortie ' (ibr.&BBRS) ;
  678.  
  679. vertytab Sriches 'Maillage' 'MAILLAGE' ;
  680. vertytab Sriches 'scenario' 'TABLE ' ;
  681. scn = Sriches.'scenario' ;
  682. Sriches.'Modinj'=mot 'A' ;
  683. Si(EXIST Sriches.'scenario' 'Modinj') ;
  684. Sriches.'Modinj'=Sriches.'scenario'.'Modinj' ;
  685. Finsi ;
  686. * Petites initialisations
  687. Sriches.'guj' = Prog 0. ;
  688. Sriches.'Qj' = Prog 0. ;
  689. Sriches.'Ksi' = Prog 0. ;
  690. Sriches.'Hj' = Prog 0. ;
  691. Sriches.'Ej' = Prog 0. ;
  692. Sriches.'Ltbp1' = Prog 0. ;
  693. Sriches.'Qlj' = Prog 0. ;
  694. Sriches.'Hlj' = Prog 0. ;
  695. Sriches.'Tinj' = Prog 0. ;
  696. FIN BBRS ;
  697. TBT.'Sorties' = rxt.'Sorties' ;
  698. Finsi ;
  699. *---------------------------------------------------------
  700.  
  701. *---------------------------------------------------------
  702. * Cas d'un nombre quelconque de brèches
  703. TBT.'TTbreche' = FAUX ;
  704. Si (exist rxt 'Breches') ;
  705.  
  706. vertytab rxt 'Breches' 'TABLE' ;
  707. TBT.'TTbreche' = VRAI ;
  708. NBR=dime rxt.'Breches' ;
  709. mess ' Il y a ' NBR ' Brèche(s)' ;
  710.  
  711. ibr=index (rxt.'Breches') ;
  712.  
  713. Repeter BBRS NBR ;
  714. Briches=rxt.'Breches'.(ibr.&BBRS) ;
  715. mess ' Vérification Breche ' (ibr.&BBRS) ;
  716.  
  717. vertytab Briches 'diru' 'POINT ' ;
  718. vertytab Briches 'Maillage' 'MAILLAGE' ;
  719. vertytab Briches 'scenario' 'TABLE ' ;
  720. scn = Briches.'scenario' ;
  721. Briches.'Modinj'=mot 'A' ;
  722. Si(EXIST Briches.'scenario' 'Modinj') ;
  723. Briches.'Modinj'=Briches.'scenario'.'Modinj' ;
  724. Finsi ;
  725. * Petites initialisations
  726. Briches.'guj' = Prog 0. ;
  727. Briches.'Qj' = Prog 0. ;
  728. Briches.'Ksi' = Prog 0. ;
  729. Briches.'Hj' = Prog 0. ;
  730. Briches.'Ej' = Prog 0. ;
  731. Briches.'Ltbp1' = Prog 0. ;
  732. Briches.'Qlj' = Prog 0. ;
  733. Briches.'Hlj' = Prog 0. ;
  734. Briches.'Tinj' = Prog 0. ;
  735. FIN BBRS ;
  736. TBT.'Breches' = rxt.'Breches' ;
  737. Finsi ;
  738. *---------------------------------------------------------
  739.  
  740. TBT.'Tbreche' = FAUX ;
  741. Si (exist rxt 'breche') ;
  742.  
  743. vertytab rxt 'breche' 'MAILLAGE' ;
  744. vertytab 2 GEO (rxt.'breche') ;
  745. GEO.'Mbreche'=chan 'QUAF' rxt.'breche' ;
  746. ELIM GEO.'Mvtf' GEO.'Mbreche' rxt.'epsi' ;
  747. TBT.'Tbreche' = VRAI ;
  748.  
  749. * listentr= listentr et (mots 'diru1' 'scenario') ;
  750. listentr.'diru1' ='' ;
  751. listentr.'scenario' ='' ;
  752. vertytab rxt 'diru1' 'POINT ' ;
  753. TBT.'diru1'=rxt.'diru1' ;
  754.  
  755. vertytab rxt 'scenario' 'TABLE ' ;
  756. scn = rxt.'scenario' ;
  757. TBT.'Modinj'=mot 'A' ;
  758. Si(EXIST rxt.'scenario' 'Modinj') ;
  759. TBT.'Modinj'=rxt.'scenario'.'Modinj' ;
  760. Finsi ;
  761.  
  762. Finsi ;
  763.  
  764. TBT.'Tbreche2' = FAUX ;
  765. Si (exist rxt 'breche2') ;
  766.  
  767. * pas de breche2 sans breche sinon pb ds les Qo
  768. vertytab rxt 'breche' 'MAILLAGE' ;
  769. vertytab rxt 'breche2' 'MAILLAGE' ;
  770. vertytab 2 GEO (rxt.'breche2') ;
  771. GEO.'Mbreche2'=chan 'QUAF' rxt.'breche2' ;
  772. ELIM GEO.'Mvtf' GEO.'Mbreche2' rxt.'epsi' ;
  773. TBT.'Tbreche2' = VRAI ;
  774.  
  775. * listentr= listentr et (mots 'diru2''scenario2') ;
  776. listentr.'diru2' ='' ;
  777. listentr.'scenario2' ='' ;
  778. vertytab rxt 'diru2' 'POINT ' ;
  779. TBT.'diru2'=rxt.'diru2' ;
  780.  
  781. vertytab rxt 'scenario2' 'TABLE ' ;
  782. scn2 = rxt.'scenario2' ;
  783. TBT.'Modinj2'=mot 'A' ;
  784. Si(EXIST rxt.'scenario2' 'Modinj') ;
  785. TBT.'Modinj2'=rxt.'scenario2'.'Modinj' ;
  786. Finsi ;
  787.  
  788. Finsi ;
  789.  
  790. TBT.'Tbreche3' = FAUX ;
  791. Si (exist rxt 'breche3') ;
  792.  
  793. * pas de breche3 sans breche sinon pb ds les Qo
  794. vertytab rxt 'breche' 'MAILLAGE' ;
  795. vertytab rxt 'breche2' 'MAILLAGE' ;
  796. vertytab rxt 'breche3' 'MAILLAGE' ;
  797. vertytab 2 GEO (rxt.'breche3') ;
  798. GEO.'Mbreche3'=chan 'QUAF' rxt.'breche3' ;
  799. ELIM GEO.'Mvtf' GEO.'Mbreche3' rxt.'epsi' ;
  800. TBT.'Tbreche3' = VRAI ;
  801.  
  802. * listentr= listentr et (mots 'diru3''scenario3') ;
  803. listentr.'diru3' ='' ;
  804. listentr.'scenario3' ='' ;
  805. vertytab rxt 'diru3' 'POINT ' ;
  806. TBT.'diru3'=rxt.'diru3' ;
  807.  
  808. vertytab rxt 'scenario3' 'TABLE ' ;
  809. scn3 = rxt.'scenario3' ;
  810. TBT.'Modinj3'=mot 'A' ;
  811. Si(EXIST rxt.'scenario3' 'Modinj') ;
  812. TBT.'Modinj3'=rxt.'scenario3'.'Modinj' ;
  813. Finsi ;
  814.  
  815. Finsi ;
  816.  
  817. *----------------------------------------------------------
  818. TBT.'Tsortie' = FAUX ;
  819.  
  820. Si (exist rxt 'sortie') ;
  821. vertytab rxt 'sortie' 'MAILLAGE' ;
  822. vertytab 2 GEO (rxt.'sortie') ;
  823. GEO.'Msortie'=chan 'QUAF' rxt.'sortie' ;
  824. ELIM GEO.'Mvtf' GEO.'Msortie' rxt.'epsi' ;
  825. TBT.'Tsortie' = VRAI ;
  826. Si (NON (exist rxt 'CORTEMP')) ;
  827. TBT.'CORTEMP' = FAUX ;
  828. Finsi ;
  829. Finsi ;
  830.  
  831. *----------------------------------------------------------
  832. * XFIMP 1 : Flux de masse imposés
  833. *
  834. TBT.'TFIMP' = FAUX ;
  835. Si (Exist rxt 'XFIMP') ;
  836. TBT.'TFIMP' = VRAI ;
  837. vertytab rxt 'XFIMP' 'TABLE' ;
  838. NBFIMP=dime (rxt.'XFIMP') ;
  839. ifimp=INDEX (rxt.'XFIMP') ;
  840. REPETER BBFIMP NBFIMP ;
  841. Bfimp=rxt.'XFIMP'.(ifimp.&BBFIMP) ;
  842. vertytab (rxt.'XFIMP') (ifimp.&BBFIMP) 'TABLE' ;
  843. vertytab Bfimp 'MAILLAGE' 'MAILLAGE' ;
  844. vertytab Bfimp 't' 'LISTREEL' ;
  845. nds=dime Bfimp.'t';
  846.  
  847. Si(Exist Bfimp 'qt') ;
  848. vertytab Bfimp 'qt' 'LISTREEL' ;
  849. Sinon ;
  850. Bfimp.'qt'=prog nds*0. ;
  851. Finsi ;
  852.  
  853. Si(Exist Bfimp 'qeau') ;
  854. vertytab Bfimp 'qeau' 'LISTREEL' ;
  855. Sinon ;
  856. Bfimp.'qeau'=prog nds*0. ;
  857. Finsi ;
  858.  
  859. Si(Exist Bfimp 'qair') ;
  860. vertytab Bfimp 'qair' 'LISTREEL' ;
  861. Sinon ;
  862. Bfimp.'qair'=prog nds*0. ;
  863. Finsi ;
  864.  
  865. Si(Exist Bfimp 'qhe') ;
  866. vertytab Bfimp 'qhe' 'LISTREEL' ;
  867. Sinon ;
  868. Bfimp.'qhe'=prog nds*0. ;
  869. Finsi ;
  870.  
  871. Si(Exist Bfimp 'qh2') ;
  872. vertytab Bfimp 'qh2' 'LISTREEL' ;
  873. Sinon ;
  874. Bfimp.'qh2'=prog nds*0. ;
  875. Finsi ;
  876.  
  877. Si(Exist Bfimp 'qo2') ;
  878. vertytab Bfimp 'qo2' 'LISTREEL' ;
  879. Sinon ;
  880. Bfimp.'qo2'=prog nds*0. ;
  881. Finsi ;
  882.  
  883. Si(Exist Bfimp 'qn2') ;
  884. vertytab Bfimp 'qn2' 'LISTREEL' ;
  885. Sinon ;
  886. Bfimp.'qn2'=prog nds*0. ;
  887. Finsi ;
  888.  
  889. Si(Exist Bfimp 'qco') ;
  890. vertytab Bfimp 'qco' 'LISTREEL' ;
  891. Sinon ;
  892. Bfimp.'qco'=prog nds*0. ;
  893. Finsi ;
  894.  
  895. Si(Exist Bfimp 'qco2') ;
  896. vertytab Bfimp 'qco2' 'LISTREEL' ;
  897. Sinon ;
  898. Bfimp.'qco2'=prog nds*0. ;
  899. Finsi ;
  900.  
  901. * Petites initialisations
  902. Bfimp.'Kqt' =chai 'Kqt' &BBTIMP ;
  903. Bfimp.'Kqeau'=chai 'Kqeau' &BBTIMP ;
  904. Bfimp.'Kqair'=chai 'Kqair' &BBTIMP ;
  905. Bfimp.'Kqhe' =chai 'Kqhe' &BBTIMP ;
  906. Bfimp.'Kqh2' =chai 'Kqh2' &BBTIMP ;
  907. Bfimp.'Kqo2' =chai 'Kqo2' &BBTIMP ;
  908. Bfimp.'Kqn2' =chai 'Kqn2' &BBTIMP ;
  909. Bfimp.'Kqco' =chai 'Kqco' &BBTIMP ;
  910. Bfimp.'Kqco2'=chai 'Kqco2' &BBTIMP ;
  911. Bfimp.'KFL1'=chai 'KFL1' &BBTIMP ;
  912. FIN BBFIMP ;
  913. TBT.'XFIMP' = rxt.'XFIMP' ;
  914. Finsi ;
  915. * XFIMP 1 : Flux de masse imposés
  916.  
  917. *----------------------------------------------------------
  918. * vtp : thermique paroi
  919. *
  920.  
  921. TBT.'THERMP' = FAUX ;
  922. TBT.'THERCO' = FAUX ;
  923. TBT.'ECHEXT' = FAUX ;
  924.  
  925. Si (Exist rxt 'THERMP') ;
  926. vertytab rxt 'THERMP' 'LOGIQUE' ;
  927. TBT.'THERMP' = rxt.'THERMP' ;
  928. Finsi ;
  929.  
  930. Si (Exist rxt 'THERCO') ;
  931. vertytab rxt 'THERCO' 'LOGIQUE' ;
  932. TBT.'THERCO' = rxt.'THERCO' ;
  933. Si (TBT.'THERCO') ;
  934. TBT.'THERMP' = VRAI ;
  935. listand=listand et (MOTS 'THCO') ;
  936. Finsi ;
  937. Finsi ;
  938.  
  939. *---------------------------------------------------------
  940. * Cas d'un nombre quelconque de parois
  941. TBT.'TPAROIS' = FAUX ;
  942. Si ('EXIST' rxt 'PAROIS') ;
  943.  
  944. vertytab rxt 'PAROIS' 'TABLE' ;
  945. vertytab rxt 'ECHAN' 'FLOTTANT' 'CHPOINT' ;
  946. NPAR=dime rxt.'PAROIS' ;
  947. mess ' Il y a ' NPAR ' Parois(s)' ;
  948. ipr=index (rxt.'PAROIS') ;
  949. Mvtp= vide 'MAILLAGE' ;
  950. Repeter BPRS NPAR ;
  951. Parois=rxt.'PAROIS'.(ipr.&BPRS) ;
  952. vertytab (rxt.'PAROIS') (ipr.&BPRS) 'TABLE' ;
  953. mess ' Vérification Paroi ' (ipr.&BPRS) ;
  954. * On vérifie que le modèle est bien renseigné
  955. vertytab Parois 'vtp' 'MAILLAGE' ;
  956. Mvtp = Mvtp et Parois.'vtp' ;
  957. vertytab Parois 'ROCP' 'FLOTTANT' 'CHPOINT' ;
  958. vertytab Parois 'LAMBDA' 'FLOTTANT' 'CHPOINT' ;
  959. vertytab Parois 'Tp0' 'FLOTTANT' 'CHPOINT' ;
  960. *? vertytab Parois 'ECHAN' 'FLOTTANT' 'CHPOINT' ;
  961. CROCP=chai 'ROCP' &BPRS ;
  962. CLAMBDA=chai 'LAMBDA' &BPRS ;
  963. CTP0=chai 'Tp0' &BPRS ;
  964. 'SI' ('NON' ('EXIST' tic CROCP)) ;
  965. tic.CROCP=Parois.'ROCP' ;
  966. 'FINSI' ;
  967. 'SI' ('NON' ('EXIST' tic CLAMBDA)) ;
  968. tic.CLAMBDA=Parois.'LAMBDA' ;
  969. 'FINSI' ;
  970. 'SI' ('NON' ('EXIST' tic CTp0)) ;
  971. tic.CTp0 =Parois.'Tp0' ;
  972. 'FINSI' ;
  973. FIN BPRS ;
  974. vertytab 1 GEO Mvtp ;
  975. GEO.'Mvtp'=chan 'QUAF' Mvtp ;
  976. ELIM GEO.'Mvtp' rxt.'epsi' ;
  977. ELIM GEO.'Mvtf' GEO.'Mvtp' rxt.'epsi' ;
  978. TBT.'PAROIS' = rxt.'PAROIS' ;
  979. TBT.'THERMP' = VRAI ;
  980. TBT.'TPAROIS' = VRAI ;
  981. Finsi ;
  982. *---------------------------------------------------------
  983. Si (TBT.'THERMP') ;
  984. Si (NON(TBT.'TPAROIS')) ;
  985.  
  986. * On vérifie que le modèle est bien renseigné
  987. vertytab rxt 'vtp' 'MAILLAGE' ;
  988. vertytab 1 GEO (rxt.'vtp') ;
  989. GEO.'Mvtp'=chan 'QUAF' rxt.'vtp' ;
  990. ELIM GEO.'Mvtf' GEO.'Mvtp' rxt.'epsi' ;
  991. vertytab rxt 'ROCP' 'FLOTTANT' 'CHPOINT' ;
  992. vertytab rxt 'LAMBDA' 'FLOTTANT' 'CHPOINT' ;
  993. vertytab rxt 'Tp0' 'FLOTTANT' 'CHPOINT' ;
  994. vertytab rxt 'ECHAN' 'FLOTTANT' 'CHPOINT' ;
  995.  
  996. listchp=listchp et (MOTS 'ROCP') ;
  997. listchp=listchp et (MOTS 'LAMBDA') ;
  998. listchp=listchp et (MOTS 'Tp0' ) ;
  999. listchp=listchp et (MOTS 'ECHAN' ) ;
  1000.  
  1001. 'SI' ('NON' ('EXIST' tic 'ROCP')) ;
  1002. tic.'ROCP'=rxt.'ROCP' ;
  1003. 'FINSI' ;
  1004. 'SI' ('NON' ('EXIST' tic 'LAMBDA')) ;
  1005. tic.'LAMBDA'=rxt.'LAMBDA' ;
  1006. 'FINSI' ;
  1007. 'SI' ('NON' ('EXIST' tic 'Tp0')) ;
  1008. tic.'Tp0' =rxt.'Tp0' ;
  1009. 'FINSI' ;
  1010. Finsi ;
  1011.  
  1012. Si (NON (Exist tic 'KHW')) ;
  1013. tic.'KHW' =rxt.'ECHAN' ;
  1014. Finsi ;
  1015.  
  1016. Si (Exist rxt 'ECHEXT') ;
  1017. vertytab rxt 'ECHEXT' 'LOGIQUE' ;
  1018. TBT.'ECHEXT' = rxt.'ECHEXT' ;
  1019. Finsi ;
  1020.  
  1021. Si (TBT.'ECHEXT') ;
  1022. vertytab rxt 'parext' 'MAILLAGE' ;
  1023. GEO.'Mparext'=chan 'QUAF' rxt.'parext' ;
  1024. ELIM GEO.'Mvtp' GEO.'Mparext' rxt.'epsi' ;
  1025. vertytab rxt 'HEXT' 'FLOTTANT' 'CHPOINT' ;
  1026. vertytab rxt 'TPEXT' 'FLOTTANT' 'CHPOINT' ;
  1027.  
  1028. listchp=listchp et (MOTS 'HEXT' ) ;
  1029. listchp=listchp et (MOTS 'TPEXT' ) ;
  1030.  
  1031. 'SI' ('NON' ('EXIST' tic 'HEXT')) ;
  1032. tic.'HEXT'=rxt.'HEXT' ;
  1033. 'FINSI' ;
  1034. 'SI' ('NON' ('EXIST' tic 'TPEXT')) ;
  1035. tic.'TPEXT'=rxt.'TPEXT' ;
  1036. 'FINSI' ;
  1037.  
  1038. Finsi ;
  1039.  
  1040. 'MESS' ' : ==> Scénario avec thermique paroi ' ;
  1041. Sinon ;
  1042. 'MESS' ' : ==> Scénario sans thermique paroi ' ;
  1043. Finsi ;
  1044. *----------------------------------------------------------
  1045. * TIMPi : Températures imposées
  1046. *
  1047. TBT.'TTIMP' = FAUX ;
  1048. TBT.'TTIMP1' = FAUX ;
  1049. TBT.'TTIMP2' = FAUX ;
  1050. TBT.'TTIMP3' = FAUX ;
  1051. Si (Exist rxt 'TIMP') ;
  1052. TBT.'TTIMP' = VRAI ;
  1053. vertytab rxt 'TIMP' 'TABLE' ;
  1054. NBTIMP=dime (rxt.'TIMP') ;
  1055. itimp=INDEX (rxt.'TIMP') ;
  1056. REPETER BBTIMP NBTIMP ;
  1057. * mess 'BBTIMP 1 ';
  1058. mess ' Vérification TIMP->'(itimp.&BBTIMP) ;
  1059. Btimp=rxt.'TIMP'.(itimp.&BBTIMP) ;
  1060. vertytab (rxt.'TIMP') (itimp.&BBTIMP) 'TABLE' ;
  1061. vertytab Btimp 'MAILLAGE' 'MAILLAGE' ;
  1062. vertytab Btimp 'ECHAN' 'FLOTTANT' ;
  1063. vertytab Btimp 't' 'LISTREEL' ;
  1064. vertytab Btimp 'TIMP' 'LISTREEL' ;
  1065. * Petites initialisations
  1066. Btimp.'KKC1'=chai 'KKC1' &BBTIMP ;
  1067. Btimp.'ROVI1'=chai 'ROVI1' &BBTIMP ;
  1068. Btimp.'FHP1'=chai 'FHP1' &BBTIMP ;
  1069. Btimp.'KH1'=chai 'KH1' &BBTIMP ;
  1070. Btimp.'Fcond1'=chai 'Fcond1' &BBTIMP ;
  1071. Btimp.'Mcond1'=chai 'Mcond1' &BBTIMP ;
  1072. Btimp.'TPI1'=chai 'TPI1' &BBTIMP ;
  1073. Btimp.'TBP1'=chai 'TBP1' &BBTIMP ;
  1074. Btimp.'KHE1'=chai 'KHE1' &BBTIMP ;
  1075. Btimp.'Ltbpi'=prog ;
  1076. Btimp.'Qc1'=chai 'Qc1' &BBTIMP ;
  1077. FIN BBTIMP ;
  1078. TBT.'TIMP' = rxt.'TIMP' ;
  1079. Finsi ;
  1080.  
  1081. Si (Exist rxt 'TIMP1') ;
  1082. TBT.'TTIMP1' = VRAI ;
  1083. vertytab rxt 'TIMP1' 'TABLE' ;
  1084. vertytab (rxt.'TIMP1') 'MAILLAGE' 'MAILLAGE' ;
  1085. vertytab (rxt.'TIMP1') 'ECHAN' 'FLOTTANT' ;
  1086. vertytab (rxt.'TIMP1') 't' 'LISTREEL' ;
  1087. vertytab (rxt.'TIMP1') 'TIMP' 'LISTREEL' ;
  1088. Finsi ;
  1089.  
  1090. Si (Exist rxt 'TIMP2') ;
  1091. TBT.'TTIMP2' = VRAI ;
  1092. vertytab rxt 'TIMP2' 'TABLE' ;
  1093. vertytab (rxt.'TIMP2') 'MAILLAGE' 'MAILLAGE' ;
  1094. vertytab (rxt.'TIMP2') 'ECHAN' 'FLOTTANT' ;
  1095. vertytab (rxt.'TIMP2') 't' 'LISTREEL' ;
  1096. vertytab (rxt.'TIMP2') 'TIMP' 'LISTREEL' ;
  1097. Finsi ;
  1098.  
  1099. Si (Exist rxt 'TIMP3') ;
  1100. TBT.'TTIMP3' = VRAI ;
  1101. vertytab rxt 'TIMP3' 'TABLE' ;
  1102. vertytab (rxt.'TIMP3') 'MAILLAGE' 'MAILLAGE' ;
  1103. vertytab (rxt.'TIMP3') 'ECHAN' 'FLOTTANT' 'CHPOIN' ;
  1104. vertytab (rxt.'TIMP3') 't' 'LISTREEL' ;
  1105. vertytab (rxt.'TIMP3') 'TIMP' 'LISTREEL' ;
  1106. Finsi ;
  1107.  
  1108. *----------------------------------------------------------
  1109. * ECHANP : Température du mur constante ou calculée via une procédure
  1110. * personnelle
  1111. TBT.'TECHANP' = FAUX ;
  1112. Si (Exist rxt 'ECHANP') ;
  1113. TBT.'TECHANP' = VRAI ;
  1114. vertytab rxt 'ECHANP' 'TABLE' ;
  1115. vertytab (rxt.'ECHANP') 'MAILLAGE' 'MAILLAGE' ;
  1116. vertytab (rxt.'ECHANP') 'ECHAN' 'FLOTTANT' ;
  1117. vertytab (rxt.'ECHANP') 'TMUR' 'FLOTTANT' ;
  1118. Finsi ;
  1119. *
  1120. * On verifie les données de la table RECOMB (définitions des recombineurs)
  1121. TBT . 'TRECOMB' = FAUX ;
  1122. 'SI' ('EXIS' rxt 'RECOMB') ;
  1123. vertytab rxt 'RECOMB' 'TABLE ' ;
  1124. NBREC = 'DIME' rxt . 'RECOMB' ;
  1125. 'REPE' BCL1 NBREC ;
  1126. TRECI = rxt . 'RECOMB' . &BCL1 ;
  1127. lxt = table ;
  1128. lxt . 'PAREXT' = ' ' ;
  1129. lxt . 'ENTREE' = ' ' ;
  1130. lxt . 'SORTIE' = ' ' ;
  1131. lxt . 'direntr' = ' ' ;
  1132. lxt . 'dirsort' = ' ' ;
  1133. lxt . 'NSECTION' = ' ' ;
  1134. lxt . 'TYPR' = ' ' ;
  1135. vertytab TRECI 'PAREXT' 'MAILLAGE' ;
  1136. vertytab TRECI 'ENTREE' 'MAILLAGE' ;
  1137. vertytab TRECI 'SORTIE' 'MAILLAGE' ;
  1138. vertytab TRECI 'direntr' 'POINT ' ;
  1139. vertytab TRECI 'dirsort' 'POINT ' ;
  1140. 'SI' ('EXIS' TRECI 'NSECTION') ;
  1141. vertytab TRECI 'NSECTION' 'ENTIER ' ;
  1142. 'SINO' ;
  1143. TRECI . 'NSECTION' = 1 ;
  1144. 'FINSI' ;
  1145. 'SI' ('EXIS' TRECI 'TYPR') ;
  1146. vertytab TRECI 'TYPR' 'MOT' ;
  1147. lm1 = 'MOTS' 'SIEMENS' 'HEATER' ;
  1148. vertytab lm1 (TRECI . 'TYPR') 'MOT' ;
  1149. 'SINO' ;
  1150. TRECI . 'TYPR' = 'SIEMENS' ;
  1151. 'FINSI' ;
  1152. typr = TRECI . 'TYPR' ;
  1153. 'SI' ('EGA' typr 'SIEMENS') ;
  1154. lxt . 'A' = ' ' ;
  1155. lxt . 'B' = ' ' ;
  1156. lxt . 'XH2ON' = ' ' ;
  1157. lxt . 'XH2OFF' = ' ' ;
  1158. lxt . 'BETA' = ' ' ;
  1159. 'SI' ('EXIS' TRECI 'A') ;
  1160. vertytab TRECI 'A' 'FLOTTANT' ;
  1161. 'SINO' ;
  1162. TRECI . 'A' = 0.48D-8 ;
  1163. 'FINSI' ;
  1164. 'SI' ('EXIS' TRECI 'B') ;
  1165. vertytab TRECI 'B' 'FLOTTANT' ;
  1166. 'SINO' ;
  1167. TRECI . 'B' = 0.58D-3 ;
  1168. 'FINSI' ;
  1169. 'SI' ('EXIS' TRECI 'XH2ON') ;
  1170. vertytab TRECI 'XH2ON' 'FLOTTANT' ;
  1171. 'SINO' ;
  1172. TRECI . 'XH2ON' = 0.005D0 ;
  1173. 'FINSI' ;
  1174. 'SI' ('EXIS' TRECI 'XH2OFF') ;
  1175. vertytab TRECI 'XH2OFF' 'FLOTTANT' ;
  1176. 'SINO' ;
  1177. TRECI . 'XH2OFF' = 0.005D0 ;
  1178. 'FINSI' ;
  1179. 'SI' ('EXIS' TRECI 'BETA') ;
  1180. vertytab TRECI 'BETA' 'FLOTTANT' ;
  1181. 'SINO' ;
  1182. TRECI . 'BETA' = 0.2D0 ;
  1183. 'FINSI' ;
  1184. 'SINO' ;
  1185. lxt . 'PUISSANCE' = ' ' ;
  1186. lxt . 'QHOUSING' = ' ' ;
  1187. lxt . 'HRAPP' = ' ' ;
  1188. lxt . 'CRAPP' = ' ' ;
  1189. vertytab TRECI 'PUISSANCE' 'EVOLUTIO' ;
  1190. 'SI' ('EXIS' TRECI 'QHOUSING') ;
  1191. vertytab TRECI 'QHOUSING' 'FLOTTANT' ;
  1192. 'SINO' ;
  1193. TRECI . 'QHOUSING' = 0.1D0 ;
  1194. 'FINSI' ;
  1195. 'SI' ('EXIS' TRECI 'HRAPP') ;
  1196. vertytab TRECI 'HRAPP' 'FLOTTANT' ;
  1197. 'SINO' ;
  1198. TRECI . 'HRAPP' = 1.7D0 ;
  1199. 'FINSI' ;
  1200. 'SI' ('EXIS' TRECI 'CRAPP') ;
  1201. vertytab TRECI 'CRAPP' 'FLOTTANT' ;
  1202. 'SINO' ;
  1203. TRECI . 'CRAPP' = 136.0868234D0 ;
  1204. 'FINSI' ;
  1205. 'FINSI' ;
  1206. indtrec = 'INDE' treci ;
  1207. nind = 'DIME' indtrec ;
  1208. * 'LIST' indtrec ;
  1209. * 'LIST' lxt ;
  1210. 'REPE' bouind nind ;
  1211. 'SI' ('NON' ('EXIS' lxt ('MOT' indtrec . &bouind))) ;
  1212. Mess '**************************************************************';
  1213. Mess ' Il y a un indice non reconnu : ' (indtrec . &bouind)
  1214. ' dans la table RECOMB . ' &bcl1 ;
  1215. Mess '**************************************************************';
  1216. 'ERRE' 21 ;
  1217. 'FINSI' ;
  1218. 'FIN' bouind ;
  1219. 'FIN' BCL1 ;
  1220. TBT . 'TRECOMB' = VRAI ;
  1221. TBT . 'RECOMB' = rxt . 'RECOMB' ;
  1222. 'FINSI' ;
  1223. *----------------------------------------------------------
  1224. * MODTURB = Mot identifiant le modèle de turbulence
  1225. * NUTURB ou LMEL ou KEPSILON ou NUTCONS
  1226.  
  1227. Si (Exist rxt 'MODTURB') ;
  1228.  
  1229. vertytab rxt 'MODTURB' 'MOT' ;
  1230. TBT.'MODTURB'=rxt.'MODTURB' ;
  1231.  
  1232. * On vérifie que le modèle est bien identifié
  1233. lxt=table ;
  1234. lxt.'NUTURB' = ' ' ;
  1235. lxt.'LMEL' = ' ' ;
  1236. lxt.'KEPSILON' = ' ' ;
  1237. vertytab lxt rxt.'MODTURB' 'MOT' ;
  1238.  
  1239. * Nu turbulent constant
  1240. Si(Ega rxt.'MODTURB' 'NUTURB') ;
  1241. * listentr=listentr et (mots 'NUT') ;
  1242. listentr.'NUT' ='' ;
  1243. vertytab rxt 'NUT' 'FLOTTANT' ;
  1244. TBT.'NUT' = rxt.'NUT' ;
  1245. Finsi ;
  1246.  
  1247. * Longueur de mélange
  1248. Si(Ega rxt.'MODTURB' 'LMEL' ) ;
  1249. * listentr=listentr et (mots 'LMEL') ;
  1250. listentr.'LMEL' ='' ;
  1251. vertytab rxt 'LMEL' 'FLOTTANT' ;
  1252. TBT.'LMEL' = rxt.'LMEL' ;
  1253. Finsi ;
  1254.  
  1255. 'MESS' ' : ==> Scenario avec modèle de turbulence '
  1256. rxt.'MODTURB' ;
  1257. Sinon ;
  1258. 'MESS' ' : ==> Scenario sans modèle de turbulence ';
  1259. Finsi ;
  1260. *----------------------------------------------------------
  1261. * FPAROI = logique identifiant l'utilisation de fonctions
  1262. * de paroi
  1263.  
  1264. TBT.'FPAROI' = FAUX ;
  1265. 'SI' ('EXIST' rxt 'FPAROI') ;
  1266. vertytab rxt 'FPAROI' 'LOGIQUE' ;
  1267. TBT.'FPAROI' = rxt.'FPAROI' ;
  1268. 'FINSI' ;
  1269.  
  1270. 'SI' TBT.'FPAROI' ;
  1271. 'MESS' ' : ==> Scenario avec fonction de paroi ';
  1272. * listentr=listentr et (mots 'YP') ;
  1273. listentr.'YP' ='' ;
  1274. vertytab rxt 'YP' 'FLOTTANT' ;
  1275. TBT.'YP'=rxt.'YP' ;
  1276. 'FINSI' ;
  1277.  
  1278. *----------------------------------------------------------
  1279. * MODCOND = mot identifiant la formulation du flux de
  1280. * condensation
  1281. TBT.'MODCOND' = 'CHIL0' ;
  1282. 'SI' ('EXIST' rxt 'MODCOND') ;
  1283. vertytab rxt 'MODCOND' 'MOT' ;
  1284. TBT.'MODCOND' = rxt.'MODCOND' ;
  1285.  
  1286. * On vérifie que le modèle est bien identifié
  1287. lxt=table ;
  1288. lxt.'CHIL0' = ' ' ;
  1289. lxt.'CHIL1' = ' ' ;
  1290. vertytab lxt rxt.'MODCOND' 'MOT' ;
  1291.  
  1292. 'FINSI' ;
  1293. 'MESS' ' : ==> Scénario avec flux de condensation '
  1294. TBT.'MODCOND' ;
  1295. *----------------------------------------------------------
  1296. * PERSO = logique identifiant une procédure PERSO
  1297. * dans le cas de calcul
  1298.  
  1299. TBT.'PERSO' = FAUX ;
  1300. 'SI' ('EXIST' rxt 'PERSO') ;
  1301. vertytab rxt 'PERSO' 'LOGIQUE' ;
  1302. TBT.'PERSO' = rxt.'PERSO' ;
  1303. 'FINSI' ;
  1304.  
  1305. 'SI' TBT.'PERSO' ;
  1306. 'MESS' ' : ==> Scénario avec exécution d une ' ;
  1307. 'MESS' ' procédure personnelle ' ;
  1308.  
  1309. * listentr = listentr et (mots 'PRCPERSO' 'TABPERSO') ;
  1310. listentr.'PRCPERSO' ='' ;
  1311.  
  1312. vertytab rxt 'PRCPERSO' 'MOT' ;
  1313. TBT.'PRCPERSO' = rxt.'PRCPERSO' ;
  1314. 'FINSI' ;
  1315.  
  1316. *----------------------------------------------------------
  1317. * TABPERSO = table personnelle ;
  1318. 'SI' ('EXIST' rxt 'TABPERSO') ;
  1319. vertytab rxt 'TABPERSO' 'TABLE' ;
  1320. TBT.'TABPERSO' = rxt.'TABPERSO' ;
  1321. 'FINSI' ;
  1322.  
  1323. *----------------------------------------------------------
  1324. * VAPEUR = logique identifiant l'utilisation de vapeur
  1325. * dans le cas de calcul
  1326.  
  1327. TBT.'VAPEUR' = FAUX ;
  1328. 'SI' ('EXIST' rxt 'VAPEUR') ;
  1329. vertytab rxt 'VAPEUR' 'LOGIQUE' ;
  1330. TBT.'VAPEUR' = rxt.'VAPEUR' ;
  1331. 'FINSI' ;
  1332.  
  1333. 'SI' TBT.'VAPEUR' ;
  1334. vertytab rxt 'Yvap0' 'FLOTTANT' ;
  1335. listentr.'Yvap0' ='' ;
  1336. listentr.'Mliq0' ='' ;
  1337. listentr.'Lv' ='' ;
  1338. listentr.'Cpvap' ='' ;
  1339. 'FINSI' ;
  1340.  
  1341. *-----------------------------------------------------------
  1342. * Modif. FP 18/05/00
  1343. * Introduction d'une nouvelle variable logique qui est vrai lorsque la
  1344. * condensation en masse est prise en compte.
  1345.  
  1346. * CONDMAS = Mot identifiant le modèle de condensation en masse
  1347. * CMAS0
  1348.  
  1349. TBT.'CONDMAS' = FAUX ;
  1350. TBT.'MODCMAS' ='????' ;
  1351. listentr.'CONDMAS' ='' ;
  1352. listentr.'HMAS' ='' ;
  1353. listentr.'WCM' ='' ;
  1354. *'SI' ('EXIST' rxt 'CONDMAS') ;
  1355. * vertytab rxt 'CONDMAS' 'MOT' ;
  1356. * TBT.'CONDMAS' = VRAI ;
  1357. ** On vérifie que le modèle est bien identifié
  1358. * lxt=table ;
  1359. * lxt.'CMAS0' = ' ' ;
  1360. * vertytab lxt rxt.'CONDMAS' 'MOT' ;
  1361. * TBT.'MODCMAS' = rxt.'CONDMAS' ;
  1362. * Si ('EGA' rxt.'CONDMAS' 'CMAS0') ;
  1363. * Si ('EXIST' rxt 'HMAS') ;
  1364. * vertytab rxt 'HMAS' 'FLOTTANT' ;
  1365. * TBT.'HMAS'=rxt.'HMAS' ;
  1366. * Sinon ;
  1367. * TBT.'HMAS'=0. ;
  1368. * Finsi ;
  1369. * Si ('EXIST' rxt 'WCM') ;
  1370. * vertytab rxt 'WCM' 'FLOTTANT' ;
  1371. * TBT.'WCM'=rxt.'WCM' ;
  1372. * Sinon ;
  1373. * TBT.'WCM'=0. ;
  1374. * Finsi ;
  1375. * Finsi ;
  1376. *'FINSI' ;
  1377. *-----------------------------------------------------------
  1378. * ASPER logique indiquant qu'on traite l'aspersion
  1379.  
  1380. 'SI' TBT.'VAPEUR' ;
  1381. listentr.'ASPER' ='' ;
  1382. 'FINSI' ;
  1383.  
  1384. TBT.'ASPER' = FAUX ;
  1385. 'SI' ('EXIST' rxt 'ASPER') ;
  1386. vertytab rxt 'ASPER' 'LOGIQUE' ;
  1387. TBT.'ASPER' = rxt.'ASPER' ;
  1388. 'FINSI' ;
  1389.  
  1390. 'SI' (TBT.'ASPER') ;
  1391. listentr.'scenasp' ='' ;
  1392. vertytab rxt 'scenasp' 'TABLE ' ;
  1393. scn = rxt.'scenasp' ;
  1394.  
  1395. vertytab rxt 'aspinj' 'MAILLAGE' ;
  1396. listentr.'aspinj' ='' ;
  1397. vertytab rxt 'toitf' 'MAILLAGE' ;
  1398. listentr.'toitf' ='' ;
  1399. vertytab rxt 'rod' 'FLOTTANT' ;
  1400. listentr.'rod' ='' ;
  1401. vertytab rxt 'Cpd' 'FLOTTANT' ;
  1402. listentr.'Cpd' ='' ;
  1403. 'FINSI' ;
  1404.  
  1405. *----------------------------------------------------------
  1406. * Vérification des incondensables utilisés
  1407. * Les incondensables possibles sont H2, HE, O2, N2, CO, CO2
  1408. *
  1409. *---------------------------------------------------------
  1410. LINCOND = 'MOTS' ;
  1411. TBT.'TH2' = FAUX ;
  1412. TBT.'THE' = FAUX ;
  1413. TBT.'TO2' = FAUX ;
  1414. TBT.'TN2' = FAUX ;
  1415. TBT.'TCO2'= FAUX ;
  1416. TBT.'TAIR'= FAUX ;
  1417. TBT.'TCO' = FAUX ;
  1418.  
  1419. 'SI' ('EXIST' rxt 'H2' ) ;
  1420. vertytab rxt 'H2' 'LOGIQUE' ;
  1421. TBT.'TH2' = rxt.'H2' ;
  1422. 'SI' TBT.'TH2' ;
  1423. LINCOND=LINCOND 'ET' ('MOTS' 'H2') ;
  1424. vertytab rxt 'Yh20' 'FLOTTANT' ;
  1425. listentr.'Yh20' ='' ;
  1426. 'SI' ('EXIST' rxt 'scenario') ;
  1427. vertytab (rxt.'scenario') 'qh2' 'LISTREEL' ;
  1428. 'FINSI' ;
  1429. 'FINSI' ;
  1430. 'FINSI' ;
  1431.  
  1432. 'SI' ('EXIST' rxt 'HE' ) ;
  1433. vertytab rxt 'HE' 'LOGIQUE' ;
  1434. TBT.'THE' = rxt.'HE' ;
  1435. 'SI' TBT.'THE' ;
  1436. LINCOND=LINCOND 'ET' ('MOTS' 'HE') ;
  1437. vertytab rxt 'Yhe0' 'FLOTTANT' ;
  1438. listentr.'Yhe0' ='' ;
  1439. 'SI' ('EXIST' rxt 'scenario') ;
  1440. vertytab (rxt.'scenario') 'qhe' 'LISTREEL' ;
  1441. 'FINSI' ;
  1442. 'FINSI' ;
  1443. 'FINSI' ;
  1444.  
  1445. 'SI' ('EXIST' rxt 'O2' ) ;
  1446. vertytab rxt 'O2' 'LOGIQUE' ;
  1447. TBT.'TO2' = rxt.'O2' ;
  1448. 'SI' TBT.'TO2' ;
  1449. LINCOND=LINCOND 'ET' ('MOTS' 'O2') ;
  1450. vertytab rxt 'Yo20' 'FLOTTANT' ;
  1451. listentr.'Yo20' ='' ;
  1452. 'SI' ('EXIST' rxt 'scenario') ;
  1453. vertytab (rxt.'scenario') 'qo2' 'LISTREEL' ;
  1454. 'FINSI' ;
  1455. 'FINSI' ;
  1456. 'FINSI' ;
  1457.  
  1458. 'SI' ('EXIST' rxt 'N2' ) ;
  1459. vertytab rxt 'N2' 'LOGIQUE' ;
  1460. TBT.'TN2' = rxt.'N2' ;
  1461. 'SI' TBT.'TN2' ;
  1462. LINCOND=LINCOND 'ET' ('MOTS' 'N2') ;
  1463. vertytab rxt 'Yn20' 'FLOTTANT' ;
  1464. listentr.'Yn20' ='' ;
  1465. 'SI' ('EXIST' rxt 'scenario') ;
  1466. vertytab (rxt.'scenario') 'qn2' 'LISTREEL' ;
  1467. 'FINSI' ;
  1468. 'FINSI' ;
  1469. 'FINSI' ;
  1470.  
  1471. 'SI' ('EXIST' rxt 'CO2' ) ;
  1472. vertytab rxt 'CO2' 'LOGIQUE' ;
  1473. TBT.'TCO2' = rxt.'CO2' ;
  1474. 'SI' TBT.'TCO2' ;
  1475. LINCOND=LINCOND 'ET' ('MOTS' 'CO2') ;
  1476. vertytab rxt 'Yco20' 'FLOTTANT' ;
  1477. listentr.'Yco20' ='' ;
  1478. 'SI' ('EXIST' rxt 'scenario') ;
  1479. vertytab (rxt.'scenario') 'qco2' 'LISTREEL' ;
  1480. 'FINSI' ;
  1481. 'FINSI' ;
  1482. 'FINSI' ;
  1483.  
  1484. 'SI' ('EXIST' rxt 'AIR' ) ;
  1485. vertytab rxt 'AIR' 'LOGIQUE' ;
  1486. TBT.'TAIR' = rxt.'AIR' ;
  1487. 'SI' TBT.'TAIR' ;
  1488. LINCOND=LINCOND 'ET' ('MOTS' 'AIR') ;
  1489. 'SI' ('EXIST' rxt 'scenario') ;
  1490. vertytab (rxt.'scenario') 'qair' 'LISTREEL' ;
  1491. 'FINSI' ;
  1492. 'FINSI' ;
  1493. 'FINSI' ;
  1494.  
  1495. 'SI' ('EXIST' rxt 'CO' ) ;
  1496. vertytab rxt 'CO' 'LOGIQUE' ;
  1497. TBT.'TCO' = rxt.'CO' ;
  1498. 'SI' TBT.'TCO' ;
  1499. LINCOND=LINCOND 'ET' ('MOTS' 'CO') ;
  1500. vertytab rxt 'Yco0' 'FLOTTANT' ;
  1501. listentr.'Yco0' ='' ;
  1502. 'SI' ('EXIST' rxt 'scenario') ;
  1503. vertytab (rxt.'scenario') 'qco' 'LISTREEL' ;
  1504. 'FINSI' ;
  1505. 'FINSI' ;
  1506. 'FINSI' ;
  1507.  
  1508. *---------------------------------------------------------
  1509. * Affichage de la liste des incondensables
  1510. *---------------------------------------------------------
  1511.  
  1512. TINCOND= 'NON' ( 'EGA' ('DIME' LINCOND ) 0 ) ;
  1513. 'SI' TINCOND ;
  1514. 'MESS' ' Liste des incondensables : ' ;
  1515. 'LIST' LINCOND ;
  1516. 'SINON' ;
  1517. 'MESS' ' Il n y a pas d incondensable hormis AIR ' ;
  1518. 'FINSI' ;
  1519. *
  1520. 'SI' TBT.'TRECOMB' ;
  1521. LOG0 = TBT.'TH2' 'ET' TBT.'VAPEUR' 'ET' TBT.'TN2' 'ET' TBT.'TO2' ;
  1522. NBREC = 'DIME' rxt . 'RECOMB' ;
  1523. 'REPE' BCL2 NBREC ;
  1524. TRECI = rxt . 'RECOMB' . &BCL2 ;
  1525. 'SI' ('EGA' (TRECI . 'TYPR') 'SIEMENS') ;
  1526. 'SI' ('NON' LOG0) ;
  1527. 'MESS' 'RECOMBINEUR ==> H2, H20, O2 et N2 par defaut !' ;
  1528. 'ERRE' 5 ;
  1529. 'FINSI' ;
  1530. 'QUIT' BCL2 ;
  1531. 'FINSI' ;
  1532. 'FIN' BCL2 ;
  1533. 'FINSI' ;
  1534. *---------------------------------------------------------
  1535. * Initialisation des paramètres du modèle
  1536. * nimpr = Niveau impression lors de la résolution
  1537. * 0 = Pas d'impression
  1538. * epsi = tolérance pour les maillages (OPERATEUR ELIM)
  1539. * FRPREC : ENTIER fréquence de recalcul du préconditionnement
  1540. *---------------------------------------------------------
  1541.  
  1542. TBT.'nimpr'=0 ;
  1543. TBT.'IMPR' =2 ;
  1544. 'SI' ('EXIST' rxt 'IMPR' ) ;
  1545. vertytab rxt 'IMPR' 'ENTIER' ;
  1546. TBT.'IMPR' =rxt.'IMPR' ;
  1547. 'FINSI' ;
  1548.  
  1549. 'SI' ( 'EXIST' rxt 'FRPREC' ) ;
  1550. vertytab rxt 'FRPREC' 'ENTIER' ;
  1551. TBT.'FRPREC' = rxt.'FRPREC' ;
  1552. 'FINSI' ;
  1553. *-----------------------------------------------------------------------
  1554. * Controle des entrées de la table RXT et de la compatibilité
  1555. * entre les entrées.
  1556. *-----------------------------------------------------------------------
  1557. * On vérifie que les entrées de RXT sont autorisées
  1558.  
  1559.  
  1560. lindex=index rxt ;
  1561. n=dime lindex;
  1562.  
  1563. repeter Bver n ;
  1564. *mess lindex.&bver ;
  1565. tae=type lindex.&bver ;
  1566. Si (non (ega tae 'MOT'));
  1567. Mess ' Il y a un indice qui n est pas de type mot dans la table ';
  1568. erreur 21 ;
  1569. Finsi ;
  1570. Si (non (exist listentr lindex.&bver)) ;
  1571. Mess ;
  1572. Mess '**************************************************************';
  1573. Mess ;
  1574. Mess ' Il y a un indice non reconnu : ' lindex.&bver
  1575. ' dans la table ';
  1576. Mess ;
  1577. Mess '********************6*****************************************';
  1578.  
  1579. erreur 21 ;
  1580. Finsi ;
  1581. Fin Bver ;
  1582.  
  1583. n=dime listand ;
  1584. Si (non (ega n 0));
  1585. Mess ;
  1586. Mess ' Il y a des options surchargées dont voici la liste : ' ;
  1587. list listand ;
  1588. Si (exist listand 'THCO') ;
  1589. Mess ;
  1590. Mess 'Commentaire:' ;
  1591. mess 'THCO: le couplage thermique paroi/thermohydraulique'
  1592. ' est implicite' ;
  1593. Finsi ;
  1594. Mess ;
  1595. Finsi ;
  1596.  
  1597. * Vérification de Compatibilités
  1598.  
  1599. 'SI'(('EGA' TBT.'ALGO' 'EFM1') et ('EGA' TBT.'discr' 'QUAF')) ;
  1600. vertytab 'ERREUR' 'ERREUR'
  1601. (CHAI 'Options QUAF et EFM1 incompatibles');
  1602. 'FINSI' ;
  1603.  
  1604.  
  1605. 'SI'(Exist TBT 'MODTURB') ;
  1606. 'SI'( (Ega TBT.'MODTURB' 'KEPSILON') et (non('EGA' TBT.'ALGO' 'EFM1')));
  1607. vertytab 'ERREUR' 'ERREUR'
  1608. (CHAI 'L option EFM1 est nécessaire pour le modèle K-epsilon') ;
  1609. 'FINSI' ;
  1610. 'FINSI' ;
  1611.  
  1612. 'SI'(TBT.'Tsortie' et TBT.'CORTEMP') ;
  1613. vertytab 'ERREUR' 'ERREUR'
  1614. (CHAI 'Ecoulement ouvert (Sortie) incompatible avec CORTEMP VRAI') ;
  1615. 'FINSI' ;
  1616.  
  1617.  
  1618. mess WWW ;
  1619. mess '------------- FIN DES INITIALISATIONS ET VERIFICATIONS ---------';
  1620. mess '------------------------- DEBUT DU CALCUL ----------------------';
  1621. mess WWW ;
  1622. *-----------------------------------------------------------------------
  1623. *-----------------------------------------------------------------------
  1624. *-----------------------------------------------------------------------
  1625. * ------------- FIN DES INITIALISATIONS ET VERIFICATIONS ---------------
  1626. *-----------------------------------------------------------------------
  1627. *-----------------------------------------------------------------------
  1628. *-----------------------------------------------------------------------
  1629.  
  1630. 'SI' (TPREPA);
  1631. PREPAENC rxt TBT GEO TIC ;
  1632. 'FINSI' ;
  1633.  
  1634. rxt.'TBT'=TBT;
  1635.  
  1636. *==============================================================
  1637. GEO=rxt.'GEO' ;
  1638.  
  1639. * On depile un certain nombre de renseignements sur le
  1640. * cas test a traiter
  1641.  
  1642. idim = vale 'DIME';
  1643. DIM3D=FAUX ;
  1644. Si(EGA idim 3);
  1645. DIM3D=VRAI ;
  1646. Finsi ;
  1647.  
  1648. * B/ Les maillages ou modeles
  1649.  
  1650. **?? vtf = rxt.'vtf' ;
  1651. vtf = GEO.'vtf' ;
  1652. 'SI' (TBT.'Tbreche');
  1653. breche = rxt.'breche' ;
  1654. brechec=GEO.'brechec' ;
  1655. brechei=GEO.'brechei' ;
  1656. $breche=GEO.'$breche' ;
  1657. Sbreche = GEO.'Sbreche' ;
  1658. 'FINSI';
  1659. 'SI' (TBT.'Tbreche2');
  1660. breche2=rxt.'breche2' ;
  1661. brech2c=GEO.'brech2c' ;
  1662. brech2i=GEO.'brech2i' ;
  1663. $breche2=GEO.'$breche2' ;
  1664. Sbreche2= GEO.'Sbreche2' ;
  1665. 'FINSI';
  1666. 'SI' (TBT.'Tbreche3');
  1667. breche3=rxt.'breche3' ;
  1668. brech3c=GEO.'brech3c' ;
  1669. brech3i=GEO.'brech3i' ;
  1670. $breche3=GEO.'$breche3' ;
  1671. Sbreche3= GEO.'Sbreche3' ;
  1672. 'FINSI';
  1673.  
  1674. $vtf = GEO.'$vtf' ;
  1675. 'SI' TBT.'THERMP' ;
  1676. $vtp = GEO.'$vtp' ;
  1677. $paroif = GEO.'$paroif' ;
  1678. paroif = GEO.'paroif' ;
  1679. 'FINSI' ;
  1680.  
  1681. Diag = 'DOMA' $vtf 'XXDIAGSI' ;
  1682.  
  1683. Volvtf = 'DOMA' $vtf 'VOLUME' ;
  1684. VTotal = GEO.'VTotal' ;
  1685.  
  1686.  
  1687. 'MESS' ' ************* GEOMETRIE *********************' ;
  1688. 'MESS' ' **********************************************' ;
  1689. 'DOMA' $vtf 'IMPR' ;
  1690. 'SI' TBT.'THERMP' ;
  1691. 'DOMA' $vtp 'IMPR' ;
  1692. 'FINSI' ;
  1693.  
  1694.  
  1695. * C/ Les chaines de caracteres
  1696.  
  1697. tic = rxt.'TIC' ;
  1698.  
  1699. * D/ Les données physiques
  1700.  
  1701. Cpvap = TBT.'Cpvap' ;
  1702. Lv = TBT.'Lv' ;
  1703. Rgh2 = TBT.'Rgh2' ;
  1704. Rghe = TBT.'Rghe' ;
  1705. Rgo2 = TBT.'Rgo2' ;
  1706. Rgn2 = TBT.'Rgn2' ;
  1707. Rgco2 = TBT.'Rgco2' ;
  1708. Rgco = TBT.'Rgco' ;
  1709. Rgvap = TBT.'Rgvap' ;
  1710. Rgair = TBT.'Rgair' ;
  1711.  
  1712. 'MESS' ' ************* DISCRETISATION *****************' ;
  1713. 'MESS' ' **********************************************' ;
  1714. 'MESS' ' Discr = ' tbt.'discr' ' Pression = ' tbt.'KPRE' ;
  1715. 'MESS' ' Algo = ' algo ' Niveau impression = ' nimpr ;
  1716. 'MESS' ' Pas de temps DT = ' rxt.'DT0' ;
  1717.  
  1718. 'MESS' ' **** PROPRIETES PHYSIQUES INITIALISATIONS ****' ;
  1719. 'MESS' ' **********************************************' ;
  1720.  
  1721. ndl = 'DIME' (tic.'Tfm') ;
  1722. Tfm = 'EXTR' (tic.'Tfm') ndl ;
  1723. Tkm=Tfm '+' 273.15 ;
  1724.  
  1725. * Initialisation des propriétés physiques
  1726. * Calcul Cp (Tfm)
  1727. Cph2 Cphe Cpo2 Cpn2 Cpco2 Cpco Cpair = CALCP Tfm ;
  1728. Cpvap = TBT.'Cpvap' ;
  1729.  
  1730. * Calcul Mu (Tkm)
  1731. Muh2 Muhe Muo2 Mun2 Muco2 Muco Muvap Muair = CALMU Tkm ;
  1732.  
  1733. 'MESS' ' ***** Air ***** ' ;
  1734. Cvair = Cpair '-' Rgair ;
  1735. 'MESS' '==> Cpair = ' Cpair 'J/kg/K' ;
  1736. 'MESS' '==> Cvair = ' Cvair 'J/kg/K' ;
  1737. 'MESS' '==> Rgair = ' Rgair 'J/kg/K' ;
  1738.  
  1739. 'SI' TBT.'VAPEUR' ;
  1740. 'MESS' ' ***** Vapeur H2o ***** ' ;
  1741. Cvvap = Cpvap '-' Rgvap ;
  1742. 'MESS' '==> Cpvap = ' Cpvap 'J/kg/K' ;
  1743. 'MESS' '==> Cvvap = ' Cvvap 'J/kg/K' ;
  1744. 'MESS' '==> Rgvap = ' Rgvap 'J/kg/K' ;
  1745. 'MESS' '==> Lv = ' Lv 'J/kg/K' ;
  1746. 'FINSI' ;
  1747.  
  1748. 'SI' TBT.'THE' ;
  1749. 'MESS' ' ***** He ***** ' ;
  1750. Cvhe = Cphe '-' Rghe ;
  1751. 'MESS' '==> Cphe = ' Cphe 'J/kg/K' ;
  1752. 'MESS' '==> Cvhe = ' Cvhe 'J/kg/K' ;
  1753. 'MESS' '==> Rghe = ' Rghe 'J/kg/K' ;
  1754. 'FINSI' ;
  1755.  
  1756. 'SI' TBT.'TH2' ;
  1757. 'MESS' ' ***** H2 ***** ' ;
  1758. Cvh2 = Cph2 '-' Rgh2 ;
  1759. 'MESS' '==> Cph2 = ' Cph2 'J/kg/K' ;
  1760. 'MESS' '==> Cvh2 = ' Cvh2 'J/kg/K' ;
  1761. 'MESS' '==> Rgh2 = ' Rgh2 'J/kg/K' ;
  1762. 'FINSI' ;
  1763.  
  1764. 'SI' TBT.'TO2' ;
  1765. 'MESS' ' ***** O2 ***** ' ;
  1766. Cvo2 = Cpo2 '-' Rgo2 ;
  1767. 'MESS' '==> Cpo2 = ' Cpo2 'J/kg/K' ;
  1768. 'MESS' '==> Cvo2 = ' Cvo2 'J/kg/K' ;
  1769. 'MESS' '==> Rgo2 = ' Rgo2 'J/kg/K' ;
  1770. 'FINSI' ;
  1771.  
  1772. 'SI' TBT.'TN2' ;
  1773. 'MESS' ' ***** N2 ***** ' ;
  1774. Cvn2 = Cpn2 '-' Rgn2 ;
  1775. 'MESS' '==> Cpn2 = ' Cpn2 'J/kg/K' ;
  1776. 'MESS' '==> Cvn2 = ' Cvn2 'J/kg/K' ;
  1777. 'MESS' '==> Rgn2 = ' Rgn2 'J/kg/K' ;
  1778. 'FINSI' ;
  1779.  
  1780. 'SI' TBT.'TCO2' ;
  1781. 'MESS' ' ***** CO2 ***** ' ;
  1782. Cvco2 = Cpco2 '-' Rgco2 ;
  1783. 'MESS' '==> Cpco2 = ' Cpco2 'J/kg/K' ;
  1784. 'MESS' '==> Cvco2 = ' Cvco2 'J/kg/K' ;
  1785. 'MESS' '==> Rgco2 = ' Rgco2 'J/kg/K' ;
  1786. 'FINSI' ;
  1787.  
  1788. 'SI' TBT.'TAIR' ;
  1789. 'MESS' ' ***** AIR ***** ' ;
  1790. Cvair = Cpair '-' Rgair ;
  1791. 'MESS' '==> Cpair = ' Cpair 'J/kg/K' ;
  1792. 'MESS' '==> Cvair = ' Cvair 'J/kg/K' ;
  1793. 'MESS' '==> Rgair = ' Rgair 'J/kg/K' ;
  1794. 'FINSI' ;
  1795.  
  1796. 'SI' TBT.'TCO' ;
  1797. 'MESS' ' ***** CO ***** ' ;
  1798. Cvco = Cpco '-' Rgco ;
  1799. 'MESS' '==> Cpco = ' Cpco 'J/kg/K' ;
  1800. 'MESS' '==> Cvco = ' Cvco 'J/kg/K' ;
  1801. 'MESS' '==> Rgco = ' Rgco 'J/kg/K' ;
  1802. 'FINSI' ;
  1803.  
  1804. 'MESS' ' *************** ' ;
  1805. 'MESS' ' Diffusion browniene db = ' db ;
  1806. 'SI' TBT.'THERMP' ;
  1807. 'SI' ('EGA' ('TYPE' tic.'KHW') 'CHPOINT') ;
  1808. 'MESS' ' Coefficient d echange ECHAN (Min/Max)= '
  1809. ('MINI' tic.'KHW') ' ' ('MAXI' tic.'KHW') 'W/m2/K' ;
  1810. 'SINON' ;
  1811. 'MESS' ' Coefficient d echange ECHAN= ' tic.'KHW' 'W/m2/K' ;
  1812. 'FINSI' ;
  1813. 'FINSI' ;
  1814.  
  1815.  
  1816. *======================================================================;
  1817. 'MESS' '*** Bilans initiaux 0D-MultiD ***' ;
  1818. 'MESS' '_____________________________________________________________';
  1819. 'MESS' '---------Bilans 0D ____________________Bilans MultiD ________'
  1820. '_____________ Erreur Relative (%)';
  1821. *---- Bilan masse
  1822. Rhomn = 'EXTR' (tic.'Rhomn') ndl ;
  1823. M0D = Rhomn '*' Vtotal ;
  1824. MMD = 'SOMT' (Diag '*' rxt.'TIC'.'RHO') ;
  1825.  
  1826. 'SI' TBT.'VAPEUR' ;
  1827. Rhomv = 'EXTR' (tic.'Rhomv') ndl ;
  1828. MV0D = Rhomv '*' Vtotal ;
  1829. MVMD = 'SOMT' (Diag '*' rxt.'TIC'.'ROVP') ;
  1830. Rhomvg = 'EXTR' (tic.'Rhomvg') ndl ;
  1831. *? Rliqm = 'EXTR' (tic.'Rliqm') ndl ;
  1832. *? Rbrom = 'EXTR' (tic.'Rbrom') ndl ;
  1833. MVG0D = Rhomvg '*' Vtotal ;
  1834. MVGMD = 'SOMT' (Diag '*' rxt.'TIC'.'RVP') ;
  1835. 'FINSI' ;
  1836. 'SI' TBT.'THE' ;
  1837. Rhomhe = 'EXTR' (tic.'Rhomhe') ndl ;
  1838. MHE0D = Rhomhe '*' Vtotal ;
  1839. MHEMD = 'SOMT' (Diag '*' rxt.'TIC'.'RHE') ;
  1840. 'FINSI' ;
  1841. 'SI' TBT.'TH2' ;
  1842. Rhomh2 = 'EXTR' (tic.'Rhomh2') ndl ;
  1843. MH20D = Rhomh2 '*' Vtotal ;
  1844. MH2MD = 'SOMT' (Diag '*' rxt.'TIC'.'RH2') ;
  1845. 'FINSI' ;
  1846. 'SI' TBT.'TO2' ;
  1847. Rhomo2 = 'EXTR' (tic.'Rhomo2') ndl ;
  1848. MO20D = Rhomo2 '*' Vtotal ;
  1849. MO2MD = 'SOMT' (Diag '*' rxt.'TIC'.'RO2') ;
  1850. 'FINSI' ;
  1851. 'SI' TBT.'TN2' ;
  1852. Rhomn2 = 'EXTR' (tic.'Rhomn2') ndl ;
  1853. MN20D = Rhomn2 '*' Vtotal ;
  1854. MN2MD = 'SOMT' (Diag '*' rxt.'TIC'.'RN2') ;
  1855. 'FINSI' ;
  1856. 'SI' TBT.'TCO' ;
  1857. Rhomco = 'EXTR' (tic.'Rhomco') ndl ;
  1858. MCO0D = Rhomco '*' Vtotal ;
  1859. MCOMD = 'SOMT' (Diag '*' rxt.'TIC'.'RCO') ;
  1860. 'FINSI' ;
  1861. 'SI' TBT.'TCO2' ;
  1862. Rhomco2 = 'EXTR' (tic.'Rhomco2') ndl ;
  1863. MCO20D = Rhomco2 '*' Vtotal ;
  1864. MCO2MD = 'SOMT' (Diag '*' rxt.'TIC'.'RCO2') ;
  1865. 'FINSI' ;
  1866. 'SI' TBT.'TAIR' ;
  1867. Rhomair = 'EXTR' (tic.'Rhomair') ndl ;
  1868. MAIR0D = Rhomair '*' Vtotal ;
  1869. MAIRMD = 'SOMT' (Diag '*' rxt.'TIC'.'RAIR') ;
  1870. 'FINSI' ;
  1871.  
  1872. *---- Bilan energie
  1873.  
  1874. Remn = 'EXTR' (tic.'Remn') ndl ;
  1875. E0D = Remn ;
  1876. 'SI' ( 'EGA' ndl 1 ) ;
  1877. Cvm = 'EXTR' (tic.'Cvm') ndl ;
  1878. 'SINON' ;
  1879. Cvm = 'EXTR' (tic.'Cvm') (ndl-1) ;
  1880. 'FINSI' ;
  1881. EMD = ( 'SOMT' (Diag '*' Cvm '*' rxt.'TIC'.'RHO' '*'
  1882. (rxt.'TIC'.'TF' '+' 273.15)) ) '/' Vtotal ;
  1883. 'MESS' ' Masse (Kg) ' M0D '_______' MMD '________'
  1884. (100. '*'(M0D '-' MMD) '/'M0D) ;
  1885. 'MESS' ' Energie (J/m3)' E0D '_______' EMD '________'
  1886. (100. '*' (E0D '-' EMD) '/' E0D) ;
  1887. 'SI' (TBT.'VAPEUR' 'ET' ('NON' ('EGA' MV0D 0.0))) ;
  1888. 'MESS' ' M Vapeur(Kg) ' MV0D '_______' MVMD '_______'
  1889. (100. '*' (MV0D '-' MVMD) '/' MV0D) ;
  1890. 'FINSI' ;
  1891. 'SI' (TBT.'THE' 'ET' ('NON' ('EGA' MHE0D 0.0))) ;
  1892. 'MESS' ' M Helium (Kg) ' MHE0D '_______' MHEMD '_______'
  1893. (100. '*' (MHE0D '-' MHEMD) '/' MHE0D) ;
  1894. 'FINSI' ;
  1895. 'SI' (TBT.'TH2' 'ET' ('NON' ('EGA' MH20D 0.0))) ;
  1896. 'MESS' ' M Hydrogene (Kg) ' MH20D '_______' MH2MD '_______'
  1897. (100. '*' (MH20D '-' MH2MD) '/' MH20D) ;
  1898. 'FINSI' ;
  1899. 'SI' (TBT.'TO2' 'ET' ('NON' ('EGA' MO20D 0.0))) ;
  1900. 'MESS' ' M Oxygene (Kg) ' MO20D '_______' MO2MD '_______'
  1901. (100. '*' (MO20D '-' MO2MD) '/' MO20D) ;
  1902. 'FINSI' ;
  1903. 'SI' (TBT.'TN2' 'ET' ('NON' ('EGA' MN20D 0.0))) ;
  1904. 'MESS' ' M Azote (Kg) ' MN20D '_______' MN2MD '_______'
  1905. (100. '*' (MN20D '-' MN2MD) '/' MN20D) ;
  1906. 'FINSI' ;
  1907. 'SI' (TBT.'TCO' 'ET' ('NON' ('EGA' MCO0D 0.0))) ;
  1908. 'MESS' ' M CO (Kg) ' MCO0D '_______' MCOMD '_______'
  1909. (100. '*' (MCO0D '-' MCOMD) '/' MCO0D) ;
  1910. 'FINSI' ;
  1911. 'SI' (TBT.'TCO2' 'ET' ('NON' ('EGA' MCO20D 0.0))) ;
  1912. 'MESS' ' M CO2 (Kg) ' MCO20D '_______' MCO2MD '_______'
  1913. (100. '*' (MCO20D '-' MCO2MD) '/' MCO20D) ;
  1914. 'FINSI' ;
  1915. 'SI' (TBT.'TAIR' 'ET' ('NON' ('EGA' MAIR0D 0.0))) ;
  1916. 'MESS' ' M AIR (Kg) ' MAIR0D '_______' MAIRMD '_______'
  1917. (100. '*' (MAIR0D '-' MAIRMD) '/' MAIR0D) ;
  1918. 'FINSI' ;
  1919. 'MESS' '_____________________________________________'
  1920. '________________' ;
  1921. 'SI' TBT.'THERMP' ;
  1922. Emurn = 'EXTR' (tic.'Emur') ndl ;
  1923. 'MESS' ' Energie Stockée Mur (J) ' Emurn ;
  1924. 'MESS' '_____________________________________________'
  1925. '________________' ;
  1926. 'FINSI' ;
  1927.  
  1928. 'MESS' ' *** Divers **** ' ;
  1929.  
  1930. 'MESS' ' Dimension espace: ' idim ;
  1931. 'MESS' ' Nombre d elements/noeuds ' ('NBEL' vtf)
  1932. ('NBNO' vtf) ;
  1933.  
  1934. 'MESS' '***********************************************' ;
  1935.  
  1936. *======================================================================;
  1937. *TABLE INCO
  1938. * Indice Objet
  1939. * Type Valeur Type Valeur
  1940. *MOT SOUSTYPE MOT INCO
  1941. *MOT LTPS LISTREEL Liste des instants
  1942. *MOT DT FLOTTANT Pas de temps
  1943. *MOT Tps FLOTTANT Temps
  1944. *MOT NUPADT ENTIER Numéro du pas de temps
  1945. *MOT DSRC FLOTTANT Terme source Bas Mach
  1946. *MOT STF FLOTTANT Terme source équation d'enthalpie
  1947. *MOT NUm FLOTTANT 0.99636704E-05
  1948. *
  1949. *MOT drho LISTREEL 2201788
  1950. *MOT MdTf LISTREEL 2200717
  1951. *MOT mdTf LISTREEL 2200703
  1952. *MOT Mdrvap LISTREEL 2210335
  1953. *MOT Mdrair LISTREEL 2201151
  1954. *MOT LMAXU LISTREEL Maximum de vitesse
  1955. *
  1956. *Grandeurs moyennes
  1957. * Températures
  1958. *MOT Tfm LISTREEL Température moyenne fluide
  1959. *MOT Tpm LISTREEL Température moyenne paroi
  1960. * Densités
  1961. *MOT Rhomn LISTREEL densité moyenne mélange
  1962. *MOT Rhomv LISTREEL densité moyenne vapeur
  1963. *MOT Rhomhe LISTREEL densité moyenne hélium
  1964. *MOT Rhomh2 LISTREEL densité moyenne hydrogène
  1965. *MOT Rhomo2 LISTREEL densité moyenne oxygène
  1966. *MOT Rhomn2 LISTREEL densité moyenne azote
  1967. *MOT Rhomco LISTREEL densité moyenne CO
  1968. *MOT Rhomco2 LISTREEL densité moyenne CO2
  1969. *MOT Rhomair LISTREEL densité moyenne air
  1970. *MOT Rhomvg LISTREEL densité moyenne vapeur + goutte
  1971. *MOT Rliqm LISTREEL 2204763
  1972. *MOT Rbrom LISTREEL 2204658
  1973. *
  1974. *MOT Remn LISTREEL densité moyenne d'énergie
  1975. *
  1976. *MOT Rgpm LISTREEL Constante gaz parfait mélange (moyen)
  1977. *MOT Cvm LISTREEL Cv mélange moyen
  1978. *MOT Gamm LISTREEL Gamma moyen
  1979. *MOT Cpm LISTREEL Cp mélange moyen
  1980. *
  1981. *MOT PT LISTREEL Pression thermodynamique
  1982. *MOT dPdt LISTREEL DP/Dt
  1983. *
  1984. *MOT Qc LISTREEL Débit condensation
  1985. *MOT Qcw LISTREEL Débit condensation parois
  1986. *MOT Qc1 LISTREEL Débit condensation TIMP1
  1987. *MOT Qc2 LISTREEL Débit condensation TIMP2
  1988. *MOT Qc3 LISTREEL Débit condensation TIMP3
  1989. *MOT Qc0 LISTREEL
  1990. *MOT Qcm LISTREEL Débit condensation en masse
  1991. *MOT Mcond LISTREEL Masse condensée (totale?)
  1992. *MOT Mcondw LISTREEL Masse condensée parois
  1993. *MOT Mcond1 LISTREEL Masse condensée TIMP1
  1994. *MOT Mcond2 LISTREEL Masse condensée TIMP2
  1995. *MOT Mcond3 LISTREEL Masse condensée TIMP3
  1996. *MOT Mcondm LISTREEL masse condensée en masse
  1997. *MOT Mrest LISTREEL Masse restante
  1998. *MOT Mliqpuis LISTREEL 2210111
  1999. *MOT Minj LISTREEL Masse injectée
  2000. *MOT Econd LISTREEL 2189580
  2001. *MOT Hcond LISTREEL 2189566
  2002. *MOT Econv LISTREEL 2199149
  2003. *MOT Hliqpuis LISTREEL 2173844
  2004. *
  2005. *MOT lmatf LISTREEL 2182209
  2006. *MOT lmitf LISTREEL 2182272
  2007. *
  2008. *MOT Easpe LISTREEL 2196321
  2009. *MOT Haspe LISTREEL 2196384
  2010. *MOT Qaspe LISTREEL 2196398
  2011. *======================================================================;
  2012.  
  2013. *======================================================================;
  2014. * Qc cumul débit de condensation en paroi -> tic.'Qc'
  2015. Qc = 0.0 ;
  2016. * Remn densité moyenne d'énergie dans le volume -> tic.'Remn'
  2017. * Rhomn densité moyenne dans le volume pdt N -> tic.'Rhomn'
  2018.  
  2019. * dr Cumul des incréments d'énergie
  2020. * Qtot Cumul des incréments d'injection/soustraction
  2021. * Qtot = Qtot '+' Qasp '-' Qcnm ;
  2022. * Rhomn = MAXI (PROG (Rhomnm '+' (tic.'DT' '*' Qtot '/' VTotal )) 0.0) ;
  2023.  
  2024. Econv = 0.0 ;
  2025. Econd = 0.0 ;
  2026. Hcond = 0.0 ;
  2027.  
  2028. dRhov = 0. ;
  2029. dRhohe = 0. ;
  2030. dRhoh2 = 0. ;
  2031. dRhoo2 = 0. ;
  2032. dRhon2 = 0. ;
  2033. dRhoco = 0. ;
  2034. dRhoco2= 0. ;
  2035.  
  2036. *----------------------------------------------------------
  2037. *----- BOUCLE PRINCIPALE DE RESOLUTION SUR LE NB ----------
  2038. *----- TOTAL DE PAS DE TEMPS A REALISER -------------------
  2039. *----------------------------------------------------------
  2040.  
  2041. Si (NON (EXIST tic 'DT')) ;
  2042. tic.'DT' = rxt.'DT0' ;
  2043. Finsi ;
  2044.  
  2045. *xxxxxxxxxxxxxxxxx avant BCLTPS xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  2046. *Quelques petites initialisations avant la boucle en temps
  2047.  
  2048. ndl = 'DIME' (tic.'Tfm') ;
  2049. Tfmod = 'EXTR' (tic.'Tfm') ndl ;
  2050. Tkmod = Tfmod '+' 273.15 ;
  2051. Ptnm = 'EXTR' (tic.'PT') ndl ;
  2052. po2 = Ptnm ;
  2053. dpdti=0.;
  2054.  
  2055. Cpm = 'EXTR' (tic.'Cpm') ndl ;
  2056. Rhomn = 'EXTR' (tic.'Rhomn') ndl ;
  2057. Remn = 'EXTR' (tic.'Remn') ndl ;
  2058. Rgp = tic.'Rgp' ;
  2059. Rgpm = 'SOMT' (Diag '*' Rgp) '/' VTotal ;
  2060.  
  2061. Si('EXIST' tic 'lpt2') ;
  2062. lpt2=tic.'lpt2' ;
  2063. sinon ;
  2064. lpt2= prog po2 ;
  2065. finsi ;
  2066. Si('EXIST' tic 'ltf2') ;
  2067. ltf2=tic.'ltf2' ;
  2068. sinon ;
  2069. ltf2= prog tkmod ;
  2070. finsi ;
  2071. Si('EXIST' tic 'ltpsi') ;
  2072. ltpsi=tic.'ltpsi' ;
  2073. sinon ;
  2074. ltpsi= prog 0. ;
  2075. finsi ;
  2076.  
  2077.  
  2078. *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  2079.  
  2080.  
  2081.  
  2082. *>1 'REPETER' BCLTPS nbit
  2083. 'REPETER' BCLTPS nbit ;
  2084.  
  2085. Tf = tic.'TF' ;
  2086. Rho = tic.'RHO' ;
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099. * Gestion de la fréquence de préconditionnement
  2100. 'SI' ('OU' ('EGA' &BCLTPS 1)
  2101. ('MULT' &BCLTPS RXT.'FRPREC')) ;
  2102. calprec = VRAI ;
  2103. 'SINON' ;
  2104. calprec = FAUX ;
  2105. 'FINSI' ;
  2106.  
  2107. 'SI' ('EGA' nbit 0) ;
  2108. 'QUITTER' BCLTPS ;
  2109. 'FINSI' ;
  2110.  
  2111. nupadt = tic.'NUPADT' ;
  2112. nupadt = nupadt '+' 1 ;
  2113. tic.'NUPADT' = nupadt ;
  2114. *>1 ndl = 'DIME' (tic.'LTPS')
  2115. ndl = 'DIME' (tic.'LTPS') ;
  2116.  
  2117. Tps='EXTR' (tic.'LTPS') ndl ;
  2118.  
  2119. Tps = tic.'Tps' '+' tic.'DT' ;
  2120. tic.'Tps' = Tps ;
  2121. tic.'LTPS' = tic.'LTPS' 'ET' ('PROG' Tps ) ;
  2122.  
  2123. 'SI' ( TBT.'IMPR' >EG 1) ;
  2124. 'MESS' '*************************************************************'
  2125. '***********************';
  2126. 'MESS' '*************************************************************'
  2127. '***********************';
  2128. 'MESS' '==> Pas de temps ' nupadt
  2129. ' Temps = ' tps 'Secondes Pas de temps : DT= ' tic.'DT' ;
  2130. 'FINSI' ;
  2131.  
  2132.  
  2133.  
  2134.  
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141. *Breches entrées/sortie ===============================================;
  2142. *=============================================================
  2143. *BRECHES et SORTIES: pour chacune des sorties (BROCHE) et
  2144. * chacune des breches (BRUCHE) => KAS1
  2145. * En entrée: KAS2 1 rxt
  2146. * KAS2: type de sortie
  2147. * i : numéro breche si i>3 nouvelle syntaxe, voir notice execrxt
  2148. * rxt : table rxt
  2149. * En sortie: qeau qlj qair qhe qh2 qo2 qn2 qco qco2;
  2150. * différents débits (masse)
  2151. * vapeur, liquide et incondensables ...
  2152. *=============================================================
  2153. **** Initialisations en début de bas de temps ****************
  2154.  
  2155. **** Evolution de la source en fct du temps ******************
  2156. ******** Scenario transitoire ********************************
  2157.  
  2158. Ksi=1. ; Ksi2=1. ; Ksi3=1. ;
  2159. Qlj=0. ; Qlj2=0. ; Qlj3=0. ;
  2160. Qo='Qo'; Qlo='Qlo';
  2161. Qovp=0.; Qlovp=0.;
  2162. Qohe=0.;
  2163. Qoh2=0.;
  2164. Qon2=0.;
  2165. Qoo2=0.;
  2166. Qoco=0.;
  2167. Qoco2=0.;
  2168.  
  2169. Si (TBT.'TTsortie') ;
  2170. NBR=dime rxt.'Sorties' ;
  2171. ibr=index (rxt.'Sorties') ;
  2172. Repeter BBRS NBR ;
  2173. qeau qlj qair qhe qh2 qo2 qn2 qco qco2=broche 'KAS1' &BBRS rxt ;
  2174.  
  2175. Qovp=Qovp + Qeau; Qlovp=Qlovp + Qlj ;
  2176. Qohe=Qohe + Qhe ;
  2177. Qoh2=Qoh2 + Qh2 ;
  2178. Qon2=Qon2 + Qn2 ;
  2179. Qoo2=Qoo2 + Qo2 ;
  2180. Qoco=Qoco + Qco ;
  2181. Qoco2=Qoco2 + Qco2 ;
  2182. FIN BBRS ;
  2183. FINSI ;
  2184.  
  2185. Si (TBT.'TTbreche') ;
  2186. NBR=dime rxt.'Breches' ;
  2187. ibr=index (rxt.'Breches') ;
  2188. Repeter BBRS NBR ;
  2189. * mess ' Bruche KAS1 : Breche ' (ibr.&BBRS) ;
  2190. qeau qlj qair qhe qh2 qo2 qn2 qco qco2=bruche 'KAS1' (&BBRS + 3) rxt ;
  2191. Qovp=Qovp + Qeau; Qlovp=Qlovp + Qlj ; ;
  2192. Qohe=Qohe + Qhe ; ;
  2193. Qoh2=Qoh2 + Qh2 ; ;
  2194. Qon2=Qon2 + Qn2 ; ;
  2195. Qoo2=Qoo2 + Qo2 ; ;
  2196. Qoco=Qoco + Qco ; ;
  2197. Qoco2=Qoco2 + Qco2 ; ;
  2198. FIN BBRS ;
  2199. FINSI ;
  2200.  
  2201. Si (TBT.'Tbreche') ;
  2202. qeau qlj qair qhe qh2 qo2 qn2 qco qco2 = bruche 'KAS1' 1 rxt ;
  2203. Qovp=Qovp + Qeau ; Qlovp=Qlovp + Qlj ;
  2204. Qohe=Qohe + Qhe ;
  2205. Qoh2=Qoh2 + Qh2 ;
  2206. Qon2=Qon2 + Qn2 ;
  2207. Qoo2=Qoo2 + Qo2 ;
  2208. Qoco=Qoco + Qco ;
  2209. Qoco2=Qoco2 + Qco2 ;
  2210. Finsi ;
  2211.  
  2212. Si (TBT.'Tbreche2') ;
  2213. qeau2 qlj2 qair2 qhe2 qh22 qo22 qn22 q2co q2co2 = bruche 'KAS1' 2 rxt;
  2214. Qovp=Qovp + Qeau2; Qlovp=Qlovp + Qlj2 ;
  2215. Qohe=Qohe + Qhe2;
  2216. Qoh2=Qoh2 + Qh22;
  2217. Qon2=Qon2 + Qn22;
  2218. Qoo2=Qoo2 + Qo22;
  2219. Qoco=Qoco + Q2co;
  2220. Qoco2=Qoco2 + Q2co2;
  2221. Finsi;
  2222.  
  2223. Si (TBT.'Tbreche3') ;
  2224. qeau3 qlj3 qair3 qhe3 qh23 qo23 qn23 q3co q3co2 = bruche 'KAS1' 3 rxt;
  2225. Qovp=Qovp + Qeau3; Qlovp=Qlovp + Qlj3 ;
  2226. Qohe=Qohe + Qhe3;
  2227. Qoh2=Qoh2 + Qh23;
  2228. Qon2=Qon2 + Qn23;
  2229. Qoo2=Qoo2 + Qo23;
  2230. Qoco=Qoco + Q3co;
  2231. Qoco2=Qoco2 + Q3co2;
  2232. Finsi;
  2233.  
  2234.  
  2235. *--------------------------------------------------------------
  2236. * Interpolation des conditions aux limites en température
  2237. * imposée sur une ou plusieurs parois et chargement coef d'échange
  2238. * TTIMP -> rxt.'TIMP'.'TIMPI'
  2239. * TTIMP1 -> tic.'TBP1' etc
  2240.  
  2241. * XFIMP 2 : Flux de chaleur imposés (exec RTF)
  2242. 'SI' TBT.'TFIMP' ;
  2243. NBFIMP=dime (rxt.'XFIMP') ;
  2244. ifimp=INDEX (rxt.'XFIMP') ;
  2245. REPETER BBFIMP NBFIMP ;
  2246. Bfimp=rxt.'XFIMP'.(ifimp.&BBFIMP) ;
  2247. * Petites initialisations
  2248. Smfpi=Bfimp.'Smfpi' ;
  2249.  
  2250. CKqt=Bfimp.'Kqt' ;
  2251. qft ='IPOL' tps (Bfimp.'t') (Bfimp.'qt') ;
  2252. tic.CKqt =qft/Smfpi ;
  2253.  
  2254. CKqeau=Bfimp.'Kqeau' ;
  2255. qfeau ='IPOL' tps (Bfimp.'t') (Bfimp.'qeau') ;
  2256. tic.CKqeau =qfeau/Smfpi ;
  2257.  
  2258. CKqair=Bfimp.'Kqair' ;
  2259. qfair ='IPOL' tps (Bfimp.'t') (Bfimp.'qair') ;
  2260. tic.CKqair =qfair/Smfpi ;
  2261.  
  2262. CKqhe=Bfimp.'Kqhe' ;
  2263. qfhe ='IPOL' tps (Bfimp.'t') (Bfimp.'qhe') ;
  2264. tic.CKqhe =qfhe/Smfpi ;
  2265.  
  2266. CKqh2=Bfimp.'Kqh2' ;
  2267. qfh2 ='IPOL' tps (Bfimp.'t') (Bfimp.'qh2') ;
  2268. tic.CKqh2 =qfh2/Smfpi ;
  2269.  
  2270. CKqn2=Bfimp.'Kqn2' ;
  2271. qfn2 ='IPOL' tps (Bfimp.'t') (Bfimp.'qn2') ;
  2272. tic.CKqn2 =qfn2/Smfpi ;
  2273.  
  2274. CKqo2=Bfimp.'Kqo2' ;
  2275. qfo2 ='IPOL' tps (Bfimp.'t') (Bfimp.'qo2') ;
  2276. tic.CKqo2 =qfo2/Smfpi ;
  2277.  
  2278. CKqco=Bfimp.'Kqco' ;
  2279. qfco ='IPOL' tps (Bfimp.'t') (Bfimp.'qco') ;
  2280. tic.CKqco =qfco/Smfpi ;
  2281.  
  2282. CKqco2=Bfimp.'Kqco2' ;
  2283. qfco2 ='IPOL' tps (Bfimp.'t') (Bfimp.'qco2') ;
  2284. tic.CKqco2 =qfco2/Smfpi ;
  2285.  
  2286. Qovp=Qovp + Qfeau ;
  2287. Qohe=Qohe + Qfhe ;
  2288. Qoh2=Qoh2 + Qfh2 ;
  2289. Qon2=Qon2 + Qfn2 ;
  2290. Qoo2=Qoo2 + Qfo2 ;
  2291. Qoco=Qoco + Qfco ;
  2292. Qoco2=Qoco2 + Qfco2 ;
  2293.  
  2294. **Si (NON ((TBT.'VAPEUR') et (exist tic CKH1))) ;
  2295. **tic.CKH1 = (Btimp.'ECHAN') ;
  2296. **Finsi ;
  2297. **Bfimp.'Ltbpi'= Bfimp.'Ltbpi' et (prog tic.(Bfimp.'TBP1')) ;
  2298. FIN BBFIMP ;
  2299. 'FINSI' ;
  2300. * XFIMP 2 : Flux de chaleur imposés (exec RTF)
  2301.  
  2302. 'SI' TBT.'TTIMP' ;
  2303. NBTIMP=dime (rxt.'TIMP') ;
  2304. itimp=INDEX (rxt.'TIMP') ;
  2305. REPETER BBTIMP NBTIMP ;
  2306. * mess 'BBTIMP 2 ';
  2307. Btimp=rxt.'TIMP'.(itimp.&BBTIMP) ;
  2308. * Petites initialisations
  2309. CTBP1=Btimp.'TBP1' ;
  2310. CKH1=Btimp.'KH1' ;
  2311. tic.CTBP1 = 'IPOL' tps (Btimp.'t') (Btimp.'TIMP') ;
  2312. Si (NON ((TBT.'VAPEUR') et (exist tic CKH1))) ;
  2313. tic.CKH1 = (Btimp.'ECHAN') ;
  2314. Finsi ;
  2315. Btimp.'Ltbpi'= Btimp.'Ltbpi' et (prog tic.(Btimp.'TBP1')) ;
  2316. FIN BBTIMP ;
  2317. 'FINSI' ;
  2318.  
  2319. 'SI' TBT.'TTIMP1' ;
  2320. tic.'TBP1' = 'IPOL' tps (rxt.'TIMP1'.'t') (rxt.'TIMP1'.'TIMP');
  2321. Si (NON ((TBT.'VAPEUR') et (exist tic 'KH1'))) ;
  2322. tic.'KH1' = (rxt.'TIMP1'.'ECHAN') ;
  2323. Finsi ;
  2324. tic.'Ltbp1'= tic.'Ltbp1' et (prog (tic.'TBP1')) ;
  2325. 'FINSI' ;
  2326.  
  2327. 'SI' TBT.'TTIMP2' ;
  2328. tic.'TBP2' = 'IPOL' tps (rxt.'TIMP2'.'t') (rxt.'TIMP2'.'TIMP');
  2329. Si (NON ((TBT.'VAPEUR') et (exist tic 'KH2'))) ;
  2330. tic.'KH2' = (rxt.'TIMP2'.'ECHAN') ;
  2331. Finsi ;
  2332. tic.'Ltbp2'= tic.'Ltbp2' et (prog (tic.'TBP2')) ;
  2333. 'FINSI' ;
  2334.  
  2335. 'SI' TBT.'TTIMP3' ;
  2336. tic.'TBP3' = 'IPOL' tps (rxt.'TIMP3'.'t') (rxt.'TIMP3'.'TIMP');
  2337. Si (NON ((TBT.'VAPEUR') et (exist tic 'KH3'))) ;
  2338. tic.'KH3' = (rxt.'TIMP3'.'ECHAN') ;
  2339. Finsi ;
  2340. tic.'Ltbp3'= tic.'Ltbp3' et (prog (tic.'TBP3')) ;
  2341. 'FINSI' ;
  2342.  
  2343. 'SI' TBT.'TECHANP' ;
  2344. 'SI' ('NON' ('EXIST' TIC 'TBP0')) ;
  2345. tic.'TBP0' = 'KCHT' RXT.'GEO'.'$mtp0' 'SCAL' 'SOMMET'
  2346. rxt.'ECHANP'.'TMUR' ;
  2347. 'FINSI' ;
  2348. Si (NON ((TBT.'VAPEUR') et (exist tic 'KH0'))) ;
  2349. tic.'KH0' = 'KCHT' RXT.'GEO'.'$mtp0' 'SCAL' 'CENTRE'
  2350. rxt.'ECHANP'.'ECHAN' ;
  2351. Finsi ;
  2352. 'FINSI' ;
  2353.  
  2354. *--------------------------------------------------------------
  2355. * Traitement de l'aspersion
  2356.  
  2357. 'SI' TBT.'ASPER ' ;
  2358. t = rxt.'scenasp'.'t' ;
  2359. vzinj = 'IPOL' tps t (rxt.'scenasp'.'vzinj') ;
  2360. xdinj = 'IPOL' tps t (rxt.'scenasp'.'xdinj') ;
  2361. tdinj = 'IPOL' tps t (rxt.'scenasp'.'tdinj') ;
  2362. ddinj = 'IPOL' tps t (rxt.'scenasp'.'ddinj') ;
  2363. $aspinj = GEO.'$aspinj' ;
  2364. $toitf = GEO.'$toitf' ;
  2365. * vnj = 'KCHT' $aspinj 'VECT' 'SOMMET' 'COMP'
  2366. * ('MOTS' 1VN 2VN 3VN) (0.0 0.0 vzinj) ;
  2367.  
  2368. 'SI' (DIM3D) ;
  2369. vnj = 'KCHT' $aspinj 'VECT' 'SOMMET' 'COMP'
  2370. ('MOTS' 1VN 2VN 3VN) (0.0 0.0 vzinj) ;
  2371. 'SINON' ;
  2372. *--------------------------------------------------------------
  2373. * modif Tojo 12/07/2007 *
  2374. *
  2375. * mise en place de vecteurs inclinés conformément
  2376. * à l'angle d'ouverture du jet
  2377. * ici l'inclinaison est fixée à 30°
  2378. * une prochaine évolution pourrait consister à mettre
  2379. * l'angle d'ouverture comme donnée d'entrée
  2380. * dans la table scenasp
  2381. *
  2382. *--------------------------------------------------------------
  2383. *
  2384. cc1 = coor 1 rxt.'aspinj' ;
  2385. z0 = (sin(300. '*' cc1)) '*' ((cos(300. '*' cc1)) '**' (-1.0));
  2386. z0 = z0 '*' (vzinj '*' -1.) ;
  2387. z0 = chan attribut z0 nature diffus ;
  2388. z1 = z0 '*' 0. ;
  2389. ux0 = nomc '1VN' z0 ;
  2390. z1 = z1 '+' vzinj ;
  2391. z1 = chan attribut z1 nature diffus ;
  2392. uy0 = nomc '2VN' z1 ;
  2393. vnj1 = ux0 et uy0 ;
  2394. vnj = 'KCHT' $aspinj 'VECT' 'SOMMET' 'COMP'
  2395. ('MOTS' '1VN' '2VN') vnj1 ;
  2396. *
  2397. *--------------------------------------------------------------
  2398. 'FINSI' ;
  2399. *--------------------fin modif Tojo Juillet 2007---------------
  2400.  
  2401. xdj = 'KCHT' $aspinj 'SCAL' 'SOMMET' 'COMP'
  2402. ('MOT' 'XD') xdinj ;
  2403. tdj = 'KCHT' $aspinj 'SCAL' 'SOMMET' 'COMP'
  2404. ('MOT' 'TD') tdinj ;
  2405. ddj = 'KCHT' $toitf 'SCAL' 'SOMMET' 'COMP'
  2406. ('MOT' 'DD') ddinj ;
  2407. 'FINSI' ;
  2408.  
  2409. *--------------------------------------------------------------
  2410. *>1**********************************************************
  2411. *>1* Grandeurs moyennes au debut du pas de temps N **********
  2412. *>1* i.e. au temps N-1 **************************************
  2413.  
  2414. Ptnm = 'EXTR' (tic.'PT') ndl ;
  2415. Cvmnm = 'EXTR' (tic.'Cvm') ndl ;
  2416. Gamnm = 'EXTR' (tic.'Gamm') ndl ;
  2417. Cpmnm = 'EXTR' (tic.'Cpm') ndl ;
  2418. Rhomnm = 'EXTR' (tic.'Rhomn') ndl ;
  2419. Rhomvn = 0. ;
  2420. Rhovgn = 0. ;
  2421. Rbrom = 0. ;
  2422. Rmhen = 0. ;
  2423. Rmh2n = 0. ;
  2424. Rmn2n = 0. ;
  2425. Rmo2n = 0. ;
  2426. Rmcon = 0. ;
  2427. Rmco2n = 0. ;
  2428. Rmairn = 0. ;
  2429.  
  2430. 'SI' TBT.'VAPEUR' ;
  2431. *>1 Rhomvnm,Rhovgnm,Rliqm = EXTR tic.'Rhomv','Rhomvg','Rliqm' ndl
  2432. Rhomvnm = 'EXTR' (tic.'Rhomv') ndl ;
  2433. Rhovgnm = 'EXTR' (tic.'Rhomvg') ndl ;
  2434. 'SI' TBT.'CONDMAS' ;
  2435. Rliqm = 'EXTR' (tic.'Rliqm') ndl ;
  2436. Rbrom = 'EXTR' (tic.'Rbrom') ndl ;
  2437. 'FINSI' ;
  2438. 'FINSI' ;
  2439. 'SI' TBT.'THE' ;
  2440. Rmhenm = 'EXTR' (tic.'Rhomhe') ndl ;
  2441. 'FINSI' ;
  2442. 'SI' TBT.'TH2' ;
  2443. Rmh2nm = 'EXTR' (tic.'Rhomh2') ndl ;
  2444. 'FINSI' ;
  2445. 'SI' TBT.'TO2' ;
  2446. Rmo2nm = 'EXTR' (tic.'Rhomo2') ndl ;
  2447. 'FINSI' ;
  2448. 'SI' TBT.'TN2' ;
  2449. Rmn2nm = 'EXTR' (tic.'Rhomn2') ndl ;
  2450. 'FINSI' ;
  2451. 'SI' TBT.'TCO' ;
  2452. Rmconm = 'EXTR' (tic.'Rhomco') ndl ;
  2453. 'FINSI' ;
  2454. 'SI' TBT.'TCO2' ;
  2455. Rmco2nm = 'EXTR' (tic.'Rhomco2') ndl ;
  2456. 'FINSI' ;
  2457.  
  2458. Rmairnm = 'EXTR' (tic.'Rhomair') ndl ;
  2459. Remnm = 'EXTR' (tic.'Remn') ndl ;
  2460. 'SI' TBT.'THERMP' ;
  2461. Emurnm = 'EXTR' (tic.'Emur') ndl ;
  2462. 'FINSI' ;
  2463. 'SI' TBT.'ASPER ' ;
  2464. Qasp = extr (tic.'Qaspe') ndl ;
  2465. Easp = extr (tic.'Easpe') ndl ;
  2466. Hasp = extr (tic.'Haspe') ndl ;
  2467. 'SINON' ;
  2468. Qasp = 0.0 ;
  2469. Easp = 0.0 ;
  2470. Hasp = 0.0 ;
  2471. 'FINSI' ;
  2472.  
  2473. Qcnm = 'EXTR' (tic.'Qc') ndl ;
  2474. Econdnm = 'EXTR' (tic.'Econd') ndl ;
  2475. Econvnm = 'EXTR' (tic.'Econv') ndl ;
  2476. Hcondnm = 'EXTR' (tic.'Hcond') ndl ;
  2477. MinjT = 'EXTR' (tic.'Minj') ndl ;
  2478. McondT = 'EXTR' (tic.'Mcond') ndl ;
  2479.  
  2480. 'SI' (TBT.'VAPEUR') ;
  2481. 'SI' (TBT.'VERSION' '>EG' 0) ;
  2482. 'SI' (EXIST TIC 'Mcondm') ;
  2483. Mcondm = 'EXTR' (tic.'Mcondm') ndl ;
  2484. 'SINON' ;
  2485. tic.'Mcondm' = 'PROG' 0.0 ;
  2486. Mcondm = 0.0 ;
  2487. 'FINSI' ;
  2488. 'SI' (NON (EXIST TIC 'Qcm')) ;
  2489. tic.'Qcm' = 'PROG' 0.0 ;
  2490. 'FINSI' ;
  2491. 'FINSI' ;
  2492.  
  2493. 'SI' (TBT.'TPAROIF') ;
  2494. 'SI' (EXIST TIC 'Mcondw') ;
  2495. McondTw = 'EXTR' (tic.'Mcondw') ndl ;
  2496. 'SINON' ;
  2497. tic.'Mcondw' = 'PROG' 0.0 ;
  2498. McondTw = 0.0 ;
  2499. 'FINSI' ;
  2500. 'SI' (NON (EXIST TIC 'Qcw')) ;
  2501. tic.'Qcw' = 'PROG' 0.0 ;
  2502. 'FINSI' ;
  2503. 'FINSI' ;
  2504. 'SI' (TBT.'TTIMP') ;
  2505. NBTIMP=dime (rxt.'TIMP') ;
  2506. itimp=INDEX (rxt.'TIMP') ;
  2507. REPETER BBTIMP NBTIMP ;
  2508. * mess 'BBTIMP 3 ';
  2509. Btimp=rxt.'TIMP'.(itimp.&BBTIMP) ;
  2510. CQc1=Btimp.'Qc1' ;
  2511. 'SI' (NON (EXIST TIC CQc1)) ;
  2512. tic.CQc1 = 'PROG' 0.0 ;
  2513. 'FINSI' ;
  2514. CMcond1=Btimp.'Mcond1' ;
  2515. 'SI' (EXIST tic.CMcond1) ;
  2516. McondT1 = 'EXTR' (tic.CMcond1) ndl ;
  2517. 'SINON' ;
  2518. tic.CMcond1 = 'PROG' 0.0 ;
  2519. McondT1 = 0.0 ;
  2520. 'FINSI' ;
  2521. FIN BBTIMP ;
  2522. 'FINSI' ;
  2523. 'SI' (TBT.'TTIMP1') ;
  2524. 'SI' (EXIST TIC 'Mcond1') ;
  2525. McondT1 = 'EXTR' (tic.'Mcond1') ndl ;
  2526. 'SINON' ;
  2527. tic.'Mcond1' = 'PROG' 0.0 ;
  2528. McondT1 = 0.0 ;
  2529. 'FINSI' ;
  2530. 'SI' (NON (EXIST TIC 'Qc1')) ;
  2531. tic.'Qc1' = 'PROG' 0.0 ;
  2532. 'FINSI' ;
  2533. 'FINSI' ;
  2534. 'SI' (TBT.'TTIMP2') ;
  2535. 'SI' (EXIST TIC 'Mcond2') ;
  2536. McondT2 = 'EXTR' (tic.'Mcond2') ndl ;
  2537. 'SINON' ;
  2538. tic.'Mcond2' = 'PROG' 0.0 ;
  2539. McondT2 = 0.0 ;
  2540. 'FINSI' ;
  2541. 'SI' (NON (EXIST TIC 'Qc2')) ;
  2542. tic.'Qc2' = 'PROG' 0.0 ;
  2543. 'FINSI' ;
  2544. 'FINSI' ;
  2545. 'SI' (TBT.'TTIMP3') ;
  2546. 'SI' (EXIST TIC 'Mcond3') ;
  2547. McondT3 = 'EXTR' (tic.'Mcond3') ndl ;
  2548. 'SINON' ;
  2549. tic.'Mcond3' = 'PROG' 0.0 ;
  2550. McondT3 = 0.0 ;
  2551. 'FINSI' ;
  2552. 'SI' (NON (EXIST TIC 'Qc3')) ;
  2553. tic.'Qc3' = 'PROG' 0.0 ;
  2554. 'FINSI' ;
  2555. 'FINSI' ;
  2556. 'SI' (TBT.'TECHANP') ;
  2557. 'SI' (EXIST TIC 'Mcond0') ;
  2558. McondT0 = 'EXTR' (tic.'Mcond0') ndl ;
  2559. 'SINON' ;
  2560. tic.'Mcond0' = 'PROG' 0.0 ;
  2561. McondT0 = 0.0 ;
  2562. 'FINSI' ;
  2563. 'SI' (NON (EXIST TIC 'Qc0')) ;
  2564. tic.'Qc0' = 'PROG' 0.0 ;
  2565. 'FINSI' ;
  2566. 'FINSI' ;
  2567. 'FINSI' ;
  2568. MrestT = 'EXTR' (tic.'Mrest') ndl ;
  2569.  
  2570. *-------------------------------------------------------------
  2571. * Calcul KH/Ro Cp pour l'équation en température TF
  2572.  
  2573. 'SI' TBT.'THERMP' ;
  2574. tic.'KHEW'=tic.'KHW' / (Rhomnm '*' Cpmnm) ;
  2575. tic.'LHEW' = -1.0 * tic.'KHEW' ;
  2576. 'FINSI' ;
  2577.  
  2578. 'SI' TBT.'TTIMP' ;
  2579. NBTIMP=dime (rxt.'TIMP') ;
  2580. itimp=INDEX (rxt.'TIMP') ;
  2581. REPETER BBTIMP NBTIMP ;
  2582. * mess 'BBTIMP 4 ';
  2583. Btimp=rxt.'TIMP'.(itimp.&BBTIMP) ;
  2584. CKHE1=Btimp.'KHE1' ;
  2585. CKH1 =Btimp.'KH1' ;
  2586. tic.CKHE1 = tic.CKH1 '/' (Rhomnm '*' Cpmnm) ;
  2587. FIN BBTIMP ;
  2588. 'FINSI' ;
  2589.  
  2590. 'SI' TBT.'TTIMP1' ;
  2591. CKHE1='KHE1' ;
  2592. CKH1 ='KH1' ;
  2593. tic.CKHE1 = (tic.CKH1) '/' (Rhomnm '*' Cpmnm) ;
  2594. 'FINSI' ;
  2595.  
  2596. 'SI' TBT.'TTIMP2' ;
  2597. tic.'KHE2' = (tic.'KH2') '/' (Rhomnm '*' Cpmnm) ;
  2598. 'FINSI' ;
  2599.  
  2600. 'SI' TBT.'TTIMP3' ;
  2601. tic.'KHE3' = (tic.'KH3') '/' (Rhomnm '*' Cpmnm) ;
  2602. 'FINSI' ;
  2603.  
  2604. 'SI' TBT.'TECHANP' ;
  2605. tic.'KHE0' = (tic.'KH0') '/' (Rhomnm '*' Cpmnm) ;
  2606. 'FINSI' ;
  2607.  
  2608.  
  2609.  
  2610.  
  2611.  
  2612.  
  2613.  
  2614.  
  2615.  
  2616.  
  2617.  
  2618. *=============================================================
  2619. *BRECHES et SORTIES: pour chacune des sorties (BROCHE) et
  2620. * chacune des breches (BRUCHE) => KAS2
  2621. * En entrée: KAS2 i rxt
  2622. * KAS2: type de sortie
  2623. * i : numéro breche si i>3 nouvelle syntaxe, voir notice execrxt
  2624. * rxt : table rxt
  2625. * En sortie: Rvapj Rairj Rhej Rh2j Ro2j Rn2j Rco2j Rcoj Rgj
  2626. * Hj Ej Tj Qj Roj gj guj unvf0 src ;
  2627. * Constantes des gaz à l'injection et constante du mélange
  2628. * Energies, Température Débit(masse) Densité etc
  2629. *=============================================================
  2630. Qtot = 0. ;
  2631. * dr = 0. ;
  2632. drh = 0. ;
  2633. srcs = 0. ;
  2634. 'SI' TBT.'TNPOD' ;
  2635. hmn = Cpm '*' Tkmod ;
  2636. 'SINON' ;
  2637. hmn=0. ;
  2638. 'FINSI' ;
  2639.  
  2640. Si (TBT.'TTsortie') ;
  2641. NBR=dime rxt.'Sorties' ;
  2642. ibr=index (rxt.'Sorties') ;
  2643. Repeter BBRS NBR ;
  2644. Rvapj Rairj Rhej Rh2j Ro2j Rn2j Rco2j Rcoj Rgj Hj Ej
  2645. Tj aex Qj Roj gj guj unvf0 src = broche 'KAS2' &BBRS rxt ;
  2646. asrc = (Roj '*' ('ABS' src)) ;
  2647. *mess ' BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB';
  2648. *mess ' BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB';
  2649. *mess ' BBBBBBBBBBBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBBBBBBBBBBB';
  2650. *mess ' BBBBBBBBBBBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBBBBBBBBBBB';
  2651. *mess ' BBBBBBBBBBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBBBBBBBBBB';
  2652. *mess ' BBBBBBBBBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBBBBBBBBB';
  2653. *mess ' BBBBBBBBBBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBBBBBBBBBB';
  2654. *mess ' BBBBBBBBBBBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBBBBBBBBBBB';
  2655. *mess ' BBBBBBBBBBBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBBBBBBBBBBB';
  2656. *mess ' BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB';
  2657. *mess ' BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB';
  2658. Qtot = Qtot '+' (aex*asrc) ;
  2659. * dr = dr + (Qj '*' Hj '*' aex) ;
  2660. drh= drh + (Qj '*' (Hj - Hmn) '*' aex) ;
  2661. ;
  2662. srcs=srcs + (aex '*' src) ;
  2663. *----------------------------------------------------------
  2664. * STOCKAGE des valeurs de l'injection pour le temps courant
  2665. * Breches &BBRS
  2666. * La brèche peut avoir eu une existence évanescente (Tbreche=FAUX)
  2667. * Si tic.'Qj' existe on complete avec des valeurs nulles
  2668. * tic.'Qj',tic.'guj',tic.'Hj',tic.'Ej'
  2669. *
  2670. Briches=rxt.'Sorties'.(ibr.&BBRS) ;
  2671. Si(Exist Briches 'Qj') ;
  2672. Briches.'guj'= Briches.'guj' 'ET' ('PROG' guj) ;
  2673. Briches.'Qj' = Briches.'Qj' 'ET' ('PROG' asrc) ;
  2674. Finsi ;
  2675. FIN BBRS ;
  2676. FINSI ;
  2677.  
  2678.  
  2679. Si (TBT.'TTbreche') ;
  2680. NBR=dime rxt.'Breches' ;
  2681. ibr=index (rxt.'Breches') ;
  2682. Repeter BBRS NBR ;
  2683. * mess ' Bruche KAS2 : Breche ' (ibr.&BBRS) ;
  2684. Rvapj Rairj Rhej Rh2j Ro2j Rn2j Rco2j Rcoj Rgj Hj Ej
  2685. Tj Qj Roj gj guj unvf0 src = bruche 'KAS2' (&BBRS + 3) rxt ;
  2686. asrc = (Roj '*' ('ABS' src)) ;
  2687. Qtot = Qtot '+' asrc ;
  2688. * dr = dr + (Qj '*' Hj) ;
  2689. drh= drh + (Qj '*' (Hj - Hmn)) ;
  2690. srcs=srcs + src ;
  2691. *----------------------------------------------------------
  2692. * STOCKAGE des valeurs de l'injection pour le temps courant
  2693. * Breches &BBRS
  2694. * La brèche peut avoir eu une existence évanescente (Tbreche=FAUX)
  2695. * Si tic.'Qj' existe on complete avec des valeurs nulles
  2696. * tic.'Qj',tic.'guj',tic.'Hj',tic.'Ej'
  2697. *
  2698. Briches=rxt.'Breches'.(ibr.&BBRS) ;
  2699. Si(Exist Briches 'Qj') ;
  2700. Briches.'guj'= Briches.'guj' 'ET' ('PROG' guj) ;
  2701. Briches.'Qj' = Briches.'Qj' 'ET' ('PROG' asrc) ;
  2702. Finsi ;
  2703. FIN BBRS ;
  2704. FINSI ;
  2705.  
  2706. *=============================================================
  2707. *BRECHE
  2708. *=============================================================
  2709. Qj = 0. ;
  2710. Roj = 1.e-10 ;
  2711. src = 0. ;
  2712. guj = 0. ;
  2713. Ej=0. ;
  2714. Hj=0. ;
  2715. Tj=0. ;
  2716.  
  2717. Rvapj Rairj Rhej Rh2j Ro2j Rn2j Rco2j Rcoj
  2718. = 0. 0. 0. 0. 0. 0. 0. 0.;
  2719. Si (TBT.'Tbreche') ;
  2720. Rvapj Rairj Rhej Rh2j Ro2j Rn2j Rco2j Rcoj Rgj Hj Ej
  2721. Tj Qj Roj gj guj unvf0 src = bruche 'KAS2' 1 rxt ;
  2722. asrc = Roj '*' ('ABS' src) ;
  2723. Qtot = Qtot '+' asrc ;
  2724. * dr = dr + (Qj '*' Hj) ;
  2725. drh= drh + (Qj '*' (Hj - Hmn)) ;
  2726.  
  2727. mess ' BRECHE BBxxx: Tj =' Tj ' Hj=' Hj ' Qj=' Qj (Qj*Hj);
  2728. Finsi;
  2729.  
  2730. *----------------------------------------------------------
  2731. * STOCKAGE des valeurs de l'injection pour le temps courant
  2732. * 1ere Breche
  2733. * La brèche peut avoir eu une existance évanescente (Tbreche=FAUX)
  2734. * Si tic.'Qj' existe on complete avec des valeurs nulles
  2735. * tic.'Qj',tic.'guj',tic.'Hj',tic.'Ej'
  2736. *
  2737. Si(Exist tic 'Qj') ;
  2738. tic.'guj'= tic.'guj' 'ET' ('PROG' guj) ;
  2739. asrc = Roj '*' ('ABS' src) ;
  2740. tic.'Qj' = tic.'Qj' 'ET' ('PROG' asrc) ;
  2741.  
  2742. tic.'Hj'= tic.'Hj' 'ET' ('PROG' Hj) ;
  2743. tic.'Ej'= tic.'Ej' 'ET' ('PROG' Ej) ;
  2744. Finsi ;
  2745.  
  2746. *=============================================================
  2747. *BRECHE 2
  2748. *=============================================================
  2749. Qj2 = 0. ;
  2750. Roj2 = 1.e-10 ;
  2751. src2 = 0. ;
  2752. guj2 = 0. ;
  2753. Ej2=0. ;
  2754. Hj2=0. ;
  2755. Tj2=0. ;
  2756.  
  2757. Rvapj2 Rairj2 Rhej2 Rh2j2 Ro2j2 Rn2j2 Rco2j2 Rcoj2
  2758. = 0. 0. 0. 0. 0. 0. 0. 0.;
  2759. Si (TBT.'Tbreche2') ;
  2760. Rvapj2 Rairj2 Rhej2 Rh2j2 Ro2j2 Rn2j2 Rco2j2 Rcoj2 Rgj2 Hj2 Ej2
  2761. Tj2 Qj2 Roj2 gj2 guj2 unvf0 src2 = bruche 'KAS2' 2 rxt ;
  2762.  
  2763. asrc2 = Roj2 '*' ('ABS' src2) ;
  2764. Qtot = Qtot '+' asrc2 ;
  2765. * dr = dr + (Qj2 '*' Hj2) ;
  2766. drh = drh + (Qj2 '*' (Hj2 - Hmn)) ;
  2767. Finsi ;
  2768.  
  2769. *----------------------------------------------------------
  2770. * STOCKAGE des valeurs de l'injection pour le temps courant
  2771. * 2eme Breche
  2772. * La brèche peut avoir eu une existance évanescente (Tbreche2=FAUX)
  2773. * Si tic.'Qj2' existe on complete avec des valeurs nulles
  2774. * tic.'Qj2',tic.'guj2',tic.'Hj2',tic.'Ej2'
  2775. *
  2776. Si(Exist tic 'Qj2') ;
  2777. tic.'guj2'= tic.'guj2' 'ET' ('PROG' guj2) ;
  2778. asrc2 = Roj2 '*' ('ABS' src2) ;
  2779. tic.'Qj2' = tic.'Qj2' 'ET' ('PROG' asrc2) ;
  2780. tic.'Hj2'= tic.'Hj2' 'ET' ('PROG' Hj2) ;
  2781. tic.'Ej2'= tic.'Ej2' 'ET' ('PROG' Ej2) ;
  2782. Finsi ;
  2783. *=============================================================
  2784. *BRECHE 3
  2785. *=============================================================
  2786. Qj3 = 0. ;
  2787. Roj3 = 1.e-10 ;
  2788. src3 = 0.;
  2789. guj3 = 0. ;
  2790. Ej3=0. ;
  2791. Hj3=0. ;
  2792. Tj3=0. ;
  2793.  
  2794. Rvapj3 Rairj3 Rhej3 Rh2j3 Ro2j3 Rn2j3 Rco2j3 Rcoj3
  2795. = 0. 0. 0. 0. 0. 0. 0. 0.;
  2796. Si (TBT.'Tbreche3') ;
  2797. Rvapj3 Rairj3 Rhej3 Rh2j3 Ro2j3 Rn2j3 Rco2j3 Rcoj3 Rgj3 Hj3 Ej3
  2798. Tj3 Qj3 Roj3 gj3 guj3 unvf0 src3 = bruche 'KAS2' 3 rxt ;
  2799.  
  2800. asrc3 = Roj3 '*' ('ABS' src3) ;
  2801. Qtot = Qtot '+' asrc3 ;
  2802. * dr = dr + (Qj3 '*' Hj3) ;
  2803. drh= drh + (Qj3 '*' (Hj3 - Hmn)) ;
  2804. Finsi ;
  2805.  
  2806. *----------------------------------------------------------
  2807. * STOCKAGE des valeurs de l'injection pour le temps courant
  2808. * 3ème Breche
  2809. * La brèche peut avoir eu une existance évanescente (Tbreche3=FAUX)
  2810. * Si tic.'Qj3' existe on complète avec des valeurs nulles