Télécharger ns_clim.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : ns_clim.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. * NOM : NS_CLIM
  5. * DESCRIPTION : Calcul du problème de Navier-Stokes illustrant
  6. * l'importance de l'intégration par parties sur les
  7. * conditions aux limites.
  8. * Navier-Stokes problem with a focus on the integration by
  9. * parts' influence on the boundary conditions.
  10. * + interactive GUI (interact = vrai)
  11. * + slide generation for the lecture notes (transp = vrai)
  12. *
  13. *
  14. * See:
  15. * ENSTA Lecture Notes 2021
  16. * Introduction to the finite element method applied to
  17. * incompressible fluid mechanics (in english)
  18. * Introduction a la methode des elements finis en
  19. * mecanique des fluides incompressibles (en francais)
  20. * Stephane GOUNAND and Sergey KUDRIAKOV
  21. * http://www-cast3m.cea.fr/index.php?xml=supportcours
  22. *
  23. *
  24. * LANGAGE : GIBIANE-CAST3M
  25. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  26. * mél : gounand@semt2.smts.cea.fr
  27. **********************************************************************
  28. * VERSION : v1, 25/09/2007, version initiale
  29. * HISTORIQUE : v1, 25/09/2007, création
  30. ************************************************************************
  31. *
  32. 'OPTION' 'DIME' 2 ;
  33. interact = FAUX ;
  34. transp = VRAI ;
  35. *
  36. 'DEBPROC' CALCUL ;
  37. 'ARGUMENT' ifor*'ENTIER' ;
  38. 'ARGUMENT' iRe*'ENTIER' ;
  39. 'ARGUMENT' ikonv*'ENTIER' ;
  40. 'ARGUMENT' ilapn*'ENTIER' ;
  41. 'ARGUMENT' itrac*'ENTIER' ;
  42. 'ARGUMENT' lnclk/'LOGIQUE' ;
  43. *
  44. 'SI' ('NON' ('EXISTE' lnclk)) ;
  45. lnclk = FAUX ;
  46. 'FINSI' ;
  47. *
  48. 'OPTI' 'ELEM' 'QUA4' ;
  49. *
  50. nmail = 10 ;
  51. kvit = 'QUAF' ;
  52. kpre = 'CENTREP1' ;
  53. *
  54. lRe = 'PROG' 1. 200. ;
  55. Re = 'EXTRAIRE' lRe iRe ;
  56. 'SI' ('EGA' ikonv 1) ;
  57. mkonv = 'NOCONS' ;
  58. 'SINON' ;
  59. mkonv = 'CONS' ;
  60. 'FINSI' ;
  61. 'SI' ('EGA' ilapn 1) ;
  62. mlapn = 'MUCONS' ;
  63. 'SINON' ;
  64. mlapn = 'FTAU' ;
  65. 'FINSI' ;
  66. *
  67. * Maillage
  68. *
  69. p0 = 0. 0. ; p1 = 1. 0. ;
  70. lt = 'DROIT' nmail p0 p1 ;
  71. mt = 'TRANSLATION' lt nmail (0. 1.) ;
  72. *mt = 'TRANSLATION' lt nmail (0. iang) ;
  73. cmt = 'CONTOUR' mt ;
  74. bas dro hau gau = 'COTE' mt ;
  75. hau = 'INVERSE' hau ;
  76. _bas = 'CHANGER' bas 'QUAF' ; _dro = 'CHANGER' dro 'QUAF' ;
  77. _hau = 'CHANGER' hau 'QUAF' ; _gau = 'CHANGER' gau 'QUAF' ;
  78. _mt = 'CHANGER' mt 'QUAF' ;
  79. 'ELIMINATION' (_mt 'ET' _bas 'ET' _gau 'ET' _dro 'ET' _hau) 1.D-6 ;
  80. $mt = 'MODE' _mt 'NAVIER_STOKES' kvit ;
  81. $gau = 'MODE' _gau 'NAVIER_STOKES' kvit ;
  82. $dro = 'MODE' _dro 'NAVIER_STOKES' kvit ;
  83. $hau = 'MODE' _hau 'NAVIER_STOKES' kvit ;
  84. $bas = 'MODE' _bas 'NAVIER_STOKES' kvit ;
  85. mt = 'DOMA' $mt 'MAILLAGE' ; gau = 'DOMA' $gau 'MAILLAGE' ;
  86. dro = 'DOMA' $dro 'MAILLAGE' ; hau = 'DOMA' $hau 'MAILLAGE' ;
  87. bas = 'DOMA' $bas 'MAILLAGE' ;
  88. cmt = bas 'ET' dro 'ET' hau 'ET' gau ;
  89. mpres = 'DOMA' $mt kpre ;
  90. mp1 = 'ELEM' mpres 1 ;
  91. *
  92. * Conditions aux limites
  93. *
  94. xhau = 'COORDONNEE' 1 ('DOMA' $hau 'CENTRE') ;
  95. fxhau = 'NOMC' 'UX' ('SIN' ('*' xhau 180.)) 'NATURE' 'DISCRET' ;
  96. fyhau = 'NOMC' 'UY' ('SIN' ('*' xhau 360.)) 'NATURE' 'DISCRET' ;
  97. xh = 'COORDONNEE' 1 hau ;
  98. fyh = 'SIN' ('*' xh 360.) ;
  99. *
  100. fxhau = 'NOMC' 'UX' ('SIN' ('*' xhau 180.)) 'NATURE' 'DISCRET' ;
  101. fyhau = 'NOMC' 'UY' ('SIN' ('*' xhau 360.)) 'NATURE' 'DISCRET' ;
  102. mdiri = bas 'ET' dro 'ET' gau ;
  103. mux = mdiri ;
  104. muy = mdiri ;
  105. 'SI' ('EGA' ifor 1) ;
  106. fhau = 'KCHT' $hau 'VECT' 'CENTRE' fxhau ;
  107. fh = '*' fyh 0. ;
  108. * muy = muy 'ET' hau ;
  109. 'FINSI' ;
  110. 'SI' ('EGA' ifor 2) ;
  111. fhau = 'KCHT' $hau 'VECT' 'CENTRE' fyhau ;
  112. fh = fyh ;
  113. * mux = mux 'ET' hau ;
  114. 'FINSI' ;
  115. 'SI' ('EGA' ifor 3) ;
  116. fhau = 'KCHT' $hau 'VECT' 'CENTRE' (fxhau 'ET' fyhau) ;
  117. fh = fyh ;
  118. 'FINSI' ;
  119. *
  120. * table EQEX
  121. *
  122. rv = 'EQEX' 'NITER' 15 'OMEGA' 0.5D0 'ITMA' 1
  123. 'OPTI' 'EF' 'IMPL' 'CENTREE' kpre
  124. 'ZONE' $mt 'OPER' 'KBBT' 1. 'INCO' 'UN' 'PN'
  125. 'OPTI' 'EF' 'IMPL' 'CENTREE' mlapn
  126. 'ZONE' $mt 'OPER' 'LAPN' 1. 'INCO' 'UN'
  127. 'OPTI' 'EF' 'IMPL' 'CENTREE'
  128. 'ZONE' $hau 'OPER' 'TOIM' fhau 'INCO' 'UN'
  129. 'CLIM' 'UN' 'UIMP' mux 0.
  130. 'CLIM' 'UN' 'VIMP' muy 0.
  131. ;
  132. *'SI' ('EGA' ifor 1) ;
  133. *rv = 'EQEX' rv
  134. * 'CLIM' 'PN' 'TIMP' mp1 0. ;
  135. *'FINSI' ;
  136.  
  137. rv = 'EQEX' rv
  138. 'OPTI' 'EF' 'IMPL' 'CENTREE' mkonv
  139. 'ZONE' $mt 'OPER' 'KONV' Re 'UN' 0. 'INCO' 'UN' ;
  140. *
  141. rv . 'INCO' = 'TABLE' 'INCO' ;
  142. rv . 'INCO' . 'UN' = 'KCHT' $mt 'VECT' 'SOMMET' (0. 0.) ;
  143. rv . 'INCO' . 'PN' = 'KCHT' $mt 'SCAL' kpre 0. ;
  144. *
  145. EXEC rv ;
  146. *
  147. un = rv . 'INCO' . 'UN' ;
  148. pn = rv . 'INCO' . 'PN' ;
  149. maxun = 'MAXIMUM' un 'ABS' ;
  150. *
  151. *amp = '/' 1.2 nmail ;
  152. *vn = 'VECT' un amp 'DEPL' 'JAUN' ;
  153. fn = 'VECT' fhau 'DEPL' 'ROUG' ;
  154. vn = 'VECT' un 'DEPL' 'JAUN' ;
  155. *vtot = vn 'ET' fn ;
  156. vtot = vn ;
  157. ppn = 'ELNO' $mt pn kpre ;
  158. *
  159. * Post-traitement
  160. *
  161. 'SI' ('EGA' itrac 1) ;
  162. tit = 'CHAINE' 'Vitesses' ' ' kvit ' -- Pression' ' ' kpre ;
  163. 'SI' lnclk ;
  164. 'TRACER' ppn mt cmt vtot 'TITR' tit 'NCLK' ;
  165. 'SINON' ;
  166. 'TRACER' ppn mt cmt vtot 'TITR' tit ;
  167. 'FINSI' ;
  168. 'FINSI' ;
  169. 'SI' ('EGA' itrac 2) ;
  170. tit = 'CHAINE' 'Vitesses' ' ' kvit ' -- Pression' ' ' kpre ;
  171. 'SI' lnclk ;
  172. 'TRACER' vtot mt 'TITR' tit 'NCLK' ;
  173. 'SINON' ;
  174. 'TRACER' vtot mt 'TITR' tit ;
  175. 'FINSI' ;
  176. 'FINSI' ;
  177. 'SI' ('EGA' itrac 3) ;
  178. tit = 'CHAINE' 'Vitesses' ' ' kvit ' -- Pression' ' ' kpre ;
  179. 'SI' lnclk ;
  180. 'TRACER' ppn mt 'TITR' tit 'NCLK' ;
  181. 'SINON' ;
  182. 'TRACER' ppn mt 'TITR' tit ;
  183. 'FINSI' ;
  184. 'FINSI' ;
  185. 'SI' ('EGA' itrac 4) ;
  186. evux = 'EVOL' 'CHPO' un 'UX' hau ;
  187. evuy = 'EVOL' 'CHPO' un 'UY' hau ;
  188. evtot = ('COULEUR' evux 'JAUN') 'ET' ('COULEUR' evuy 'TURQ') ;
  189. *
  190. tabt = 'TABLE' ; tabt . 'TITRE' = 'TABLE' ;
  191. tabt . 1 = 'CHAINE' 'TIRC MARQ CROI' ;
  192. tabt . 2 = 'CHAINE' 'MARQ CARR' ;
  193. tabt . 'TITRE' . 1 = 'CHAINE' 'UX' ;
  194. tabt . 'TITRE' . 2 = 'CHAINE' 'UY' ;
  195. 'SI' lnclk ;
  196. 'DESSIN' evtot 'TITX' 'X' 'TITY' 'U'
  197. 'TITR' ('CHAINE' 'U(x)')
  198. 'LEGE' tabt 'NCLK' ;
  199. 'SINON' ;
  200. 'DESSIN' evtot 'TITX' 'X' 'TITY' 'U'
  201. 'TITR' ('CHAINE' 'U(x)')
  202. 'LEGE' tabt ;
  203. 'FINSI' ;
  204. 'FINSI' ;
  205. 'SI' ('EGA' itrac 5) ;
  206. evp = 'EVOL' 'CHPO' ppn 'SCAL' hau ;
  207. evf = 'EVOL' 'CHPO' fh 'SCAL' hau ;
  208. evtot = ('COULEUR' evp 'JAUN') 'ET' ('COULEUR' evf 'TURQ') ;
  209. *
  210. tabt = 'TABLE' ; tabt . 'TITRE' = 'TABLE' ;
  211. tabt . 1 = 'CHAINE' 'TIRC MARQ CROI' ;
  212. tabt . 2 = 'CHAINE' 'MARQ CARR' ;
  213. tabt . 'TITRE' . 1 = 'CHAINE' 'P' ;
  214. tabt . 'TITRE' . 2 = 'CHAINE' 'FY' ;
  215. 'SI' lnclk ;
  216. 'DESSIN' evtot 'TITX' 'X' 'TITY' 'F'
  217. 'TITR' ('CHAINE' 'F(x)')
  218. 'LEGE' tabt 'NCLK' ;
  219. 'SINON' ;
  220. 'DESSIN' evtot 'TITX' 'X' 'TITY' 'F'
  221. 'TITR' ('CHAINE' 'F(x)')
  222. 'LEGE' tabt ;
  223. 'FINSI' ;
  224. 'FINSI' ;
  225. 'FINPROC' maxun ;
  226. *
  227. 'SI' interact ;
  228. *
  229. * Table contenant les choix des menus
  230. *
  231. tfo = 'TABLE' ;
  232. tfo . 1 = 'FX' ; tfo . 2 = 'FY' ; tfo . 3 = 'FXY' ;
  233. ntfo = 'DIME' tfo ; itfo = 1 ;
  234. *
  235. tRe = 'TABLE' ;
  236. tRe . 1 = 'Re=1.' ; tRe . 2 = 'Re=200' ;
  237. *tRe . 3 = 'Re=500' ;
  238. ntRe = 'DIME' tRe ; itRe = 1 ;
  239. *
  240. tko = 'TABLE' ;
  241. tko . 1 = 'NOCONS' ; tko . 2 = 'CONS' ;
  242. ntko = 'DIME' tko ; itko = 1 ;
  243. *
  244. tla = 'TABLE' ;
  245. tla . 1 = 'MUCONS' ; tla . 2 = 'FTAU' ;
  246. ntla = 'DIME' tla ; itla = 1 ;
  247. *
  248. ttr = 'TABLE' ;
  249. ttr . 1 = 'Vit-Pres' ; ttr . 2 = 'Vit' ; ttr . 3 = 'CHAINE' 'Pres' ;
  250. ttr . 4 = 'Vit(hau)' ; ttr . 5 = 'For(hau)' ;
  251. nttr = 'DIME' ttr ; ittr = 1 ;
  252. *
  253. * Boucle d'affichage
  254. *
  255. 'REPETER' bouc ;
  256. maxun = CALCUL itfo itRe itko itla ittr VRAI ;
  257. cha = 'CHAINE' 'Stokes force sur hau ; max. vit = ' maxun ;
  258. ret = 'MENU' cha (tfo . itfo) (tRe . itRe) (tko . itko)
  259. (tla . itla) (ttr . ittr) ;
  260. 'SI' ('EGA' ret 'Quitter') ;
  261. 'QUITTER' bouc ;
  262. 'FINSI';
  263. 'SI' ('EGA' ret (tfo . itfo)) ; itfo = '+' itfo 1 ; 'FINSI' ;
  264. 'SI' (itfo > ntfo) ; itfo = 1 ; 'FINSI';
  265. 'SI' ('EGA' ret (tRe . itRe)) ; itRe = '+' itRe 1 ; 'FINSI' ;
  266. 'SI' (itRe > ntRe) ; itRe = 1 ; 'FINSI';
  267. 'SI' ('EGA' ret (tko . itko)) ; itko = '+' itko 1 ; 'FINSI' ;
  268. 'SI' (itko > ntko) ; itko = 1 ; 'FINSI';
  269. 'SI' ('EGA' ret (tla . itla)) ; itla = '+' itla 1 ; 'FINSI' ;
  270. 'SI' (itla > ntla) ; itla = 1 ; 'FINSI';
  271. 'SI' ('EGA' ret (ttr . ittr)) ; ittr = '+' ittr 1 ; 'FINSI' ;
  272. 'SI' (ittr > nttr) ; ittr = 1 ; 'FINSI';
  273. 'FIN' bouc ;
  274. 'FINS' ;
  275. *
  276. * Mes transparents
  277. *
  278. 'SI' transp ;
  279. 'OPTI' 'TRAC' 'PS' ;
  280. CALCUL 3 2 1 1 2 ;
  281. CALCUL 3 2 2 1 2 ;
  282. *
  283. CALCUL 3 2 1 1 2 ;
  284. CALCUL 3 2 1 2 2 ;
  285. *
  286.  
  287. 'FINSI' ;
  288. *
  289. 'SI' interact ;
  290. 'OPTION' 'DONN' 5 ;
  291. 'FINSI' ;
  292. *
  293. * End of dgibi file NS_CLIM
  294. *
  295. 'FIN' ;
  296.  
  297.  
  298.  
  299.  

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