Télécharger patch_test_contact.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : patch_test_contact.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. *
  5. * Modelisation du patch test en 2D et 3D
  6. * Utilsation d'elements lineaires et quadratiques
  7. * Comparaison de la resultante des reactions de contact a la valeur
  8. * imposee.
  9. *
  10. ************************************************************************
  11. ITRAC = FAUX ;
  12.  
  13. * Logique indiquant si il y a eu une erreur
  14. berr = FAUX ;
  15. xerr = 1.E-3 ;
  16.  
  17. ** Nombre d'element par arete
  18. * solide 1 (en bas)
  19. * solide 2 (en haut)
  20. ne1 = 2 ;
  21. ne2 = 3 ;
  22.  
  23. * Valeur de pression imposee
  24. VPRES = 25.E6 ;
  25.  
  26. * Type d'elements
  27. LELEM = 'MOTS' 'QUA4' 'QUA8' 'CUB8' 'CU20';
  28. 'REPE' B1 ('DIME' LELEM) ;
  29. *
  30. ELMZ = 'EXTR' LELEM &B1 ;
  31. *
  32. ** Maillages et C.L.
  33. 'SI' ('<EG' &B1 2) ;
  34. 'OPTI' 'DIME' 2 'MODE' 'PLAN' 'CONT' 'ELEM' ELMZ ;
  35. *
  36. p1 = 0. 0. ;
  37. p2 = 1. 0. ;
  38. p3 = 0. 1. ;
  39. p4 = 1. 1. ;
  40. *
  41. sur1 = 'DROI' ne1 p1 p2 ;
  42. sur3 = 'DROI' ne2 p3 p4 ;
  43. *
  44. vol1 = sur1 'TRAN' ne1 (0. 1.) ;
  45. vol2 = sur3 'TRAN' ne2 (0. 1.) ;
  46. vol = vol1 'ET' vol2 ;
  47. *
  48. sur2 = vol1 'COTE' 3 ;
  49. sur4 = vol2 'COTE' 3 ;
  50. *
  51. are1 = 'CONT' vol1 ;
  52. are2 = 'CONT' vol2 ;
  53. are = are1 ET are2 ;
  54. *
  55. x y = 'COOR' are ;
  56. ptx0 = x 'POIN' 'EGAL' 0. ;
  57. bl1 = ('BLOQ' 'UX' ptx0 ) ET ('BLOQ' 'UY' sur1) ;
  58. *
  59. MOSIG = 'SMYY' ;
  60. MOFOR = 'FY' ;
  61. 'SINON' ;
  62. 'OPTI' 'DIME' 3 'MODE' 'TRID' 'ELEM' ELMZ ;
  63. *
  64. p1 = 0. 0. 0. ;
  65. p2 = 1. 0. 0. ;
  66. p3 = 0. 0. 1. ;
  67. p4 = 1. 0. 1. ;
  68. *
  69. lig12 = 'DROI' ne1 p1 p2 ;
  70. lig43 = 'DROI' ne2 p4 p3 ;
  71. *
  72. sur1 = lig12 'TRAN' ne1 (0. 1. 0.) ;
  73. sur3 = lig43 'TRAN' ne2 (0. 1. 0.) ;
  74. *
  75. vol1 = sur1 'VOLU' ne1 'TRAN' (0. 0. 1.) ;
  76. vol2 = sur3 'VOLU' ne2 'TRAN' (0. 0. 1.) ;
  77. vol = vol1 'ET' vol2 ;
  78. *
  79. sur2 = vol1 'FACE' 2 ;
  80. sur4 = vol2 'FACE' 2 ;
  81. *
  82. env1 = 'ENVE' vol1 ;
  83. env2 = 'ENVE' vol2 ;
  84. env = env1 'ET' env2 ;
  85. *
  86. are1 = 'ARET' env1 ;
  87. are2 = 'ARET' env2 ;
  88. are = are1 'ET' are2 ;
  89. *
  90. x y z = 'COOR' env ;
  91. ptx0 = x 'POIN' 'EGAL' 0. ;
  92. pty0 = y 'POIN' 'EGAL' 0. ;
  93. bl1 = ('BLOQ' 'UX' ptx0) 'ET' ('BLOQ' 'UY' pty0) 'ET' ('BLOQ' 'UZ' sur1) ;
  94. *
  95. MOSIG = 'SMZZ' ;
  96. MOFOR = 'FZ' ;
  97. 'FINSI' ;
  98. *
  99. 'SI' ITRAC ;
  100. vec1 = @VISOR sur2 'ROUG' ;
  101. vec2 = @VISOR sur3 'ROUG' ;
  102. TRAC vec1 (are ET sur2) 'TITR' 'Orientation surface en contact du solide bas' ;
  103. TRAC vec2 (are ET sur3) 'TITR' 'Orientation surface en contact du solide haut' ;
  104. TRAC (are 'ET' (ptx0 'COUL' 'CYAN')) 'TITR' 'Blocage UX = 0' ;
  105. 'SI' ('EGA' ('VALE' 'DIME') 2) ;
  106. TRAC (are 'ET' (sur1 'COUL' 'CYAN')) 'TITR' 'Blocage UY = 0' ;
  107. 'SINON' ;
  108. TRAC (are 'ET' (pty0 'COUL' 'CYAN')) 'TITR' 'Blocage UY = 0' ;
  109. TRAC (are 'ET' (sur1 'COUL' 'CYAN')) 'TITR' 'Blocage UZ = 0' ;
  110. 'FINSI' ;
  111. 'FINSI' ;
  112. *
  113. VALSU2 = 'MESU' sur2 ;
  114. VALSU3 = 'MESU' sur3 ;
  115. VALSUR = 'MINI' VALSU2 VALSU3 ;
  116. *
  117. ** Modeles elastique et caracteristiques
  118. mo = 'MODE' vol 'MECANIQUE' ;
  119. ma = 'MATE' mo 'YOUN' 200.E9 'NU' 0.3 ;
  120. *
  121. * Modele de contact
  122. moc = 'MODE' sur2 sur3 'CONTACT' 'SYME' ;
  123.  
  124. ** Modele de pression
  125. mop = 'MODE' sur4 'CHARGEMENT' 'PRESSION' ;
  126.  
  127. ** Chargement de pression
  128. f1 = 'PRES' mop 'PRES' VPRES ;
  129. ev1 = 'EVOL' 'MANU' ('PROG' 0. 1.) ('PROG' 0. 1.) ;
  130. cha1 = 'CHAR' 'PRES' f1 ev1 ;
  131.  
  132. ** Resolution
  133. t1 = TABL ;
  134. t1.'MODELE' = mo 'ET' moc 'ET' mop ;
  135. t1.'CARACTERISTIQUES' = ma ;
  136. t1.'BLOCAGES_MECANIQUES' = bl1 ;
  137. t1.'CHARGEMENT' = cha1 ;
  138. t1.'TEMPS_CALCULES' = 'PROG' 0.1 'PAS' 0.1 1. ;
  139. t1.'PRECISION' = 1.E-8 ;
  140. PASAPAS t1 ;
  141.  
  142. ** Post-traitements
  143. tps = t1.'TEMPS' ;
  144. dep = t1.'DEPLACEMENTS' ;
  145. rea = t1.'REACTIONS' ;
  146. sig = t1.'CONTRAINTES' ;
  147. nbp = 'DIME' dep ;
  148. 'REPE' b2 nbp ;
  149. fc2 = 'REDU' (rea . (&b2 - 1)) sur2 ;
  150. fc3 = 'REDU' (rea . (&b2 - 1)) sur3 ;
  151. 'SI' ITRAC ;
  152. tps2 = tps. (&b2 - 1) ;
  153. u2 = dep. (&b2 - 1) ;
  154. sig2 = sig. (&b2 - 1) ;
  155. vfc2 = 'VECT' fc2 'FORC' 'ROSE' 1.E-7 ;
  156. vfc3 = 'VECT' fc3 'FORC' 'TURQ' 1.E-7 ;
  157. def2 = 'DEFO' vol u2 1. (vfc2 ET vfc3) (EXCO MOSIG sig2) mo ;
  158. TRAC def2 'TITR' (CHAI 'Contrainte ' ' ' MOSIG ' + reactions du contact au temps' ' ' tps2) ;
  159. 'FINSI' ;
  160. 'FIN' b2 ;
  161. err2 = ('MAXI' 'ABS' ('EXCO' ('RESU' fc2) MOFOR MOFOR)) '/' VALSUR ;
  162. err3 = ('MAXI' 'ABS' ('EXCO' ('RESU' fc3) MOFOR MOFOR)) '/' VALSUR ;
  163. lerr = ('ABS' (('PROG' err2 err3) '-' VPRES)) '/' VPRES ;
  164. list lerr ;
  165. berr = berr 'OU' (lerr '>EG' xerr) ;
  166. 'FIN' b1 ;
  167. *
  168. 'SI' berr ;
  169. 'ERRE' 5 ;
  170. 'FINSI' ;
  171. *
  172. FIN ;
  173.  
  174.  
  175.  

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