Télécharger diff1d.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : diff1d.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. * NOM : DIFF1D
  5. * DESCRIPTION : Non stationary 1D diffusion equation
  6. *
  7. * See:
  8. * ENSTA Lecture Notes 2021
  9. * Introduction to the finite element method applied to
  10. * incompressible fluid mechanics (in english)
  11. * Introduction a la methode des elements finis en
  12. * mecanique des fluides incompressibles (en francais)
  13. * Stephane GOUNAND and Sergey KUDRIAKOV
  14. * http://www-cast3m.cea.fr/index.php?xml=supportcours
  15. *
  16. *
  17. * LANGAGE : GIBIANE-CAST3M
  18. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  19. * mél : gounand@semt2.smts.cea.fr
  20. **********************************************************************
  21. * VERSION : v1, 03/10/2008, version initiale
  22. * HISTORIQUE : v1, 03/10/2008, création
  23. ************************************************************************
  24. *
  25. 'OPTION' 'DIME' 2 'ELEM' 'QUA8' ;
  26. graph = faux ;
  27. *
  28. * icini = 1 : initial condition which does not verify
  29. * the left boundary condition
  30. * icini = 2 : initial condition which does verify
  31. * the left boundary condition
  32. * dt : time-step
  33. * nmail : number of mesh elements
  34. * nitma : number of time steps
  35. *
  36. icini = 1 ;
  37. dt = 1.D-4 ;
  38. *
  39. nmail = 10 ;
  40. nitma = 10 ;
  41. *
  42. * Mesh
  43. *
  44. pA = 0. 0. ; pB = 1. 0. ;
  45. lt = 'DROIT' nmail pA pB ;
  46. bas = lt ;
  47. mt = 'TRANSLATION' lt 1 (0. 1.) ;
  48. gau = 'COTE' 4 mt ;
  49. dro = 'COTE' 2 mt ;
  50. _bas = 'CHANGER' bas 'QUAF' ;
  51. _gau = 'CHANGER' gau 'QUAF' ;
  52. _dro = 'CHANGER' dro 'QUAF' ;
  53. _mt = 'CHANGER' mt 'QUAF' ;
  54. 'ELIMINATION' (_mt 'ET' _bas 'ET' _gau 'ET' _dro) 1.D-6 ;
  55. $mt = 'MODE' _mt 'NAVIER_STOKES' 'LINE' ;
  56. $bas = 'MODE' _bas 'NAVIER_STOKES' 'LINE' ;
  57. $gau = 'MODE' _gau 'NAVIER_STOKES' 'LINE' ;
  58. $dro = 'MODE' _dro 'NAVIER_STOKES' 'LINE' ;
  59. mt = 'DOMA' $mt 'MAILLAGE' ;
  60. bas = 'DOMA' $bas 'MAILLAGE' ;
  61. gau = 'DOMA' $gau 'MAILLAGE' ;
  62. dro = 'DOMA' $dro 'MAILLAGE' ;
  63. *
  64. * Initial condition
  65. *
  66. 'SI' ('EGA' icini 1) ;
  67. cini = 'MANUEL' 'CHPO' mt 'SCAL' 0. ;
  68. 'FINSI' ;
  69. *
  70. 'SI' ('EGA' icini 2) ;
  71. cini = '+' ('MANUEL' 'CHPO' mt 'SCAL' 0.)
  72. ('MANUEL' 'CHPO' gau 'SCAL' 1.) ;
  73. 'FINSI' ;
  74. *
  75. * Problem definition
  76. *
  77. rv = 'EQEX' 'NITER' 1 'OMEGA' 1. 'ITMA' 1
  78. 'OPTI' 'EF' 'IMPL' 'CENTREE'
  79. 'ZONE' $mt 'OPER' 'DFDT' 1. 'CNM1' dt 'INCO' 'CN'
  80. 'OPTI' 'EF' 'IMPL' 'CENTREE'
  81. 'ZONE' $mt 'OPER' 'LAPN' 1. 'INCO' 'CN'
  82. 'CLIM' gau 'CN' 'TIMP' 1.
  83. 'CLIM' dro 'CN' 'TIMP' 0. ;
  84. *
  85. rv . 'INCO' = 'TABLE' 'INCO' ;
  86. rv . 'INCO' . 'CN' = 'KCHT' $mt 'SCAL' 'SOMMET' cini ;
  87. rv . 'INCO' . 'CNM1' = 'KCHT' $mt 'SCAL' 'SOMMET' cini ;
  88. *
  89. * Manual time stepping loop
  90. *
  91. res = 'TABLE' ;
  92. res . 'TPS' = 'TABLE' ;
  93. res . 'CN' = 'TABLE' ;
  94. ires = 1 ;
  95. cn = rv . 'INCO' . 'CN' ;
  96. res . 'TPS' . ires = rv . 'PASDETPS' . 'TPS' ;
  97. res . 'CN' . ires = 'COPIER' cn ;
  98. 'REPETER' iitma nitma ;
  99. EXEC rv ;
  100. ires = '+' ires 1 ;
  101. cn = rv . 'INCO' . 'CN' ;
  102. res . 'TPS' . ires = rv . 'PASDETPS' . 'TPS' ;
  103. res . 'CN' . ires = 'COPIER' cn ;
  104. evc = 'EVOL' 'CHPO' cn 'SCAL' bas ;
  105. evtot = evc ;
  106. tabt = 'TABLE' ; tabt . 'TITRE' = 'TABLE' ;
  107. tabt . 1 = 'CHAINE' 'TIRC MARQ CROI' ;
  108. *tabt . 1 = 'CHAINE' 'TIRC NOLI' ;
  109. tabt . 'TITRE' . 1 = 'CHAINE' 'Sol. App.' ;
  110. cht = 'CHAINE' 'Pdt = ' &iitma ;
  111. 'SI' graph ;
  112. 'DESSIN' evtot 'TITX' 'X' 'TITY' 'C'
  113. 'TITR' cht 'LEGE' tabt 'NCLK' ;
  114. 'FINS' ;
  115. 'FIN' iitma ;
  116. *
  117. * Post treatment
  118. *
  119. 'OPTI' 'DIME' 3 ;
  120. rt = res . 'TPS' ;
  121. rc = res . 'CN' ;
  122. tm = 'TABLE' 'ESCLAVE' ;
  123. lt = 'PROG' ;
  124. lm = 'PROG' ;
  125. 'REPETER' it ('DIME' rt) ;
  126. ti = rt . &it ;
  127. ci = rc . &it ;
  128. mail = bas 'PLUS' ('NOMC' 'UZ' ci) ;
  129. mail = mail 'PLUS' (0. ('*' &it 0.1) 0.) ;
  130. tm . &it = mail ;
  131. lt = 'ET' lt ('PROG' ti) ;
  132. lm = 'ET' lm ('PROG' ('MINIMUM' ci)) ;
  133. 'FIN' it ;
  134. oeil = '*' (1.2 -2.4 1.3) 2. ;
  135. mtp = 'ET' tm ;
  136. 'SI' graph ;
  137. 'TRACER' oeil mtp ;
  138. evtot = 'EVOL' 'MANU' lt lm ;
  139. tabt = 'TABLE' ;
  140. tabt . 1 = 'CHAINE' 'TIRC MARQ CROI' ;
  141. 'DESSIN' evtot 'TITX' 't' 'TITY' 'Min c.'
  142. 'TITR' ('CHAINE' 'Minimum c(t)')
  143. 'LEGE' tabt ;
  144. 'OPTION' 'DONN' 5 ;
  145. 'FINSI' ;
  146. 'OPTI' 'DIME' 2 ;
  147. *
  148. * End of dgibi file DIFF1D
  149. *
  150. 'FIN' ;
  151.  
  152.  
  153.  
  154.  

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