Télécharger ccaxi.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : ccaxi.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ***************** CAS TEST : CCAXI.DGIBI ***********************
  5. *
  6. * Convection naturelle dans un cylindre différentiellement chauffé
  7. * (Thot en bas, Tcold en haut, Flux nul sur la paroi verticale)
  8. * (Navier-Stokes incompressible et approximation de Boussinesq)
  9. *
  10. * Pour les paramètres choisis ici, le signe de AT0 intervenant dans
  11. * la condition initiale en température modifie le sens de rotation
  12. * de la solution stationnaire.
  13. *
  14. * Ref biblio : Liang S.F. et al., Buoyancy driven convection in
  15. * cylindrical geometries, in J. Fluid Mech., vol 36, pp 239-246,
  16. * (1969).
  17. *
  18. *------------------------------------------------------------------
  19. *
  20. * Algorithme de projection et élément (v,T)/p MACRO/CENTREP1
  21. *
  22. *------------------------------------------------------------------
  23. *
  24. * Auteur : Frédéric DABBENE
  25. * serre@semt2.smts.cea.fr le 01/09/2003
  26. *
  27. *------------------------------------------------------------------
  28. * Procédures spécifiques à évoluer et à généraliser
  29. *------------------------------------------------------------------
  30. * COURANT : Calcul de la fonction de courant d'un domaine fermé
  31. * CALCNUSS : Calcul du Nusselt (en adimensionné = grad THETA)
  32. *------------------------------------------------------------------
  33. * RESIDU : Calcul du residu en température, stratégie de pas de
  34. * temps, mise à jour de la viscosité et affichages
  35. *------------------------------------------------------------------
  36. *
  37. * COMPLET : Booleen mis à FAUX pour les tests de non régresssion
  38. * GRAPH : Booleen réalisation ou non des post-traitements
  39. * POST1 : Booleen indiquant si on affiche le résidu en NCLK
  40. * POST2 : Booleen indiquant si on affiche la température en NCLK
  41. * IRESU : Critère d'arret sur l'incrément de température
  42. *
  43. COMPLET = faux ;
  44. GRAPH = faux ;
  45. POST1 = faux ;
  46. POST2 = faux ;
  47. 'SI' COMPLET ;
  48. IRESU = 1.D-8 ;
  49. 'SINO' ;
  50. IRESU = 1.D-3 ;
  51. 'FINSI' ;
  52. *
  53. * NLI0 : Nombre d'isovaleurs
  54. NLI0 = 14 ;
  55. *
  56. * DT0 : Pas de temps
  57. * Pr : Nombre de Prandtl
  58. * Ra : Nombre de Rayleigh
  59. * AT0 : Coeff. pour l'initialisation de la température (entre -1 et 1)
  60. * ETA0 : Coeff. de la loi de viscosité en fonction de la température
  61. DT0 = 0.01 ;
  62. Pr = 2500. ;
  63. Ra = 5000. ;
  64. AT0 = 0.95 ;
  65. *** AT0 =-0.95 ;
  66. ETA0 =-0.2 ;
  67. *
  68. 'OPTION' 'DIME' 2 'ELEM' 'QUA8' 'MODE' 'AXIS' 'ISOV' 'SULI' 'ECHO' 0 ;
  69. *------------------------------------------------------------------
  70. * Choix de l'élément fini et du décentrement
  71. *------------------------------------------------------------------
  72. IDCEN = 0 ;
  73. DISCR = 'MACRO' ;
  74. KPRES = 'CENTREP1' ;
  75. 'SI' ('EGA' IDCEN 0) ;
  76. KSUPG = 'CENTREE' ;
  77. 'SINON' ;
  78. KSUPG = 'SUPG' ;
  79. * KSUPG = 'SUPGDC' ;
  80. 'FINSI' ;
  81. *
  82. *
  83. *==================================================================
  84. * Calcul de la fonction de courant d'un domaine fermé
  85. *==================================================================
  86. * E/ : UN : CHPO : Champ de vitesse
  87. * E/ : $DOMAINE : MMODEL 'NAVIER_STOKES' volumique
  88. * E/ : $CONTOUR : MMODEL 'NAVIER_STOKES' surfacique
  89. * /S : PSI : CHPO : Fonction de courant
  90. *------------------------------------------------------------------
  91. * On vérifie qu'on est en dimension 2 mais pas que div(UN)=0
  92. * Si le domaine est ouvert, modifier les conditions aux limites
  93. *------------------------------------------------------------------
  94. 'DEBPROC' courant un*chpoint $domaine*mmodel $contour*mmodel ;
  95. VAL0 = 'VALE' 'DIME' ;
  96. TEST = 'EGA' VAL0 2 ;
  97. 'SI' TEST ;
  98. 'MESS' 'Remember that Velocity have to be at zero divergence' ;
  99. 'SINON' ;
  100. 'ERRE' 832 ;
  101. 'QUIT' courant ;
  102. 'FINSI' ;
  103. VAL1 = 'VALE' 'MODE' ;
  104. TEST = 'EGA' VAL1 'AXIS' ;
  105. 'SI' TEST ;
  106. ROTU0 = 'KOPS' un 'ROT' $domaine ;
  107. XC1 YC1 = 'COOR' ('DOMA' $domaine 'CENTRE') ;
  108. VZ1 = 'NOEL' $domaine ('EXCO' un 'UY' 'SCAL') ;
  109. ROTU0 = 2. * VZ1 '-' (ROTU0 * XC1) ;
  110. 'SINO' ;
  111. ROTU0 = 'KOPS' un 'ROT' $domaine ;
  112. 'FINSI' ;
  113. CONT0 = 'DOMA' $contour 'MAILLAGE' ;
  114. RK = 'EQEX' $domaine 'OPTI' 'EF' 'IMPL'
  115. 'ZONE' $domaine 'OPER' 'LAPN' -1. 'INCO' 'PSI'
  116. 'ZONE' $domaine 'OPER' 'FIMP' ROTU0 'INCO' 'PSI'
  117. 'CLIM' 'PSI' 'TIMP' CONT0 0. ;
  118. RK . 'INCO' = 'TABLE' 'INCO' ;
  119. RK . 'INCO' . 'PSI' = 'KCHT' $domaine 'SCAL' 'SOMMET' 0. ;
  120. EXEC RK ;
  121. psi = 'COPI' RK . 'INCO' . 'PSI' ;
  122. 'FINP' psi ;
  123. *
  124. *==================================================================
  125. * Calcul du Nusselt (en adimensionné = grad THETA)
  126. *==================================================================
  127. * E/ : TN : CHPO : Température
  128. * E/ : $DOMAINE : MMODEL 'NAVIER_STOKES' volumique
  129. * E/ : $COTE : MMODEL 'NAVIER_STOKES' surfacique
  130. * /S : NUSS1 : CHPO : Nusselt local aux sommets
  131. * /S : RES1 : FLOTTANT : Nusselt moyen
  132. * /S : SUR1 : FLOTTANT : Surface totale considérée
  133. *------------------------------------------------------------------
  134. *
  135. 'DEBPROC' calcnuss tn*chpoint $domaine*mmodel $cote*mmodel ;
  136. GRADC0 = 'KOPS' tn 'GRAD' $domaine ;
  137. GRADS0 = 'ELNO' $domaine GRADC0 ;
  138. GS0 = 'KCHT' $cote 'VECT' 'SOMMET' GRADS0 ;
  139. GC0 = 'NOEL' $cote GS0 ;
  140. NORM1 = 'DOMA' $domaine 'NORMALE' ;
  141. NCOTE = 'KCHT' $cote 'VECT' 'CENTRE' NORM1 ;
  142. MOT1 = 'MOTS' 'UX' 'UY' ;
  143. NUSS1 = 'PSCA' GC0 NCOTE MOT1 MOT1 ;
  144. S1 = 'DOMA' $cote 'VOLUME' ;
  145. NUSS2 = NUSS1 * S1 ;
  146. RES1 = 'MAXI' ('RESU' NUSS2) ;
  147. SUR1 = 'MAXI' ('RESU' S1) ;
  148. 'FINP' nuss1 res1 sur1 ;
  149. *------------------------------------------------------------------
  150. *
  151. *
  152. *==================================================================
  153. * Calcul du résidu en température et arrêt suivant un critère
  154. *==================================================================
  155. * E/ : RVX : TABLE : TABLE des données créées par EQEX
  156. * ARG1 : Fréquence d'impression
  157. * ARG2 : Critère d'arrêt
  158. * /S : MAT1 : MATRIK : Objet vide
  159. * /S : CHP1 : CHPO : Objet vide
  160. *------------------------------------------------------------------
  161. *
  162. 'DEBPROC' residu rvx*table ;
  163. RV = rvx . 'EQEX' ;
  164. FREQ = RVX . 'ARG1' ;
  165. EPS0 = RVX . 'ARG2' ;
  166. NITER = RV . 'NITER' ;
  167. DD = RV . 'PASDETPS' . 'NUPASDT' ;
  168. NN = DD '/' FREQ ;
  169. *
  170. * Pilotage du pas de temps
  171. FREQ1 = 50 ;
  172. N1 = DD '/' FREQ1 ;
  173. L1 = 'EGA' (DD '-' (FREQ1*N1)) 0 ;
  174. 'SI' L1 ;
  175. LIDT0 = 'PROG' (2. * RV . 'INCO' . 'DT') 2. ;
  176. RV . 'INCO' . 'DT' = 'MINI' LIDT0 ;
  177. 'FINSI' ;
  178. *
  179. L0 = 'EGA' (DD '-' (FREQ*NN)) 0 ;
  180. 'SI' L0 ;
  181. RANG0 = RV . 'PASDETPS' . 'NUPASDT' ;
  182. TIME0 = RV . 'PASDETPS' . 'TPS' ;
  183. TN0 = RV . 'INCO' . 'TN' ;
  184. TNM0 = RV . 'INCO' . 'TN2' ;
  185. ERR0 = ('MAXIMUM' ('ABS' (TN0 '-' TNM0))) '+' 1.D-20 ;
  186. ERR10 = ('LOG' ERR0 ) '/' ('LOG' 10.) ;
  187. 'MESSAGE' 'Résidu en Température au pas'
  188. RANG0 '(' TIME0 ') :' ERR0 ':' ERR10 ;
  189. RV . 'INCO' . 'IT' = RV . 'INCO' . 'IT' 'ET' ('PROG' RANG0) ;
  190. RV . 'INCO' . 'TI' = RV . 'INCO' . 'TI' 'ET' ('PROG' TIME0) ;
  191. RV . 'INCO' . 'ER' = RV . 'INCO' . 'ER' 'ET' ('PROG' ERR10) ;
  192. EV1 = 'EVOL' 'MANUEL' (RV . 'INCO' . 'IT') (RV . 'INCO' . 'ER') ;
  193. Y1 = ('LOG' EPS0) '/' ('LOG' 10) ;
  194. 'SI' POST1 ;
  195. *
  196. * Impression "dynamique" du résidu
  197. X1 = 0. ; X2 = RV . 'ITMA' ;
  198. 'DESSIN' EV1 'YBOR' Y1 0. 'NCLK' ;
  199. 'FINSI' ;
  200. 'SI' POST2 ;
  201. *
  202. ** Impression "dynamique de la température
  203. ** L1 = 'PROG' 0. PAS 0.1 1. ;
  204. ** trace L1 tn0 DOM1 CNT1 'TITR' 'Température' 'NCLK' ;
  205. *
  206. * Impression "dynamique" de la vitesse
  207. un = RV . 'INCO' . 'UN' ;
  208. mot1= 'MOTS' 'UX' 'UY' ;
  209. nun = ('PSCA' un un mot1 mot1) ** 0.5 ;
  210. un2 = un / (nun + 1.D-5) ;
  211. vun = 'VECT' UN2 0.1 'UX' 'UY' 'JAUNE' ;
  212. trace VUN DOM1 CNT0 'TITR' 'Vitesse Normalisee' 'NCLK' ;
  213. 'FINSI' ;
  214. 'SI' ((ERR10 < Y1) 'ET' (DD > 10)) ;
  215. RV . 'TFINAL' = RV . 'PASDETPS' . 'TPS' ;
  216. 'FINSI' ;
  217. 'FINSI' ;
  218. *
  219. * Mise à jour de la viscosité à chaque pas de temps
  220. *
  221. NU0 = ETA0 * RV . 'INCO' . 'TN' + 1. ;
  222. NU0 = 'KCHT' $DOM1 'SCAL' 'SOMMET' 0. NU0 ;
  223. RV . 'INCO' . 'NU' = 'NOEL' $DOM1 NU0 ;
  224. *
  225. * Conservation de la température pour le prochain passage
  226. RV . 'INCO' . 'TN2' = 'COPIER' RV . 'INCO' . 'TN' ;
  227. mat1 chp1 = 'KOPS' 'MATRIK' ;
  228. 'FINP' mat1 chp1 ;
  229. *------------------------------------------------------------------
  230. *
  231. *
  232. *==========================================================
  233. * Maillage
  234. *==========================================================
  235. *
  236. * Dimensions caractéristiques
  237. L = 1. ;
  238. H = 1. ;
  239. A = L '/' H ;
  240. AS2 = A '/' 2. ;
  241. *
  242. * Décallage par rapport à l'axe pour les éléments quadratiques
  243. FLAG1 = vrai ;
  244. 'SI' FLAG1 ;
  245. RMIN = 0.0 ;
  246. 'SINO' ;
  247. RMIN = 0.01 ;
  248. 'FINSI' ;
  249. *
  250. * Points du maillage
  251. *************************** Adim. : Longueur de référence = H
  252. *************************** A=L/H
  253. P0 = AS2 0.5 ;
  254. P1 = RMIN 0.0 ;
  255. P2 = AS2 0.0 ;
  256. P3 = A 0.0 ;
  257. P4 = A 0.5 ;
  258. P5 = A 1.0 ;
  259. P6 = AS2 1.0 ;
  260. P7 = RMIN 1.0 ;
  261. P8 = RMIN 0.5 ;
  262. *************************** Adim. : Longueur de référence = L
  263. *************************** A=H/L
  264. *P0 = 0.5 AS2;
  265. *P1 = RMIN 0.0 ;
  266. *P2 = 0.5 0.0 ;
  267. *P3 = 1.0 0.0 ;
  268. *P4 = 1.0 AS2 ;
  269. *P5 = 1.0 A ;
  270. *P6 = 0.5 A ;
  271. *P7 = RMIN A ;
  272. *P8 = RMIN AS2 ;
  273. *
  274. * Données pour le mailleur
  275. NXY = -5 ;
  276. RAF = 1 ;
  277. NX0 = RAF * NXY ;
  278. NX = RAF * NXY ;
  279. NY = RAF * NXY ;
  280. D0 = 0.10 / RAF ;
  281. D1 = 0.10 / RAF ;
  282. D2 = 0.10 / RAF ;
  283. *
  284. * Droites du maillage filaire
  285. P1P2 = P1 'DROI' NX0 P2 'DINI' D0 'DFIN' D2 ;
  286. P2P3 = P2 'DROI' NX P3 'DINI' D2 'DFIN' D1 ;
  287. P1P3 = P1P2 'ET' P2P3 ;
  288. P3P4 = P3 'DROI' NY P4 'DINI' D1 'DFIN' D2 ;
  289. P4P5 = P4 'DROI' NY P5 'DINI' D2 'DFIN' D1 ;
  290. P3P5 = P3P4 'ET' P4P5 ;
  291. P5P6 = P5 'DROI' NX P6 'DINI' D1 'DFIN' D2 ;
  292. P6P7 = P6 'DROI' NX0 P7 'DINI' D2 'DFIN' D0 ;
  293. P5P7 = P5P6 'ET' P6P7 ;
  294. P7P8 = P7 'DROI' NY P8 'DINI' D1 'DFIN' D2 ;
  295. P8P1 = P8 'DROI' NY P1 'DINI' D2 'DFIN' D1 ;
  296. P7P1 = P7P8 'ET' P8P1 ;
  297. *
  298. * Maillages, sous-maillages et modèles associés
  299. CNT1 = P1P3 ;
  300. CNT2 = P3P5 ;
  301. CNT3 = P5P7 ;
  302. CNT4 = P7P1 ;
  303. CNT0 = CNT1 'ET' CNT2 'ET' CNT3 'ET' CNT4 ;
  304. DOM1 = 'DALL' P1P3 P3P5 P5P7 P7P1 ;
  305. DOM1 = 'CHAN' DOM1 'QUAF' ;
  306. *
  307. $DOM1 = 'MODE' DOM1 'NAVIER_STOKES' DISCR ;
  308. $CNT0 = 'MODE' CNT0 'NAVIER_STOKES' DISCR ;
  309. $CNT1 = 'MODE' CNT1 'NAVIER_STOKES' DISCR ;
  310. $CNT2 = 'MODE' CNT2 'NAVIER_STOKES' DISCR ;
  311. $CNT3 = 'MODE' CNT3 'NAVIER_STOKES' DISCR ;
  312. $CNT4 = 'MODE' CNT4 'NAVIER_STOKES' DISCR ;
  313. *
  314. CCNT0 = 'DOMA' $CNT0 'CENTRE' ;
  315. CCNT1 = 'DOMA' $CNT1 'CENTRE' ;
  316. CCNT2 = 'DOMA' $CNT2 'CENTRE' ;
  317. CCNT3 = 'DOMA' $CNT3 'CENTRE' ;
  318. CCNT4 = 'DOMA' $CNT4 'CENTRE' ;
  319. DOMF = 'DOMA' $DOM1 'FACE' ;
  320. 'ELIM' DOMF (CCNT0 'ET' CCNT1 'ET' CCNT2 'ET' CCNT3 'ET' CCNT4) 1.D-4 ;
  321. DOM1 = 'DOMA' $DOM1 'MAILLAGE' ;
  322. CNT0 = 'DOMA' $CNT0 'MAILLAGE' ;
  323. CNT1 = 'DOMA' $CNT1 'MAILLAGE' ;
  324. CNT2 = 'DOMA' $CNT2 'MAILLAGE' ;
  325. CNT3 = 'DOMA' $CNT3 'MAILLAGE' ;
  326. CNT4 = 'DOMA' $CNT4 'MAILLAGE' ;
  327. MP1 = ('DOMA' $DOM1 KPRES) 'ELEM' 1 ;
  328. 'DOMA' $DOM1 'IMPR' ;
  329. *
  330. *==========================================================
  331. * Définition des équations vitesse, pression et température
  332. *==========================================================
  333. *
  334. *
  335. * Paramètres physiques et pas de temps
  336. GB1 = Ra / Pr ;
  337. ALFA = 1. / Pr ;
  338. GB = 0. (-1. * GB1) ;
  339. *
  340. * Equations en vitesse et température
  341. * ITMA : Nombre de pas de temps
  342. * NITER : Nombre d'itérations internes
  343. * OMEGA : Facteur de relaxation des itérations internes
  344. * FIDT : Nombre maximum de pas de temps
  345. RV = 'EQEX' $DOM1 'ITMA' 5000 'NITER' 1 'OMEGA' 1. 'FIDT' 10000
  346. 'OPTI' 'EF' KSUPG 'IMPL' KPRES
  347. 'ZONE' $DOM1 'OPER' residu 1 IRESU
  348. 'ZONE' $DOM1 'OPER' 'NS' 1. 'UN' 'NU' GB 'TN' 0. 'INCO' 'UN'
  349. 'ZONE' $DOM1 'OPER' 'LAPN' ALFA 'INCO' 'TN'
  350. 'ZONE' $DOM1 'OPER' 'KONV' 1. 'UN' ALFA 'INCO' 'TN'
  351. ** 'ZONE' $DOM1 'OPER' 'TSCAL' ALFA 'UN' 0. 'INCO' 'TN'
  352. 'OPTI' 'EF' 'CENTREE'
  353. 'ZONE' $DOM1 'OPER' 'DFDT' 1. 'UN' 'DT' 'INCO' 'UN'
  354. 'ZONE' $DOM1 'OPER' 'DFDT' 1. 'TN' 'DT' 'INCO' 'TN' ;
  355. *
  356. * Conditions aux limites en vitesse et température
  357. RV = 'EQEX' RV 'CLIM'
  358. 'TN' 'TIMP' CNT1 1. 'TN' 'TIMP' CNT3 0.
  359. 'UN' 'UIMP' CNT0 0. 'UN' 'VIMP' CNT1 0.
  360. 'UN' 'VIMP' CNT2 0. 'UN' 'VIMP' CNT3 0. ;
  361. *
  362. * Equation en pression avec condition de Dirichlet en un point
  363. RVP = 'EQEX' 'OPTI' 'EF' KPRES
  364. 'ZONE' $DOM1 'OPER' 'KBBT' -1. 'INCO' 'UN' 'PRES'
  365. 'CLIM' 'PRES' 'TIMP' MP1 0. ;
  366. *
  367. * Initialisation des champs (table INCO)
  368. rv . 'INCO' = TABLE 'INCO' ;
  369. *
  370. XS YS = 'COOR' DOM1 ;
  371. TINI0 = 1. - XS * XS * AT0 + 1. * (1. - YS) ;
  372. TINI0 = 'KCHT' $DOM1 'SCAL' 'SOMMET' 0. TINI0 ;
  373. rv . 'INCO' . 'TN' = 'KOPS' TINI0 '>|' 1. ;
  374. *
  375. rv . 'INCO' . 'UN' = 'KCHT' $DOM1 'VECT' 'SOMMET' (0. 0.) ;
  376. rv . 'INCO' . 'PRES' = 'KCHT' $DOM1 'SCAL' KPRES 0. ;
  377. rv . 'INCO' . 'UNM' = 'COPI' rv . 'INCO' . 'UN' ;
  378. rv . 'INCO' . 'TNM' = 'COPI' rv . 'INCO' . 'TN' ;
  379. *
  380. NU0 = ETA0 * RV . 'INCO' . 'TN' + 1. ;
  381. NU0 = 'KCHT' $DOM1 'SCAL' 'SOMMET' 0. NU0 ;
  382. RV . 'INCO' . 'NU' = 'NOEL' $DOM1 NU0 ;
  383. *
  384. RV . 'INCO' . 'DT' = DT0 ;
  385. *
  386. * Champs supplémentaires pour la procédure residu
  387. rv . 'INCO' . 'UN2' = 'COPI' rv . 'INCO' . 'UN' ;
  388. rv . 'INCO' . 'TN2' = 'COPI' rv . 'INCO' . 'TN' ;
  389. rv . 'INCO' . 'IT' = 'PROG' ;
  390. rv . 'INCO' . 'TI' = 'PROG' ;
  391. rv . 'INCO' . 'ER' = 'PROG' ;
  392. *
  393. * Méthode d'inversion du problème en vitesse
  394. rv . 'METHINV' .'TYPINV' = 1 ;
  395. rv . 'METHINV' .'IMPINV' = 0 ;
  396. rv . 'METHINV' .'NITMAX' = 100 ;
  397. rv . 'METHINV' .'PRECOND' = 3 ;
  398. rv . 'METHINV' .'RESID' = 1.e-6 ;
  399. rv . 'METHINV' . 'FCPRECT' = 1 ;
  400. rv . 'METHINV' . 'FCPRECI' = 1 ;
  401. *
  402. * Méthode d'inversion du problème en pression
  403. rvp . 'METHINV' . 'TYPINV' = 1 ;
  404. rvp . 'METHINV' . 'IMPINV' = 0 ;
  405. rvp . 'METHINV' . 'NITMAX' = 100 ;
  406. rvp . 'METHINV' . 'PRECOND' = 3 ;
  407. rvp . 'METHINV' . 'RESID' = 1.e-12 ;
  408. rvp . 'METHINV' . 'FCPRECT' = 100 ;
  409. rvp . 'METHINV' . 'FCPRECI' = 100 ;
  410. *
  411. * Couplage vitesse/pression : Méthode de projection
  412. RV . 'PROJ' = RVP ;
  413. *
  414. *==========================================================
  415. * Résolution
  416. *==========================================================
  417. *
  418. EXEC RV ;
  419. *
  420. *==========================================================
  421. * Post traitement
  422. *==========================================================
  423. *
  424. * Nusselt
  425. nug resg surg = calcnuss (RV . 'INCO' . 'TN') $DOM1 $CNT1 ;
  426. nud resd surd = calcnuss (RV . 'INCO' . 'TN') $DOM1 $CNT3 ;
  427. resg = resg / surg ;
  428. resd = resd / surd ;
  429. *
  430. * Fonction de courant
  431. psi1 = courant (RV . 'INCO' . 'UN') $DOM1 $CNT0 ;
  432. *-------------------------> Début des tracés
  433. 'SI' GRAPH ;
  434. *
  435. * Vitesse
  436. un = RV . 'INCO' . 'UN' ;
  437. vun = 'VECT' UN 10. 'UX' 'UY' 'JAUNE' ;
  438. trace VUN DOM1 CNT0 'TITR' 'Vitesse' ;
  439. *
  440. * Température
  441. tn = RV . 'INCO' . 'TN' ;
  442. trace tn DOM1 CNT0 NLI0 'TITR' 'Température' ;
  443. *
  444. * Fonction de courant
  445. trace psi1 DOM1 CNT0 NLI0 vun 'TITR' 'Fonction de courant' ;
  446. *
  447. * Pression
  448. pe = 'EXCO' rv . 'INCO' . 'PRESSION' 'PRES' ;
  449. pn = 'ELNO' $DOM1 ('KCHT' $DOM1 'SCAL' kpres pe) kpres;
  450. trace pn dom1 CNT0 NLI0 'TITR' 'Pression' ;
  451. *
  452. 'FINSI' ;
  453. *-------------------------> Fin des tracés
  454. *
  455. *==========================================================
  456. * Test de non régression
  457. *==========================================================
  458. *
  459. * PSIMAX : Valeur max de la fonction de courant
  460. * DIFF0 : Ecart Nusselt chaud, Nusselt froid
  461. * NUMOY : Nusselt moyen chaud/froid
  462. *
  463. 'SAUT' 5 'LIGN' ;
  464. psim0 = 'MAXI' ('ABS' PSI1) ;
  465. diff0 = 'ABS' (resg + resd) ;
  466. nmoy0 = 'ABS' (resg - resd / 2.) ;
  467. 'SI' COMPLET ;
  468. TPSI0 = 88.D-5 ;
  469. TDIF0 = 1.D-2 ;
  470. TMOY0 = 1.775 ;
  471. DPSI0 = 3.D-5 ;
  472. DMOY0 = 2.5D-2 ;
  473. 'SINON' ;
  474. TPSI0 = 1. ;
  475. TDIF0 = 10. ;
  476. TMOY0 = 10. ;
  477. DPSI0 = 1. ;
  478. DMOY0 = 10. ;
  479. 'FINSI' ;
  480. DDIF0 = TDIF0 ;
  481. ER1 = psim0 - tpsi0 ABS ; TEST1 = ER1 < Dpsi0 ;
  482. ER2 = diff0 - Tdif0 ABS ; TEST2 = ER2 < Ddif0 ;
  483. ER3 = nmoy0 - Tmoy0 ABS ; TEST3 = ER3 < Dmoy0 ;
  484. 'MESS' 'CHAMP/VALEUR/CIBLE/ERREUR/TOLERANCE/TEST' ;
  485. 'MESS' '----------------------------------------' ;
  486. 'MESS' '|PSI| max ' psim0 Tpsi0 ER1 Dpsi0 ;
  487. list TEST1 ;
  488. 'MESS' '|Nu(hot)|-|Nu(cold)| ' diff0 Tdif0 ER2 Ddif0 ;
  489. list TEST2 ;
  490. 'MESS' '(|Nu(hot)|+|Nu(cold)|)/2 ' nmoy0 Tmoy0 ER3 Dmoy0 ;
  491. list TEST3 ;
  492. TEST5 = TEST1 ET TEST2 ET TEST3 ;
  493. SI TEST5 ;
  494. ERRE 0 ;
  495. SINO ;
  496. ERRE 5 ;
  497. FINSI ;
  498. 'FIN' ;
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  

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