Télécharger execrxt.procedur

Retour ŕ la liste

Numérotation des lignes :

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