Télécharger couplage_TH1D_Th3D_1.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : couplage_TH1D_Th3D_1.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ************************************************************************
  5. * NOM : couplage_TH1D_Th3D_1.dgibi
  6. * DESCRIPTION :
  7. *
  8. * Voir rapport DM2S/SFME/LTMF/RT/03-012/B
  9. * Modélisation couplée thermique 3D-thermohydraulique 1D d'un coeur de
  10. * réacteur à caloporteur gaz.
  11. *
  12. *
  13. * LANGAGE : GIBIANE-CAST3M
  14. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  15. * mél : gounand@semt2.smts.cea.fr
  16. **********************************************************************
  17. * VERSION : v1, 22/10/2003, version initiale
  18. * HISTORIQUE : v1, 22/10/2003, création
  19. * HISTORIQUE :
  20. * HISTORIQUE :
  21. ************************************************************************
  22. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  23. * en cas de modification de ce sous-programme afin de faciliter
  24. * la maintenance !
  25. ************************************************************************
  26. *
  27. * interact = VRAI : pour une utilisation interactive
  28. * graph = VRAI : pour tracer des choses
  29. * irrad = VRAI : si le combustible est irradié
  30. * pvar = VRAI : si la puissance dégagée dans le combustible à un
  31. * profil sinusoïdale (en fonction de z)
  32. * discr = LINE ou QUAF : discrétisation linéaire (suffisante)
  33. * ou quadratique
  34. interact= FAUX ;
  35. graph = FAUX ;
  36. irrad = VRAI ;
  37. pvar = VRAI ;
  38. discr = 'LINE' ;
  39. *discr = 'QUAF' ;
  40. ************************************************************************
  41. *
  42. * Début des procédures
  43. *
  44. 'OPTION' 'ECHO' 0 ;
  45. * NOM : ERRREL
  46. * DESCRIPTION : Calcul d'une erreur relative
  47. 'DEBPROC' ERRREL ;
  48. 'ARGUMENT' val*'FLOTTANT' ;
  49. 'ARGUMENT' valref*'FLOTTANT' ;
  50. *
  51. 'SI' ('<' ('ABS' valref) 1.D-10) ;
  52. echref = 1.D0 ;
  53. 'SINON' ;
  54. echref = valref ;
  55. 'FINSI' ;
  56. *
  57. errabs = 'ABS' ('/' ('-' val valref) echref);
  58. *
  59. 'RESPRO' errabs ;
  60. 'FINPROC' ;
  61. * NOM : TRACCHPO
  62. * DESCRIPTION : Tracé d'un chpoint avec titre optionnel.
  63. 'DEBPROC' TRACCHPO ;
  64. 'ARGUMENT' pn*'CHPOINT ' ;
  65. 'ARGUMENT' mt*'MAILLAGE' ;
  66. 'ARGUMENT' mt2/'MAILLAGE' ;
  67. 'ARGUMENT' oeil/'POINT ' ;
  68. 'ARGUMENT' tit/'MOT ' ;
  69. 'SI' ('EXISTE' tit) ;
  70. titpn = 'CHAINE' 'FORMAT' formflot tit titglob ;
  71. 'SINON' ;
  72. titpn = 'CHAINE' 'FORMAT' formflot titglob ;
  73. 'FINSI' ;
  74. rescal = pn ;
  75. 'SI' ('EXISTE' oeil) ;
  76. 'SI' ('EXISTE' mt2) ;
  77. 'TRACER' 'CACH' oeil rescal mt mt2 'TITR' titpn nbisov ;
  78. 'SINON' ;
  79. 'TRACER' 'CACH' oeil rescal mt mt 'TITR' titpn nbisov ;
  80. 'FINSI' ;
  81. 'SINON' ;
  82. 'SI' ('EXISTE' mt2) ;
  83. 'TRACER' 'CACH' rescal mt mt2 'TITR' titpn nbisov ;
  84. 'SINON' ;
  85. 'TRACER' 'CACH' rescal mt mt 'TITR' titpn nbisov ;
  86. 'FINSI' ;
  87. 'FINSI' ;
  88. 'FINPROC' ;
  89. * NOM : TRACCHML
  90. * DESCRIPTION : Trace un CHPOINT défini sur les centres des éléments
  91. * (valeur constante par élément) avec titre optionnel
  92. 'DEBPROC' TRACCHML ;
  93. 'ARGUMENT' chml*'CHPOINT ' ;
  94. 'ARGUMENT' $mt*'MMODEL ' ;
  95. 'ARGUMENT' mt2/'MAILLAGE' ;
  96. 'ARGUMENT' oeil/'POINT ' ;
  97. 'ARGUMENT' tit/'MOT ' ;
  98. 'SI' ('EXISTE' tit) ;
  99. titpn = 'CHAINE' 'FORMAT' formflot tit titglob ;
  100. 'SINON' ;
  101. titpn = 'CHAINE' 'FORMAT' formflot titglob ;
  102. 'FINSI' ;
  103. rescal = 'KCHA' $mt chml 'CHAM' ;
  104. modbid = 'MODELISER' ('DOMA' $mt 'MAILLAGE') 'THERMIQUE' ;
  105. 'SI' ('EXISTE' oeil) ;
  106. 'SI' ('EXISTE' mt2) ;
  107. 'TRACER' 'CACH' oeil rescal modbid mt2 'TITR' titpn nbisov ;
  108. 'SINON' ;
  109. 'TRACER' 'CACH' oeil rescal modbid mt 'TITR' titpn nbisov ;
  110. 'FINSI' ;
  111. 'SINON' ;
  112. 'SI' ('EXISTE' mt2) ;
  113. 'TRACER' 'CACH' rescal modbid mt2 'TITR' titpn nbisov ;
  114. 'SINON' ;
  115. 'TRACER' 'CACH' rescal modbid mt 'TITR' titpn nbisov ;
  116. 'FINSI' ;
  117. 'FINSI' ;
  118. 'FINPROC' ;
  119. * NOM : PRPHE
  120. * Proprietes thermiques de l Helium 4
  121. * Input : PTOT : pression en Pa ou en bars
  122. * T ou TS : temperature sous forme de CHPOINT ou FLOTTANT
  123. *
  124. * Output : RHOHE : densite de l helium (USI) de meme type que T ou TS
  125. * MUHE : viscosite
  126. * LHE : conductivite thermique
  127. * CPHE : capacité calorifique a pression constante
  128. 'DEBPROC' PRPHE PTOT*'FLOTTANT' T/'CHPOINT' TS/'FLOTTANT' ;
  129. PREF = 101325. ;
  130. 'SI' ('&lt;EG' PTOT PREF) ;
  131. P = PTOT '*' PREF ;
  132. 'FINSI' ;
  133. RHE = 2077.22 ;
  134. CPHE = 5193. ;
  135. C1 = 9.489433E-04 ;
  136. C2 = 9.528079E-04 ;
  137. C3 = 3.420680E-02 ;
  138. C4 = 2.739470E-03 ;
  139. C5 = 9.409120E-04 ;
  140. 'SI' ('EXIST' T ) ;
  141. B = 'INVE' (T '*' C5 '+' 1.0) ;
  142. B = B '*' C4 '-' (( 'INVE' (T '*' C3 '-' 1.0)) '*' C2);
  143. B = B '+' C1 ;
  144. RHOHE = ('INVE' (T '*' RHE '+' (B '*' P))) '*' P ;
  145. MUHE = ( T '**' 0.687) '*' 3.953E-07 ;
  146. LHE = ( T '**' 0.701 ) '*' 2.774E-03 ;
  147. 'RESPROC' RHOHE MUHE LHE CPHE ;
  148. 'FINSI' ;
  149. 'SI' ('EXIST' TS ) ;
  150. B = 1.0 '/' (TS '*' C5 '+' 1.0) ;
  151. B = B '*' C4 '-' (C2 '/' (TS '*' C3 '-' 1.0)) ;
  152. B = B '+' C1 ;
  153. RHOHE = (P '/' (TS '*' RHE '+' (B '*' P)));
  154. MUHE = ( TS '**' 0.687) '*' 3.953E-07 ;
  155. LHE = ( TS '**' 0.701 ) '*' 2.774E-03 ;
  156. 'RESPROC' RHOHE MUHE LHE CPHE ;
  157. 'FINSI' ;
  158. 'FINPROC' ;
  159. * NOM : PRPCB
  160. * Conductivité thermique d'un combustible CerCer
  161. * Input : T ou TS : temperature sous forme de CHPOINT ou FLOTTANT
  162. * (en K)
  163. * Domaine de validité : 500 a 1300 degres C
  164. * PORO : Porosité de taille contrôlée
  165. * BETA : Coefficient pour la prise en compte de la porosité
  166. * dans la loi de Maxwell-Eucken
  167. * IRRAD : Combustible irradié ou pas ?
  168. * Si irradié, on choisit un taux de combustion de 10 at%
  169. * pour le (U,PU)C et une température d'irradiation
  170. * égale à 1125°C pour le SiC .
  171. * FVOL : Fraction volumique d'inclusions (U,Pu)C
  172. * Le reste est de la matrice (SiC)
  173. * Output : LUPU : conductivité thermique du (U,Pu) de meme type que T
  174. * LSIC : conductivité thermique du Sic de meme type que T
  175. * LCB : conductivité thermique du combustible CerCer
  176. 'DEBPROC' PRPCB PORO*'FLOTTANT' BETA*'FLOTTANT'
  177. IRRAD*'LOGIQUE' FVOL*'FLOTTANT'
  178. T/'CHPOINT' TS/'FLOTTANT' ;
  179. * (U,Pu)C
  180. C1 = 12.76D0 ;
  181. C2 = 8.71D-3 ;
  182. C3 = -1.88D-6 ;
  183. * SiC
  184. A = 42.58D0 ;
  185. B = -1.5564D4 ;
  186. C = 1.2977D7 ;
  187. D = -1.8458D9 ;
  188. * SiC irradié
  189. E = 3.91112D-2 ;
  190. F = 2.24732D-3 ;
  191. TIRRADC = 1125.D0 ;
  192. 'SI' ('EXISTE' T) ;
  193. TC = '-' T 273.15D0 ;
  194. TC2 = '**' TC 2 ;
  195. * (U,Pu)C non irradie et 100% dense
  196. LUPU1 = '+' ('+' ('*' TC C2) ('*' TC2 C3))
  197. C1 ;
  198. * (U,Pu)C non irradie poreux
  199. CPOR = '/' ('-' 1.D0 PORO) ('+' 1.D0 ('*' BETA PORO)) ;
  200. LUPU2 = '*' LUPU1 CPOR ;
  201. * (U,Pu)C irradie poreux
  202. 'SI' IRRAD ;
  203. CIRRAD = ('-' 1.D0 ('*' 0.02D0 10.D0)) ;
  204. LUPU = '*' LUPU2 CIRRAD ;
  205. 'SINON' ;
  206. LUPU = LUPU2 ;
  207. 'FINSI' ;
  208. * SiC non irradie et 100% dense
  209. IT = 'INVERSE' T ;
  210. IT2 = '**' IT 2 ;
  211. IT3 = '*' IT2 IT ;
  212. LSIC1 = '+' ('+' ('*' IT B)
  213. ('+' ('*' IT2 C) ('*' IT3 D)))
  214. A ;
  215. * SiC irradie
  216. 'SI' IRRAD ;
  217. CIRRAD = '*' ('EXP' ('*' TIRRADC F))
  218. E ;
  219. LSIC = '*' LSIC1 CIRRAD ;
  220. 'SINON' ;
  221. LSIC = LSIC1 ;
  222. 'FINSI' ;
  223. * CerCer
  224. LMAT = LSIC ;
  225. LINCL = LUPU ;
  226. LMAT2 = '*' LMAT 2.D0 ;
  227. LMI = '-' LMAT LINCL ;
  228. NUMER = '+' LINCL
  229. ('+' LMAT2
  230. ('*' LMI ('*' -2.D0 FVOL))) ;
  231. DENOM = '+' LINCL
  232. ('+' LMAT2
  233. ('*' LMI FVOL)) ;
  234. LCB = '*' LMAT ('*' NUMER ('INVERSE' DENOM)) ;
  235. 'RESPROC' LUPU LSIC LCB ;
  236. 'FINSI' ;
  237. 'SI' ('EXISTE' TS) ;
  238. TSC = '-' TS 273.15D0 ;
  239. TSC2 = '**' TSC 2 ;
  240. * (U,Pu)C non irradie et 100% dense
  241. LUPU1 = '+' ('+' ('*' TSC C2) ('*' TSC2 C3))
  242. C1 ;
  243. * (U,Pu)C non irradie poreux
  244. CPOR = '/' ('-' 1.D0 PORO) ('+' 1.D0 ('*' BETA PORO)) ;
  245. LUPU2 = '*' LUPU1 CPOR ;
  246. * (U,Pu)C irradie poreux
  247. 'SI' IRRAD ;
  248. CIRRAD = ('-' 1.D0 ('*' 0.02D0 10.D0)) ;
  249. LUPU = '*' LUPU2 CIRRAD ;
  250. 'SINON' ;
  251. LUPU = LUPU2 ;
  252. 'FINSI' ;
  253. * SiC non irradie et 100% dense
  254. ITS = '/' 1.D0 TS ;
  255. ITS2 = '**' ITS 2 ;
  256. ITS3 = '*' ITS2 ITS ;
  257. LSIC1 = '+' ('+' ('*' ITS B)
  258. ('+' ('*' ITS2 C) ('*' ITS3 D)))
  259. A ;
  260. * SiC irradie
  261. 'SI' IRRAD ;
  262. CIRRAD = '*' ('EXP' ('*' TIRRADC F))
  263. E ;
  264. LSIC = '*' LSIC1 CIRRAD ;
  265. 'SINON' ;
  266. LSIC = LSIC1 ;
  267. 'FINSI' ;
  268. * CerCer
  269. LMAT = LSIC ;
  270. LINCL = LUPU ;
  271. LMAT2 = '*' LMAT 2.D0 ;
  272. LMI = '-' LMAT LINCL ;
  273. NUMER = '+' LINCL
  274. ('+' LMAT2
  275. ('*' LMI ('*' -2.D0 FVOL))) ;
  276. DENOM = '+' LINCL
  277. ('+' LMAT2
  278. ('*' LMI FVOL)) ;
  279. LCB = '*' LMAT ('*' NUMER ('/' 1.D0 DENOM)) ;
  280. 'RESPROC' LUPU LSIC LCB ;
  281. 'FINSI' ;
  282. 'FINPROC' ;
  283. * NOM : CALCUL
  284. * DESCRIPTION : Boucle de calcul
  285. 'DEBPROC' CALCUL ;
  286. *
  287. * Puissance volumique dans le combustible
  288. *
  289. voltot = haut '*' ('/' 1.D0 8.D0) '*' pas '*' pas '*' t30 ;
  290. volcb = 'MAXIMUM' ('RESULT' ('DOMA' $mtcb 'VOLUME')) ;
  291. pmoy = '*' pvol ('/' voltot volcb) ;
  292. 'SI' ('NON' pvar) ;
  293. pcb = pmoy ;
  294. 'SINON' ;
  295. gamma = 1.5D0 ;
  296. raddeg = '/' 180.D0 PI ;
  297. zcb = 'COORDONNEE' 3 ('DOMA' $mtcb 'CENTRE') ;
  298. zmoy = '/' haut 2.D0 ;
  299. zcb = '+' zcb ('*' zmoy -1.D0) ;
  300. pmax = '*' pmoy ('/' gamma ('SIN' ('*' raddeg gamma))) ;
  301. fccos = '/' (2.D0 '*' gamma '*' raddeg) haut ;
  302. pcb1 = '*' ('COS' ('*' zcb fccos)) pmax ;
  303. chvol = 'DOMA' $mtcb 'VOLUME' ;
  304. puis1 = 'MAXIMUM' ('RESULT' ('*' chvol pmoy)) ;
  305. puis2 = 'MAXIMUM' ('RESULT' ('*' chvol pcb1)) ;
  306. 'SI' ('NON' ('EGA' puis1 puis2 ('*' 0.01 ('ABS' puis2)))) ;
  307. 'MESSAGE' ('CHAINE' 'puis1 = ' puis1 ) ;
  308. 'MESSAGE' ('CHAINE' 'puis2 = ' puis2 ) ;
  309. 'ERREUR' 'Les deux puissances devraient etre a peu pres egales' ;
  310. 'FINSI' ;
  311. * Correction
  312. facor = '/' puis1 puis2 ;
  313. pcb2 = '*' pcb1 facor ;
  314. pcb = 'KCHT' $mtcb 'SCAL' 'CENTRE' pcb2 ;
  315. 'FINSI' ;
  316. *
  317. * Débit d'hélium
  318. *
  319. qhe = qhenom ;
  320. 'MESSAGE' ('CHAINE' 'Débit=' qhe ' kg.m-2.s-1') ;
  321. *
  322. * Initialisation des tables pour les calculs thermiques
  323. * dans le combustible et dans l'hélium
  324. *
  325. rvcb = 'EQEX' 'ITMA' 1 'NITER' 1 'FIDT' 1000 ;
  326. rvcb = 'EQEX' rvcb
  327. 'OPTI' 'EF' 'IMPL'
  328. 'ZONE' $mtcb 'OPER' 'LAPN' 'LCB' 'INCO' 'TCB'
  329. ;
  330. rvcb = 'EQEX' rvcb
  331. 'OPTI' 'EF' 'IMPL'
  332. 'ZONE' $mtcb 'OPER' 'FIMP' 'PCB' 'INCO' 'TCB'
  333. ;
  334. rvcb = 'EQEX' rvcb
  335. 'OPTI' 'EF' 'IMPL'
  336. 'ZONE' $mtif 'OPER' 'ECHI' 'H' 'T0' 'INCO' 'TCB' 'TCB'
  337. ;
  338. rvhe = 'EQEX' 'ITMA' 1 'NITER' 1 'FIDT' 1000 ;
  339. rvhe = 'EQEX' rvhe
  340. 'OPTI' 'EF' 'IMPL' 'CENTREE' 'NOCONS'
  341. 'ZONE' $mthe 'OPER' 'KONV' 'RCPHE' 'UHE' 'LHE' 'INCO' 'THE'
  342. ;
  343. rvhe = 'EQEX' rvhe
  344. 'OPTI' 'EF' 'IMPL'
  345. 'ZONE' $mthe 'OPER' 'LAPN' 'LHE' 'INCO' 'THE'
  346. ;
  347. rvhe = 'EQEX' rvhe
  348. 'OPTI' 'EF' 'IMPL'
  349. 'ZONE' $mthe 'OPER' 'FIMP' 'PHE' 'INCO' 'THE'
  350. ;
  351. rvhe = 'EQEX' rvhe
  352. 'CLIM' 'THE' 'TIMP' ('DOMA' $bahe 'MAILLAGE') theek ;
  353. rvi = 'TABLE' 'INCO' ;
  354. rvcb . 'INCO' = rvi ;
  355. rvhe . 'INCO' = rvi ;
  356. rvi . 'TCB' = 'KCHT' $mtcb 'SCAL' 'SOMMET' theek ;
  357. lupu lsic lcb = PRPCB por bet irrad fvo theek ;
  358. rvi . 'LCB' = 'KCHT' $mtcb 'SCAL' 'CENTRE' lcb ;
  359. rvi . 'PCB' = pcb ;
  360. rvi . 'T0' = 'KCHT' $mtif 'SCAL' 'CENTRE' 0.D0 ;
  361. rvi . 'F0' = 'KCHT' $mtif 'SCAL' 'CENTRE' 0.D0 ;
  362. rvi . 'H' = 'KCHT' $mtif 'SCAL' 'CENTRE' 0.D0 ;
  363. rvi . 'THE' = 'KCHT' $mthe 'SCAL' 'SOMMET' theek ;
  364. rvi . 'PHE' = 'KCHT' $mthe 'SCAL' 'CENTRE' 0.D0 ;
  365. *
  366. * Initialisation des propriétés physiques de l'hélium
  367. *
  368. rhe muhe lhe cphe = PRPHE prhe theek ;
  369. uhe = '/' qhe rhe ;
  370. rvi . 'RCPHE' = 'KCHT' $mthe 'SCAL' 'CENTRE' ('*' rhe cphe) ;
  371. rvi . 'LHE' = 'KCHT' $mthe 'SCAL' 'CENTRE' lhe ;
  372. rvi . 'UHE' = 'KCHT' $mthe 'VECT' 'SOMMET' (0.D0 0.D0 uhe) ;
  373. rvi . 'QHE' = qhe ;
  374. *'OPTION' 'DONN' 5 ;
  375. ***************************************
  376. *
  377. * BOUCLE DE CALCUL
  378. *
  379. ***************************************
  380. 'REPETER' bouc 10 ;
  381. * 1) Calcul de la température moyenne dans l'hélium
  382. tmoyhe = 'NOEL' $mthe (rvi . 'THE') ;
  383. 'MESSAGE' 'Maxi Temperature moyenne helium (degres C) : '
  384. ('-' ('MAXIMUM' tmoyhe) 273.15D0) ;
  385. * 2) Transfert sur l'interface
  386. tmtif = '*' mcf tmoyhe ;
  387. rvi . 'T0' = 'KCHT' $mtif 'SCAL' 'CENTRE' tmtif ;
  388. * 3) Calcul du coefficient d'échange à l'interface
  389. * et des propriétés physiques du combustible
  390. * à partir des températures à l'instant précédent.
  391. * Température de mélange
  392. tm = rvi . 'T0' ;
  393. * Température à la paroi
  394. tp = 'NOEL' $mtif (rvi . 'TCB') ;
  395. t0 = '*' ('+' tm tp) 0.5D0 ;
  396. * t0 = rvi . 'T0' ;
  397. rho0 mu0 l0 cp0 = PRPHE prhe t0 ;
  398. pran0 = '*' ('*' mu0 cp0) ('INVERSE' l0) ;
  399. reyn0 = '*' ('*' qhe diam) ('INVERSE' mu0) ;
  400. * Corrélation de Colburn
  401. nuss0 = 0.023 '*' ('**' reyn0 0.8D0)
  402. '*' ('**' pran0 ('/' 1.D0 3.D0)) ;
  403. h0 = '/' ('*' nuss0 l0) diam ;
  404. rvi . 'H' = 'KCHT' $mtif 'SCAL' 'CENTRE' h0 ;
  405. * Propriétés physiques du combustible
  406. tcbck = 'NOEL' $mtcb (rvi . 'TCB') ;
  407. lupu lsic lcb = PRPCB por bet irrad fvo tcbck ;
  408. rvi . 'LCB' = 'KCHT' $mtcb 'SCAL' 'CENTRE' lcb ;
  409. * 4) Résolution de la thermique dans le combustible
  410. EXEC rvcb ;
  411. * 5) Calcul du flux de chaleur à la surface du combustible
  412. rvmdia1 = 'EQEX' 'OPTI' 'VF' 'IMPL'
  413. 'ZONE' $mtif 'OPER' 'MDIA' 'H' 'INCO' 'TCB' 'F0' ;
  414. rvmdia1 . 'INCO' = rvi ;
  415. smdia1 mmdia1 = 'MDIA' (rvmdia1 . '1MDIA') ;
  416. rvmdia2 = 'EQEX' 'OPTI' 'VF' 'IMPL'
  417. 'ZONE' $mtif 'OPER' 'MDIA' 'H' 'INCO' 'T0' 'F0' ;
  418. rvmdia2 . 'INCO' = rvi ;
  419. smdia2 mmdia2 = 'MDIA' (rvmdia2 . '1MDIA') ;
  420. f0 = 'NOMC' 'SCAL' ('-' ('KOPS' mmdia1 '*'
  421. ('NOMC' 'TCB' (rvi . 'TCB')))
  422. ('KOPS' mmdia2 '*'
  423. ('NOMC' 'T0' (rvi . 'T0'))))
  424. ;
  425. 'MESSAGE' 'Flux integre sur la paroi (W) : '
  426. ('MAXIMUM' ('RESULT' f0)) ;
  427. * 6) Transfert en une puissance volumique dans l'hélium
  428. rvi . 'F0' = f0 ;
  429. phe = '*' mfc f0 ;
  430. rvi . 'PHE' = 'KCHT' $mthe 'SCAL' 'CENTRE' phe ;
  431. *
  432. * 7) Calcul des propriétés de physiques de l'hélium
  433. * a partir des propriétés à l'instant précédent.
  434. *
  435. theck = 'NOEL' $mthe (rvi . 'THE') ;
  436. thesk = rvi . 'THE' ;
  437. rhec muhec lhec cphec = PRPHE prhe theck ;
  438. rhes muhes lhes cphes = PRPHE prhe thesk ;
  439. uhes = 'NOMC' 'UZ' ('*' qhe ('INVERSE' rhes)) ;
  440. rvi . 'RCPHE' = 'KCHT' $mthe 'SCAL' 'CENTRE' ('*' rhec cphec) ;
  441. rvi . 'LHE' = 'KCHT' $mthe 'SCAL' 'CENTRE' lhec ;
  442. rvi . 'UHE' = 'KCHT' $mthe 'VECT' 'SOMMET' uhes ;
  443. * 8) Calcul de la température dans l'hélium
  444. EXEC rvhe ;
  445. 'FIN' bouc ;
  446. 'RESPRO' rvi ;
  447. 'FINPROC' ;
  448. *
  449. * Fin des procédures
  450. *
  451. ************************************************************************
  452. 'OPTION' 'ECHO' 1 ;
  453. 'TEMPS' 'ZERO' ;
  454. 'OPTION' 'DIME' 3 ;
  455. 'OPTION' 'ISOV' 'SULI' ;
  456. nbisov = 25 ;
  457. 'SI' ('NON' interact) ;
  458. 'OPTION' 'TRAC' 'PSC' ;
  459. 'OPTION' 'ECHO' 0 ;
  460. 'SINON' ;
  461. 'OPTION' 'TRAC' 'X' ;
  462. 'FINSI' ;
  463. formflot ='(1PE9.2)' ;
  464. ***************************************
  465. *
  466. * MAILLAGE
  467. *
  468. ***************************************
  469. * géométrie
  470. pas = 21.1D-3 ;
  471. diam = 16.5D-3 ;
  472. haut = 2.D0 ;
  473. *nbase = 10 ;
  474. *nhaut = 20 ;
  475. *nbase = 7 ;
  476. nbase = 5 ;
  477. nhaut = 15 ;
  478. *
  479. * Physique
  480. *
  481. * gaz
  482. prhe = 90.D0 ;
  483. * débit d'hélium (kg.m-2.s-1)
  484. qhenom = 210.D0 ;
  485. ** en K !
  486. theec = 480.D0 ;
  487. theek = '+' theec 273.15D0 ;
  488. *
  489. * Combustible
  490. *
  491. *
  492. * Porosité (15%) et coefficient beta (2)
  493. *
  494. por = 0.15D0 ;
  495. bet = 2.D0 ;
  496. *
  497. * Fraction volumique d'inclusions (U,Pu)C (70% pour
  498. * le combustible performant)
  499. *
  500. fvo = 0.7D0 ;
  501. *
  502. * Attention a la définition de la puissance volumique.
  503. * Ici, c'est la puissance totale dégagée par le combustible
  504. * divisée par le volume total (combustible+refroidissement)
  505. * Donc, il y a une correction pour avoir la puissance générée par unité
  506. * de volume de combustible (cf. variable pvol)
  507. *
  508. pvol = 1.D+8 ;
  509. titglob = 'CHAINE' ' Nominal' ;
  510. 'SI' irrad ;
  511. titglob = 'CHAINE' titglob ' Cb irradie' ;
  512. 'SINON' ;
  513. titglob = 'CHAINE' titglob ' Cb neuf' ;
  514. 'FINSI' ;
  515. q = '/' pas 2.D0 ;
  516. R = '/' diam 2.D0 ;
  517. s30 = 'SIN' 30.D0 ;
  518. c30 = 'COS' 30.D0 ;
  519. t30 = '/' s30 c30 ;
  520. * longueurs de chaque ligne
  521. lcer = ('*' ('/' PI 6.D0) R) ;
  522. lpdia = '-' q R ;
  523. lgdia = '-' ('/' q c30) R ;
  524. lhex = ('*' q t30) ;
  525. * On choisit comme échelle la plus petite des longueurs
  526. lbase = 'MINIMUM' ('PROG' lcer lpdia lgdia lhex) ;
  527. * On calcule les facteurs qui permettent d'avoir un maillage
  528. * a peu près régulier en longueurs
  529. fcer = '/' lcer lbase ;
  530. fpdia = '/' lpdia lbase ;
  531. fgdia = '/' lgdia lbase ;
  532. fhex = '/' lhex lbase ;
  533. * maillage
  534. rbase = 'FLOTTANT' nbase ;
  535. ncer = '*' rbase fcer ;
  536. nhex = '*' rbase fhex ;
  537. npdia = '*' rbase fpdia ;
  538. ngdia = '*' rbase fgdia ;
  539. *
  540. ncer = 'ENTIER' ('+' ncer 0.99D0) ;
  541. nhex = 'ENTIER' ('+' nhex 0.99D0) ;
  542. npdia = 'ENTIER' ('+' npdia 0.99D0) ;
  543. ngdia = 'ENTIER' ('+' ngdia 0.99D0) ;
  544. 'SI' ('EGA' discr 'LINE') ;
  545. 'OPTION' 'DIME' 2 'ELEM' 'QUA4' ;
  546. 'SINON' ;
  547. 'OPTION' 'DIME' 2 'ELEM' 'QUA8' ;
  548. 'FINSI' ;
  549. * définition des points pour le combustible
  550. p0 = 0.D0 0.D0 ;
  551. p1 = R 0.D0 ;
  552. p2 = q 0.D0 ;
  553. p3 = q ('*' q t30) ;
  554. p4 = ('*' R c30) ('*' R s30) ;
  555. * définition des lignes pour le combustible
  556. l1 = 'DROIT' npdia p1 p2 ;
  557. l2 = 'DROIT' nhex p2 p3 ;
  558. l3 = 'DROIT' ngdia p3 p4 ;
  559. l4 = 'CERCLE' ncer p4 p0 p1 ;
  560. * définition des surfaces pour le combustible
  561. ctn = l1 'ET' l2 'ET' l3 'ET' l4 ;
  562. stcb = 'SURFACE' ctn 'PLANE' ;
  563. * définition des points pour l'hélium (un triangle isocèle de surface
  564. * égale au secteur circulaire)
  565. Rp = '*' R ('**' ('/' PI 3.D0) 0.5D0) ;
  566. p5 = Rp 0.D0 ;
  567. p6 = ('*' Rp c30) ('*' Rp s30) ;
  568. sthe = 'MANUEL' 'TRI3' p0 p5 p6 ;
  569. 'SI' ('NON' ('EGA' discr 'LINE')) ;
  570. sthe = 'CHANGER' 'QUADRATIQUE' sthe ;
  571. 'FINSI' ;
  572. *'TRACER' (stcb 'ET' sthe) ;
  573. *
  574. 'SI' ('EGA' discr 'LINE') ;
  575. 'OPTION' 'DIME' 3 'ELEM' 'CUB8' ;
  576. 'SINON' ;
  577. 'OPTION' 'DIME' 3 'ELEM' 'CU20' ;
  578. 'FINSI' ;
  579. hnh = '/' haut ('FLOTTANT' nhaut) ;
  580. vechau = 0.D0 0.D0 hnh ;
  581. * définition des éléments dans une hauteur élémentaire
  582. bahe = sthe ;
  583. mthe1 = 'VOLUME' sthe 1 'TRAN' vechau ;
  584. mtif1 = 'TRANSLATION' l4 1 vechau ;
  585. mtcb1 = 'VOLUME' stcb 1 'TRAN' vechau ;
  586. mthe = mthe1 ;
  587. mtif = mtif1 ;
  588. mtcb = mtcb1 ;
  589. tabfac = 'TABLE' ;
  590. tabele = 'TABLE' ;
  591. icpt = 1 ;
  592. nmtif1 = 'NBEL' mtif1 ;
  593. 'REPETER' imtif1 nmtif1 ;
  594. lmtif1 = 'ELEM' mtif1 &imtif1 ;
  595. tabfac . icpt = lmtif1 ;
  596. tabele . icpt = mthe1 ;
  597. icpt = '+' icpt 1 ;
  598. 'FIN' imtif1 ;
  599. * Génération par translation de la hauteur
  600. 'REPETER' ihaut ('-' nhaut 1) ;
  601. vectran = 0.D0 0.D0 ('*' hnh ('FLOTTANT' &ihaut)) ;
  602. mthe2 mtif2 mtcb2 = 'PLUS' mthe1 mtif1 mtcb1 vectran ;
  603. nmtif2 = 'NBEL' mtif2 ;
  604. 'REPETER' imtif2 nmtif2 ;
  605. lmtif2 = 'ELEM' mtif2 &imtif2 ;
  606. tabfac . icpt = lmtif2 ;
  607. tabele . icpt = mthe2 ;
  608. icpt = '+' icpt 1 ;
  609. 'FIN' imtif2 ;
  610. mthe = 'ET' mthe2 mthe ;
  611. mtif = 'ET' mtif2 mtif ;
  612. mtcb = 'ET' mtcb2 mtcb ;
  613. 'FIN' ihaut ;
  614. * Génération des lignes dans l'hélium
  615. vechaut = 0.D0 0.D0 haut ;
  616. lighe1 = p0 'DROIT' nhaut ('PLUS' p0 vechaut) ;
  617. lighe2 = p5 'DROIT' nhaut ('PLUS' p5 vechaut) ;
  618. lighe3 = p6 'DROIT' nhaut ('PLUS' p6 vechaut) ;
  619. mt = ('ET' mthe mtcb) ;
  620. pelim = '*' ('**' ('/' ('MESURE' mt) ('NBEL' mt))
  621. ('/' 1.D0 ('VALEUR' 'DIME')))
  622. 1.D-3 ;
  623. 'ELIMINATION' (mtif 'ET' mtcb) pelim ;
  624. 'ELIMINATION' (mthe 'ET' bahe 'ET' lighe1
  625. 'ET' lighe2 'ET' lighe3)
  626. pelim ;
  627. *
  628. * Génération des QUAFs
  629. *
  630. _bahe = 'CHANGER' bahe 'QUAF' ;
  631. _mthe = 'CHANGER' mthe 'QUAF' ;
  632. _mtif = 'CHANGER' mtif 'QUAF' ;
  633. _mtcb = 'CHANGER' mtcb 'QUAF' ;
  634. ***************************************
  635. *
  636. * CREATION DE LA MATRICE DE COUPLAGE
  637. *
  638. ***************************************
  639. *
  640. * Génération de connectivites face-centre cfc
  641. * et des matrices de passage centre-face pour projeter T0
  642. * et face-centre pour ramener une intégrale de flux
  643. * a une puissance volumique
  644. *
  645. nitab = 'DIME' tabfac ;
  646. 'REPETER' iitab nitab ;
  647. ifac = tabfac . &iitab ;
  648. iqfac = 'CHANGER' ifac 'QUAF' ;
  649. miqfac = 'MODELISER' iqfac 'NAVIER_STOKES' 'QUAF';
  650. ciqfac = ('DOMA' miqfac 'CENTRE') 'POIN' 1 ;
  651. iele = tabele . &iitab ;
  652. iqele = 'CHANGER' iele 'QUAF' ;
  653. miqele = 'MODELISER' iqele 'NAVIER_STOKES' 'QUAF';
  654. ciqele = ('DOMA' miqele 'CENTRE') 'POIN' 1 ;
  655. * Attention ('MESU' iele) ne fonctionne pas en axisymetrique
  656. volele = 'MAXIMUM' ('DOMA' miqele 'VOLUME') ;
  657. clfc = 'MANUEL' 'SEG2' ciqfac ciqele ;
  658. mlcf = 'MANUEL' 'RIGIDITE' clfc ('MOTS' 'T') 'QUEL'
  659. ('PROG' 0.D0 1.D0) ('PROG' 0.D0 0.D0) ;
  660. mlfc = 'MANUEL' 'RIGIDITE' clfc ('MOTS' 'T') 'QUEL'
  661. ('PROG' 0.D0 0.D0)
  662. ('PROG' ('/' 1.D0 volele) 0.D0) ;
  663. 'SI' ('EGA' &iitab 1) ;
  664. cfc = clfc ;
  665. mcf = mlcf ;
  666. mfc = mlfc ;
  667. 'SINON' ;
  668. cfc = 'ET' cfc clfc ;
  669. mcf = 'ET' mcf mlcf ;
  670. mfc = 'ET' mfc mlfc ;
  671. 'FINSI' ;
  672. 'FIN' iitab ;
  673. 'ELIMINATION' (_bahe 'ET' _mthe 'ET' cfc) pelim ;
  674. 'ELIMINATION' (_mtcb 'ET' _mtif 'ET' cfc) pelim ;
  675. mcf = 'CHANGER' mcf 'INCO' ('MOTS' 'T') ('MOTS' 'SCAL')
  676. ('MOTS' 'Q') ('MOTS' 'SCAL') ;
  677. mfc = 'CHANGER' mfc 'INCO' ('MOTS' 'T') ('MOTS' 'SCAL')
  678. ('MOTS' 'Q') ('MOTS' 'SCAL') ;
  679. ***************************************
  680. *
  681. * PREPARATION DU CALCUL
  682. *
  683. ***************************************
  684. *
  685. * Modèles Navier-Stokes
  686. *
  687. $bahe = 'MODELISER' _bahe 'NAVIER_STOKES' discr ;
  688. $mthe = 'MODELISER' _mthe 'NAVIER_STOKES' discr ;
  689. $mtif = 'MODELISER' _mtif 'NAVIER_STOKES' discr ;
  690. $mtcb = 'MODELISER' _mtcb 'NAVIER_STOKES' discr ;
  691. rvi = CALCUL ;
  692. TABTPS = TEMP 'NOEC' ;
  693. tcpu = TABTPS.'TEMPS_CPU'.'INITIAL' ;
  694. tcpus = '/' ('FLOTTANT' tcpu) 100.D0 ;
  695. 'MESSAGE' ('CHAINE' 'tcpus=' tcpus) ;
  696. ***************************************
  697. *
  698. * POST-TRAITEMENT
  699. *
  700. ***************************************
  701. 'SI' graph ;
  702. *
  703. * Maillage (+ changement d'échelle adéquat)
  704. *
  705. _mt = 'ET' _mthe _mtcb ;
  706. mt = 'ET' mthe mtcb ;
  707. zmt = 'COORDONNEE' 3 _mt ;
  708. factech = ('-' ('/' 1.D0 75.D0) 1.D0) ;
  709. dxmt = 'NOMC' 'UZ' ('*' zmt factech) 'NATURE' 'DISCRET' ;
  710. orig = 'FORME' ;
  711. 'FORME' dxmt ;
  712. xmthe ymthe zmthe = 'COORDONNEE' mthe ;
  713. factech = ('-' ('/' 1.D0 4.D0) 1.D0) ;
  714. dxmt = 'ET'
  715. ('NOMC' 'UX' ('*' xmthe factech) 'NATURE' 'DISCRET')
  716. ('NOMC' 'UY' ('*' ymthe factech) 'NATURE' 'DISCRET')
  717. ;
  718. * manipulation maillage et champ de temperature
  719. tcbc = ('-' (rvi . 'TCB') 273.15D0) ;
  720. tcbc2 mtcb2 = tcbc mtcb 'TOURNER' 150.D0
  721. (0.D0 0.D0 0.D0) (0.D0 0.D0 1.D0) ;
  722. thec = ('-' (rvi . 'THE') 273.15D0) ;
  723. thec2 mthe2 = thec mthe 'PLUS' dxmt ;
  724. xmt ymt zmt = 'COORDONNEE' _mt ;
  725. mxmt = 'MAXIMUM' xmt ;
  726. mymt = 'MAXIMUM' ymt ;
  727. mzmt = 'MAXIMUM' zmt ;
  728. oeil = (('*' mxmt 3.D0) ('*' mymt -4.D0) ('*' mzmt 2.85D0)) ;
  729. oeil2 = (('*' mxmt 3.D0) ('*' mymt 4.D0) ('*' mzmt 1.85D0)) ;
  730. mail = 'ET' mtcb mthe2 ;
  731. npomail = 'NBNO' mail ;
  732. nelmail = 'NBEL' mail ;
  733. titmail = 'CHAINE' 'Maillage ' 'NBPO=' npomail
  734. ' NBELEM=' nelmail titglob ;
  735. 'TRACER' oeil 'CACH' mail 'TITR' titmail ;
  736. *
  737. * Tracé des températures, du coefficient d'échange et de la
  738. * composante verticale des vitesses
  739. *
  740. tit = 'CHAINE' 'Temp. (°C)' ;
  741. tracchpo oeil (tcbc 'ET' tcbc2 'ET' thec2)
  742. (mtcb 'ET' mtcb2 'ET' mthe2)
  743. tit ;
  744. tit = 'CHAINE' 'Temp. Comb. (°C)' ;
  745. *tracchpo oeil tcbc mtcb tit ;
  746. *tracchpo oeil tcbc2 mtcb2 tit ;
  747. tracchpo oeil (tcbc 'ET' tcbc2) (mtcb 'ET' mtcb2) tit ;
  748. * Coefficient d'echange
  749. tit = 'CHAINE' 'Coeff. echange (W.m-2.K-1)' ;
  750. tracchml oeil $mtif (rvi . 'H') mtif tit ;
  751. tit = 'CHAINE' 'Temp. He (°C)' ;
  752. tracchpo oeil ('-' (rvi . 'THE') 273.15D0) mthe tit ;
  753. tit = 'CHAINE' 'Uz He (m.s-1)' ;
  754. tracchpo oeil ('EXCO' 'UZ' (rvi . 'UHE')) mthe tit ;
  755. 'FORME' orig ;
  756. *
  757. * Evolutions temperature et vitesse
  758. * dans les deux tubes d'hélium nominal et bouche
  759. *
  760. evthe1 = 'EVOL' 'CHPO' thec lighe1 ;
  761. titthe = 'CHAINE' 'Température Helium' ;
  762. titxthe = 'CHAINE' 's (m)' ;
  763. titythe = 'CHAINE' 'T (°C)' ;
  764. tthe = 'TABLE' ;
  765. tthe . 1 = 'CHAINE' 'MARQ CROI' ;
  766. *tthe . 'TITRE' = 'TABLE' ;
  767. *tthe . 'TITRE' . 1 = 'CHAINE' 'Theda(T) kg.m-3(°C)' ;
  768. 'DESSIN' evthe1 'TITR' titthe 'TITX' titxthe 'TITY' titythe
  769. 'MIMA' tthe ;
  770. *
  771. rviuhe = rvi . 'UHE' ;
  772. evuzhe1 = 'EVOL' 'CHPO' (rvi . 'UHE') 'UZ' lighe1 ;
  773. tituzhe = 'CHAINE' 'Vitesse verticale Helium' ;
  774. titxuzhe = 'CHAINE' 's (m)' ;
  775. tityuzhe = 'CHAINE' 'uz (m.s-1)' ;
  776. tuzhe = 'TABLE' ;
  777. tuzhe . 1 = 'CHAINE' 'MARQ CROI' ;
  778. *tuzhe . 'TITRE' = 'TABLE' ;
  779. *tuzhe . 'TITRE' . 1 = 'CHAINE' 'Uzheda(T) kg.m-3(°C)' ;
  780. 'DESSIN' evuzhe1 'TITR' tituzhe 'TITX' titxuzhe 'TITY' tityuzhe
  781. 'MIMA' tuzhe ;
  782. 'FINSI' ;
  783. *
  784. * Tableau recapitulatif et vérifications diverses
  785. *
  786. optecho = 'VALEUR' 'ECHO' ;
  787. 'OPTION' 'ECHO' 0 ;
  788. 'MESSAGE' '**************' ;
  789. 'MESSAGE' ('CHAINE' 'couplage_TH1D_Th3D_1 :' titglob) ;
  790. mail = mtcb 'ET' mthe ;
  791. npomail = 'NBNO' mail ;
  792. nelmail = 'NBEL' mail ;
  793. 'MESSAGE' ('CHAINE' 'nb. points=' npomail ' ; nb. elem=' nelmail) ;
  794. 'MESSAGE' ('CHAINE' 'Temps CPU (s)=' tcpus) ;
  795. 'MESSAGE' '-----------' ;
  796. 'MESSAGE' 'Verifications :' ;
  797. thek = rvi . 'THE' ;
  798. uhe = rvi . 'UHE' ;
  799. * Symétrie température dans lhélium
  800. evthe1 = 'EVOL' 'CHPO' thek lighe1 ;
  801. evthe2 = 'EVOL' 'CHPO' thek lighe2 ;
  802. evthe3 = 'EVOL' 'CHPO' thek lighe3 ;
  803. the1 = 'EXTRAIRE' evthe1 'ORDO' ;
  804. the2 = 'EXTRAIRE' evthe2 'ORDO' ;
  805. the3 = 'EXTRAIRE' evthe3 'ORDO' ;
  806. the2m1 = 'MAXIMUM' ('-' the2 the1) 'ABS' ;
  807. the3m1 = 'MAXIMUM' ('-' the3 the1) 'ABS' ;
  808. testsym1 = > the2m1 1.D-5 ;
  809. testsym2 = > the3m1 1.D-5 ;
  810. 'MESSAGE' 'Symétrie température dans lhélium :' ;
  811. 'MESSAGE' ('CHAINE' 'the2m1=' the2m1) ;
  812. 'MESSAGE' ('CHAINE' 'the3m1=' the3m1) ;
  813. 'SI' ('OU' testsym1 testsym2) ;
  814. 'MESSAGE' '!! Temperature non symetrique dans lhelium' ;
  815. 'FINSI' ;
  816. * Symétrie Uz dans lhélium
  817. evuzhe1 = 'EVOL' 'CHPO' uhe 'UZ' lighe1 ;
  818. evuzhe2 = 'EVOL' 'CHPO' uhe 'UZ' lighe2 ;
  819. evuzhe3 = 'EVOL' 'CHPO' uhe 'UZ' lighe3 ;
  820. uzhe1 = 'EXTRAIRE' evuzhe1 'ORDO' ;
  821. uzhe2 = 'EXTRAIRE' evuzhe2 'ORDO' ;
  822. uzhe3 = 'EXTRAIRE' evuzhe3 'ORDO' ;
  823. uzhe2m1 = 'MAXIMUM' ('-' uzhe2 uzhe1) 'ABS' ;
  824. uzhe3m1 = 'MAXIMUM' ('-' uzhe3 uzhe1) 'ABS' ;
  825. testsym3 = > uzhe2m1 1.D-5 ;
  826. testsym4 = > uzhe3m1 1.D-5 ;
  827. 'MESSAGE' 'Symétrie Uz dans lhélium :' ;
  828. 'MESSAGE' ('CHAINE' 'uzhe2m1=' uzhe2m1) ;
  829. 'MESSAGE' ('CHAINE' 'uzhe3m1=' uzhe3m1) ;
  830. 'SI' ('OU' testsym3 testsym4) ;
  831. 'MESSAGE' '!! Uz non symetrique dans lhelium' ;
  832. 'FINSI' ;
  833. * Nullité Vitesse horizontale dans lhélium
  834. uhex = 'EXCO' uhe 'UX' ;
  835. uhey = 'EXCO' uhe 'UY' ;
  836. muhex = 'MAXIMUM' uhex 'ABS' ;
  837. muhey = 'MAXIMUM' uhey 'ABS' ;
  838. testsymx = > muhex 1.D-5 ;
  839. testsymy = > muhey 1.D-5 ;
  840. 'MESSAGE' 'Nullité Vitesse horizontale dans lhélium :' ;
  841. 'MESSAGE' ('CHAINE' 'maxuhex=' muhex) ;
  842. 'MESSAGE' ('CHAINE' 'maxuhey=' muhey) ;
  843. 'SI' ('OU' testsymx testsymy) ;
  844. 'MESSAGE' '!! Composante UX ou UY non nulle dans lhelium' ;
  845. 'FINSI' ;
  846. * Verification des bilans d'énergie
  847. * Puissance dégagée dans le combustible
  848. pcb = rvi . 'PCB' ;
  849. chvolcb = 'DOMA' $mtcb 'VOLUME' ;
  850. pdegcb = 'MAXIMUM' ('RESULT' ('*' chvolcb pcb)) ;
  851. * Flux intégré sur la paroi
  852. f0 = rvi . 'F0' ;
  853. pdegif = 'MAXIMUM' ('RESULT' f0) ;
  854. errpif = '*' (ERRREL pdegif pdegcb) 100.D0 ;
  855. * Puissance acquise par l'hélium
  856. * Température en sortie
  857. the = rvi . 'THE' ;
  858. evthe = 'EVOL' 'CHPO' the lighe1 ;
  859. the = 'EXTRAIRE' evthe 'ORDO' ;
  860. tsor = 'EXTRAIRE' the ('DIME' the) ;
  861. tent = 'EXTRAIRE' the 1 ;
  862. she = 'MAXIMUM' ('RESULT' ('DOMA' $bahe 'VOLUME')) ;
  863. * On utilise le fait que le cp de l'hélium
  864. * est à peu près constant
  865. rhes muhes lhes cphes = PRPHE prhe tent ;
  866. qhe = rvi . 'QHE' ;
  867. pdeghe = qhe '*' she '*' cphes '*' ('-' tsor tent) ;
  868. errphe = '*' (ERRREL pdeghe pdegcb) 100.D0 ;
  869. 'MESSAGE' 'Bilan energie :' ;
  870. 'MESSAGE' ('CHAINE' 'pdegcb=' pdegcb) ;
  871. 'MESSAGE' ('CHAINE' 'pdegif=' pdegif
  872. ' ; errpif=' errpif ' %') ;
  873. 'MESSAGE' ('CHAINE' 'pdeghe=' pdeghe
  874. ' ; errphe=' errphe ' %') ;
  875. * Ce sont des erreurs en % (i.e. limite à 0.1%)
  876. testene1 = > errpif 1.D-1 ;
  877. testene2 = > errphe 1.D-1 ;
  878. 'SI' ('OU' testene1 testene2) ;
  879. 'MESSAGE' '!! Pb. conservation de lenergie' ;
  880. 'FINSI' ;
  881. * Verification du péclet de maille dans l'helium
  882. vmoyhe = 'NOEL' $mthe ('EXCO' 'UZ' (rvi . 'UHE')) ;
  883. lmoyhe = '/' ('DOMA' $mthe 'VOLUME') she ;
  884. alphhe = '/' (rvi. 'LHE') (rvi . 'RCPHE') ;
  885. peclhe = '/' ('*' vmoyhe lmoyhe) alphhe ;
  886. pemin = 'MINIMUM' peclhe ;
  887. pemax = 'MAXIMUM' peclhe ;
  888. 'MESSAGE' 'Peclet de maille helium :' ;
  889. 'MESSAGE' ('CHAINE' 'pemin=' pemin) ;
  890. 'MESSAGE' ('CHAINE' 'pemax=' pemax) ;
  891. * Temperature de sortie helium et temp. max combustible
  892. 'MESSAGE' '-----------' ;
  893. 'MESSAGE' 'Resultats Helium :' ;
  894. the = rvi . 'THE' ;
  895. uhe = 'EXCO' 'UZ' (rvi . 'UHE') ;
  896. evthe = 'EVOL' 'CHPO' the lighe1 ;
  897. evuhe = 'EVOL' 'CHPO' uhe lighe1 ;
  898. othe = 'EXTRAIRE' evthe 'ORDO' ;
  899. ouhe = 'EXTRAIRE' evuhe 'ORDO' ;
  900. thee = 'EXTRAIRE' othe 1 ;
  901. thes = 'EXTRAIRE' othe ('DIME' othe) ;
  902. uhee = 'EXTRAIRE' ouhe 1 ;
  903. uhes = 'EXTRAIRE' ouhe ('DIME' ouhe) ;
  904. 'MESSAGE' ('CHAINE' 'Vit. entree helium =' uhee ' m.s-1') ;
  905. 'MESSAGE' ('CHAINE' 'Vit. sortie helium =' uhes ' m.s-1') ;
  906. 'MESSAGE' ('CHAINE' 'Temp. entree helium =' ('-' thee 273.15D0)
  907. ' degres C') ;
  908. 'MESSAGE' ('CHAINE' 'Temp. sortie helium =' ('-' thes 273.15D0)
  909. ' degres C') ;
  910. 'MESSAGE' '-----------' ;
  911. 'MESSAGE' 'Resultats Combustible :' ;
  912. tcb = rvi . 'TCB' ;
  913. tmincbc = '-' ('MINIMUM' tcb) 273.15D0 ;
  914. amincbc = 'MAXIMUM' ('COORDONNEE' 3 (tcb 'POIN' 'MINI' 'ABS')) ;
  915. tmaxcbc = '-' ('MAXIMUM' tcb) 273.15D0 ;
  916. amaxcbc = 'MAXIMUM' ('COORDONNEE' 3 (tcb 'POIN' 'MAXI' 'ABS')) ;
  917. 'MESSAGE' ('CHAINE' 'Temp. min combustible=' tmincbc ' degres C') ;
  918. 'MESSAGE' ('CHAINE' ' altitude =' amincbc ' m') ;
  919. 'MESSAGE' ('CHAINE' 'Temp. max combustible=' tmaxcbc ' degres C') ;
  920. 'MESSAGE' ('CHAINE' ' altitude =' amaxcbc ' m') ;
  921. * Tests sur Tmax (02/12/03)
  922. * On utilise une discrétisation linéaire et une puissance variable
  923. 'SI' ('ET' ('EGA' discr 'LINE') pvar) ;
  924. 'SI' irrad ;
  925. tmref = 1.15458D3 ; altref = 1.2D0 ;
  926. 'SINON' ;
  927. tmref = 1.10135D3 ; altref = 1.2D0 ;
  928. 'FINSI' ;
  929. errtm = '*' (ERRREL tmaxcbc tmref) 100.D0 ;
  930. erral = '*' (ERRREL amaxcbc altref) 100.D0 ;
  931. 'MESSAGE' ('CHAINE' 'Temp. max cb ref =' tmref ' degres C') ;
  932. 'MESSAGE' ('CHAINE' ' alt. ref =' altref ' m') ;
  933. testtmax = 'OU' (> errtm 1.D-1) (> erral 1.D-1) ;
  934. 'SI' testtmax ;
  935. 'MESSAGE' '!! Pb. sur Tmax' ;
  936. 'FINSI' ;
  937. 'MESSAGE' '**************' ;
  938. 'SINON' ;
  939. testmax = FAUX ;
  940. 'FINSI' ;
  941. 'OPTION' 'ECHO' optecho ;
  942. *!
  943. *! Error checking
  944. *!
  945. testerr = testsym1 'OU' testsym2 'OU' testsym3 'OU' testsym4
  946. 'OU' testsymx 'OU' testsymy 'OU' testene1 'OU' testene2
  947. 'OU' testtmax ;
  948. 'SI' testerr ;
  949. 'MESSAGE' 'Il y a eu des erreurs' ;
  950. 'ERREUR' 5 ;
  951. 'FINSI' ;
  952. 'SI' interact ;
  953. 'OPTION' 'DONN' 5 ;
  954. 'FINSI' ;
  955. 'FIN' ;
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales