Télécharger gridturb_expl.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : gridturb_expl.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. **********************************************************
  5. * GRID TURBULENCE : convection of homogeneous turbulence *
  6. * Analysis of the K-Epsilon TURBULENCE MODEL *
  7. * Mohammadi/Pironneau p. 74 (Wiley) *
  8. * H. PAILLERE/TTMF/AVRIL 1997 *
  9. **********************************************************
  10.  
  11. COMPLET = FAUX ;
  12. GRAPH = FAUX ;
  13.  
  14. SI ( COMPLET ) ;
  15. D = 4 ;
  16. NITER = 1000 ;
  17. SINON ;
  18. D = 1 ;
  19. NITER = 150 ;
  20. FINSI ;
  21.  
  22. NX = D*10 ;
  23. NY = D ;
  24.  
  25. opti elem qua8 ;
  26. opti isov suli ;
  27.  
  28. ******************************************************************
  29. * PROCEDURE POUR ESTIMER LA CONVERGENCE VERS L'ETAT STATIONNAIRE *
  30. ******************************************************************
  31.  
  32. DEBPROC CALCUL ;
  33. ARGU RVX*'TABLE' ;
  34.  
  35. RV = RVX.'EQEX' ;
  36.  
  37. DD = RV.PASDETPS.'NUPASDT' ;
  38. NN = DD/10 ;
  39. LO = (DD-(10*NN)) EGA 0 ;
  40. SI ( LO ) ;
  41.  
  42. EN = RV.INCO.'EN' ;
  43. ENM1 = RV.INCO.'ENM1' ;
  44. KN = RV.INCO.'KN' ;
  45. KNM1 = RV.INCO.'KNM1' ;
  46.  
  47. ERRE = KOPS EN '-' ENM1 ;
  48. ELIE = MAXI ERRE 'ABS' ;
  49. ELIE = (LOG (ELIE + 1.0E-20))/(LOG 20.) ;
  50. ERRK = KOPS KN '-' KNM1 ;
  51. ELIK = MAXI ERRK 'ABS' ;
  52. ELIK = (LOG (ELIK + 1.0E-20))/(LOG 20.) ;
  53. MESSAGE 'ITER ' RV.PASDETPS.'NUPASDT' ' ERREUR LINF ' ELIK ELIE ;
  54. RV.INCO.'ENM1' = KCHT $DOMTOT 'SCAL' 'SOMMET' (RV.INCO.'EN') ;
  55. RV.INCO.'KNM1' = KCHT $DOMTOT 'SCAL' 'SOMMET' (RV.INCO.'KN') ;
  56. IT = PROG RV.PASDETPS.'NUPASDT' ;
  57. ERK = PROG ELIK ;
  58. ERE = PROG ELIE ;
  59. RV.INCO.'IT' = (RV.INCO.'IT') ET IT ;
  60. RV.INCO.'ERK' = (RV.INCO.'ERK') ET ERK ;
  61. RV.INCO.'ERE' = (RV.INCO.'ERE') ET ERE ;
  62. FINSI ;
  63. as2 ama1 = 'KOPS' 'MATRIK' ;
  64. FINPROC as2 ama1 ;
  65.  
  66. ***********************
  67. * GEOMETRY OF PROBLEM *
  68. ***********************
  69.  
  70. A1 = 0.0 0.0 ;
  71. A2 = 1.0 0.0 ;
  72. A3 = 1.0 0.1 ;
  73. A4 = 0.0 0.1 ;
  74.  
  75. A1A2 = A1 'DROI' NX A2 ;
  76. A2A3 = A2 'DROI' NY A3 ;
  77. A3A4 = A3 'DROI' NX A4 ;
  78. A4A1 = A4 'DROI' NY A1 ;
  79.  
  80. DOMTOT = 'DALLER' A1A2 A2A3 A3A4 A4A1 'PLAN' ;
  81. DOMTOT = CHAN DOMTOT QUAF ;
  82. A4A1 = CHAN A4A1 QUAF ;
  83. A2A3 = CHAN A2A3 QUAF ;
  84. ELIM (DOMTOT et A4A1 et A2A3) 1.E-3 ;
  85.  
  86. $DOMTOT = 'MODE' DOMTOT 'NAVIER_STOKES' 'MACRO' ;
  87. DOMA $DOMTOT IMPR ;
  88. $INLET = 'MODE' A4A1 'NAVIER_STOKES' 'MACRO' ;
  89. INLET = 'DOMA' $INLET 'MAILLAGE' ;
  90. $OUTLET = 'MODE' A2A3 'NAVIER_STOKES' 'MACRO' ;
  91.  
  92. DOMTOT = DOMA $DOMTOT MAILLAGE ;
  93. CNT = CONT DOMTOT ;
  94.  
  95. *****************
  96. * PHYSICAL DATA *
  97. *****************
  98.  
  99. Uinlet = 1.0 ;
  100. Kinlet = 0.01 ;
  101. Einlet = 0.01 ;
  102.  
  103. Nu = 1.E-10 ;
  104. tos = 0. 0. ;
  105.  
  106. *****************************************
  107. * ANALYTICAL SOLUTION FOR K(x) AND E(x) *
  108. *****************************************
  109.  
  110. C2 = 1.92 ;
  111. X1 = COOR 1 (DOMA $DOMTOT SOMMET) ;
  112. ZZZ = KOPS X1 '*' (EINLET/KINLET*(C2-1.0)) ;
  113. ZZZ = KOPS ZZZ '+' 1.0 ;
  114. KAN = KOPS ZZZ '**' (1./(1.-C2)) ;
  115. KAN = KOPS KAN '*' KINLET ;
  116.  
  117. EAN = KOPS ZZZ '**' (C2/(1.-C2)) ;
  118. EAN = KOPS EAN '*' EINLET ;
  119.  
  120. ********************
  121. * SET OF EQUATIONS *
  122. ********************
  123.  
  124. RV = EQEX $DOMTOT 'ITMA' NITER 'ALFA' 0.8
  125. 'ZONE' $DOMTOT 'OPER' CALCUL
  126. 'OPTI' 'SUPGDC'
  127. 'ZONE' $DOMTOT 'OPER' 'NSKE' NU 'NUT' 'INCO' 'UN' 'KN' 'EN'
  128. 'OPTI' 'CENTREE'
  129. 'ZONE' $OUTLET 'OPER' 'TOIM' tos 'INCO' 'UN'
  130. 'ZONE' $DOMTOT 'OPER' 'DFDT' 1. 'UN' 'DELTAT' 'INCO' 'UN'
  131. 'ZONE' $DOMTOT 'OPER' 'DFDT' 1. 'KN' 'DELTAT' 'INCO' 'KN'
  132. 'ZONE' $DOMTOT 'OPER' 'DFDT' 1. 'EN' 'DELTAT' 'INCO' 'EN';
  133.  
  134. RV = EQEX RV
  135. 'CLIM' 'UN' 'UIMP' INLET Uinlet
  136. 'UN' 'VIMP' INLET 0.
  137. 'KN' 'TIMP' INLET Kinlet
  138. 'EN' 'TIMP' INLET Einlet ;
  139.  
  140. RVP = EQPR $DOMTOT KTYPI 1
  141. ZONE $DOMTOT 'OPER' 'PRESSION' 0. ;
  142.  
  143. RV.INCO = TABLE INCO ;
  144. RV.INCO.'UN' = KCHT $DOMTOT VECT SOMMET (1. 0.) ;
  145. RV.INCO.'KN' = KCHT $DOMTOT SCAL SOMMET Kinlet ;
  146. RV.INCO.'EN' = KCHT $DOMTOT SCAL SOMMET Einlet ;
  147. RV.INCO.'ENM1' = KCHT $DOMTOT SCAL SOMMET Einlet ;
  148. RV.INCO.'KNM1' = KCHT $DOMTOT SCAL SOMMET Kinlet ;
  149. RV.INCO.'NUT' = KCHT $DOMTOT SCAL CENTRE 1.E-10 ;
  150. RV.INCO.'IT' = PROG 1 ;
  151. RV.INCO.'ERK' = PROG 0.;
  152. RV.INCO.'ERE' = PROG 0.;
  153. RV.PRESSION = RVP ;
  154.  
  155. EXEC RV ;
  156.  
  157. SI ( GRAPH ) ;
  158. TRACE DOMTOT ;
  159. EVOLK = EVOL 'MANU' 'ITERATIONS' (RV.INCO.'IT') 'LOG|E|inf'
  160. (RV.INCO.'ERK') ;
  161. EVOLE = EVOL 'MANU' 'ITERATIONS' (RV.INCO.'IT') 'LOG|E|inf'
  162. (RV.INCO.'ERE') ;
  163. TAB1 = TABLE ;
  164. TAB1.1 = 'MARQ CROI ' ;
  165. TAB1.2 = 'MARQ TRIA ' ;
  166. TAB1.'TITRE' = TABLE ;
  167. TAB1.'TITRE'. 1 = MOT 'CONVERGENCE_K' ;
  168. TAB1.'TITRE'. 2 = MOT 'CONVERGENCE_E' ;
  169. DESS (EVOLK ET EVOLE) 'XBOR' 0. (2.*NITER) 'YBOR' -15.0 0.0
  170. LEGE TAB1 ;
  171.  
  172. TRACE RV.INCO.'KN' DOMTOT CNT 'TITR' 'KN' 20 ;
  173. TRACE RV.INCO.'EN' DOMTOT CNT 'TITR' 'EN' 20 ;
  174.  
  175. EVOLKN = EVOL (ROUG) 'CHPO' RV.INCO.'KN' 'SCAL' A1A2 ;
  176. EVOLKA = EVOL (BLEU) 'CHPO' KAN 'SCAL' A1A2 ;
  177. EVOLEN = EVOL (ROUG) 'CHPO' RV.INCO.'EN' 'SCAL' A1A2 ;
  178. EVOLEA = EVOL (BLEU) 'CHPO' EAN 'SCAL' A1A2 ;
  179.  
  180. TAB1 = TABLE ;
  181. TAB1.1 = 'MARQ CROI ' ;
  182. TAB1.2 = ' ' ;
  183. TAB1.'TITRE' = TABLE ;
  184. TAB1.'TITRE'. 1 = MOT 'NUMERIQUE' ;
  185. TAB1.'TITRE'. 2 = 'MOT' 'ANALYTIQUE' ;
  186.  
  187. DESS (EVOLKN ET EVOLKA) LEGE TAB1 'TITR' 'Grid Turbulence K' ;
  188. DESS (EVOLEN ET EVOLEA) LEGE TAB1 'TITR' 'Grid Turbulence E' ;
  189. FINSI ;
  190.  
  191. ERRK = KOPS RV.INCO.'KN' '-' KAN ;
  192. ERRK = KOPS ERRK '*' ERRK ;
  193. ERR2 = 0. ;
  194. REPETER BLOC1 (NBNO (DOMA $DOMTOT MAILLAGE)) ;
  195. P1 = (doma $DOMTOT SOMMET) POIN &BLOC1 ;
  196. ERR1 = 'EXTR' ERRK 'SCAL' P1 ;
  197. ERR2 = ERR2 + ERR1 ;
  198. FIN BLOC1 ;
  199. ERR2 = ERR2/(nbno (doma $DOMTOT MAILLAGE)) ;
  200. ERR2 = ERR2 ** 0.5 ;
  201. ERR2K = ERR2/Kinlet ;
  202. MESSAGE 'ERREUR SUR K EN NORME L2 = ' ERR2K ;
  203.  
  204. ERRE = KOPS RV.INCO.'EN' '-' EAN ;
  205. ERRE = KOPS ERRE '*' ERRE ;
  206. ERR2 = 0. ;
  207. REPETER BLOC1 (NBNO (DOMA $DOMTOT MAILLAGE)) ;
  208. P1 = (DOMA $DOMTOT SOMMET) POIN &BLOC1 ;
  209. ERR1 = 'EXTR' ERRE 'SCAL' P1 ;
  210. ERR2 = ERR2 + ERR1 ;
  211. FIN BLOC1 ;
  212. ERR2 = ERR2/(NBNO (DOMA $DOMTOT MAILLAGE)) ;
  213. ERR2 = ERR2 ** 0.5 ;
  214. ERR2E = ERR2/Einlet ;
  215. MESSAGE 'ERREUR SUR E EN NORME L2 = ' ERR2E ;
  216.  
  217. * TESTS D'ERREUR *
  218.  
  219. SI ( (MINI RV.INCO.'ERE') > -5.0 ) ;
  220. ERREUR 5 ;
  221. FINSI ;
  222. SI ( (MINI RV.INCO.'ERK') > -5.0 ) ;
  223. ERREUR 5 ;
  224. FINSI ;
  225.  
  226. SI ( ERR2K > 1.5D-2 ) ;
  227. ERREUR 5 ;
  228. FINSI ;
  229.  
  230. SI ( ERR2E > 3.0D-2 ) ;
  231. ERREUR 5 ;
  232. FINSI ;
  233.  
  234. FIN ;
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  

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