* fichier : preston2.dgibi ************************************************************************ ************************************************************************ complet = faux; * ************************************************* * pour calcul complet mettre complet à : vrai; ************************************************* ************************************************** * * * TEST DE VALIDATION D'UNE LOI DE COMPORTEMENT * * -------------------------------------------- * * DE MATERIAU * * ----------- * * * * LOI DE COMPORTEMENT DE: * * PRESTON TONKS WALLACE * * CAS NON CUBIQUE CENTRE ( NON C.C. ) * * * * MAILLAGE: * * UNE BARRE DE SECTION CARREE * * LONGUEUR L=.5 M * * LARGEUR l=.001 M * * * * CHARGEMENT: * * ESSAI DE TRACTION * * DEPLACEMENTS IMPOSES * * * ************************************************** * * * * Maillage * l1 = .5 ; l2 = .001 ; l3 = .001 ; si complet; n1 = 50 ; sinon; n1=5; finsi; 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' 'PRESTON' ; 'RHO' 7.8E3 'TAU' 0.025 'P' 2. 'S0' 0.0085 'SINF' 0.00055 'K' 0. 'G' 0.00001 'Y0' 0.0001 'YINF' 0.0001 'Y1' 0.094 'Y2' 0.575 'BETA' 0.25 'GP' 3.00 'GT' 0. 'MU' 1.97 'TMO' 1220. ; * * Conditions aux limites * cl0 = cl1 'ET' cl2 'ET' cl3 'ET' cl4 ; * * Chargement * * * Temps du calcul * dt0 = 1.E-5 ; si complet; tfin0 = 5.E-4 ; sinon; tfin0 = 5.e-5; finsi; * * * Resolution par PASAPAS *--------------------------------------- * ta1 = 'TABLE' ; ta1 .'MODELE' = mod0 ; ta1 .'CARACTERISTIQUES' = mat0 ; ta1 .'BLOCAGES_MECANIQUES' = cl0 ; ta1 .'CHARGEMENT' = cha0 ; *ta1 .'PRECISION' = 1.E-8 ; ta1 .'HYPOTHESE_DEFORMATIONS'='LINEAIRE' ; * TMASAU=table; ta1 . 'MES_SAUVEGARDES'=TMASAU; TMASAU .'DEFTO'=VRAI; TMASAU .'DEFIN'=VRAI; PASAPAS ta1 ; * * * Post-traitement *----------------------------------------- * mod0 = ta1 .'MODELE' ; A1 = 2. * ( 1. + XNU1 ) ; B1 = A1 / ( 3. * ( 1. - ( 2. * XNU1 ) ) ) ; 'REPETER' bloc1 dim0 ; i1 = &bloc1 ; depl0 = ta1 .'DEPLACEMENTS'.i1 ; temp0 = ta1 .'TEMPS'.i1 ; reac0 = ta1 .'REACTIONS'.i1 ; 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' ; * eps_el0 = sig_0 / YOUNG1 ; defp1 = ( def1 * def1 ) + ( def2 * def2 ) + ( def3 * def3 ) ; defp1 = defp1 - ( def1 * def2 ) - ( def2 * def3 ) - ( def1 * def3 ) ; defp2 = ( def4 * def4 ) + ( def5 * def5 ) + ( def6 * def6 ) ; defp0 = defp1 + ( 3. * defp2 ) ; defp0 = ( defp0 ** .5 ) * 2. / 3. ; * * Densite RHO1 * RHO1 = RHO0 / ( 1. + treps0 ) ; eta = RHO1 / RHO0 ; * * Module de cisaillement G00 * G00 = YOUNG1 / ( 2. * ( 1. + XNU1 ) ) ; * * Pulsation de Debye W0 * W0 = ( G00 / RHO1 ) ** ( .5 ) ; DTETA0 = ( 4. / 3.1416 ) ** ( .5 ) ; DTETA0 = DTETA0 * W0 / 6. ; DTETA0 = deps0 / DTETA0 ; * * Contrainte de saturation * 'SI' ( ( 'ABS' dt0 ) < 1.E-10 ) ; YS1 = SINF1 ; 'SINON' ; YS1 = S01 - ( ( S01 - SINF1 ) * YS1 ) ; 'FINSI' ; YS2 = S01 * ( ( DTETA0 / G1 ) ** ( BETA1 ) ) ; YS0 = ( 'ABS' ( YS1 - YS2 ) ) + YS1 + YS2 ; YS0 = YS0 / 2. ; * * Limite d'élasticité * 'SI' ( ( 'ABS' dt0 ) < 1.E-10 ) ; YL1 = YINF1 ; 'SINON' ; YL1 = Y01 - ( ( Y01 - YINF1 ) * YL1 ) ; 'FINSI' ; YL2 = Y11 * ( ( DTETA0 / G1 ) ** ( Y21 ) ) ; YL3 = ( 'ABS' ( YL2 - YS2 ) ) - YL2 - YS2 ; YL3 = -1. * YL3 / 2. ; YL0 = ( 'ABS' ( YL1 - YL3 ) ) + YL1 + YL3 ; YL0 = YL0 / 2. ; * 'SI' ( sig_0 '>' ( YL0 * G00 ) ) ; * * Materiau C.C. * 'SI' ( P11 'EGA' 0. ) ; * x0 = 0. ; x2 = x0 ; tr1 = treps0 - ( A1 * ( epsx10 - x2 ) / ( 3. * B1 ) ) ; tr1 = tr1 / 3. ; y2 = 'EXP' ( -1. * TAU1 * ( x2 - tr1 ) / ( YS0 - YL0 ) ) ; y2 = YS0 - ( ( YS0 - YL0 ) * y2 ) ; y2 = y2 * G00 ; y2 = y2 + ( YOUNG1 * x2 ) ; y2 = y2 - ( YOUNG1 * epsx10 ) ; * x1 = epsx10 ; x2 = x1 ; tr1 = treps0 - ( A1 * ( epsx10 - x2 ) / ( 3. * B1 ) ) ; tr1 = tr1 / 3. ; y2 = 'EXP' ( -1. * TAU1 * ( x2 - tr1 ) / ( YS0 - YL0 ) ) ; y2 = YS0 - ( ( YS0 - YL0 ) * y2 ) ; y2 = y2 * G00 ; y2 = y2 + ( YOUNG1 * x2 ) ; y2 = y2 - ( YOUNG1 * epsx10 ) ; * 'REPETER' bloc2 ; x2 = ( x1 + x0 ) / 2. ; tr1 = treps0 - ( A1 * ( epsx10 - x2 ) / ( 3. * B1 ) ) ; tr1 = tr1 / 3. ; y2 = 'EXP' ( -1. * TAU1 * ( x2 - tr1 ) / ( YS0 - YL0 ) ) ; y2 = YS0 - ( ( YS0 - YL0 ) * y2 ) ; y2 = y2 * G00 ; y2 = y2 + ( YOUNG1 * x2 ) ; y2 = y2 - ( YOUNG1 * epsx10 ) ; * 'SI' ( y2 > 1.E-5 ) ; x1 = x2 ; 'SINON' ; 'SI' ( y2 < -1.E-5 ) ; x0 = x2 ; 'SINON' ; epsp0 = x2 ; den0 = A1 * GP0 * ( epsx10 - x2 ) / 3. ; den0 = den0 / ( eta ** ( 1. / 3. ) ) ; sup0 = A1 * ( G00 + GT0 ) * ( epsx10 - x2 ) ; sig0 = sup0 / ( 1. + den0 ) ; 'QUITTER' bloc2 ; 'FINSI' ; 'FINSI' ; 'FIN' bloc2 ; * 'SINON' ; * * autres materiaux * x0 = 0. ; x2 = x0 ; ex0 = P11 * ( YS0 - YL0 ) / ( S01 - YL0 ) ; ex1 = ( S01 - YL0 ) * ( ( 'EXP' ex0 ) - 1. ) ; tr1 = treps0 - ( A1 * ( epsx10 - x2 ) / ( 3. * B1 ) ) ; tr1 = tr1 / 3. ; y2 = 'EXP' ( -1. * P11 * TAU1 * ( x2 - tr1 ) / ex1 ) ; y2 = ( 1. - ( 'EXP' ( -1. * ex0 ) ) ) * y2 ; y2 = 'LOG' ( 1. - y2 ) ; y2 = ( ( S01 - YL0 ) * y2 / P11 ) + YS0 ; y2 = y2 * G00 ; y2 = y2 + ( YOUNG1 * x2 ) ; y2 = y2 - ( YOUNG1 * epsx10 ) ; y0 = y2 ; * x1 = epsx10 ; x2 = x1 ; tr1 = treps0 - ( A1 * ( epsx10 - x2 ) / ( 3. * B1 ) ) ; tr1 = tr1 / 3. ; y2 = 'EXP' ( -1. * P11 * TAU1 * ( x2 - tr1 ) / ex1 ) ; y2 = ( 1. - ( 'EXP' ( -1. * ex0 ) ) ) * y2 ; y2 = 'LOG' ( 1. - y2 ) ; y2 = ( ( S01 - YL0 ) * y2 / P11 ) + YS0 ; y2 = y2 * G00 ; y2 = y2 + ( YOUNG1 * x2 ) ; y2 = y2 - ( YOUNG1 * epsx10 ) ; y1 = y2 ; * 'REPETER' bloc2 ; x2 = ( x0 + x1 ) / 2. ; tr1 = treps0 - ( A1 * ( epsx10 - x2 ) / ( 3. * B1 ) ) ; tr1 = tr1 / 3. ; y2 = 'EXP' ( -1. * P11 * TAU1 * ( x2 - tr1 ) / ex1 ) ; y2 = ( 1. - ( 'EXP' ( -1. * ex0 ) ) ) * y2 ; y2 = 'LOG' ( 1. - y2 ) ; y2 = ( ( S01 - YL0 ) * y2 / P11 ) + YS0 ; y2 = y2 * G00 ; y2 = y2 + ( YOUNG1 * x2 ) ; y2 = y2 - ( YOUNG1 * epsx10 ) ; * 'SI' ( y2 > ( 1.E-8 * ( 'ABS' ( y1 - y0 ) ) ) ) ; x1 = x2 ; 'SINON' ; 'SI' ( y2 < ( -1.E-8 * ( 'ABS' ( y0 - y1 ) ) ) ) ; x0 = x2 ; 'SINON' ; epsp0 = x2 ; den0 = A1 * GP0 * ( epsx10 - x2 ) / 3. ; den0 = den0 / ( eta ** ( 1. / 3. ) ) ; sup0 = A1 * ( G00 + GT0 ) * ( epsx10 - x2 ) ; sig0 = sup0 / ( 1. + den0 ) ; 'QUITTER' bloc2 ; 'FINSI' ; 'FINSI' ; 'FIN' bloc2 ; 'FINSI' ; * 'SINON' ; epsp0 = 0. ; sig0 = sig_0 ; '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. ; 'SI' ( err_e0 '>' 5.E-2 ) ; 'FINSI' ; 'SI' ( err_s0 '>' 5.E-2 ) ; 'FINSI' ; * 'FIN' bloc1 ; * * 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales