* fichier : gurson.dgibi ************************************************************************ * Section : Mecanique Plastique ************************************************************************ *************************************************** **** Dilatation uniforme d'un cub8 *** **** Test sur l'implementation de GURSON *** *************************************************** * * Date 16/02/94 * Auteur A de Gayffier * Reference rapport DMT/94-108 * * Le test consiste à imposer une dillatation uniforme * d'un cube à 8 noeuds et verifier la cohérence du champ * de contrainte obtenu avec un modele Plastique de Gurson * * En effet l'etat de contrainte est hydrostatique et verifie la * relation ln(poro) +1.5P/sbar =< 0 * option dime 3 elem cub8; opti echo 0 ; * *maillage * densite 1. ; p1 = 0. 0. 0. ; p2 = 1. 0. 0. ; p3 = 1. 1. 0. ; p4 = 0. 1. 0. ; p5 = 0. 0. 0.5 ; p6 = 1. 0. 0.5 ; p7 = 1. 1. 0.5 ; p8 = 0. 1. 0.5 ; vol = manu cub8 p1 p2 p3 p4 p5 p6 p7 p8 ; * *modele de calcul * K = 139.7e9 ; G = 46.6e9 ; poisson = (1.-(G/K*2./3.) ) / (2./3.*G/K + 2.) ; E = 3.*K*(1.-(2.*poisson)) ; list poisson ; list E ; phi0 = 3.e-4 ; sigbar = 3.e8 ; * mo = MODE vol mecanique elastique plastique gurson cub8 ; ma = MATE mo 'YOUNG' E 'NU' poisson 'SIGY' 2.6E8 'H' 2.5e8 'SBAR' sigbar 'PORO' phi0 ; * *rigidite * ri = rigi mo ma; * *conditions aux limites lambda = 10. ; cl1 = bloqu ux ( p2 et p3 et p6 et p7 ) ; cl2 = bloqu uy ( p3 et p4 et p7 et p8 ) ; cl3 = bloqu uz ( p5 et p6 et p7 et p8 ) ; cl4 = bloqu ux ( p1 et p4 et p5 et p8 ) ; cl5 = bloqu uy ( p1 et p2 et p5 et p6 ) ; cl6 = bloqu uz ( p1 et p2 et p3 et p4 ) ; stf = ri et cl1 et cl2 et cl3 et cl4 et cl5 et cl6 ; cl = cl1 et cl2 et cl3 et cl4 et cl5 et cl6 ; * fo1 = depimp cl1 lambda ; fo2 = depimp cl2 lambda ; fo3 = depimp cl3 (lambda*0.5) ; for = fo1 et fo2 et fo3 ; dep = reso stf for ; * * table pour non lineaire * xtab = table ; * * chronologie du chargement ltime = prog 0. pas 1. 10. 11. ; letir = prog 0. pas 0.1 1. 1.; evau = evol manu time ltime etir letir ; char1 = char dimp for evau; * * temps pour la sortie des resultats tres = prog 1. pas 1. 10. ; * * Il est nécessaire de definir les variables internes au debut car elle * ne sont pas nulles (l'operateur ZERO initialise par défaut à 0) xtab.'VARIABLES_INTERNES' = TABLE; xtab.'VARIABLES_INTERNES' . 0 = manu chml mo 'EPSE' 0. 'VPOR' 3.e-4 'VHNS' 1. 'TYPE' 'VARIABLES INTERNES' 'STRESSES'; * * iterations plastiques xtab.blocages_mecaniques = cl; xtab.caracteristiques = ma; xtab.modele = mo; xtab.chargement = char1; xtab.temps_calcules = tres; pasapas xtab ; * * controle des resultats * i = 1 ; repeter boucle 10 ; var1 = xtab.variables_internes.i ; phi = extr var1 vpor 1 1 1 ; rho = extr var1 vhns 1 1 1 ; sig1 = xtab.contraintes.i ; sxx = extr sig1 SMXX 1 1 1 ; syy = extr sig1 SMYY 1 1 1 ; szz = extr sig1 SMZZ 1 1 1 ; p = ( sxx + szz + syy ) /(-3.) ; pp = K*(1.-phi)*(1.-((1-phi)/(1-phi0)/rho)) ; conv1 =( 1.5 * p / sigbar) - (log phi) ; conv2 =( 1.5 * pp / sigbar) - (log phi) ; * * Tests err1 = abs(conv1) > 1.e-6 ; err2 = abs(conv2) > 1.e-6 ; si err1 ; si (ou (phi > phi0) (conv1 < 0.)); ERREUR 5 ; finsi ; finsi; si err2 ; si (ou (phi > phi0) (conv2 < 0.)); ERREUR 5 ; finsi ; finsi ; i = i + 1 ; fin boucle ; fin ;