Télécharger execrxt.procedur

Retour ŕ la liste

Numérotation des lignes :

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