Télécharger fcourant.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : fcourant.dgibi
  2. 'OPTI' 'ECHO' 0 ;
  3. ************************************************************************
  4. * NOM : FCOURANT
  5. * DESCRIPTION : Teste la procédure calculant la fonction de courant
  6. * sur un poiseuille en 2D et 2D axi
  7. *
  8. *
  9. *
  10. * LANGAGE : GIBIANE-CAST3M
  11. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  12. * mél : gounand@semt2.smts.cea.fr
  13. **********************************************************************
  14. * VERSION : v1, 21/12/2007, version initiale
  15. * HISTORIQUE : v1, 21/12/2007, création
  16. * HISTORIQUE :
  17. * HISTORIQUE :
  18. ************************************************************************
  19. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  20. * en cas de modification de ce sous-programme afin de faciliter
  21. * la maintenance !
  22. ************************************************************************
  23. 'SAUTER' 2 'LIGNE' ;
  24. 'MESSAGE' ' Execution de fcourant.dgibi' ;
  25. 'SAUTER' 2 'LIGNE' ;
  26. *
  27. interact = FAUX ;
  28. graph = FAUX ;
  29. *
  30. 'OPTION' 'DIME' 2 'ELEM' 'TRI6' ;
  31. *
  32. 'SI' ('NON' interact) ;
  33. 'OPTION' 'TRAC' 'PS' ;
  34. 'SINON' ;
  35. 'OPTION' 'TRAC' 'X' ;
  36. 'FINSI' ;
  37. *
  38. lok = VRAI ;
  39. *
  40. 'REPETER' iaxi 2 ;
  41. iiaxi = &iaxi ;
  42. 'SAUTER' 1 'LIGNE' ;
  43. 'SI' ('EGA' iiaxi 1) ;
  44. 'OPTI' 'MODE' 'PLAN' ;
  45. 'MESSAGE' 'Mode plan ' ;
  46. 'SINON' ;
  47. 'OPTI' 'MODE' 'AXIS' ;
  48. 'MESSAGE' 'Mode axi ' ;
  49. 'FINSI' ;
  50. 'SAUTER' 1 'LIGNE' ;
  51. *
  52. laxi = ('EGA' ('VALEUR' 'MODE') 'AXIS') ;
  53. *
  54. * Maillage
  55. *
  56. a = 1.2 ; b = 2.5 ;
  57. nx = 5 ; ny = 7 ;
  58. *nx = 10 ; ny = 14 ;
  59. dpdz = -1.5 ; mu = 0.9 ;
  60. vtoim = 0. ('*' dpdz b) ;
  61. disv = 'QUAF' ;
  62. disp = 'CENTREP1' ;
  63. *
  64. pA = 0. 0. ; pB = a 0. ; pC = a b ; pD = 0. b ;
  65. bas = 'DROIT' nx pA pB ; dro = 'DROIT' ny pB pC ;
  66. hau = 'DROIT' nx pC pD ; gau = 'DROIT' ny pD pA ;
  67. *
  68. cmt = bas 'ET' dro 'ET' hau 'ET' gau ;
  69. mt = 'SURFACE' cmt ;
  70. _mt = 'CHANGER' mt 'QUAF' ;
  71. *
  72. $mt = 'MODE' _mt 'NAVIER_STOKES' disv ;
  73. $hau = 'MODE' hau 'NAVIER_STOKES' disv ;
  74. *
  75. mt = 'DOMA' $mt 'MAILLAGE' ;
  76. *
  77. * Solution exacte 2D
  78. * u_x = 0
  79. * u_y = vmax (1 - x^2/a^2)
  80. * vmax = -dp/dz (a^2 / 2 mu)
  81. * p = dp/dz y
  82. * psi = vmax x (1 - x^2/3a^2)
  83. *
  84. 'SI' ('NON' laxi) ;
  85. vmax = '*' ('*' dpdz -1.) ('/' ('*' a a) ('*' mu 2)) ;
  86. x = 'COORDONNEE' 1 mt ;
  87. y = 'COORDONNEE' 2 ('DOMA' $mt disp) ;
  88. cy = '+' ('*' ('/' ('*' x x) ('*' a a)) -1.) 1. ;
  89. unx = 'NOMC' 'UY' ('*' vmax cy) ;
  90. pnx = '*' dpdz y ;
  91. cpsi = '+' ('*' ('/' ('*' x x) ('*' ('*' a a) 3)) -1.) 1. ;
  92. psix = '*' vmax ('*' x cpsi) ;
  93. 'SINON' ;
  94. *
  95. * Solution exacte 2D axi
  96. * u_r = 0
  97. * u_z = vmax (1 - r^2/a^2)
  98. * vmax = -dp/dz (a^2 / 4 mu)
  99. * p = dp/dz y
  100. * psi = vmax x (1 - x^2/3a^2)
  101. *
  102. vmax = '*' ('*' dpdz -1.) ('/' ('*' a a) ('*' mu 4)) ;
  103. r = 'COORDONNEE' 1 mt ;
  104. z = 'COORDONNEE' 2 ('DOMA' $mt disp) ;
  105. cz = '+' ('*' ('/' ('*' r r) ('*' a a)) -1.) 1. ;
  106. unx = 'NOMC' 'UY' ('*' vmax cz) ;
  107. pnx = '*' dpdz z ;
  108. cpsi = '+' ('*' ('/' ('*' r r) ('*' ('*' a a) 2)) -1.) 1. ;
  109. psix = '*' ('*' vmax PI) ('*' ('*' r r) cpsi) ;
  110. 'FINSI' ;
  111. *
  112. * Poiseuille
  113. *
  114. rv = 'EQEX' 'ITMA' 1 'ALFA' 1. 'NITER' 1
  115. 'OPTI' 'EF' 'IMPL' 'CENTREE' disp
  116. 'ZONE' $mt 'OPER' 'NS' 1. 'UN' mu 'INCO' 'UN'
  117. 'ZONE' $mt 'OPER' 'KBBT' 1. 'INCO' 'UN' 'PN'
  118. 'ZONE' $hau 'OPER' 'TOIM' vtoim 'INCO' 'UN'
  119. 'CLIM' 'UN' 'UIMP' dro 0. 'UN' 'VIMP' dro 0.
  120. 'CLIM' 'UN' 'UIMP' gau 0.
  121. ;
  122. rv . 'INCO' = 'TABLE' 'INCO' ;
  123. RV . 'INCO' . 'UN' = 'KCHT' $mt 'VECT' 'SOMMET' (0. 0.) ;
  124. RV . 'INCO' . 'PN' = 'KCHT' $mt 'SCAL' disp 0. ;
  125. *
  126. EXEC rv ;
  127. *
  128. un = rv . 'INCO' . 'UN' ;
  129. pn = rv . 'INCO' . 'PN' ;
  130. clpsi = 'MANUEL' 'CHPO' pA 1 'SCAL' 0. ;
  131. psi = FCOURANT _mt disv un clpsi ;
  132. *
  133. 'SI' graph ;
  134. titg = 'CHAINE' ' mod = ' ('VALEUR' 'MODE') ;
  135. vun = 'VECT' un 'UX' 'UY' 'JAUN' ;
  136. tit = 'CHAINE' 'Vitesse' titg ;
  137. 'TRACER' vun mt cmt 'TITR' tit ;
  138. ppn = 'ELNO' $mt pn disp ;
  139. tit = 'CHAINE' 'Pression' titg ;
  140. 'TRACER' ppn mt 'TITR' tit ;
  141. tit = 'CHAINE' 'Fonction de courant' titg ;
  142. 'TRACER' psi mt 'TITR' tit ;
  143. 'FINSI' ;
  144. *
  145. erru = 'MAXIMUM' ('-' un unx) 'ABS' ;
  146. errp = 'MAXIMUM' ('-' pn pnx) 'ABS' ;
  147. errf = 'MAXIMUM' ('-' psi psix) 'ABS' ;
  148. *
  149. 'MESSAGE' ('CHAINE' 'erru = ' erru) ;
  150. 'MESSAGE' ('CHAINE' 'errp = ' errp) ;
  151. 'MESSAGE' ('CHAINE' 'errf = ' errf) ;
  152. *
  153. * le 21/12/2007 sur ma machine :
  154. * Mode plan
  155. * erru = 4.21885E-15
  156. * errp = 3.15303E-14
  157. * errf = 6.36767E-04
  158. * Mode axi
  159. * erru = 2.66454E-15
  160. * errp = 2.62013E-14
  161. * errf = 5.45703E-03
  162. *
  163. tolup = 1.D-12 ;
  164. 'SI' laxi ;
  165. tolf = 6.D-3 ;
  166. 'SINON' ;
  167. tolf = 7.D-4 ;
  168. 'FINSI' ;
  169. *
  170. tst = ('<' erru tolup) ;
  171. 'SI' ('NON' tst) ;
  172. chmes = 'CHAINE' '!!! Erreur, on na pas erru < ' tolup ;
  173. 'MESSAGE' chmes ;
  174. 'FINSI' ;
  175. lok = lok 'ET' tst ;
  176. *
  177. tst = ('<' errp tolup) ;
  178. 'SI' ('NON' tst) ;
  179. chmes = 'CHAINE' '!!! Erreur, on na pas errp < ' tolup ;
  180. 'MESSAGE' chmes ;
  181. 'FINSI' ;
  182. lok = lok 'ET' tst ;
  183. *
  184. tst = ('<' errf tolf) ;
  185. 'SI' ('NON' tst) ;
  186. chmes = 'CHAINE' '!!! Erreur, on na pas errf < ' tolf ;
  187. 'MESSAGE' chmes ;
  188. 'FINSI' ;
  189. lok = lok 'ET' tst ;
  190. *
  191. 'FIN' iaxi ;
  192. *
  193. 'SAUTER' 2 'LIGNE' ;
  194. 'SI' lok ;
  195. 'MESSAGE' 'Tout sest bien passe' ;
  196. 'SINON' ;
  197. 'MESSAGE' 'Il y a eu des erreurs' ;
  198. 'FINSI' ;
  199. 'SAUTER' 2 'LIGNE' ;
  200. *
  201. 'SI' interact ;
  202. 'OPTION' 'DONN' 5 'ECHO' 1 ;
  203. 'FINSI' ;
  204. 'SI' ('NON' lok) ;
  205. 'ERREUR' 5 ;
  206. 'FINSI' ;
  207. *
  208. * End of dgibi file FCOURANT
  209. *
  210. 'FIN' ;
  211.  
  212.  
  213.  
  214.  

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