Télécharger paraton.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : paraton.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. * NOM : PARATON.DGIBI
  5. * DESCRIPTION : Laplacian on a domain with a spike
  6. *
  7. *
  8. * See:
  9. * ENSTA Lecture Notes 2021
  10. * Introduction to the finite element method applied to
  11. * incompressible fluid mechanics (in english)
  12. * Introduction a la methode des elements finis en
  13. * mecanique des fluides incompressibles (en francais)
  14. * Stephane GOUNAND and Sergey KUDRIAKOV
  15. * http://www-cast3m.cea.fr/index.php?xml=supportcours
  16. *
  17. *
  18. * LANGAGE : GIBIANE-CAST3M
  19. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  20. * mél : stephane.gounand@cea.fr
  21. **********************************************************************
  22. * VERSION : v1, 11/10/2011, version initiale
  23. * HISTORIQUE : v1, 11/10/2011, création
  24. ************************************************************************
  25. *
  26. 'OPTION' 'DIME' 2 'ELEM' 'TRI3' 'MODE' 'PLAN' ;
  27. graph = FAUX ;
  28. interact = FAUX ;
  29. *
  30. * MODIF procedure :
  31. * Utility for creating mesh and 'NAVIER_STOKES' model object.
  32. * All meshes that will be used for Fluid Mechanics Modeling (including
  33. * post-treatment) must be given to MODIF.
  34. * MODIF must be called only once ! (because of the use of ELIM operator)
  35. *
  36. * Usage :
  37. * mail1 mod1 mail2 mod2 ... = MODIF MOT1 mail1 mail2 ...
  38. * where : maili is a MAILLAGE object
  39. * modi is a 'NAVIER_STOKES' MODEL object
  40. * MOT1 is a discretization name ('LINE' or 'MACRO' or 'QUAF')
  41. *
  42. 'DEBPROC' MODIF discr*'MOT';
  43. tmailq = 'TABLE' 'ESCLAVE' ;
  44. tmodns = 'TABLE' ;
  45. 'REPETER' barg ;
  46. * Read an optional mesh argument
  47. * On lit un éventuel argument
  48. 'ARGUMENT' mail/'MAILLAGE';
  49. 'SI' ('EXISTE' mail) ;
  50. mailq = 'CHANGER' mail 'QUAF' ;
  51. tmailq . &barg = mailq ;
  52. tmodns . &barg = 'MODE' mailq 'NAVIER_STOKES' discr ;
  53. 'SINON' ;
  54. 'QUITTER' barg;
  55. 'FINSI' ;
  56. 'FIN' barg ;
  57. * Elimination of geometrically-coincident points created with
  58. * 'CHANGER' 'QUAF'
  59. 'ELIMINATION' ('ET' tmailq) 1.D-6 ;
  60. * Output the resulting mesh and models
  61. 'REPETER' bsort ('DIME' tmodns) ;
  62. modns = tmodns . &bsort ;
  63. mail = 'DOMA' modns 'MAILLAGE' ;
  64. 'RESPRO' mail modns ;
  65. 'FIN' bsort ;
  66. 'FINPROC' ;
  67. *
  68. * Mesh
  69. *
  70. ang = 0. ; epsi = 0.5 '*' ('TAN' ('/' ang 2.)) ;
  71. * Points
  72. pA = epsi 0. ; pB = 1. 0. ; pC = 1. 1. ; pD = 0. 1. ;
  73. pE = 0. 0.5 ; pF = 1. 0.5 ;
  74. dpeti = 0.01 ;
  75. dgran = 0.2 ;
  76. * Distance to point pE
  77. pcont = pA 'ET' pB 'ET' pC 'ET' pD 'ET' pE 'ET' pF ;
  78. xpc ypc = 'COORDONNEE' pcont ;
  79. xpe ype = 'COORDONNEE' pE ;
  80. dpe = '**' ('+' ('**' ('-' xpc xpe) 2) ('**' ('-' ypc ype) 2)) 0.5 ;
  81. * Wanted Element density
  82. wed = '+' ('*' dpe ('/' ('-' dgran dpeti) ('MAXIMUM' dpe))) dpeti ;
  83. dA = 'EXTRAIRE' wed 'SCAL' pA ;
  84. dB = 'EXTRAIRE' wed 'SCAL' pB ;
  85. dC = 'EXTRAIRE' wed 'SCAL' pC ;
  86. dD = 'EXTRAIRE' wed 'SCAL' pD ;
  87. dE = 'EXTRAIRE' wed 'SCAL' pE ;
  88. dF = 'EXTRAIRE' wed 'SCAL' pF ;
  89. * Lines
  90. dAB = 'DROIT' pA pB 'DINI' dA 'DFIN' dB ;
  91. dBF = 'DROIT' pB pF 'DINI' dB 'DFIN' dF ;
  92. dFE = 'DROIT' pF pE 'DINI' dF 'DFIN' dE ;
  93. dEA = 'DROIT' pE pA 'DINI' dE 'DFIN' dA ;
  94. dFC = 'DROIT' pF pC 'DINI' dF 'DFIN' dC ;
  95. dCD = 'DROIT' pC pD 'DINI' dC 'DFIN' dD ;
  96. dDE = 'DROIT' pD pE 'DINI' dD 'DFIN' dE ;
  97. dBC = dBF 'ET' dFC ;
  98. dEA = 'COULEUR' dEA 'BLEU' ; dAB = 'COULEUR' dAB 'BLEU' ;
  99. dCD = 'COULEUR' dCD 'ROUG' ;
  100. * Surface
  101. cmt1 = dAB 'ET' dBF 'ET' dFE 'ET' dEA ;
  102. cmt2 = ('INVERSE' dFE) 'ET' dFC 'ET' dCD 'ET' dDE ;
  103. mt1 = 'SURFACE' wed cmt1 ;
  104. mt2 = 'SURFACE' wed cmt2 ;
  105. mt = mt1 'ET' mt2 ;
  106. * Navier_Stokes model objects
  107. mt $mt dAB $dAB dBC $dBC dCD $dCD dDE $dDE dEA $dEA dFE $dFE =
  108. MODIF 'LINE' mt dAB dBC dCD dDE dEA dFE ;
  109. 'SI' graph ;
  110. 'SI' ('EGA' ang 0. 1.e-6) ;
  111. * Plot mesh
  112. cm = ('COULEUR' (dEA 'ET' dAB) 'BLEU') 'ET' dBC
  113. 'ET' ('COULEUR' dCD 'ROUG') 'ET' ('COULEUR' dDE 'VERT') ;
  114. 'TRACER' cm ;
  115. 'TRACER' mt ;
  116. 'SINON' ;
  117. * Plot symmetrized mesh
  118. cm = ('COULEUR' (dEA 'ET' dAB) 'BLEU') 'ET' dBC
  119. 'ET' ('COULEUR' dCD 'ROUG') ;
  120. mts cms = 'SYMETRIE' mt cm 'DROIT' pD pE ;
  121. cmtt = cm 'ET' cms ;
  122. mtt = mt 'ET' mts ;
  123. 'ELIMINATION' mtt 1.D-6 ;
  124. 'TRACER' cmtt ;
  125. 'TRACER' mtt ;
  126. 'FINSI' ;
  127. 'FINSI' ;
  128. *
  129. * Discretization
  130. *
  131. rv = 'EQEX'
  132. 'OPTI' 'EF' 'IMPL' 'CENTREE'
  133. 'ZONE' $mt 'OPER' 'LAPN' 1. 'INCO' 'VN' ;
  134. * Boundary condition
  135. mv0 = dEA 'ET' dAB ;
  136. cv0 = 'MANUEL' 'CHPO' mv0 1 'SCAL' 0. 'NATURE' 'DIFFUS' ;
  137. mvy = dBC ;
  138. cvy = 'COORDONNEE' 2 mvy ;
  139. cvy = 'CHANGER' cvy 'ATTRIBUT' 'NATURE' 'DIFFUS' ;
  140. mv1 = dCD ;
  141. cv1 = 'MANUEL' 'CHPO' mv1 1 'SCAL' 1. 'NATURE' 'DIFFUS' ;
  142. mvt = mv0 'ET' mvy 'ET' mv1 ;
  143. cvt = cv0 'ET' cvy 'ET' cv1 ;
  144. rv = 'EQEX' rv 'CLIM' 'VN' 'TIMP' mvt cvt ;
  145. * Unknown initialization
  146. rv . 'INCO' = 'TABLE' 'INCO' ;
  147. rv . 'INCO' . 'VN' = 'KCHT' $mt 'SCAL' 'SOMMET' 0. ;
  148. *
  149. * Solution
  150. *
  151. EXEC rv ;
  152. *
  153. * Post-treatment
  154. *
  155. vn = rv . 'INCO' . 'VN' ;
  156. vn = 'CHANGER' 'ATTRIBUT' vn 'NATURE' 'DIFFUS' ;
  157. 'SI' graph ;
  158. 'SI' ('EGA' ang 0.0 1.D-6) ;
  159. * Plot solution
  160. cmt = 'CONTOUR' mt ;
  161. 'OPTI' 'ISOV' 'SULI' ;
  162. 'TRACER' vn mt cmt 60 ;
  163. dAD = 'INVERSE' ('ET' dDE dEA) ;
  164. dEF = 'INVERSE' dFE ;
  165. evad = 'EVOL' 'ROUG' 'CHPO' vn dAD ;
  166. evef = 'EVOL' 'BLEU' 'CHPO' vn dEF ;
  167. evt = evad 'ET' evef ;
  168. tabev = 'TABLE' ;
  169. tabev . 1 = 'CHAINE' 'MARQ CROI REGU' ;
  170. tabev . 2 = 'CHAINE' 'MARQ CARR REGU' ;
  171. 'DESSIN' evt 'TITX' 'abs.curv.' 'TITY' 'Pot.' 'CARR' tabev ;
  172. 'SINON' ;
  173. * Plot symmetrized solution
  174. mts vns = 'SYMETRIE' mt vn 'DROIT' pD pE ;
  175. mtt = mt 'ET' mts ;
  176. vnt = vn 'ET' vns ;
  177. 'ELIMINATION' mtt 1.D-6 ;
  178. cmtt = 'CONTOUR' mtt ;
  179. 'OPTI' 'ISOV' 'SULI' ;
  180. 'TRACER' vnt mtt cmtt 20 ;
  181. 'FINSI' ;
  182. 'FINSI' ;
  183. *
  184. ok = VRAI ;
  185. *
  186. 'SI' ('NON' ok) ;
  187. 'MESSAGE' ('CHAINE' 'Il y a eu des erreurs') ;
  188. 'ERREUR' 5 ;
  189. 'SINON' ;
  190. 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ;
  191. 'FINSI' ;
  192. *
  193. 'SI' interact ;
  194. 'OPTION' 'ECHO' 1 ;
  195. 'OPTION' 'DONN' 5 ;
  196. 'FINSI' ;
  197. *
  198. * End of dgibi file PARATON
  199. *
  200. 'FIN' ;
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  

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