Télécharger execrxt.procedur

Retour à la liste

Numérotation des lignes :

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