Télécharger infsup.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : infsup.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. * NOM : INFSUP
  5. * DESCRIPTION : Calcul du problème de Stokes illustrant l'importance
  6. * de la condition inf-sup
  7. * Simple Stokes problem in a cavity with a focus on the
  8. * inf-sup condition
  9. * + interactive GUI (interact = vrai)
  10. * + slide generation for the lecture notes (transp = vrai)
  11. *
  12. *
  13. * See:
  14. * ENSTA Lecture Notes 2021
  15. * Introduction to the finite element method applied to
  16. * incompressible fluid mechanics (in english)
  17. * Introduction a la methode des elements finis en
  18. * mecanique des fluides incompressibles (en francais)
  19. * Stephane GOUNAND and Sergey KUDRIAKOV
  20. * http://www-cast3m.cea.fr/index.php?xml=supportcours
  21. *
  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' imail*'ENTIER' ;
  38. 'ARGUMENT' itri*'ENTIER' ;
  39. 'ARGUMENT' ielem*'ENTIER' ;
  40. 'ARGUMENT' ipert*'ENTIER' ;
  41. 'ARGUMENT' itrac*'ENTIER' ;
  42. 'ARGUMENT' lnclk/'LOGIQUE' ;
  43. *
  44. 'SI' ('NON' ('EXISTE' lnclk)) ;
  45. lnclk = FAUX ;
  46. 'FINSI' ;
  47. *
  48. 'SI' ('EGA' itri 1) ;
  49. 'OPTI' 'ELEM' 'QUA4' ;
  50. 'SINON' ;
  51. 'OPTI' 'ELEM' 'TRI3' ;
  52. 'FINSI' ;
  53. *
  54. nmail = '*' 5 imail ;
  55. 'SI' ('EGA' ielem 1) ;
  56. kvit = 'LINE' ;
  57. kpre = 'CENTRE' ;
  58. nmail = '*' nmail 2 ;
  59. 'FINSI' ;
  60. *'SI' ('EGA' ielem 2) ;
  61. * kvit = 'LINE' ;
  62. * kpre = 'MSOMMET' ;
  63. * nmail = '*' nmail 2 ;
  64. *'FINSI' ;
  65. 'SI' ('EGA' ielem 2) ;
  66. kvit = 'MACRO' ;
  67. kpre = 'CENTREP0' ;
  68. 'FINSI' ;
  69. 'SI' ('EGA' ielem 3) ;
  70. kvit = 'MACRO' ;
  71. kpre = 'CENTREP1' ;
  72. 'FINSI' ;
  73. *'SI' ('EGA' ielem 4) ;
  74. * kvit = 'MACRO' ;
  75. * kpre = 'MSOMMET' ;
  76. *'FINSI' ;
  77. 'SI' ('EGA' ielem 4) ;
  78. kvit = 'QUAF' ;
  79. kpre = 'CENTREP1' ;
  80. 'FINSI' ;
  81. *'SI' ('EGA' ielem 6) ;
  82. * kvit = 'QUAF' ;
  83. * kpre = 'MSOMMET' ;
  84. *'FINSI' ;
  85. *
  86. * Maillage (Mesh)
  87. *
  88. p0 = 0. 0. ; p1 = 1. 0. ;
  89. lt = 'DROIT' nmail p0 p1 ;
  90. mt = 'TRANSLATION' lt nmail (0. 1.) ;
  91. *mt = 'TRANSLATION' lt nmail (0. iang) ;
  92. cmt = 'CONTOUR' mt ;
  93. pmt = 'CHANGER' mt 'POI1' ; pcmt = 'CHANGER' cmt 'POI1' ;
  94. intmt = 'DIFF' pmt pcmt ;
  95. pertx = 'BRUIT' 'BLAN' 'GAUSS' 0. ('/' 0.05 nmail) intmt ;
  96. perty = 'BRUIT' 'BLAN' 'GAUSS' 0. ('/' 0.05 nmail) intmt ;
  97. 'SI' ('>' ipert 1) ;
  98. 'DEPLACER' mt 'PLUS'
  99. ('+' ('NOMC' 'UX' pertx) ('NOMC' 'UY' perty)) ;
  100. 'FINSI' ;
  101. bas dro hau gau = 'COTE' mt ;
  102. hau = 'INVERSE' hau ;
  103. _bas = 'CHANGER' bas 'QUAF' ; _dro = 'CHANGER' dro 'QUAF' ;
  104. _hau = 'CHANGER' hau 'QUAF' ; _gau = 'CHANGER' gau 'QUAF' ;
  105. _mt = 'CHANGER' mt 'QUAF' ;
  106. 'ELIMINATION' (_mt 'ET' _bas 'ET' _gau 'ET' _dro 'ET' _hau) 1.D-6 ;
  107. $mt = 'MODE' _mt 'NAVIER_STOKES' kvit ;
  108. $gau = 'MODE' _gau 'NAVIER_STOKES' kvit ;
  109. $dro = 'MODE' _dro 'NAVIER_STOKES' kvit ;
  110. $hau = 'MODE' _hau 'NAVIER_STOKES' kvit ;
  111. $bas = 'MODE' _bas 'NAVIER_STOKES' kvit ;
  112. mt = 'DOMA' $mt 'MAILLAGE' ; gau = 'DOMA' $gau 'MAILLAGE' ;
  113. dro = 'DOMA' $dro 'MAILLAGE' ; hau = 'DOMA' $hau 'MAILLAGE' ;
  114. bas = 'DOMA' $bas 'MAILLAGE' ;
  115. cmt = bas 'ET' dro 'ET' hau 'ET' gau ;
  116. mpres = 'DOMA' $mt kpre ;
  117. mp1 = 'ELEM' mpres 1 ;
  118. *
  119. xmt ymt = 'COORDONNEE' mt ;
  120. mxmt = '*' ('-' xmt 1.) -1. ;
  121. *
  122. soldep = xmt '*' mxmt '*' ymt '*' 4. ;
  123. solux = 'NOMC' 'UX' soldep 'NATURE' 'DISCRET' ;
  124. *
  125. mclim = bas 'ET' dro 'ET' hau 'ET' gau ;
  126. cux = 'REDU' solux mclim ;
  127. *
  128. * table EQEX (Problem description)
  129. *
  130. rv = 'EQEX' 'NITER' 1 'OMEGA' 1.D0 'ITMA' 1
  131. * 'OPTI' 'EF' 'IMPL' 'CENTREE' kpre
  132. * 'ZONE' $mt 'OPER' 'KBBT' 1. 'INCO' 'UN' 'PN'
  133. 'OPTI' 'EF' 'IMPL' 'CENTREE' kpre
  134. 'ZONE' $mt 'OPER' 'KMAB' 1. 'INCO' 'UN' 'PN'
  135. 'OPTI' 'EF' 'IMPL' 'CENTREE' kpre
  136. 'ZONE' $mt 'OPER' 'KMBT' 1. 'INCO' 'PN' 'UN'
  137. 'OPTI' 'EF' 'IMPL' 'CENTREE' kpre
  138. 'ZONE' $mt 'OPER' 'LAPN' 1. 'INCO' 'UN'
  139. 'CLIM' 'UN' 'UIMP' mclim cux
  140. 'CLIM' 'UN' 'VIMP' mclim 0.
  141. 'CLIM' 'PN' 'TIMP' mp1 0.
  142. ;
  143. *
  144. rv . 'INCO' = 'TABLE' 'INCO' ;
  145. rv . 'INCO' . 'UN' = 'KCHT' $mt 'VECT' 'SOMMET' (0. 0.) ;
  146. rv . 'INCO' . 'PN' = 'KCHT' $mt 'SCAL' kpre 0. ;
  147. *
  148. EXEC rv ;
  149. *
  150. un = rv . 'INCO' . 'UN' ;
  151. pn = rv . 'INCO' . 'PN' ;
  152. *
  153. 'SI' ('EGA' ielem 1) ;
  154. amp = '/' 2.4 nmail ;
  155. 'SINON' ;
  156. amp = '/' 1.2 nmail ;
  157. 'FINSI' ;
  158. vn = 'VECT' un amp 'DEPL' 'JAUN' ;
  159. ppn = 'ELNO' $mt pn kpre ;
  160. *
  161. * Post-traitement (Post-treatment)
  162. *
  163. 'SI' ('EGA' itrac 1) ;
  164. tit = 'CHAINE' 'Vitesses' ' ' kvit ' -- Pression' ' ' kpre ;
  165. 'SI' lnclk ;
  166. 'TRACER' ppn mt cmt vn 'TITR' tit 'NCLK' ;
  167. 'SINON' ;
  168. 'TRACER' ppn mt cmt vn 'TITR' tit ;
  169. 'FINSI' ;
  170. 'FINSI' ;
  171. 'SI' ('EGA' itrac 2) ;
  172. tit = 'CHAINE' 'Vitesses' ' ' kvit ' -- Pression' ' ' kpre ;
  173. 'SI' lnclk ;
  174. 'TRACER' vn mt 'TITR' tit 'NCLK' ;
  175. 'SINON' ;
  176. 'TRACER' vn mt 'TITR' tit ;
  177. 'FINSI' ;
  178. 'FINSI' ;
  179. 'SI' ('EGA' itrac 3) ;
  180. tit = 'CHAINE' 'Vitesses' ' ' kvit ' -- Pression' ' ' kpre ;
  181. 'SI' lnclk ;
  182. 'TRACER' ppn mt cmt 16 'TITR' tit 'NCLK' ;
  183. 'SINON' ;
  184. 'TRACER' ppn mt cmt 16 'TITR' tit ;
  185. 'FINSI' ;
  186. 'FINSI' ;
  187. 'FINPROC' ;
  188. *
  189. 'SI' interact ;
  190. 'OPTI' 'ISOV' 'SULI' ;
  191. *
  192. * Table contenant les choix des menus (Menu entries)
  193. *
  194. tnx = 'TABLE' ;
  195. tnx . 1 = 'nx=10' ; tnx . 2 = 'nx=20' ;
  196. tnx . 3 = 'nx=30' ; tnx . 4 = 'nx=40' ;
  197. *tnx . 5 = 'nx=50' ; tnx . 6 = 'nx=60' ;
  198. ntnx = 'DIME' tnx ; itnx = 1 ;
  199. *
  200. ttri = 'TABLE' ;
  201. ttri . 1 = 'Quad' ; ttri . 2 = 'Tri' ;
  202. nttri = 'DIME' ttri ; ittri = 1 ;
  203. *
  204. tel = 'TABLE' ;
  205. *tel . 1 = 'LINE-CENTRE' ; tel . 2 = 'LINE-MSOMMET' ;
  206. *tel . 3 = 'MACRO-CENTRE' ; tel . 4 = 'MACRO-MSOMMET' ;
  207. *tel . 5 = 'QUAF-CENTREP1' ; tel . 6 = 'QUAF-MSOMMET' ;
  208. tel . 1 = 'LINE-CENTRE' ; tel . 2 = 'MACRO-CENTREP0' ;
  209. tel . 3 = 'MACRO-CENTREP1' ; tel . 4 = 'QUAF-CENTREP1' ;
  210. ntel = 'DIME' tel ; itel = 1 ;
  211. *
  212. tpe = 'TABLE' ;
  213. tpe . 1 = 'Regu' ; tpe . 2 = 'Pertu' ;
  214. ntpe = 'DIME' tpe ; itpe = 1 ;
  215. *
  216.  
  217. ttr = 'TABLE' ;
  218. ttr . 1 = 'Vit-Pres' ; ttr . 2 = 'Vit' ; ttr . 3 = 'CHAINE' 'Pres' ;
  219. nttr = 'DIME' ttr ; ittr = 1 ;
  220. *
  221. * Boucle d'affichage (Print loop)
  222. *
  223. 'REPETER' bouc ;
  224. CALCUL itnx ittri itel itpe ittr VRAI ;
  225. cha = 'CHAINE' 'Stokes C.Lim Dirichlet' ;
  226. ret = 'MENU' cha (tnx . itnx) (ttri . ittri) (tel . itel)
  227. (tpe . itpe) (ttr . ittr) ;
  228. 'SI' ('EGA' ret 'Quitter') ;
  229. 'QUITTER' bouc ;
  230. 'FINSI';
  231. 'SI' ('EGA' ret (tnx . itnx)) ; itnx = '+' itnx 1 ; 'FINSI' ;
  232. 'SI' (itnx > ntnx) ; itnx = 1 ; 'FINSI';
  233. 'SI' ('EGA' ret (ttri . ittri)) ; ittri = '+' ittri 1 ; 'FINSI' ;
  234. 'SI' (ittri > nttri) ; ittri = 1 ; 'FINSI';
  235. 'SI' ('EGA' ret (tel . itel)) ; itel = '+' itel 1 ; 'FINSI' ;
  236. 'SI' (itel > ntel) ; itel = 1 ; 'FINSI';
  237. 'SI' ('EGA' ret (tpe . itpe)) ; itpe = '+' itpe 1 ; 'FINSI' ;
  238. 'SI' (itpe > ntpe) ; itpe = 1 ; 'FINSI';
  239. 'SI' ('EGA' ret (ttr . ittr)) ; ittr = '+' ittr 1 ; 'FINSI' ;
  240. 'SI' (ittr > nttr) ; ittr = 1 ; 'FINSI';
  241. 'FIN' bouc ;
  242. 'FINSI' ;
  243. *
  244. * Mes transparents
  245. * Lecture notes slides
  246. *
  247. 'SI' transp ;
  248. 'SI' ('NON' interact) ;
  249. 'OPTI' 'TRAC' 'PS' ;
  250. 'FINSI' ;
  251. 'OPTI' 'ISOV' 'SULI' ;
  252. *
  253. CALCUL 2 1 1 1 2 ;
  254. CALCUL 2 1 1 1 3 ;
  255. *
  256. CALCUL 2 1 4 1 2 ;
  257. CALCUL 2 1 4 1 3 ;
  258. 'FINSI' ;
  259. *
  260. 'SI' interact ;
  261. 'OPTION' 'DONN' 5 ;
  262. 'FINSI' ;
  263. *
  264. * End of dgibi file INFSUP
  265. *
  266. 'FIN' ;
  267.  
  268.  
  269.  
  270.  

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