Télécharger plaque_gurson2.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : plaque_gurson_2.dgibi
  2. ********************************************************************************************************
  3. * Dans la note CEA DMT 96-566, le rapport de densite est deduit de l'expression lineaire de la variation de volume:
  4. * trace(epsilon)=dV/V0
  5. * avec: V le volume total, V0 le volume total initial et epsilon la deformation totale
  6. * On en deduit: V/V0=1+trace(epsilon)
  7. * Puis le rapport de densite RHO=V0/V=1/(1+trace(epsilon))
  8. * Cette expression n'est pas imposée dans l'article de Needleman et Tvergaard de réference
  9. * "AN ANALYSIS OF DUCTILE RUPTURE MODES AT A CRACK TIP"
  10. * A. NEEDLEMAN, V. TVERGAARD,
  11. * J. Mech. Phys. Solids Vol. 35, No. 2, pp. 151-183, 1987
  12. *---------------------------------------------
  13. * Si on exprime la variation de volume par son expression logarithmique:
  14. * trace(depsilon)=dln(V)
  15. * avec depsilon la variation de la deformation totale et dln(V) la variation du logarithme du volume V
  16. * On en deduit: ln(V/V0)=trace(epsilon)
  17. * Puis le rapport de densite RHO=exp(-trace(epsilon))
  18. * Cette expression donne de meilleurs résultats pour les très forts taux de déformation testés dans
  19. * ce cas test.
  20. *=========================================================================================================
  21. * PLAQUE CARREE SOUMISE A UN DEPLACEMENT IMPOSE SUR 2 DE SES COTES
  22. * - Le volume de la plaque est imposee dans les calculs
  23. *=========================================================================================================
  24. 'OPTI' 'DIME' 2 'MODE' 'PLAN' 'DEFO' 'ELEM' 'QUA8';
  25. 'OPTI' 'ECHO' 1;
  26. igraph = FAUX ;
  27.  
  28. *---> Maillage
  29. xL0 = 1.E-3;
  30. P1 = 0. 0.;
  31. P2 = xL0 0.;
  32. P3 = xL0 xL0;
  33. P4 = 0. xL0;
  34. LL1 = 'DROI' 1 P1 P2;
  35. LL2 = 'DROI' 1 P2 P3;
  36. LL3 = 'DROI' 1 P3 P4;
  37. LL4 = 'DROI' 1 P4 P1;
  38.  
  39. SUR0 = 'DALL' LL1 LL2 LL3 LL4 'PLAN';
  40. 'SI' igraph ;
  41. 'TITR' ' SUR0';
  42. 'TRAC' SUR0;
  43. 'FINSI' ;
  44.  
  45. *---> Deplacement maximal impose dans le calcul
  46. depmax = 4. * xL0 / 10. ;
  47.  
  48. *---> Courbe de traction du materiau
  49. beta0 = 125. ;
  50. sig0 = 410.E6 ;
  51. xm = .1 ;
  52. youn0 = 2.1E11 ;
  53. epsp0 = 'PROG' 0. ;
  54. deb0 = 'PROG' 0. ;
  55. epsmax0 = 2. * depmax / xL0 ;
  56. pas0 = epsmax0 / 50 ;
  57. pas1 = pas0 / 10. ;
  58. epsmax1 = ( epsmax0 / 10. ) ;
  59. epsp1 = ( 'PROG' 0. 'PAS' pas1 epsmax1 ) 'ET'
  60. ( 'PROG' ( epsmax1 + pas0 ) 'PAS' pas0 epsmax0 ) ;
  61. *epsp1 = 'PROG' 0. 'PAS' pas0 epsmax0 ;
  62. dim00 = 'DIME' epsp1 ;
  63. un = 'PROG' dim00 '*' 1. ;
  64. Y0 = sig0 ;
  65. epsp2 = beta0 * epsp1 ;
  66. epsp3 = epsp2 + un ;
  67. epsp31 = log epsp3 ;
  68. epsp32 = epsp31 * xm ;
  69. epsp4 = exp epsp32 ;
  70. Y1 = Y0 * epsp4 ;
  71.  
  72. epsp1 = epsp0 'ET' epsp1 ;
  73. Y1 = deb0 'ET' Y1 ;
  74. epsp2 = epsp1 + ( Y1 / youn0 ) ;
  75. trac00 = 'EVOL' 'MANU' 'defo' epsp1 'sigm' Y1 ;
  76.  
  77. trac0 = 'EVOL' 'MANU' 'defo' epsp2 'sigm' Y1 ;
  78. lsm1 = y1 enle 1 ;
  79. lep1 = (epsp2 enle 1) - (lsm1 / youn0) ;
  80. evec = evol vert manu eps lep1 sig lsm1 ;
  81. 'SI' igraph ;
  82. dess (trac0 et evec) titr ' Courbes de traction et d ecrouissage (vert)' ;
  83. 'FINSI' ;
  84. SIG00 = youn0 / 500. ;
  85.  
  86. *---> Definition du modele
  87. mod0 = 'MODE' SUR0 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
  88. 'PLASTIQUE_ENDOM' 'GURSON2' ;
  89.  
  90. fc0 = 0.10 ;
  91. mod0 = 'MODE' SUR0 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
  92. 'PLASTIQUE_ENDOM' 'GURSON2' ;
  93. q00 = 'ZERO' mod0 'VARINTER' ;
  94. q01 = 'MANU' 'CHML' mod0 'VHWF' fc0 'TYPE' 'VARINTER' 'STRESSES';
  95. q02 = 'MANU' 'CHML' mod0 'VHOT' 1. 'TYPE' 'VARINTER' 'STRESSES';
  96. qq00 = q00 + q01 + q02;
  97.  
  98. mat0 = 'MATE' mod0 'YOUN' youn0 'NU' 0.3
  99. 'ECRO' evec 'Q' 1.5 'FU' ( 1. / 1.5 ) 'FF' 0.25 'FC' 0.15
  100. 'FNS0' 0.00 'FNE0' 0.0 'SNS' ( .1 * SIG00 ) 'SNE' .1
  101. 'SIGN' ( 2.2 * SIG00 ) 'EPSN' .8 'F0' q01;
  102.  
  103. *---> Conditions aux limites
  104. * Les deplacements sont bloques perpendiculairement aux 4 cotes du carre
  105. cl1 = 'BLOQ' LL1 'UY';
  106. cl2 = 'BLOQ' LL2 'UX';
  107. cl3 = 'BLOQ' LL3 'UY';
  108. cl4 = 'BLOQ' LL4 'UX';
  109. cl0 = cl1 'ET' cl2 'ET' cl3 'ET' cl4;
  110.  
  111. *---> Pas de temps calcule
  112. dt0 = 1.0;
  113. tfin0 = 100.;
  114. ltps0 = 'PROG' 0. 'PAS' dt0 tfin0;
  115.  
  116. *---> Chargement
  117. * On impose une augmentation de volume
  118. * - Des deplacements non-nuls sont imposes sur 2 cotes voisins.
  119. xde1 = depmax;
  120. xde2 = xde1;
  121. ldep1 = 'PROG' 0. xde1;
  122. ldep2 = 'PROG' 0. xde2;
  123. dep1 = 'DEPI' cl2 1.;
  124. dep2 = 'DEPI' cl3 1.;
  125. ev1 = 'EVOL' 'MANU' 's' ('PROG' 0. tfin0) 'm' ldep1;
  126. ev2 = 'EVOL' 'MANU' 's' ('PROG' 0. tfin0) 'm' ldep2;
  127. cha1 = 'CHAR' 'DIMP' dep1 ev1;
  128. cha2 = 'CHAR' 'DIMP' dep2 ev2;
  129. cha0 = cha1 'ET' cha2;
  130.  
  131. *---> Table PASAPAS
  132. tab0 = 'TABLE';
  133. tab0 .'MODELE' = mod0;
  134. tab0 .'CARACTERISTIQUES' = mat0;
  135. tab0 .'BLOCAGES_MECANIQUES' = cl0;
  136. tab0 .'CHARGEMENT' = cha0;
  137. tab0 .'TEMPS_CALCULES' = ltps0;
  138. tab0 .'VARIABLES_INTERNES' = 'TABLE';
  139. tab0 .'VARIABLES_INTERNES' . 0 = qq00;
  140. TMASAU = 'TABLE';
  141. tab0 . 'MES_SAUVEGARDES'=TMASAU;
  142. TMASAU .'DEFTO'=VRAI;
  143. TMASAU .'DEFIN'=VRAI;
  144. *tab0 .'GRANDS_DEPLACEMENTS' = vrai;
  145. tab0 .'HYPOTHESE_DEFORMATIONS'='LINEAIRE' ;
  146.  
  147. *---> Appel a PASAPAS
  148. PASAPAS tab0;
  149.  
  150. *======================================================
  151. * Boucle sur les pas de temps calcules
  152. *======================================================
  153. dim0 = 'DIME' (tab0 .'TEMPS');
  154. conf0 = 'FORM';
  155. 'REPETER' bloc0 dim0;
  156. index0 = &bloc0 - 1;
  157.  
  158. *---> Contraintes
  159. sigm0 = tab0 .'CONTRAINTES'. index0;
  160. smxx0 = 'EXCO' sigm0 'SMXX' 'SCAL';
  161. smyy0 = 'EXCO' sigm0 'SMYY' 'SCAL';
  162. smXX1 = 'CHAN' 'CHPO' smxx0 mod0;
  163. smYY1 = 'CHAN' 'CHPO' smyy0 mod0;
  164.  
  165. *---> Von Mises
  166. vmis0 = 'VMIS' sigm0 mod0;
  167. vmis1 = 'CHAN' 'CHPO' vmis0 mod0;
  168.  
  169. *---> Deplacements
  170. depl0 = tab0 .'DEPLACEMENTS'. index0;
  171.  
  172. *---> Variables internes
  173. var0 = tab0 .'VARIABLES_INTERNES'. index0;
  174.  
  175. *---> Deformation plastique equivalente
  176. epeq0 = 'EXCO' var0 'EPSE' 'SCAL';
  177. epeq1 = 'MAXI' epeq0;
  178. epeq2 = 'MINI' epeq0;
  179.  
  180. *---> Deformations totales et inelastiques
  181. esp0 = tab0 .'DEFORMATIONS'. index0;
  182. epi0 = tab0 .'DEFORMATIONS_INELASTIQUES'. index0;
  183.  
  184. *---> Trace des deformations totales et inelastiques
  185. treps0 = ('EXCO' esp0 'EPXX' 'SCAL') +
  186. ('EXCO' esp0 'EPYY' 'SCAL') +
  187. ('EXCO' esp0 'EPZZ' 'SCAL');
  188. trepi0 = ('EXCO' epi0 'EIXX' 'SCAL') +
  189. ('EXCO' epi0 'EIYY' 'SCAL') +
  190. ('EXCO' epi0 'EIZZ' 'SCAL');
  191. treps1 = 'MAXI' treps0;
  192. treps2 = 'MINI' treps0;
  193. trepi1 = 'MAXI' trepi0;
  194. trepi2 = 'MINI' trepi0;
  195.  
  196. *---> Trace de la deformation evaluee par le rapport de densite calcule
  197. * Formule logarithmique
  198. *
  199. rho0 = 'EXCO' var0 'VHOT' 'SCAL';
  200. rho1 = 'MAXI' rho0;
  201. rho2 = 'MINI' rho0;
  202. trRHO1 = (1. / rho1) - 1.;
  203. trRHO2 = (1. / rho2) - 1.;
  204. trRHO1 = 'LOG' (1. / rho1);
  205. trRHO2 = 'LOG' (1. / rho2);
  206.  
  207. *---> Fraction de cavites calculee
  208. fra0 = 'EXCO' var0 'VHWF' 'SCAL';
  209. fra1 = 'MAXI' fra0;
  210. fra2 = 'MINI' fra0;
  211.  
  212. *---> Fraction de cavite theorique
  213. fraE1 = (1. - fc0) * (('EXP' (-1. * trepi1)));
  214. fraE1 = 1. - fraE1;
  215. fmax0 = 'MAXI' ('EXCO' mat0 'FF' 'SCAL');
  216. 'SI' (fraE1 '>' fmax0);
  217. fraE1 = fmax0;
  218. 'FINSI';
  219. err1 = ABS (fraE1 - fra1);
  220. err2 = ABS (fraE1 - fra2);
  221.  
  222. *---> Stockage
  223. 'SI' (index0 'EGA' 0);
  224. lepeq0 = 'PROG' epeq1;
  225. lfra0 = 'PROG' fra1;
  226. lfra1 = 'PROG' fraE1;
  227. lerr1 = 'PROG' err1;
  228. lerr2 = 'PROG' err2;
  229. ltr0 = 'PROG' treps1;
  230. ltr1 = 'PROG' trepi1;
  231. ltr2 = 'PROG' trRHO1;
  232. lSMXX1 = 'PROG' ('MAXI' smXX1);
  233. lSMXX2 = 'PROG' ('MINI' smXX1);
  234. lSMYY1 = 'PROG' ('MAXI' smYY1);
  235. lSMYY2 = 'PROG' ('MINI' smYY1);
  236. lVMIS1 = 'PROG' ('MAXI' vmis0);
  237. lVMIS2 = 'PROG' ('MINI' vmis0);
  238. 'SINON';
  239. lepeq0 = lepeq0 'ET' ('PROG' epeq1);
  240. lfra0 = lfra0 'ET' ('PROG' fra1);
  241. lfra1 = lfra1 'ET' ('PROG' fraE1);
  242. lerr1 = lerr1 'ET' ('PROG' err1);
  243. lerr2 = lerr2 'ET' ('PROG' err2);
  244. ltr0 = ltr0 'ET' ('PROG' treps1);
  245. ltr1 = ltr1 'ET' ('PROG' trepi1);
  246. ltr2 = ltr2 'ET' ('PROG' trRHO1);
  247. lSMXX1 = lSMXX1 'ET' ('PROG' ('MAXI' smXX1));
  248. lSMXX2 = lSMXX2 'ET' ('PROG' ('MINI' smXX1));
  249. lSMYY1 = lSMYY1 'ET' ('PROG' ('MAXI' smYY1));
  250. lSMYY2 = lSMYY2 'ET' ('PROG' ('MINI' smYY1));
  251. lVMIS1 = lVMIS1 'ET' ('PROG' ('MAXI' vmis0));
  252. lVMIS2 = lVMIS2 'ET' ( 'PROG' ('MINI' vmis0));
  253. 'FINSI';
  254.  
  255. *---> Sorties ecran
  256. * 'MESS' ' EPEQ=' ('MINI' (epeq0 * 100.)) ('MAXI' (epeq0 * 100.));
  257. * 'MESS' ' SMXX=' ('MINI' (smXX0 / 1.E6)) ('MAXI' (smXX0 / 1.E6));
  258. * 'MESS' ' SMYY=' ('MINI' (smYY0 / 1.E6)) ('MAXI' (smYY0 / 1.E6));
  259. * 'MESS' ' VMIS=' ('MINI' (vmis0 / 1.E6)) ('MAXI' (vmis0 / 1.E6));
  260. * 'MESS' ' RHO=' rho1 rho2;
  261. * 'MESS' ' TRACE(EPS)=' treps1 treps2;
  262. * 'MESS' ' TRACE(EPI)=' trepi1 trepi2;
  263. * 'MESS' ' TRACE(RHO)=' trRHO1 trRHO2;
  264. * 'MESS' ' FRA =' fra1 fra2;
  265.  
  266. 'FIN' bloc0;
  267. *======================================================
  268. * Fin de la boucle sur les pas de temps calcules
  269. *======================================================
  270.  
  271. 'SI' igraph ;
  272. *---> Evolutions en fonction du temps (btps0 = vrai) ou de EPEQ (btps0=faux)
  273. btps0 = faux;
  274.  
  275. *---> Evolutions
  276. 'SI' btps0;
  277. evSXX1 = 'EVOL' 'MANU' 's' ltps0 'MPa' (lSMXX1 / 1.E6);
  278. evSYY1 = 'EVOL' 'MANU' 's' ltps0 'MPa' (lSMYY1 / 1.E6);
  279. evVMI1 = 'EVOL' 'MANU' 's' ltps0 'MPa' (lVMIS1 / 1.E6);
  280. evf0 = 'EVOL' 'MANU' 's' ltps0 '%' (lfra0 * 100.);
  281. evf1 = 'EVOL' 'MANU' 's' ltps0 '%' (lfra1 * 100.);
  282. evt0 = 'EVOL' 'MANU' 's' ltps0 '%' (ltr0 * 100.);
  283. evt1 = 'EVOL' 'MANU' 's' ltps0 '%' (ltr1 * 100.);
  284. evt2 = 'EVOL' 'MANU' 's' ltps0 '%' (ltr2 * 100.);
  285. 'SINON';
  286. evSXX1 = 'EVOL' 'MANU' '%' (ltr0 * 100.) 'MPa' (lSMXX1 / 1.E6);
  287. evSYY1 = 'EVOL' 'MANU' '%' (ltr0 * 100.) 'MPa' (lSMYY1 / 1.E6);
  288. evVMI1 = 'EVOL' 'MANU' '%' (ltr0 * 100.) 'MPa' (lVMIS1 / 1.E6);
  289. evf0 = 'EVOL' 'MANU' '%' (ltr0 * 100.) '%' (lfra0 * 100.);
  290. evf1 = 'EVOL' 'MANU' '%' (ltr0 * 100.) '%' (lfra1 * 100.);
  291. everr1 = 'EVOL' 'MANU' '%' (ltr0 * 100.) '%' (lerr1 * 100.);
  292. everr2 = 'EVOL' 'MANU' '%' (ltr0 * 100.) '%' (lerr2 * 100.);
  293. evt0 = 'EVOL' 'MANU' '%' (ltr0 * 100.) '%' (ltr0 * 100.);
  294. evt1 = 'EVOL' 'MANU' '%' (ltr0 * 100.) '%' (ltr1 * 100.);
  295. evt2 = 'EVOL' 'MANU' '%' (ltr0 * 100.) '%' (ltr2 * 100.);
  296. 'FINSI';
  297.  
  298. *---> Contraintes
  299. TAB = 'TABLE' ;
  300. TAB.1 = 'MARQ CARR' ;
  301. TAB.2 = 'MARQ TRIA' ;
  302. TAB.3 = 'MARQ PLUS' ;
  303. TAB.'TITRE' = 'TABLE' ;
  304. TAB.'TITRE'. 1 = MOT 'SMXX' ;
  305. TAB.'TITRE'. 2 = MOT 'SMYY' ;
  306. TAB.'TITRE'. 3 = MOT 'VMIS' ;
  307. 'DESS' (evSXX1 'ET' evSYY1 'ET' evVMI1)
  308. 'TITR' ' Contraintes (en MPa)' 'LEGE' TAB;
  309.  
  310. *---> Fraction de cavites
  311. TAB = 'TABLE' ;
  312. TAB.1 = 'MARQ CARR' ;
  313. TAB.2 = 'MARQ TRIA' ;
  314. TAB.'TITRE' = 'TABLE' ;
  315. TAB.'TITRE'. 1 = MOT 'CALCUL' ;
  316. TAB.'TITRE'. 2 = MOT 'THEORIE' ;
  317. 'DESS' (evf0 'ET' evf1)
  318. 'TITR' ' Fraction de cavite (en %)' 'LEGE' TAB;
  319. 'DESS' (everr1 'ET' everr2)
  320. 'TITR' ' Ecart fraction de cavite a la theorie (en %)' ;
  321.  
  322. *---> Trace des deformations
  323. TAB = 'TABLE' ;
  324. TAB.1 = 'MARQ CARR' ;
  325. TAB.2 = 'MARQ TRIA' ;
  326. TAB.3 = 'MARQ TRIB' ;
  327. TAB.'TITRE' = 'TABLE' ;
  328. TAB.'TITRE'. 1 = MOT 'TRACE(EPS)' ;
  329. TAB.'TITRE'. 2 = MOT 'TRACE(EPI)' ;
  330. TAB.'TITRE'. 3 = MOT 'TRACE(RHO)' ;
  331. 'DESS' (evt0 'ET' evt1 'ET' evt2)
  332. 'TITR' ' Trace des deformations (en %)' 'LEGE' TAB;
  333. 'FINSI' ;
  334.  
  335. *---> Test sur l'ecart a la fraction volumique de cavite theorique
  336. errmax = ('MAXI' (lerr1 'ET' lerr2)) * 100. ;
  337. 'MESS' 'Ecart max. (calcul - theorie) sur la fraction volumique de '
  338. 'cavite (%) : ' errmax ;
  339. 'SI' (errmax > 1.E-3) ;
  340. 'ERRE' 5 ;
  341. 'FINSI' ;
  342.  
  343.  
  344. 'FIN' ;
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  

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