Télécharger raft2.dgibi

Retour à la liste

Numérotation des lignes :

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

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