* fichier : rousselier.dgibi ************************************************************************ ************************************************************************ ***************************************************** * * * TEST DE VALIDATION DE LA LOI * * D'ENDOMMAGEMENT DUCTILE DE * * ROUSSELIER * * * * TEST: * * UN BARREAU EST CHARGE EN TRACTION * * LE CHARGEMENT EST DES DEPLACEMENTS IMPOSES * * CALCUL EN MASSIF 3D * * * * MAILLAGE: * * UN BARREAU DE SECTION CARREE DE .5 M SUR .01 M * * 50 ELEMENTS * * * ***************************************************** graph = faux ; * 'DEBPROC' PLROUSS ta1*'TABLE' beta0*'FLOTTANT' xm0*'FLOTTANT' sig0*'FLOTTANT' bet1*'FLOTTANT' def1*'FLOTTANT' sig1*'FLOTTANT' i1*'ENTIER' ; * * nombre d'itérations * niter = 1 ; * t0 = ta1 .'TEMPS'.i1 ; t1 = ta1 .'TEMPS'.( i1 - 1 ) ; dt0 = ( t0 - t1 ) / niter ; mat0 = ta1 .'CARACTERISTIQUES' ; mod0 = ta1. 'MODELE' ; depl0 = ta1 .'DEPLACEMENTS'.i1 ; depl1 = ta1 .'DEPLACEMENTS'.( i1 - 1 ) ; def00 = ( def_x - def_xold ) / niter ; XK0 = youn0 / ( 3. * ( 1. - ( 2. * xnu ) ) ) ; * * trace de la déformation totale * treps1 = def_x + def_y + def_z ; trepsold = def_xold + def_yold + def_zold ; treps00 = ( treps1 - trepsold ) / niter ; * def_int = def1 ; bet_int = bet1 ; sig_int = sig1 ; * 'REPETER' bloc1 niter ; i10 = &bloc1 ; * treps0 = trepsold + ( i10 * treps00 ) ; def0 = def_xold + ( i10 * def00 ) ; * x0 = def_int ; x2 = x0 ; sigt = ( youn0 * ( def0 - x2 ) ) - sig_int ; cont0 = ( youn0 * ( def0 - x2 ) ) ; cont0 = cont0 / 3. ; dpeq1 = XD0 * ( 'EXP' ( cont0 / SIG ) ) ; *bet2 = bet_int + *( ( x2 - def_int ) * dpeq1 ) + *( ( ( x2 - def_int ) * ( x2 - def_int ) / 2. ) * *dpeq1 * sigt / ( 3. * SIG ) ) ; tr2 = ( 1. - ( 2. * xnu ) ) * ( def0 - x2 ) ; tr1 = treps0 - tr2 ; 'SI' ( tr1 '>' 1.E-5 ) ; bet2 = 'LOG' ( ( ( 'EXP' tr1 ) - 1. + F0 ) / F0 ) ; 'SINON' ; bet2 = tr1 / F0 ; 'FINSI' ; B1 = SIG * F0 * ( 'EXP' bet2 ) ; B1 = B1 / ( 1. - F0 + ( F0 * ( 'EXP' bet2 ) ) ) ; tr1 = tr1 / 3. ; y2 = sig0 * ( ( 1. + ( beta0 * ( x2 - tr1 ) ) ) ** xm0 ) ; y2 = y2 - ( B1 * XD0 * ( 'EXP' ( youn0 * ( def0 - x2 ) / ( SIG * 3. ) ) ) ) ; y2 = y2 - ( youn0 * ( def0 - x2 ) ) ; y0 = y2 ; * * Cas élastique * 'SI' ( y0 '>' 0. ) ; def_th0 = def_int ; bet_th0 = bet_int ; sig_th0 = youn0 * ( def0 - def_th0 ) ; 'ITERER' bloc1 ; 'FINSI' ; * x1 = def0 ; x2 = x1 ; sigt = ( youn0 * ( def0 - x2 ) ) - sig_int ; cont0 = ( youn0 * ( def0 - x2 ) ) ; cont0 = cont0 / 3. ; dpeq1 = XD0 * ( 'EXP' ( cont0 / SIG ) ) ; tr2 = ( 1. - ( 2. * xnu ) ) * ( def0 - x2 ) ; tr1 = treps0 - tr2 ; 'SI' ( tr1 '>' 1.E-5 ) ; bet2 = 'LOG' ( ( ( 'EXP' tr1 ) - 1. + F0 ) / F0 ) ; 'SINON' ; bet2 = tr1 / F0 ; 'FINSI' ; B1 = SIG * F0 * ( 'EXP' bet2 ) ; B1 = B1 / ( 1. - F0 + ( F0 * ( 'EXP' bet2 ) ) ) ; tr1 = tr1 / 3. ; y2 = sig0 * ( ( 1. + ( beta0 * ( x2 - tr1 ) ) ) ** xm0 ) ; y2 = y2 - ( B1 * XD0 * ( 'EXP' ( youn0 * ( def0 - x2 ) / ( SIG * 3. ) ) ) ) ; y2 = y2 - ( youn0 * ( def0 - x2 ) ) ; y1 = y2 ; err1 = 'ABS' ( y0 - y1 ) ; * 'REPETER' bloc0 ; x2 = ( x0 + x1 ) / 2. ; sigt = ( youn0 * ( def0 - x2 ) ) - sig_int ; cont0 = ( youn0 * ( def0 - x2 ) ) ; cont0 = cont0 / 3. ; dpeq1 = XD0 * ( 'EXP' ( cont0 / SIG ) ) ; tr2 = ( 1. - ( 2. * xnu ) ) * ( def0 - x2 ) ; tr1 = treps0 - tr2 ; 'SI' ( tr1 '>' 1.E-5 ) ; bet2 = 'LOG' ( ( ( 'EXP' tr1 ) - 1. + F0 ) / F0 ) ; 'SINON' ; bet2 = tr1 / F0 ; 'FINSI' ; B1 = SIG * F0 * ( 'EXP' bet2 ) ; B1 = B1 / ( 1. - F0 + ( F0 * ( 'EXP' bet2 ) ) ) ; tr1 = tr1 / 3. ; y2 = sig0 * ( ( 1. + ( beta0 * ( x2 - tr1 ) ) ) ** xm0 ) ; y2 = y2 - ( B1 * XD0 * ( 'EXP' ( youn0 * ( def0 - x2 ) / ( SIG * 3. ) ) ) ) ; y2 = y2 - ( youn0 * ( def0 - x2 ) ) ; * 'SI' ( y2 '>' ( 1.E-4 ) ) ; x1 = x2 ; 'SINON' ; 'SI' ( y2 '<' ( -1.E-4 ) ) ; x0 = x2 ; 'SINON' ; def_th0 = x2 ; bet_th0 = bet2 ; sig_th0 = youn0 * ( def0 - def_th0 ) ; 'QUITTER' bloc0 ; 'FINSI' ; 'FINSI' ; 'FIN' bloc0 ; * * Calcul du nouvel endommagement * * def_int = def_th0 ; bet_int = bet_th0 ; sig_int = sig_th0 ; * *'MESS' ' Fin iteration interne no' i10 ; * 'FIN' bloc1 ; * *bet_th0 = bet2 ; * rho_th0 = 1. / ( 1. - F0 + ( F0 * ( 'EXP' bet_th0 ) ) ) ; * 'FINPROC' sig_th0 def_th0 bet_th0 rho_th0 ; * * *================================================================ * * * Maillage * l1 = .5 ; l2 = .01 ; l3 = .01 ; n1 = 50 ; n2 = 1 ; n3 = 1 ; p1 = 0. 0. 0. ; p2 = l1 0. 0. ; p3 = l1 l2 0. ; p4 = 0. l2 0. ; p5 = 0. 0. l3 ; p6 = l1 0. l3 ; p7 = l1 l2 l3 ; p8 = 0. l2 l3 ; d1 = d p1 n3 p5 ; d2 = d p5 n2 p8 ; d3 = d p8 n3 p4 ; d4 = d p4 n2 p1 ; d5 = d p2 n3 p6 ; d6 = d p6 n2 p7 ; d7 = d p7 n3 p3 ; d8 = d p3 n2 p2 ; titr ' Maillage du test de validation' ; *trac vol1 ; * * Deplacement maximal * depmax = .01 ; * * Courbe d'ecrouissage * beta0 = 125. ; sig0 = 410.E6 ; xm = .1 ; youn0 = 2.1E11 ; epsmax0 = depmax / l1 ; pas0 = epsmax0 / 50 ; pas1 = pas0 / 10. ; epsmax1 = ( epsmax0 / 10. ) ; *epsp1 = 'PROG' 0. 'PAS' pas0 epsmax0 ; Y0 = sig0 ; epsp2 = beta0 * epsp1 ; epsp3 = epsp2 + un ; epsp31 = log epsp3 ; epsp32 = epsp31 * xm ; epsp4 = exp epsp32 ; Y1 = Y0 * epsp4 ; * epsp1 = epsp0 'ET' epsp1 ; Y1 = deb0 'ET' Y1 ; epsp2 = epsp1 + ( Y1 / youn0 ) ; * * Modele de calcul * TAB = 'TABLE' ; TAB. 1 = 'MARQ CROI ' ; TAB.'TITRE' = 'TABLE' ; si graph ; fins ; mod0 = 'MODE' vol1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE' 'PLASTIQUE_ENDOM' 'ROUSSELIER' ; 'ECRO' evec 'F' 3.E-3 'FC' 1. 'D' 2. 'SIG1' 490.E6 ; * * Conditions aux limites * cl0 = cl1 'ET' cl2 'ET' cl3 'ET' cl4 'ET' cl5 ; * * Chargement * * * Temps du calcul * dt0 = 50. ; tfin0 = 500. ; * * * Resolution par PASAPAS *--------------------------------------- * ta1 = 'TABLE' ; ta1 .'MODELE' = mod0 ; ta1 .'CARACTERISTIQUES' = mat0 ; ta1 .'BLOCAGES_MECANIQUES' = cl0 ; ta1 .'CHARGEMENT' = cha0 ; * TMASAU=table; ta1 . 'MES_SAUVEGARDES'=TMASAU; TMASAU .'DEFTO'=VRAI; TMASAU .'DEFIN'=VRAI; ta1 .'HYPOTHESE_DEFORMATIONS' = 'LINEAIRE' ; PASAPAS ta1 ; * * * Post-traitement *----------------------------------------- * * Quelques donnees du calcul * mat0 = ta1 .'CARACTERISTIQUES' ; G0 = youn1 / ( 2. * ( 1. + xnu0 ) ) ; * * Post-traitement *----------------------------------------- * mod0 = ta1 .'MODELE' ; sig1 = 0. ; def1 = 0. ; bet1 = 0. ; rho1 = 1. ; eps_el0 = sig0 / youn1 ; 'REPETER' bloc1 dim0 ; i1 = &bloc1 ; temp0 = ta1 .'TEMPS'.i1 ; mat0 = ta1 .'CARACTERISTIQUES' ; depl0 = ta1 .'DEPLACEMENTS'.i1 ; sigm0 = ta1 .'CONTRAINTES'.i1 ; depeq0 = ta1 .'VARIABLES_INTERNES'.i1 ; def0 = ta1 .'DEFORMATIONS_INELASTIQUES'.i1 ; * * deformations totales * * * Calcul de la solution théorique * *B1 = SIG * XF0 * ( 'EXP' bet1 ) ; *B1 = B1 / ( 1. - XF0 + ( XF0 * ( 'EXP' bet1 ) ) ) ; B1 = SIG * XF0 ; *F2 = B1 * XD0 * ( 'EXP' ( sig1 / ( 3. * SIG ) ) ) ; F2 = B1 * XD0 * ( 'EXP' ( sig0 / ( 3. * SIG ) ) ) ; F1 = sig0 ; YLIM = F1 - F2 ; sigt = youn1 * ( eps_x - def1 ) ; 'SI' ( sigt '>' YLIM ) ; sig1 = sig1 / rho1 ; sig_th0 def_th0 bet_th0 rho_th0 = PLROUSS ta1 beta0 xm sig0 bet1 def1 sig1 i1 ; sig_th0 = sig_th0 * rho_th0 ; 'SINON' ; sig_th0 = sigt ; def_th0 = def1 ; bet_th0 = bet1 ; rho_th0 = rho1 ; 'FINSI' ; * sig1 = sig_th0 ; def1 = def_th0 ; bet1 = bet_th0 ; rho1 = rho_th0 ; * * * 'MESS' ' deformation plastique theorique' def_th0 ; * 'MESS' ' deformation plastique calculee ' def_0 ; * 'MESS' ' contrainte théorique ' sig_th0 ; * 'MESS' ' contrainte calculee ' sig_0 ; * 'MESS' ' endommagement théorique ' bet_th0 ; * 'MESS' ' endommagement calcule ' bet_0 ; * 'MESS' ' fraction de densité théorique ' rho_th0 ; * 'MESS' ' fraction de densité calculee ' rho_0 ; * * Calcul d'erreur * 'SI' ( def_0 '>' ( 1.E-1 * eps_el0 ) ) ; err_e0 = ( def_th0 - def_0 ) / def_0 ; err_e0 = 'ABS' err_e0 ; err_e0 = err_e0 * 100. ; 'SINON' ; err_e0 = 0. ; 'FINSI' ; 'SI' ( sig_0 '>' 0. ) ; err_s0 = ( sig_th0 - sig_0 ) / sig_0 ; err_s0 = 'ABS' err_s0 ; err_s0 = err_s0 * 100. ; 'SINON' ; err_s0 = 0. ; 'FINSI' ; 'SI' ( sig_th0 '>' ( ( ( 9. * sig0 ) + SIG1 ) / 10. ) ) ; err_b0 = ( bet_th0 - bet_0 ) / bet_0 ; err_b0 = 'ABS' err_b0 ; err_b0 = err_b0 * 100. ; 'SINON' ; err_b0 = 0. ; 'FINSI' ; 'SI' ( err_e0 '>' 0. ) ; err_r0 = ( rho_th0 - rho_0 ) / rho_0 ; err_r0 = 'ABS' err_r0 ; err_r0 = err_r0 * 100. ; 'SINON' ; err_r0 = 0. ; 'FINSI' ; * * 'SI' ( err_e0 '>' 2.5E-2 ) ; 'SINON' ; 'FINSI' ; 'SI' ( err_s0 '>' 2.5E-2 ) ; 'SINON' ; 'FINSI' ; 'SI' ( err_b0 '>' 6.5 ) ; 'SINON' ; 'FINSI' ; 'SI' ( err_r0 '>' 2.5E-2 ) ; 'SINON' ; 'FINSI' ; * * 'MESS' ' ' ; * 'FIN' bloc1 ; * * Trace * TAB = 'TABLE' ; TAB.1 = 'MARQ CROI ' ; TAB.'TITRE' = 'TABLE' ; *'DESSIN' ( trac1 'ET' trac00 ) *'TITR' 'Contraintes - Deformation plastique' *'LEGE' TAB ; TAB = 'TABLE' ; TAB.1 = 'MARQ CROI ' ; TAB.'TITRE' = 'TABLE' ; *'DESSIN' ( trac1 'ET' trac2 ) *'TITR' 'Comparaison mini - maxi de la contrainte equivalente ' *'LEGE' TAB ; TAB = 'TABLE' ; TAB.1 = 'MARQ CROI ' ; TAB.'TITRE' = 'TABLE' ; *'DESSIN' ( trac3 'ET' trac4 ) *'TITR' 'Comparaison calcul theorie ' *'LEGE' TAB ; TAB = 'TABLE' ; TAB.1 = 'MARQ CROI ' ; TAB.'TITRE' = 'TABLE' ; *'DESSIN' ( trac5 'ET' trac6 ) *'TITR' ' Evolution des erreurs ' *'LEGE' TAB ; TAB = 'TABLE' ; TAB.1 = 'MARQ CROI ' ; TAB.'TITRE' = 'TABLE' ; *'DESSIN' ( trac7 'ET' trac8 ) *'TITR' ' Evolution des erreurs ' *'LEGE' TAB ; TAB = 'TABLE' ; TAB.1 = 'MARQ CROI ' ; TAB.'TITRE' = 'TABLE' ; *'DESSIN' ( trac3 'ET' trac00 ) *'TITR' 'Comparaison theorie traction ' *'LEGE' TAB ; TAB = 'TABLE' ; TAB.1 = 'MARQ CROI ' ; TAB.'TITRE' = 'TABLE' ; *'DESSIN' ( trac11 'ET' trac10 ) *'TITR' 'Comparaison endommagement theorique et calcule ' *'LEGE' TAB ; TAB = 'TABLE' ; TAB.1 = 'MARQ CROI ' ; TAB.2 = ' ' ; TAB.'TITRE' = 'TABLE' ; *'DESSIN' ( trac4 'ET' trac00 ) *'TITR' 'Comparaison calcul traction ' *'LEGE' TAB ; * * 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales