Télécharger zeril2.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : zeril2.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. **************************************************
  5. * *
  6. * TEST DE VALIDATION D'UNE LOI DE COMPORTEMENT *
  7. * -------------------------------------------- *
  8. * DE MATERIAU *
  9. * ----------- *
  10. * *
  11. * LOI DE COMPORTEMENT DE: *
  12. * ZERILLI-ARMSTRONG *
  13. * CAS CUBIQUE A FACE CENTRE ( C.F.C. ) *
  14. * *
  15. * MAILLAGE: *
  16. * UNE BARRE DE SECTION CARREE *
  17. * LONGUEUR L=.5 M *
  18. * LARGEUR l=.01 M *
  19. * *
  20. * CHARGEMENT: *
  21. * ESSAI DE TRACTION *
  22. * DEPLACEMENTS IMPOSES *
  23. * *
  24. **************************************************
  25. *
  26. *
  27. *
  28. opti echo 0 dime 3 elem cub8 ;
  29. *
  30. *
  31. * Maillage
  32. *
  33. l1 = .5 ;
  34. l2 = .01 ;
  35. l3 = .01 ;
  36. n1 = 50 ;
  37. n2 = 1 ;
  38. n3 = 1 ;
  39. p1 = 0. 0. 0. ;
  40. p2 = l1 0. 0. ;
  41. p3 = l1 l2 0. ;
  42. p4 = 0. l2 0. ;
  43. p5 = 0. 0. l3 ;
  44. p6 = l1 0. l3 ;
  45. p7 = l1 l2 l3 ;
  46. p8 = 0. l2 l3 ;
  47. d1 = d p1 n3 p5 ;
  48. d2 = d p5 n2 p8 ;
  49. d3 = d p8 n3 p4 ;
  50. d4 = d p4 n2 p1 ;
  51. sur1 = 'DALL' d1 d2 d3 d4 ;
  52. d5 = d p2 n3 p6 ;
  53. d6 = d p6 n2 p7 ;
  54. d7 = d p7 n3 p3 ;
  55. d8 = d p3 n2 p2 ;
  56. sur2 = 'DALL' d5 d6 d7 d8 ;
  57. vol1 = sur1 'VOLU' n1 sur2 ;
  58. *
  59. * Modele de calcul
  60. *
  61. mod0 = 'MODE' vol1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
  62. 'PLASTIQUE' 'ZERILLI' ;
  63. mat0 = 'MATE' mod0 'YOUN' 2.1E11 'NU' 0.3
  64. 'RHO' 7.8E3 'ALPHA' 1.E-5 'DYG' 46.5E6
  65. 'C1' 1033.E6 'C2' 890.E6 'C3' (300. * 698.E-5)
  66. 'C4' ( 300. * 415.E-6 ) 'C5' 266.E6
  67. 'N' 0.289 'K' 6.957E5 'L' 1E-3 'TYPE' 0. ;
  68. *
  69. * Conditions aux limites
  70. *
  71. cl1 = 'BLOQ' sur1 'UX' ;
  72. cl2 = 'BLOQ' sur2 'UX' ;
  73. cl3 = 'BLOQ' p1 'UX' 'UY' 'UZ' ;
  74. cl4 = 'BLOQ' p5 'UX' 'UY' ;
  75. cl0 = cl1 'ET' cl2 'ET' cl3 'ET' cl4 ;
  76. *
  77. * Chargement
  78. *
  79. dep1 = 'DEPI' cl2 .1 ;
  80. ev0 = 'EVOL' 'MANU' temps ( 'PROG' 0. .01 ) y ( 'PROG' 0. 1. ) ;
  81. cha0 = 'CHAR' 'DIMP' dep1 ev0 ;
  82. *
  83. * Temps du calcul
  84. *
  85. dt0 = .000025 ;
  86. tfin0 = .00025 ;
  87. *
  88. *
  89. * Resolution par PASAPAS
  90. *---------------------------------------
  91. *
  92. ta1 = 'TABLE' ;
  93. ta1 .'MODELE' = mod0 ;
  94. ta1 .'CARACTERISTIQUES' = mat0 ;
  95. ta1 .'BLOCAGES_MECANIQUES' = cl0 ;
  96. ta1 .'CHARGEMENT' = cha0 ;
  97. ta1 .'TEMPS_CALCULES' = 'PROG' 0. 'PAS' dt0 tfin0 ;
  98. *
  99. TMASAU=table;
  100. ta1 . 'MES_SAUVEGARDES'=TMASAU;
  101. TMASAU .'DEFTO'=VRAI;
  102. TMASAU .'DEFIN'=VRAI;
  103. PASAPAS ta1 ;
  104. *
  105. * Post-traitement
  106. *-----------------------------------------
  107. *
  108. dim0 = 'DIME' ta1 .'TEMPS' - 1 ;
  109. YOUNG0 = 'EXCO' mat0 'YOUN' 'SCAL' ;
  110. YOUNG1 = 'MAXI' YOUNG0 ;
  111. DYG0 = 'EXCO' mat0 'DYG' 'SCAL' ;
  112. DYG1 = 'MAXI' DYG0 ;
  113. C1 = 'EXCO' mat0 'C1' 'SCAL' ;
  114. C11 = 'MAXI' C1 ;
  115. C2 = 'EXCO' mat0 'C2' 'SCAL' ;
  116. C21 = 'MAXI' C2 ;
  117. C3 = 'EXCO' mat0 'C3' 'SCAL' ;
  118. C31 = 'MAXI' C3 ;
  119. C4 = 'EXCO' mat0 'C4' 'SCAL' ;
  120. C41 = 'MAXI' C4 ;
  121. C5 = 'EXCO' mat0 'C5' 'SCAL' ;
  122. C51 = 'MAXI' C5 ;
  123. XK0 = 'EXCO' mat0 'K' 'SCAL' ;
  124. XK1 = 'MAXI' XK0 ;
  125. XL0 = 'EXCO' mat0 'L' 'SCAL' ;
  126. XL1 = 'MAXI' XL0 ;
  127. XN0 = 'EXCO' mat0 'N' 'SCAL' ;
  128. XN1 = 'MAXI' XN0 ;
  129. TYPE0 = 'EXCO' mat0 'TYPE' 'SCAL' ;
  130. TYPE1 = 'MAXI' TYPE0 ;
  131. eps_el0 = ( DYG1 + ( XK1 * ( XL1 ** (-.5) ) ) ) / YOUNG1 ;
  132. err_e1 = 0. ;
  133. err_s1 = 0. ;
  134. 'REPETER' bloc1 dim0 ;
  135. i1 = &bloc1 ;
  136. depl1 = 'EXCO' ta1 .'DEPLACEMENTS'.i1 'UX' 'SCAL' ;
  137. depl0 = 'EXCO' ta1 .'DEPLACEMENTS'.(i1 - 1 ) 'UX' 'SCAL' ;
  138. dep1 = 'MAXI' depl1 ;
  139. eps1 = dep1 / l1 ;
  140. dep0 = 'MAXI' depl0 ;
  141. sigm0 = ta1 .'CONTRAINTES'.i1 ;
  142. depeq0 = ta1 .'VARIABLES_INTERNES'.i1 ;
  143. def0 = ta1 .'DEFORMATIONS_INELASTIQUES'.i1 ;
  144. t1 = ta1 .'TEMPS'.i1 ;
  145. t0 = ta1 .'TEMPS'.(i1 - 1) ;
  146. dt0 = t1 - t0 ;
  147. dt0 = 0. ;
  148. 'SI' ( ( 'ABS' dt0 ) < 1.E-10 ) ;
  149. deps0 = 0. ;
  150. 'SINON' ;
  151. deps0 = ( dep1 - dep0 ) / ( dt0 * l1 ) ;
  152. 'FINSI' ;
  153. *
  154. sigx0 = 'MAXI' ( 'VMIS' mod0 sigm0 ) ;
  155. sigx00 = 'MINI' ( 'VMIS' mod0 sigm0 ) ;
  156. depx0 = 'MAXI' depeq0 ;
  157. depx00 = 'MINI' depeq0 ;
  158. sig_00 = 'EXCO' sigm0 'SMXX' 'SCAL' ;
  159. sig_0 = 'MAXI' sig_00 ;
  160. sig_y = 'MAXI' ( 'EXCO' sigm0 'SMYY' 'SCAL' ) ;
  161. sig_z = 'MAXI' ( 'EXCO' sigm0 'SMZZ' 'SCAL' ) ;
  162. def_00 = 'EXCO' def0 'EIXX' ;
  163. def_0 = 'MAXI' def_00 ;
  164. *
  165. * Materiau cfc
  166. *
  167. 'SI' ( TYPE1 'EGA' 0. ) ;
  168. *
  169. 'SI' ( sigx0 '>EG' ( DYG1 + ( XK1 * ( XL1 ** (-.5) ) ) ) ) ;
  170. 'SI' ( ( 'ABS' deps0 ) < 1.E-10 ) ;
  171. B0 = 0. ;
  172. 'SINON' ;
  173. B0 = C21 * ( EXP ( ( C41 * ( LOG deps0 ) ) - C31 ) ) ;
  174. 'FINSI' ;
  175. A0 = YOUNG1 ;
  176. C0 = DYG1 + ( XK1 * ( XL1 ** (-.5) ) )
  177. - ( YOUNG1 * eps1 ) ;
  178. *
  179. DELTA = ( B0 * B0 ) - ( 4. * A0 * C0 ) ;
  180. X1 = ( -1. * B0 - ( ( DELTA ) ** ( 0.5) ) ) / ( 2. * A0 ) ;
  181. X2 = ( -1. * B0 + ( ( DELTA ) ** ( 0.5) ) ) / ( 2. * A0 ) ;
  182. epsp0 = X2 * X2 ;
  183. sig0 = YOUNG1 * ( eps1 - epsp0 ) ;
  184. *
  185. 'SINON' ;
  186. epsp0 = 0. ;
  187. sig0 = sig_0 ;
  188. 'FINSI' ;
  189. *
  190. 'SINON' ;
  191. *
  192. * materiau CC
  193. *
  194. LIM0 = DYG1 + ( XK1 * ( XL1 ** (-.5) ) ) ;
  195. 'SI' ( ( 'ABS' deps0 ) < 1.E-10 ) ;
  196. LIM0 = LIM0 + 0. ;
  197. 'SINON' ;
  198. LIM0 = LIM0 +
  199. ( C11 * ( EXP ( ( C41 * ( LOG deps0 ) ) - C31 ) ) ) ;
  200. 'FINSI' ;
  201. 'SI' ( sig_0 > LIM0 ) ;
  202. A0 = YOUNG1 ;
  203. 'SI' ( ( 'ABS' deps0 ) < 1.E-10 ) ;
  204. B0 = 0. ;
  205. 'SINON' ;
  206. B0 = C11 * ( EXP ( ( C41 * ( LOG deps0 ) ) - C31 ) ) ;
  207. 'FINSI' ;
  208. B0 = B0 + DYG1 + ( XK1 * ( XL1 ** (-.5) ) )
  209. - ( YOUNG1 * eps1 ) ;
  210. C0 = C51 ;
  211. *
  212. x0 = 0. ;
  213. x2 = x0 ;
  214. y2 = A0 * x2 ;
  215. y2 = y2 + ( C0 * ( x2 ** XN1 ) ) ;
  216. y2 = y2 + B0 ;
  217. *
  218. x1 = eps1 ;
  219. x2 = x1 ;
  220. y2 = A0 * x2 ;
  221. y2 = y2 + ( C0 * ( x2 ** XN1 ) ) ;
  222. y2 = y2 + B0 ;
  223. *
  224. 'REPETER' bloc2 ;
  225. *
  226. x2 = ( x0 + x1 ) / 2. ;
  227. y2 = A0 * x2 ;
  228. y2 = y2 + ( C0 * ( x2 ** XN1 ) ) ;
  229. y2 = y2 + B0 ;
  230. *
  231. 'SI' ( y2 > 1.E-5 ) ;
  232. x1 = x2 ;
  233. 'SINON' ;
  234. 'SI' ( y2 < -1.E-5 ) ;
  235. x0 = x2 ;
  236. 'SINON' ;
  237. epsp0 = x2 ;
  238. sig0 = YOUNG1 * ( eps1 - x2 ) ;
  239. 'QUITTER' bloc2 ;
  240. 'FINSI' ;
  241. 'FINSI' ;
  242. *
  243. 'FIN' bloc2 ;
  244. *
  245. 'SINON' ;
  246. epsp0 = 0. ;
  247. sig0 = sig_0 ;
  248. 'FINSI' ;
  249. *
  250. 'FINSI' ;
  251. *
  252. err_s0 = 'ABS' ( sig0 - sig_0 ) ;
  253. err_s0 = err_s0 / sig0 ;
  254. err_s0 = err_s0 * 100. ;
  255. err_e0 = 'ABS' ( epsp0 - def_0 ) ;
  256. 'SI' (def_0 '>' ( 1.E-1 * eps_el0 ) ) ;
  257. err_e0 = err_e0 / def_0 ;
  258. 'SINON' ;
  259. err_e0 = 0. ;
  260. 'FINSI' ;
  261. err_e0 = err_e0 * 100. ;
  262. *
  263. * Erreur trop grande ?
  264. *
  265. 'SI' ( err_e0 > 1. ) ;
  266. 'ERRE' 5 ;
  267. err_e1 = 100. ;
  268. 'SINON' ;
  269. err_e1 = err_e1 + 0. ;
  270. 'FINSI' ;
  271. 'SI' ( err_s0 > 1. ) ;
  272. 'ERRE' 5 ;
  273. err_s1 = 100. ;
  274. 'SINON' ;
  275. err_s1 = err_s1 + 0. ;
  276. 'FINSI' ;
  277. *
  278. 'FIN' bloc1 ;
  279. *
  280. 'SI' ( ( err_e1 < 1. ) 'ET' ( err_s1 < 1. ) ) ;
  281. 'ERRE' 0 ;
  282. 'FINSI' ;
  283. *
  284. *
  285. 'FIN' ;
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  

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