Télécharger raft1.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : raft1.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. 'OPTION' 'ECHO' 0 ;
  5. ************************************************************************
  6. * NOM : RAFT1
  7. * DESCRIPTION : Exemple d'utilisation de RAFT :
  8. * Maillage d'un carré avec un fort raffinement dans un
  9. * des coins.
  10. * On teste les tailles de mailles obtenues par rapport
  11. * aux tailles de maille voulues.
  12. *
  13. *
  14. * LANGAGE : GIBIANE-CAST3M
  15. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  16. * mél : gounand@semt2.smts.cea.fr
  17. **********************************************************************
  18. * VERSION : v1, 11/12/2006, version initiale
  19. * HISTORIQUE : v1, 11/12/2006, création
  20. * HISTORIQUE : 23/01/2014 : simplification du jeu de données
  21. * (procédure MESUELEM)
  22. * HISTORIQUE :
  23. ************************************************************************
  24. *
  25. *
  26. interact = FAUX ;
  27. graph = FAUX ;
  28. *
  29. ******************************************************************
  30. * P R O C E D U R E S
  31. *
  32. * MESUELEM
  33. *
  34. * Calcul d'une mesure de maille aux noeuds
  35. * Je sais le faire de trois manières (équivalentes pour les SEG2
  36. * mais pas pour les TRI3)
  37. * 1) Avec l'opérateur MESU (boucle sur les éléments en GIBIANE)
  38. * + CHAN 'CHPO'
  39. * 2) En intégrant (par éléments) un champ par élément valant 1
  40. * + CHAN 'CHPO'
  41. * 3) Matrice de masse diagonalisée
  42. * Ici, c'est la méthode 3.
  43. *
  44. 'DEBPROC' MESUELEM ;
  45. 'ARGUMENT' mm*'MAILLAGE' ;
  46. 'SI' faux ;
  47. * Méthode 2
  48. mod = 'MODE' mm 'MECANIQUE' 'ELASTIQUE' ;
  49. c1 = 'MANU' 'CHML' mod 'SCAL' 1. 'GRAVITE' ;
  50. ctai = 'INTG' 'ELEM' mod c1 ;
  51. cctai = 'CHANGER' 'CHPO' mod ctai 'MOYE' ;
  52. 'FINSI' ;
  53. * Méthode 3
  54. cctai = 'DOMA' ('MODE' ('CHANGER' mm 'QUAF') 'NAVIER_STOKES' 'LINE')
  55. 'XXDIAGSI' ;
  56. *
  57. 'RESPRO' cctai ;
  58. 'FINPROC' ;
  59. *
  60. * CALTAIL
  61. *
  62. * Calcul du champ de taille de maille voulue T par un problème de
  63. * thermique, on résout :
  64. * Laplacien T = 0
  65. * avec T_bord = taille des mailles du bord
  66. *
  67. *
  68. 'DEBPROC' CALTAIL ;
  69. 'ARGUMENT' mt*'MAILLAGE' ;
  70. *
  71. cmt = 'CONTOUR' mt ;
  72. *
  73. cdt = MESUELEM cmt ;
  74. * En fait, on résout le problème au laplacien pour le log
  75. * des tailles de maille.
  76. lcdt = 'LOG' cdt ;
  77. modt = 'MODELISER' mt 'THERMIQUE' 'ISOTROPE' ;
  78. cart = 'MATERIAU' modt 'K' 1.D0 ;
  79. matt = 'COND' modt cart ;
  80. mcdt = 'EXTRAIRE' lcdt 'MAIL' ;
  81. matb = 'BLOQUE' 'T' mcdt ;
  82. fb = 'DEPIMPOSE' matb lcdt ;
  83. clden = 'EXCO' 'T' ('RESOUD' ('ET' matt matb) fb) ;
  84. cden = 'EXP' clden ;
  85. *'TRACER' cden mt ;
  86. 'RESPRO' cden ;
  87. 'FINPROC' ;
  88. * Fin des P R O C E D U R E S
  89. ******************************************************************
  90. *
  91. 'OPTION' 'DIME' 2 'ELEM' 'TRI3' ;
  92. *
  93. p1 = 0. 0. ; p2 = 1. 0. ; p3 = 1. 1. ; p4 = 0. 1. ;
  94. dpeti = 1.D-4 ; dgran = 0.5 ;
  95. *
  96. d1 = 'DROIT' p1 p2 'DINI' dpeti 'DFIN' dgran ;
  97. d2 = 'DROIT' p2 p3 'DINI' dgran 'DFIN' dgran ;
  98. d3 = 'DROIT' p3 p4 'DINI' dgran 'DFIN' dgran ;
  99. d4 = 'DROIT' p4 p1 'DINI' dgran 'DFIN' dpeti ;
  100. cmt = d1 'ET' d2 'ET' d3 'ET' d4 ;
  101. *
  102. mt1 = 'TRIANGULATION' cmt ;
  103. 'SI' graph ;
  104. tit1 = 'CHAINE' 'Triangulation grossière du domaine' ;
  105. 'TRACER' mt1 'TITR' tit1 ;
  106. 'FINSI' ;
  107. *
  108. cden = CALTAIL mt1 ;
  109. 'SI' graph ;
  110. 'TRACER' cden mt1 'TITR' ('CHAINE' 'Taille de mailles voulues') ;
  111. 'FINSI' ;
  112. *
  113. mt2 = 'RAFT' cden mt1 ;
  114. nlmt = 'NBEL' mt2 ;
  115. npmt = 'NBNO' mt2 ;
  116. tit2 = 'CHAINE' 'Maillage resultant : ' nlmt ' elements ; '
  117. npmt ' noeuds ' ;
  118. 'MESSAGE' tit2 ;
  119. 'SI' graph ;
  120. 'TRACER' mt2 'TITR' tit2 ;
  121. 'FINSI' ;
  122. *
  123. mt = mt2 ;
  124. *
  125. cdenv = CALTAIL mt ;
  126. cdeno = MESUELEM mt ;
  127. * cdeno est en unité de surface.
  128. * On transforme en unité de longueur en multipliant par 2
  129. * (car mt est constitué de triangles) et en prenant la racine.
  130. cdeno = cdeno '*' 2. ;
  131. cdeno = '**' cdeno 0.5D0 ;
  132. ecar = '/' cdeno cdenv ;
  133. t2 = 'CHAINE' 'Taille de maille obtenue / voulue ' ;
  134. 'SI' graph ;
  135. 'TRACER' ecar mt2 'TITR' t2 ;
  136. 'FINSI' ;
  137. *
  138. * Facteur d'écart autorisé
  139. *
  140. fecar = 1.5D0 ; ifecar = 0.3D0 ;
  141. maecar = 'MAXIMUM' ecar ;
  142. miecar = 'MINIMUM' ecar ;
  143. *
  144. ok = VRAI ;
  145. 'MESSAGE' t2 ;
  146. 'MESSAGE' ('CHAINE' ' Max : ' maecar) ;
  147. tes1 = '<' maecar fecar ;
  148. ok = ok 'ET' tes1 ;
  149. 'SI' ('NON' tes1) ;
  150. 'MESSAGE' ('CHAINE' '!!!! On aurait voulu avoir < ' fecar) ;
  151. 'FINSI' ;
  152. 'MESSAGE' ('CHAINE' ' Min : ' miecar) ;
  153. tes2 = '>' miecar ifecar ;
  154. ok = ok 'ET' tes2 ;
  155. 'SI' ('NON' tes2) ;
  156. 'MESSAGE' ('CHAINE' '!!!! On aurait voulu avoir > ' ifecar) ;
  157. 'FINSI' ;
  158. *
  159. 'SI' ('NON' ok) ;
  160. 'MESSAGE' ('CHAINE' 'Il y a eu des erreurs') ;
  161. 'ERREUR' 5 ;
  162. 'SINON' ;
  163. 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ;
  164. 'FINSI' ;
  165. *
  166. 'SI' interact ;
  167. 'OPTION' 'ECHO' 1 ;
  168. 'OPTION' 'DONN' 5 ;
  169. 'FINSI' ;
  170. *
  171. * End of dgibi file RAFT1
  172. *
  173. 'FIN' ;
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  

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