Télécharger couette.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : couette.dgibi
  2.  
  3. *----------------------------------------------------------------------
  4. * 1/Ecoulement de Couette engendré par la rotation de 2 cylindres
  5. * concentriques. Comparaison à la solution analytique pour la vitesse.
  6. * 2/Conducion de la chaleur dans un barreau cylindrique (en coordonnées
  7. * cartésiennes. Comparaison à la solution analytique.
  8. * Les calculs sont réalisés successivement avec des éléments
  9. * tri6-(iso-p2) tri7 qua8-(iso-q2) qua9
  10. *----------------------------------------------------------------------
  11. *------------------
  12. * Options générales
  13. *------------------
  14.  
  15. GRAPH = 'N' ;
  16. COMPLET = FAUX ;
  17.  
  18. SI ( COMPLET ) ;
  19. nbe=10 ; nbv=20 ;
  20. sinon ;
  21. nbe = 5 ; nbv = 10 ;
  22. finsi ;
  23. ERUT3=0.5 ;
  24. ERTT3=4.E-2;
  25. ERUT7=9.E-2 ;
  26. ERTT7=3.E-2 ;
  27. ERUQ4=7.E-2 ;
  28. ERTQ4=8.E-3 ;
  29. ERUQ9=5.E-2 ;
  30. ERTQ9=2.E-3 ;
  31.  
  32. DEBPROC TEST ;
  33. ARGU MACRO*MOT GRAPH*MOT EPSS*FLOTTANT
  34. ERRU*FLOTTANT ERRT*FLOTTANT
  35. NBE*ENTIER NBV*ENTIER ;
  36. ***********************
  37. *******MAILLAGE********
  38. ***********************
  39.  
  40. **** maillage 1er moitié de cercle ****
  41. * decoupage NBE,NBV
  42. *nbe = 5 ;
  43. *nbv = 10 ;
  44. * Rayon interne
  45. ri = 0.1 ;
  46. drr = 10.;
  47. *rayon externe
  48. re = ri + drr ;
  49. di1=drr/nbe*0.1 ;
  50. di2=drr/nbe*3.;
  51.  
  52. c1=0. 0. ;
  53. p1o=ri 0. ;
  54. p2o=re 0. ;
  55.  
  56. tole=2.e-3 ;
  57. *tole=5.e-3 ;
  58.  
  59. angle=-179.99 ;
  60. angl2= angle/(-2.) ;
  61.  
  62. p1=p1o tour c1 angl2 ;
  63. p2=p2o tour c1 angl2 ;
  64.  
  65. q1=p1 tour c1 angle ;
  66. q2=p2 tour c1 angle ;
  67. pp1=p1 c c1 q1 nbv ;
  68. pp2=p2 c c1 q2 nbv ;
  69. mt=pp1 regl dini di1 dfin di2 pp2 ;
  70. entree= cote 4 mt ;
  71. sortie= cote 2 mt ;
  72. axs = entree tour c1 ((-1.)*angl2) ;
  73. elim (axs et mt) tole ;
  74. pp1=inve pp1 ;
  75. sortie=inve sortie ;
  76.  
  77. cnt1=entree et pp2 et sortie et pp1 ;
  78. couette = mt ;
  79. elim couette tole ;
  80. cntint=pp1 ; elim cntint tole ;
  81. cntext=pp2 ; elim cntext tole ;
  82. *trace couette et cntext et cntint ;
  83.  
  84. couette=(couette syme DROI c1 (0 100.)) et couette ;
  85. cntint =(cntint syme DROI c1 (0 100.)) et cntint ;
  86. cntext =(cntext syme DROI c1 (0 100.)) et cntext ;
  87. couette = chan couette quaf ;
  88. *trace couette ;
  89. cntint = chan cntint quaf ;
  90. cntext = chan cntext quaf ;
  91. entree = chan entree quaf ;
  92. axs = chan axs quaf ;
  93.  
  94. elim (couette et cntint et cntext et entree
  95. et axs et sortie ) tole ;
  96.  
  97.  
  98. **** definition des contours internes et externes ****
  99.  
  100. $couette=mode couette 'NAVIER_STOKES' MACRO ;
  101. doma $couette 'IMPR' ;
  102. $cntint = mode cntint 'NAVIER_STOKES' MACRO ;
  103. $cntext = mode cntext 'NAVIER_STOKES' MACRO ;
  104. $entree = mode entree 'NAVIER_STOKES' MACRO ;
  105. $axs = mode axs 'NAVIER_STOKES' MACRO ;
  106. £axs = doma $axs 'TABLE' ;
  107. nbee=(nbno (doma $entree MAILLAGE)) ;
  108. $sortie = mode sortie 'NAVIER_STOKES' MACRO ;
  109. * opti donn 5 ;
  110.  
  111. ************************
  112. *** RESOLUTION ***
  113. ************************
  114. * Vitesse tangentielle cylindre interne : u1
  115. * Vitesse tangentielle cylindre externe : u2
  116. u1=-2. ; u2= 2. ;
  117. T1=2. ; T2=1. ;
  118.  
  119. ris=1./ri ; res=1./re ;
  120. xi= (coor 1 (doma $cntint maillage))*ris ;
  121. yi= (coor 2 (doma $cntint maillage))*ris *(-1.) ;
  122. xe= (coor 1 (doma $cntext maillage))*res ;
  123. ye= (coor 2 (doma $cntext maillage))*res *(-1.) ;
  124.  
  125. u1x= u1*yi ; u1y= u1*xi ;
  126. u2x= u2*ye ; u2y= u2*xe ;
  127.  
  128. NU=10. ;
  129.  
  130. *RV = EQEX $couette OPTI 'EF' 'IMPL' PRESSP0
  131. RV = EQEX $couette OPTI 'EF' 'IMPL'
  132. ZONE $couette OPER LAPN NU INCO 'UN'
  133. ZONE $couette OPER DUDW EPSS INCO 'UN'
  134. 'CLIM' 'UN' 'UIMP' cntext u2x 'UN' 'VIMP' cntext u2y
  135. 'UN' 'UIMP' cntint u1x 'UN' 'VIMP' cntint u1y ;
  136.  
  137. mess ' 2 EQEX ' ;
  138. RT = EQEX $couette OPTI 'EF' 'IMPL'
  139. ZONE $couette OPER LAPN NU INCO 'TN'
  140. 'CLIM' 'TN' 'TIMP' cntint T1 'TN' 'TIMP' cntext T2 ;
  141.  
  142. rv.'INCO'=table 'INCO' ;
  143. rv.'INCO'.'UN' = kcht $couette VECT SOMMET (0. 0.) ;
  144.  
  145. rt.'INCO'=table 'INCO' ;
  146. rt.'INCO'.'TN' = kcht $couette SCAL SOMMET 0. ;
  147.  
  148. EXEC RV ;
  149.  
  150. EXEC RT ;
  151.  
  152. *** Traces ***
  153. si ('EGA' graph 'O' );
  154. un=rv.'INCO'.'UN' ;
  155. tn=rt.'INCO'.'TN' ;
  156. un1=vect un 0.1 ux uy jaune ;
  157. trace un1 couette ;
  158. finsi ;
  159.  
  160. *** Solutions analytiques ***
  161.  
  162. ****** Comparaison vitesse calculée / vitesse analytique *****
  163.  
  164. srti=doma $axs 'MAILLAGE' ;
  165. si ( non (ega macro 'MACRO'));
  166. *srtq=chan srti seg2 ;
  167. srtq = srti ;
  168. $axq=mode srtq 'NAVIER_STOKES' MACRO ;
  169. srtv=extr (evol 'CHPO' (ELNO $axq (doma $axq 'VOLUME')) srtq) 'ORDO';
  170. sinon ;
  171. srtv=extr (evol 'CHPO' (ELNO $axs (doma $axs 'VOLUME')) srti) 'ORDO';
  172. finsi ;
  173. lcu =extr (rv.'INCO'.'UN') 'COMP' ;
  174. uteta=((rv.'INCO'.'UN') lcu 'PSCA' (rv.'INCO'.'UN') lcu)**0.5 ;
  175. evol2 = EVOL 'CHPO' (rv.'INCO'.'UN') UY (srti ) ;
  176. *evol2 = EVOL 'CHPO' uteta 'SCAL' (srti ) ;
  177. r1=evol 'CHPO' (coor 1 srti ) srti ;
  178. r=extr r1 'ORDO' ;
  179. yu1=extr evol2 'ORDO' ;
  180. evol2= evol 'MANU' 'Rayon' r 'Vitesse' yu1 ;
  181. ric=ri*ri ; rec=re*re ; w1=u1/ri ; w2=u2/re ;
  182. ar=prog nbee* (rec - ric) ;
  183. ue=r*((rec*w2) - (ric*w1)) ;
  184. riec=prog nbee* (ric*rec) ;
  185. ue=ue - ( ( (riec)/r )*(w2-w1) ) ;
  186. ue=ue/ar ;
  187.  
  188. evol1 = EVOL 'MANU' Rayon r 'Vitesse' ue ;
  189. evolt = evol1 et evol2 ;
  190. TAB1=TABLE;
  191. TAB1.1='MARQ ETOI REGU ' ;
  192. TAB1.2='TIRR REGU ';
  193. TAB1.'TITRE' =TABLE;
  194. TAB1.'TITRE'. 1 =MOT 'Vitesse_théorique ' ;
  195. TAB1.'TITRE'. 2 =MOT 'Vcalculée ';
  196.  
  197. l1=extr evol1 'ORDO' ; l2=extr evol2 'ORDO' ;
  198. er=(SOMM ( (l1 - l2 )*(l1 - l2)*srtv ) ) ** 0.5 ;
  199. mess 'Erreur sur la composante azimuthale de la vitesse ' er ;
  200. si ( er > erru ) ; erreur 5 ; finsi ;
  201.  
  202. si ('EGA' graph 'O' );
  203. DESS evolt 'TITX' 'R (m)' 'TITY' 'V (m/s)' LEGE TAB1 ;
  204. finsi ;
  205. ****** Comparaison Teta calculé / Teta analytique *****
  206.  
  207. kt=(T2-T1)/(Log (Re/Ri)) ;
  208. tl1=prog nbee* T1 ;
  209. rli=prog nbee* Ri ;
  210. teta=tl1 + (kt * (Log(r/Rli))) ;
  211.  
  212. evl1 = EVOL 'MANU' Rayon r 'Teta_analytique' teta ;
  213. evl2 = EVOL 'CHPO' (rt.'INCO'.'TN') 'SCAL' (srti ) ;
  214. yt1=extr evl2 'ORDO' ;
  215. evl2= evol 'MANU' 'Rayon' r 'Teta_calculé ' yt1;
  216. evlt= evl1 et evl2 ;
  217. TABT=TABLE;
  218. TABT.1='MARQ ETOI REGU ' ;
  219. TABT.2='TIRR REGU ';
  220. TABT.'TITRE'=TABLE;
  221. TABT.'TITRE'. 1=MOT 'Teta_analytique ' ;
  222. TABT.'TITRE'. 2=MOT 'Teta_calculé ';
  223.  
  224. l1=extr evl1 'ORDO' ; l2=extr evl2 'ORDO' ;
  225. er=(SOMM ( (l1 - l2 )*(l1 - l2)*srtv ) ) ** 0.5 ;
  226. mess 'Erreur sur la temperature ' er ;
  227. si ( er > errt ) ; erreur 5 ; finsi ;
  228.  
  229. si ('EGA' graph 'O' );
  230. DESS evlt 'TITX' 'r' 'TITY' 'Teta' LEGE TABT ;
  231. finsi ;
  232. FINPROC RV ;
  233.  
  234. opti ISOV suli ;
  235.  
  236. option dime 2 elem tri6 ;
  237. MACRO='MACRO' ;
  238. EPSS=1.E-6 ;
  239. RV=TEST MACRO GRAPH EPSS ERUT3 ERTT3 NBE NBV ;
  240.  
  241. option dime 2 elem tri6 ;
  242. MACRO='QUAF' ;
  243. EPSS=1.E-12;
  244. RV=TEST MACRO GRAPH EPSS ERUT7 ERTT7 NBE NBV ;
  245.  
  246. option dime 2 elem qua8 ;
  247. MACRO='MACRO' ;
  248. EPSS=1.E-12 ;
  249. RV=TEST MACRO GRAPH EPSS ERUQ4 ERTQ4 NBV NBV ;
  250.  
  251. option dime 2 elem qua8 ;
  252. MACRO='QUAF' ;
  253. EPSS=1.E-12 ;
  254. RV=TEST MACRO GRAPH EPSS ERUQ9 ERTQ9 NBV NBV ;
  255. FIN ;
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  

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