* fichier : zeril2.dgibi ************************************************************************ ************************************************************************ ************************************************** * * * TEST DE VALIDATION D'UNE LOI DE COMPORTEMENT * * -------------------------------------------- * * DE MATERIAU * * ----------- * * * * LOI DE COMPORTEMENT DE: * * ZERILLI-ARMSTRONG * * CAS CUBIQUE A FACE CENTRE ( C.F.C. ) * * * * MAILLAGE: * * UNE BARRE DE SECTION CARREE * * LONGUEUR L=.5 M * * LARGEUR l=.01 M * * * * CHARGEMENT: * * ESSAI DE TRACTION * * DEPLACEMENTS IMPOSES * * * ************************************************** * * * * * * 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 ; * * Modele de calcul * mod0 = 'MODE' vol1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE' 'PLASTIQUE' 'ZERILLI' ; 'RHO' 7.8E3 'ALPHA' 1.E-5 'DYG' 46.5E6 'C1' 1033.E6 'C2' 890.E6 'C3' (300. * 698.E-5) 'C4' ( 300. * 415.E-6 ) 'C5' 266.E6 * * Conditions aux limites * cl0 = cl1 'ET' cl2 'ET' cl3 'ET' cl4 ; * * Chargement * * * Temps du calcul * dt0 = .000025 ; tfin0 = .00025 ; * * * 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; PASAPAS ta1 ; * * Post-traitement *----------------------------------------- * eps_el0 = ( DYG1 + ( XK1 * ( XL1 ** (-.5) ) ) ) / YOUNG1 ; err_e1 = 0. ; err_s1 = 0. ; 'REPETER' bloc1 dim0 ; i1 = &bloc1 ; eps1 = dep1 / l1 ; sigm0 = ta1 .'CONTRAINTES'.i1 ; depeq0 = ta1 .'VARIABLES_INTERNES'.i1 ; def0 = ta1 .'DEFORMATIONS_INELASTIQUES'.i1 ; t1 = ta1 .'TEMPS'.i1 ; t0 = ta1 .'TEMPS'.(i1 - 1) ; dt0 = t1 - t0 ; dt0 = 0. ; 'SI' ( ( 'ABS' dt0 ) < 1.E-10 ) ; deps0 = 0. ; 'SINON' ; deps0 = ( dep1 - dep0 ) / ( dt0 * l1 ) ; 'FINSI' ; * * * Materiau cfc * 'SI' ( TYPE1 'EGA' 0. ) ; * 'SI' ( sigx0 '>EG' ( DYG1 + ( XK1 * ( XL1 ** (-.5) ) ) ) ) ; 'SI' ( ( 'ABS' deps0 ) < 1.E-10 ) ; B0 = 0. ; 'SINON' ; B0 = C21 * ( EXP ( ( C41 * ( LOG deps0 ) ) - C31 ) ) ; 'FINSI' ; A0 = YOUNG1 ; C0 = DYG1 + ( XK1 * ( XL1 ** (-.5) ) ) - ( YOUNG1 * eps1 ) ; * DELTA = ( B0 * B0 ) - ( 4. * A0 * C0 ) ; X1 = ( -1. * B0 - ( ( DELTA ) ** ( 0.5) ) ) / ( 2. * A0 ) ; X2 = ( -1. * B0 + ( ( DELTA ) ** ( 0.5) ) ) / ( 2. * A0 ) ; epsp0 = X2 * X2 ; sig0 = YOUNG1 * ( eps1 - epsp0 ) ; * 'SINON' ; epsp0 = 0. ; sig0 = sig_0 ; 'FINSI' ; * 'SINON' ; * * materiau CC * LIM0 = DYG1 + ( XK1 * ( XL1 ** (-.5) ) ) ; 'SI' ( ( 'ABS' deps0 ) < 1.E-10 ) ; LIM0 = LIM0 + 0. ; 'SINON' ; LIM0 = LIM0 + ( C11 * ( EXP ( ( C41 * ( LOG deps0 ) ) - C31 ) ) ) ; 'FINSI' ; 'SI' ( sig_0 > LIM0 ) ; A0 = YOUNG1 ; 'SI' ( ( 'ABS' deps0 ) < 1.E-10 ) ; B0 = 0. ; 'SINON' ; B0 = C11 * ( EXP ( ( C41 * ( LOG deps0 ) ) - C31 ) ) ; 'FINSI' ; B0 = B0 + DYG1 + ( XK1 * ( XL1 ** (-.5) ) ) - ( YOUNG1 * eps1 ) ; C0 = C51 ; * x0 = 0. ; x2 = x0 ; y2 = A0 * x2 ; y2 = y2 + ( C0 * ( x2 ** XN1 ) ) ; y2 = y2 + B0 ; * x1 = eps1 ; x2 = x1 ; y2 = A0 * x2 ; y2 = y2 + ( C0 * ( x2 ** XN1 ) ) ; y2 = y2 + B0 ; * 'REPETER' bloc2 ; * x2 = ( x0 + x1 ) / 2. ; y2 = A0 * x2 ; y2 = y2 + ( C0 * ( x2 ** XN1 ) ) ; y2 = y2 + B0 ; * 'SI' ( y2 > 1.E-5 ) ; x1 = x2 ; 'SINON' ; 'SI' ( y2 < -1.E-5 ) ; x0 = x2 ; 'SINON' ; epsp0 = x2 ; sig0 = YOUNG1 * ( eps1 - x2 ) ; 'QUITTER' bloc2 ; 'FINSI' ; 'FINSI' ; * 'FIN' bloc2 ; * 'SINON' ; epsp0 = 0. ; sig0 = sig_0 ; 'FINSI' ; * 'FINSI' ; * err_s0 = 'ABS' ( sig0 - sig_0 ) ; err_s0 = err_s0 / sig0 ; err_s0 = err_s0 * 100. ; err_e0 = 'ABS' ( epsp0 - def_0 ) ; 'SI' (def_0 '>' ( 1.E-1 * eps_el0 ) ) ; err_e0 = err_e0 / def_0 ; 'SINON' ; err_e0 = 0. ; 'FINSI' ; err_e0 = err_e0 * 100. ; * * Erreur trop grande ? * 'SI' ( err_e0 > 1. ) ; err_e1 = 100. ; 'SINON' ; err_e1 = err_e1 + 0. ; 'FINSI' ; 'SI' ( err_s0 > 1. ) ; err_s1 = 100. ; 'SINON' ; err_s1 = err_s1 + 0. ; 'FINSI' ; * 'FIN' bloc1 ; * 'SI' ( ( err_e1 < 1. ) 'ET' ( err_s1 < 1. ) ) ; 'FINSI' ; * * 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales