Télécharger enceinte.procedur

Retour à la liste

Numérotation des lignes :

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