Télécharger cd_clim.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : cd_clim.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. * NOM : CD_CLIM
  5. * DESCRIPTION : Calcul d'un problème de convection-diffusion illustrant
  6. * l'importance de l'intégration par parties sur les
  7. * conditions aux limites.
  8. * 2D Convection-diffusion problem with a focus on the
  9. * integration by parts' influence on the boundary
  10. * conditions.
  11. * + interactive GUI (interact = vrai)
  12. * + slide generation for the lecture notes (transp = vrai)
  13. *
  14. *
  15. * See:
  16. * ENSTA Lecture Notes 2021
  17. * Introduction to the finite element method applied to
  18. * incompressible fluid mechanics (in english)
  19. * Introduction a la methode des elements finis en
  20. * mecanique des fluides incompressibles (en francais)
  21. * Stephane GOUNAND and Sergey KUDRIAKOV
  22. * http://www-cast3m.cea.fr/index.php?xml=supportcours
  23. *
  24. *
  25. * LANGAGE : GIBIANE-CAST3M
  26. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  27. * mél : gounand@semt2.smts.cea.fr
  28. **********************************************************************
  29. * VERSION : v1, 25/09/2007, version initiale
  30. * HISTORIQUE : v1, 25/09/2007, création
  31. ************************************************************************
  32. *
  33. 'OPTION' 'DIME' 2 ;
  34. interact = FAUX ;
  35. transp = VRAI ;
  36. *
  37. 'DEBPROC' CALCUL ;
  38. 'ARGUMENT' ikonv*'ENTIER' ;
  39. 'ARGUMENT' iPe*'ENTIER' ;
  40. 'ARGUMENT' isupg*'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 = 'LINE' ;
  52. *
  53. lPe = 'PROG' 1. 10. 20. 50. 100. ;
  54. Pe = 'EXTRAIRE' lPe iPe ;
  55. 'SI' ('EGA' ikonv 1) ;
  56. mkonv = 'NOCONS' ;
  57. 'SINON' ;
  58. mkonv = 'CONS' ;
  59. 'FINSI' ;
  60. 'SI' ('EGA' isupg 1) ;
  61. msupg = 'CENTREE' ;
  62. niter = 1 ;
  63. omega = 1. ;
  64. 'FINSI' ;
  65. 'SI' ('EGA' isupg 2) ;
  66. msupg = 'SUPG' ;
  67. niter = 1 ;
  68. omega = 1. ;
  69. 'FINSI' ;
  70. 'SI' ('EGA' isupg 3) ;
  71. msupg = 'SUPGDC' ;
  72. niter = 10 ;
  73. omega = 0.7 ;
  74. 'FINSI' ;
  75. *
  76. * Maillage (Mesh)
  77. *
  78. p0 = 0. 0. ; p1 = 1. 0. ;
  79. lt = 'DROIT' nmail p0 p1 ;
  80. mt = 'TRANSLATION' lt nmail (0. 1.) ;
  81. *mt = 'TRANSLATION' lt nmail (0. iang) ;
  82. cmt = 'CONTOUR' mt ;
  83. bas dro hau gau = 'COTE' mt ;
  84. hau = 'INVERSE' hau ;
  85. _bas = 'CHANGER' bas 'QUAF' ; _dro = 'CHANGER' dro 'QUAF' ;
  86. _hau = 'CHANGER' hau 'QUAF' ; _gau = 'CHANGER' gau 'QUAF' ;
  87. _mt = 'CHANGER' mt 'QUAF' ;
  88. 'ELIMINATION' (_mt 'ET' _bas 'ET' _gau 'ET' _dro 'ET' _hau) 1.D-6 ;
  89. $mt = 'MODE' _mt 'NAVIER_STOKES' kvit ;
  90. $gau = 'MODE' _gau 'NAVIER_STOKES' kvit ;
  91. $dro = 'MODE' _dro 'NAVIER_STOKES' kvit ;
  92. $hau = 'MODE' _hau 'NAVIER_STOKES' kvit ;
  93. $bas = 'MODE' _bas 'NAVIER_STOKES' kvit ;
  94. mt = 'DOMA' $mt 'MAILLAGE' ; gau = 'DOMA' $gau 'MAILLAGE' ;
  95. dro = 'DOMA' $dro 'MAILLAGE' ; hau = 'DOMA' $hau 'MAILLAGE' ;
  96. bas = 'DOMA' $bas 'MAILLAGE' ;
  97. cmt = bas 'ET' dro 'ET' hau 'ET' gau ;
  98. *
  99. * Conditions aux limites (Boundary conditions)
  100. *
  101. mdiri = hau 'ET' gau 'ET' bas ;
  102. * Champ de vitesses (velocity field)
  103. ymt = 'COORDONNEE' 2 mt ;
  104. mymt = '*' ('-' ymt 1.) -1. ;
  105. vvit = 'NOMC' 'UX' (ymt '*' mymt '*' 4.D0) ;
  106. un = 'KCHT' $mt 'VECT' 'SOMMET' vvit ;
  107. *
  108. * table EQEX (Problem description)
  109. *
  110. rv = 'EQEX' 'NITER' niter 'OMEGA' omega 'ITMA' 1
  111. 'OPTI' 'EF' 'IMPL' msupg mkonv
  112. 'ZONE' $mt 'OPER' 'KONV' Pe 'UN' 1. 'INCO' 'TN'
  113. 'OPTI' 'EF' 'IMPL' 'CENTREE'
  114. 'ZONE' $mt 'OPER' 'LAPN' 1. 'INCO' 'TN'
  115. 'CLIM' 'TN' 'TIMP' mdiri 1. ;
  116. *
  117. rv . 'INCO' = 'TABLE' 'INCO' ;
  118. rv . 'INCO' . 'UN' = un ;
  119. rv . 'INCO' . 'TN' = 'KCHT' $mt 'SCAL' 'SOMMET' 0. ;
  120. *
  121. EXEC rv ;
  122. *
  123. tn = rv . 'INCO' . 'TN' ;
  124. *
  125. * Post-traitement (Post-treatment)
  126. *
  127. 'SI' ('EGA' itrac 1) ;
  128. vun = 'VECT' un 'DEPL' 'JAUN' ;
  129. 'SI' lnclk ;
  130. 'TRACER' tn mt cmt vun 16 'NCLK' ;
  131. 'SINON' ;
  132. 'TRACER' tn mt cmt vun 16 ;
  133. 'FINSI' ;
  134. 'FINSI' ;
  135. 'SI' ('EGA' itrac 2) ;
  136. 'OPTI' 'DIME' 3 ;
  137. dep = 'NOMC' 'UZ' tn ;
  138. dep = '/' dep ('MAXIMUM' dep 'ABS') ;
  139. oeil = '*' (-2.1 -2.4 2.3) 2. ;
  140. 'FORME' dep ;
  141. 'SI' lnclk ;
  142. 'TRACER' 'CACH' oeil tn mt 16 'NCLK' ;
  143. 'SINON' ;
  144. 'TRACER' 'CACH' oeil tn mt 16 ;
  145. 'FINSI' ;
  146. 'OPTI' 'DIME' 2 ;
  147. 'FINSI' ;
  148. 'FINPROC' ;
  149. *
  150. 'SI' interact ;
  151. *
  152. * Table contenant les choix des menus (Menu entries)
  153. *
  154. tko = 'TABLE' ;
  155. tko . 1 = 'NOCONS' ; tko . 2 = 'CONS' ;
  156. ntko = 'DIME' tko ; itko = 1 ;
  157. *
  158. tPe = 'TABLE' ;
  159. tPe . 1 = 'Pe=1.' ; tPe . 2 = 'Pe=10.' ; tPe . 3 = 'Pe=20.' ;
  160. tPe . 4 = 'Pe=50' ; tPe . 5 = 'Pe=100' ;
  161. ntPe = 'DIME' tPe ; itPe = 1 ;
  162. *
  163. tsu = 'TABLE' ;
  164. tsu . 1 = 'CENTREE' ; tsu . 2 = 'SUPG' ; tsu . 3 = 'SUPGDC' ;
  165. ntsu = 'DIME' tsu ; itsu = 1 ;
  166. *
  167. ttr = 'TABLE' ;
  168. ttr . 1 = '2D' ; ttr . 2 = '3D' ;
  169. nttr = 'DIME' ttr ; ittr = 1 ;
  170. *
  171. * Boucle d'affichage (Print loop)
  172. *
  173. 'REPETER' bouc ;
  174. CALCUL itko itPe itsu ittr VRAI ;
  175. cha = 'CHAINE' 'Convection-diffusion sortie naturelle' ;
  176. ret = 'MENU' cha (tko . itko) (tPe . itPe) (tsu . itsu)
  177. (ttr . ittr) ;
  178. 'SI' ('EGA' ret 'Quitter') ;
  179. 'QUITTER' bouc ;
  180. 'FINSI';
  181. 'SI' ('EGA' ret (tko . itko)) ; itko = '+' itko 1 ; 'FINSI' ;
  182. 'SI' (itko > ntko) ; itko = 1 ; 'FINSI';
  183. 'SI' ('EGA' ret (tPe . itPe)) ; itPe = '+' itPe 1 ; 'FINSI' ;
  184. 'SI' (itPe > ntPe) ; itPe = 1 ; 'FINSI';
  185. 'SI' ('EGA' ret (tsu . itsu)) ; itsu = '+' itsu 1 ; 'FINSI' ;
  186. 'SI' (itsu > ntsu) ; itsu = 1 ; 'FINSI';
  187. 'SI' ('EGA' ret (ttr . ittr)) ; ittr = '+' ittr 1 ; 'FINSI' ;
  188. 'SI' (ittr > nttr) ; ittr = 1 ; 'FINSI';
  189. 'FIN' bouc ;
  190. 'FINS' ;
  191. *
  192. * Mes transparents
  193. * Lecture notes slides
  194. *
  195. 'SI' transp ;
  196. 'OPTI' 'TRAC' 'PS' 'ISOV' 'SULI' ;
  197. CALCUL 1 1 1 1 ;
  198. CALCUL 2 1 1 1 ;
  199. 'FINSI' ;
  200. *
  201. 'SI' interact ;
  202. 'OPTION' 'DONN' 5 ;
  203. 'FINSI' ;
  204. *
  205. * End of dgibi file CD_CLIM
  206. *
  207. 'FIN' ;
  208.  
  209.  
  210.  
  211.  

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