Télécharger blasius.dgibi

Retour à la liste

Numérotation des lignes :

  1. *****************************************************
  2. ** fichier : blasius.dgibi *
  3. ** modifie le 15/06/2014 passage EQPR -> EQEX *
  4. *****************************************************
  5.  
  6. COMPLET = FAUX ;
  7. SI ( COMPLET ) ;
  8. d1= 0.5 ; d2= 0.02 ;
  9. nbit = 5000 ;
  10. err1 = 7.5E-3 ;
  11. SINON ;
  12. d1 = 1.0 ; d2 = 0.1 ;
  13. nbit = 150 ;
  14. err1 = 7.E-2 ;
  15. FINSI ;
  16. GRAPH = 'N' ;
  17.  
  18. DISCR = 'MACRO' ;
  19. KPRESS = 'CENTRE';
  20. Betap = 1. ;
  21.  
  22. ************************************************************************
  23. * COUCHE LIMITE LAMINAIRE SUR PLAQUE PLANE - COMPARAISON AVEC SOLUTION *
  24. * THEORIQUE DE BLASIUS *
  25. ************************************************************************
  26.  
  27. DEBPROC CALCUL ;
  28. ARGU RVX*'TABLE' ;
  29.  
  30. RV = RVX.'EQEX' ;
  31.  
  32. DD = RV.PASDETPS.'NUPASDT' ;
  33. NN = DD/5 ;
  34. LO = (DD-(5*NN)) EGA 0 ;
  35. SI ( LO ) ;
  36.  
  37. UN = RV.INCO.'UN' ;
  38. UNM1 = RV.INCO.'UNM1' ;
  39.  
  40. unx= kcht $MT scal sommet (exco 'UX' un) ;
  41. unm1x = kcht $MT scal sommet (exco 'UX' unm1) ;
  42. uny= kcht $MT scal sommet (exco 'UY' un) ;
  43. unm1y = kcht $MT scal sommet (exco 'UY' unm1) ;
  44.  
  45. ERRX = KOPS unx '-' unm1x ;
  46. ERRY = KOPS uny '-' unm1y ;
  47. ELIX = MAXI ERRX 'ABS' ;
  48. ELIY = MAXI ERRY 'ABS' ;
  49. ELIX = (LOG (ELIX + 1.0E-10))/(LOG 10.) ;
  50. ELIY = (LOG (ELIY + 1.0E-10))/(LOG 10.) ;
  51. MESSAGE 'ITER ' RV.PASDETPS.'NUPASDT' ' ERREUR LINF ' ELIX ELIY ;
  52. RV.INCO.'UNM1' = KCHT $MT 'VECT' 'SOMMET' (RV.INCO.'UN') ;
  53. IT = PROG RV.PASDETPS.'NUPASDT' ;
  54. ER = PROG ELIY ;
  55. RV.INCO.'IT' = (RV.INCO.'IT') ET IT ;
  56. RV.INCO.'ER' = (RV.INCO.'ER') ET ER ;
  57. FINSI ;
  58.  
  59. as2 ama1 = 'KOPS' 'MATRIK' ;
  60. FINPROC as2 ama1 ;
  61.  
  62. ************
  63. * MAILLAGE *
  64. ************
  65.  
  66. option dime 2 elem qua8 ;
  67.  
  68. p1 = -1.5 0.0 ;
  69. p2 = 0.0 0.0 ;
  70. p3 = 1.0 0.0 ;
  71. p4 = 1.0 0.2 ;
  72. p5 = 1.0 1.0 ;
  73. p6 = 0.0 1.0 ;
  74. p7 = -1.5 1.0 ;
  75. p8 = -1.5 0.2 ;
  76.  
  77. bas1 = p1 d dini d1 dfin d2 p2 ;
  78. bas2 = p2 d dini d2 dfin d2 p3 ;
  79. bas = bas1 et bas2 ;
  80. dro = p3 d dini d2 dfin d2 p4 d dini d2 dfin d1 p5 ;
  81. hau = p5 d dini d2 dfin d2 p6 d dini d2 dfin d1 p7 ;
  82. gau = p7 d dini d1 dfin d2 p8 d dini d2 dfin d2 p1 ;
  83.  
  84. mt= bas dro hau gau daller ;
  85.  
  86. tass MT ;
  87. orienter mt ;
  88.  
  89. mt = chan mt quaf ;
  90. dro = chan dro quaf ;
  91. bas = chan bas quaf ;
  92. gau = chan gau quaf ;
  93. hau = chan hau quaf ;
  94.  
  95. elim (mt et dro et bas et gau et hau) 1.e-3 ;
  96. $mt = mode mt 'NAVIER_STOKES' DISCR ; doma $mt 'IMPR' ;
  97. $dro = mode dro 'NAVIER_STOKES' DISCR ;
  98.  
  99. mt2 = mt ;
  100. mt = doma $mt maillage ;
  101.  
  102. Nu = 1./2000. ;
  103. tos = 0. 0. ;
  104.  
  105. RV = EQEX $MT 'ITMA' nbit 'ALFA' 0.9
  106. 'OPTI' 'SUPG'
  107. 'ZONE' $MT 'OPER' CALCUL
  108. 'ZONE' $MT 'OPER' 'NS' NU 'INCO' 'UN'
  109. 'OPTI' 'CENTREE' 'EFM1'
  110. 'ZONE' $MT 'OPER' 'DFDT' 1. 'UN' 'DELTAT ' INCO 'UN'
  111. 'ZONE' $DRO 'OPER' 'TOIM' tos 'INCO' 'UN' ;
  112.  
  113. RV = EQEX RV
  114. 'CLIM' 'UN' 'UIMP' bas2 0.
  115. 'UN' 'UIMP' gau 1.0
  116. 'UN' 'VIMP' bas 0.0 ;
  117.  
  118. RVP = EQEX 'OPTI' 'EF' KPRESS
  119. 'ZONE' $MT OPER KBBT -1. betap INCO 'UN' 'PRES'
  120. ;
  121.  
  122. rvp.'METHINV'.TYPINV=1 ;
  123. rvp.'METHINV'.IMPINV=0 ;
  124. rvp.'METHINV'.NITMAX=300;
  125. rvp.'METHINV'.PRECOND=3 ;
  126. rvp.'METHINV'.RESID =1.e-8 ;
  127. rvp.'METHINV' . 'FCPRECT'=100 ;
  128. rvp.'METHINV' . 'FCPRECI'=100 ;
  129.  
  130. RV.'PROJ' =RVP ;
  131.  
  132. RV.INCO=TABLE INCO ;
  133. RV.INCO.'UN'=kcht $MT VECT SOMMET (1. 0.);
  134. RV.INCO.'PRES'=kcht $MT SCAL KPRESS 0.;
  135. rv.inco.'UNM1' = kcht $MT 'VECT' 'SOMMET' (1.E-5 1.E-5 ) ;
  136. rv.inco.'IT' = PROG 1 ;
  137. rv.inco.'ER' = PROG 0. ;
  138. rv.inco.'NBIT' = 0 ;
  139.  
  140. EXEC RV ;
  141.  
  142. * SOLUTION THEORIQUE BLASIUS *
  143.  
  144. LIYT = PROG
  145. 0.000000 0.003162 0.006325 0.009487 0.012649 0.015811 0.018974
  146. 0.022136 0.025298 0.028460 0.031623 0.034785 0.037947 0.041110
  147. 0.044272 0.047434 0.050596 0.053759 0.056921 0.060083 0.063246
  148. 0.069570 0.075895 0.082219 0.088544 0.094868 0.101193 0.107517
  149. 0.113842 0.120167 0.126491 0.132816 0.139140 0.145465 0.151789
  150. 0.158114 0.164438 0.170763 0.177088 0.183412 0.189737 1.000000 ;
  151. LIUT = PROG
  152. 0.000000 0.046960 0.093910 0.140810 0.187610 0.234230 0.280580
  153. 0.326530 0.371960 0.416720 0.460630 0.503540 0.545250 0.585590
  154. 0.624390 0.661470 0.696700 0.729930 0.761060 0.790000 0.816690
  155. 0.863300 0.901070 0.930600 0.952880 0.969050 0.980370 0.987970
  156. 0.992890 0.995940 0.997770 0.998820 0.999400 0.999700 0.999860
  157. 0.999940 0.999971 0.999988 0.999995 0.999998 0.999999 1.000000 ;
  158. LIVT = PROG
  159. 0.000000 0.000037 0.000149 0.000334 0.000593 0.000925 0.001327
  160. 0.001800 0.002338 0.002940 0.003599 0.004312 0.005070 0.005867
  161. 0.006695 0.007545 0.008408 0.009275 0.010136 0.010982 0.011804
  162. 0.013350 0.014721 0.015886 0.016836 0.017576 0.018129 0.018525
  163. 0.018797 0.018975 0.019088 0.019155 0.019195 0.019216 0.019228
  164. 0.019234 0.019237 0.019238 0.019239 0.019239 0.019239 0.019239 ;
  165.  
  166. EVOLU = EVOL 'MANU' 'Y' LIYT 'U(1.,y)' LIUT ;
  167. EVOLV = EVOL 'MANU' 'Y' LIYT 'V(1.,y)' LIVT ;
  168.  
  169. YY = COOR 2 (DOMA $MT SOMMET) ;
  170. EVOL1 = EVOL 'CHPO' RV.INCO.'UN' UX DRO ;
  171. EVOL2 = EVOL 'CHPO' RV.INCO.'UN' UY DRO ;
  172. EVOL3 = EVOL 'CHPO' YY SCAL DRO ;
  173. LIY = 'EXTR' EVOL3 ORDO ;
  174. LIU = 'EXTR' EVOL1 ORDO ;
  175. LIV = 'EXTR' EVOL2 ORDO ;
  176.  
  177. LIUC = IPOL LIYT LIY LIU ;
  178. NP = DIME LIYT ;
  179. ERR0 = 0. ;
  180. REPETER BLOC1 NP ;
  181. UCAL = EXTRAIRE LIUC &BLOC1 ;
  182. UREF = EXTRAIRE LIUT &BLOC1 ;
  183. ERR0 = ERR0 + ((UCAL-UREF)*(UCAL-UREF)) ;
  184. FIN BLOC1 ;
  185. ERR0 = ERR0/NP ;
  186. ERR0 = ERR0 '**' 0.5 ;
  187. MESSAGE 'ERREUR ' ERR0 ;
  188. SI ( ERR0 > ERR1 ) ;
  189. ERREUR 5 ;
  190. FINSI ;
  191.  
  192. SI ('EGA' graph 'O') ;
  193. pn = elno $MT (exco (RV.'INCO'.'PRESSION') 'PRES') KPRESS;
  194. TRACE Pn mt2 ;
  195. unch = vect RV.INCO.'UN' 0.1 UX UY JAUNE ;
  196. TRACE UNCH MT2 ;
  197. TAB1 = TABLE ;
  198. * TAB1.1 = 'MOT' 'TITR SOLUTION_CASTEM2000' ;
  199. TAB1.2 = 'MARQ LOSA NOLI ' ;
  200. TAB1.'TITRE' = TABLE ;
  201. TAB1.'TITRE' . 1 = 'MOT' 'SOLUTION_CASTEM2000' ;
  202. TAB1.'TITRE' . 2 = MOT 'SOLUTION_EXACTE' ;
  203. DESS (EVOL1 ET EVOLU) 'LEGE' 'TITY' 'UX' 'TITR' 'U EN SORTIE' TAB1 ;
  204. DESS (EVOL2 ET EVOLV) 'LEGE' 'TITY' 'UY' 'TITR' 'V EN SORTIE' TAB1 ;
  205. FINSI ;
  206.  
  207. fin ;
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  

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