* fichier : ohno_cis1.dgibi ************************************************************************ * Section : Mecanique Viscoplastique ************************************************************************ ************************************************** * * * TEST DE VALIDATION D'UNE LOI DE COMPORTEMENT * * -------------------------------------------- * * DE MATERIAU * * ----------- * * * * LOI DE COMPORTEMENT VISCOPLASTIQUE DE: * * OHNO ( CHABOCHE MODIFIE OHNO ) * * * * COMPARAISON DE CALCULS SUR DES ELEMENTS: * * - COQUE EPAISSE ( MFR=5 ) * * - COQUE MINCE ( MFR=3 ) * * - MASSIF 3D ( MFR=1 ) * * * * STRUCTURE : UNE PLAQUE CARREE * * - COTE : .1 M * * - EPAISSEUR : 5.E-4 M * * * * CHARGEMENT : DEPLACEMENTS IMPOSES * * CISAILLEMENT PUR * * * ************************************************** opti echo 0 dime 3 elem qua8 ; * * * Maillage * epais0 = .0005 ; rayon0 = .05 ; l10 = .1 ; n10 = 1 ; p10 = rayon0 0. 0. ; p20 = rayon0 l10 0. ; p11 = rayon0 0. l10 ; p12 = rayon0 l10 l10 ; li1 = d p10 n10 p20 ; li2 = d p20 n10 p12 ; li3 = d p12 n10 p11 ; li4 = d p11 n10 p10 ; mail1 = 'SURF' ( li1 'ET' li2 'ET' li3 'ET' li4 ) 'PLAN' ; *titr 'maillage' ; *trace mail1 ; * * Modele de calcul * mod00 = 'MODE' mail1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE' 'VISCOPLASTIQUE' 'OHNO' 'COQ8' ; mat00 = 'MATE' mod00 'YOUN' 7.34E10 'NU' 0.33 'RHO' 7.8E3 'N' 24 'KK' 10.E6 'K0' 116.E6 'ALFK' 1.5 'ALFR' 0.35 'ALF' 2.E6 'A1' 67.5E6 'C1' 1300 'BET1' 4807.E6 'R1' 4 'A2' 80.E6 'C2' 45 'BET2' 58480.E6 'R2' 4 'PHI' 1. 'B' 12 'GAMA' 2.E-7 'M' 2 'QMAX' 455.E6 'QSTA' 200.E6 'MU' 19 'ETA' 0.50 'EXP1' 2. 'EXP2' 2. ; car00 = 'CARA' mod00 'EPAI' epais0 ; * * Conditions aux limites * cl10 = 'BLOQ' li1 'UX' 'RY' ; cl20 = 'BLOQ' li3 'UX' 'RY' ; cl30 = 'BLOQ' mail1 'UY' 'UZ' ; cl00 = cl10 'ET' cl20 'ET' cl30 ; * * Chargement * depmax = .0050 ; chp1 = 'COOR' 3 mail1 ; chp1 = chp1 * depmax / l10 ; chp1 = 'NOMC' chp1 'UY' ; *trace chp1 mail1 ; chp2 = 'MANU' 'CHPO' mail1 1 'UZ' 0. ; chp0 = chp1 + chp2 ; dep10 = 'DEPI' cl30 chp0 ; ev00 = 'EVOL' 'MANU' temps ( 'PROG' 0. 1000. ) y ( 'PROG' 0. 1. ) ; cha00 = 'CHAR' 'DIMP' dep10 ev00 ; *vec1 = 'VECT' dep10 1.E-5 'FX' 'FY' 'FZ' 'ROUG' ; *titr ' chargement ' ; *trace vec1 mail1 ; * * Temps du calcul * dt00 = 5. ; tfin00 = 100. ; * * * Resolution par PASAPAS *--------------------------------------- * ta10 = 'TABLE' ; ta10 .'MODELE' = mod00 ; ta10 .'CARACTERISTIQUES' = mat00 'ET' car00 ; ta10 .'BLOCAGES_MECANIQUES' = cl00 ; ta10 .'CHARGEMENT' = cha00 ; ta10 .'TEMPS_CALCULES' = 'PROG' 0. 'PAS' dt00 tfin00 ; *( 'PROG' 22. 'PAS' 2. 40. ) 'ET' *( 'PROG' 41. 'PAS' dt00 tfin00 ) ) ; * TMASAU=table; ta10. 'MES_SAUVEGARDES'=TMASAU; TMASAU .'DEFTO'=VRAI; TMASAU .'DEFIN'=VRAI; PASAPAS ta10 ; * * * Post-traitement *----------------------------------------- * dim10 = 'DIME' ta10 .'TEMPS' ; depl120 = 'PROG' 0. ; * reac0 = ta10 .'REACTIONS'.( dim10 - 1 ) ; depl0 = ta10 .'DEPLACEMENTS'.( dim10 - 1 ) ; vec2 = 'VECT' reac0 1.E-2 'FX' 'FY' 'FZ' 'ROUG' ; *titr ' reactions ' ; *trace vec2 mail1 ; defo0 = 'DEFO' mail1 depl0 0. ; defo1 = 'DEFO' mail1 depl0 1. 'ROUG' ; *titr ' deformees ' ; *trace ( defo0 'ET' defo1 ) ; * 'REPETER' bloc0 ( dim10 - 1 ) ; i10 = &bloc0 ; reac0 = ta10 .'REACTIONS'.i10 ; depl10 = ta10 .'DEPLACEMENTS'.i10 ; temp10 = ta10 .'TEMPS'.i10 ; * depl11 = 'EXTR' depl10 'UY' p11 ; * sigm0 = ta10 .'CONTRAINTES'.i10 ; * sigm0 = 'RTENS' sigm0 mod00 ( 0 1 0 ) ; * sigm1 = 'CHAN' 'CHPO' sigm0 mod00 ; * titr ' Contrainte de cisaillement ' ; * trace ( 'EXCO' sigm1 'SMST' ) mail1 ; * titr ' Contrainte suivant Y' ; * trace ( 'EXCO' sigm1 'SMSS' ) mail1 ; * titr ' Contrainte suivant Z ' ; * trace ( 'EXCO' sigm1 'SMTT' ) mail1 ; reac0 = 'REDU' reac0 li3 ; reac0 = 'EXCO' reac0 'FY' 'SCAL' ; chp1 = 'MANU' 'CHPO' li3 1 'SCAL' 1. ; depl11 = 'XTY' reac0 chp1 ( 'MOTS' 'SCAL' ) ( 'MOTS' 'SCAL' ) ; depl120 = depl120 'ET' ( 'PROG' depl11 ) ; 'FIN' bloc0 ; * * opti echo 0 dime 3 elem tri3 ; * * * Maillage * epais0 = .0005 ; rayon0 = .05 ; l10 = .1 ; n10 = 1 ; p10 = rayon0 0. 0. ; p20 = rayon0 l10 0. ; p11 = rayon0 0. l10 ; p12 = rayon0 l10 l10 ; li1 = d p10 n10 p20 ; li2 = d p20 n10 p12 ; li3 = d p12 n10 p11 ; li4 = d p11 n10 p10 ; mail1 = 'SURF' ( li1 'ET' li2 'ET' li3 'ET' li4 ) 'PLAN' ; *titr 'maillage' ; *trace mail1 ; * * Modele de calcul * mod00 = 'MODE' mail1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE' 'VISCOPLASTIQUE' 'OHNO' 'DKT' ; mat00 = 'MATE' mod00 'YOUN' 7.34E10 'NU' 0.33 'RHO' 7.8E3 'N' 24 'KK' 10.E6 'K0' 116.E6 'ALFK' 1.5 'ALFR' 0.35 'ALF' 2.E6 'A1' 67.5E6 'C1' 1300 'BET1' 4807.E6 'R1' 4 'A2' 80.E6 'C2' 45 'BET2' 58480.E6 'R2' 4 'PHI' 1. 'B' 12 'GAMA' 2.E-7 'M' 2 'QMAX' 455.E6 'QSTA' 200.E6 'MU' 19 'ETA' 0.50 'EXP1' 2. 'EXP2' 2. ; car00 = 'CARA' mod00 'EPAI' epais0 'CALF' ( 2. / 3. ) ; * * Conditions aux limites * cl30 = 'BLOQ' mail1 'UY' 'UZ' 'UX' ; cl00 = cl30 ; * * Chargement * depmax = .0050 ; chp1 = 'COOR' 3 mail1 ; chp1 = chp1 * depmax / l10 ; chp1 = 'NOMC' chp1 'UY' ; *trace chp1 mail1 ; chp2 = 'MANU' 'CHPO' mail1 1 'UZ' 0. ; chp3 = 'MANU' 'CHPO' mail1 1 'UX' 0. ; chp0 = chp1 + chp2 + chp3 ; dep10 = 'DEPI' cl30 chp0 ; ev00 = 'EVOL' 'MANU' temps ( 'PROG' 0. 1000. ) y ( 'PROG' 0. 1. ) ; cha00 = 'CHAR' 'DIMP' dep10 ev00 ; *vec1 = 'VECT' dep10 1.E-5 'FX' 'FY' 'FZ' 'ROUG' ; *titr ' chargement ' ; *trace vec1 mail1 ; * * Temps du calcul * dt00 = 5. ; tfin00 = 100. ; * * * Resolution par PASAPAS *--------------------------------------- * ta10 = 'TABLE' ; ta10 .'MODELE' = mod00 ; ta10 .'CARACTERISTIQUES' = mat00 'ET' car00 ; ta10 .'BLOCAGES_MECANIQUES' = cl00 ; ta10 .'CHARGEMENT' = cha00 ; ta10 .'TEMPS_CALCULES' = 'PROG' 0. 'PAS' dt00 tfin00 ; *( 'PROG' 22. 'PAS' 2. 40. ) 'ET' *( 'PROG' 41. 'PAS' dt00 tfin00 ) ) ; * TMASAU=table; ta10 . 'MES_SAUVEGARDES'=TMASAU; TMASAU .'DEFTO'=VRAI; TMASAU .'DEFIN'=VRAI; PASAPAS ta10 ; * * * Post-traitement *----------------------------------------- * dim10 = 'DIME' ta10 .'TEMPS' ; depl12 = 'PROG' 0. ; var2 = 'PROG' 0. ; * reac0 = ta10 .'REACTIONS'.( dim10 - 1 ) ; depl0 = ta10 .'DEPLACEMENTS'.( dim10 - 1 ) ; vec2 = 'VECT' reac0 1.E-2 'FX' 'FY' 'FZ' 'ROUG' ; *titr ' reactions ' ; *trace vec2 mail1 ; defo0 = 'DEFO' mail1 depl0 0. ; defo1 = 'DEFO' mail1 depl0 1. 'ROUG' ; *titr ' deformees ' ; *trace ( defo0 'ET' defo1 ) ; * 'REPETER' bloc0 ( dim10 - 1 ) ; i10 = &bloc0 ; reac0 = ta10 .'REACTIONS'.i10 ; depl10 = ta10 .'DEPLACEMENTS'.i10 ; temp10 = ta10 .'TEMPS'.i10 ; sigm0 = ta10 .'CONTRAINTES'.i10 ; def0 = ta10 .'DEFORMATIONS_INELASTIQUES'.i10 ; var0 = ta10. 'VARIABLES_INTERNES'.i10 ; * var1 = 'EXTR' ( 'EXCO' var0 'GPN3' ) p11 ; eps0 = 'EPSI' depl10 mod00 car00 ; sigm0 = 'RTENS' sigm0 mod00 ( 0 1 0 ) ; eps0 = 'RTENS' eps0 mod00 ( 0 1 0 ) ; sigm1 = 'CHAN' 'CHPO' sigm0 mod00 ; eps1 = 'CHAN' 'CHPO' eps0 mod00 ; def0 = 'RTENS' def0 mod00 ( 0 1 0 ) ; def1 = 'CHAN' 'CHPO' def0 mod00 ; * titr ' déformation plastique de cisaillement ' ; * trace ( 'EXCO' def1 'GAST' ) mail1 ; * titr ' déformation plastique suivant Y' ; * trace ( 'EXCO' def1 'EPSS' ) mail1 ; * titr ' déformation plastique Z ' ; * trace ( 'EXCO' def1 'EPTT' ) mail1 ; * titr ' déformation de cisaillement ' ; * trace ( 'EXCO' eps1 'GAST' ) mail1 ; * titr ' déformation suivant Y' ; * trace ( 'EXCO' eps1 'EPSS' ) mail1 ; * titr ' déformation suivant Z ' ; * trace ( 'EXCO' eps1 'EPTT' ) mail1 ; depl11 = 'EXTR' depl10 'UY' p11 ; reac0 = 'REDU' reac0 li3 ; reac0 = 'EXCO' reac0 'FY' 'SCAL' ; chp1 = 'MANU' 'CHPO' li3 1 'SCAL' 1. ; depl11 = 'XTY' reac0 chp1 ( 'MOTS' 'SCAL' ) ( 'MOTS' 'SCAL' ) ; depl12 = depl12 'ET' ( 'PROG' depl11 ) ; * var2 = var2 'ET' ( 'PROG' var1 ) ; 'FIN' bloc0 ; * * opti echo 0 dime 3 elem cub8 ; * * * Maillage * rayon0 = .05 ; epais0 = .0005 ; l1 = epais0 + rayon0 ; l2 = .1 ; n1 = 1 ; n2 = 1 ; p1 = rayon0 0. 0. ; p2 = l1 0. 0. ; p3 = l1 l2 0. ; p4 = rayon0 l2 0. ; p11 = rayon0 0. l2 ; p21 = l1 0. l2 ; p31 = l1 l2 l2 ; p41 = rayon0 l2 l2 ; d1 = d p1 n1 p2 ; d2 = d p2 n2 p3 ; d3 = d p3 n1 p4 ; d4 = d p4 n2 p1 ; d11 = d p11 n1 p21 ; d21 = d p21 n2 p31 ; d31 = d p31 n1 p41 ; d41 = d p41 n2 p11 ; p01 = ( rayon0 + ( epais0 / 2. ) ) 0. l2 ; p02 = ( rayon0 + ( epais0 / 2. ) ) l2 l2 ; sur1 = 'DALL' d1 d2 d3 d4 ; sur2 = 'DALL' d11 d21 d31 d41 ; vol1 = sur1 'VOLU' n2 sur2 ; *titr ' maillage ' ; *trace vol1 ; * * Modele de calcul * mod0 = 'MODE' vol1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE' 'VISCOPLASTIQUE' 'OHNO' ; mat0 = 'MATE' mod0 'YOUN' 7.34E10 'NU' 0.33 'RHO' 7.8E3 'ALPHA' 1.E-5 'N' 24 'KK' 10.E6 'K0' 116.E6 'ALFK' 1.5 'ALFR' 0.35 'ALF' 2.E6 'A1' 67.5E6 'C1' 1300 'BET1' 4807.E6 'R1' 4 'A2' 80.E6 'C2' 45 'BET2' 58480.E6 'R2' 4 'PHI' 1. 'B' 12 'GAMA' 2.E-7 'M' 2 'QMAX' 455.E6 'QSTA' 200.E6 'MU' 19 'ETA' 0.50 'EXP1' 2. 'EXP2' 2. ; * * Conditions aux limites * cl1 = 'BLOQ' sur1 'UX' 'RY' ; cl2 = 'BLOQ' sur2 'UX' 'RY' ; cl3 = 'BLOQ' vol1 'UY' 'UZ' ; cl0 = cl1 'ET' cl2 'ET' cl3 ; * * Chargement * depmax = .0050 ; chp1 = 'COOR' 3 vol1 ; chp1 = chp1 * depmax / l2 ; chp1 = 'NOMC' chp1 'UY' ; chp2 = 'MANU' 'CHPO' vol1 1 'UZ' 0. ; *trace chp1 vol1 ; chp0 = chp1 + chp2 ; dep1 = 'DEPI' cl3 chp0 ; ev0 = 'EVOL' 'MANU' temps ( 'PROG' 0. 1000. ) y ( 'PROG' 0. 1. ) ; cha0 = 'CHAR' 'DIMP' dep1 ev0 ; * * Temps du calcul * dt0 = 5. ; tfin0 = 100. ; * * * Resolution par PASAPAS *--------------------------------------- * ta1 = 'TABLE' ; ta1 .'MODELE' = mod0 ; ta1 .'CARACTERISTIQUES' = mat0 ; ta1 .'BLOCAGES_MECANIQUES' = cl0 ; ta1 .'CHARGEMENT' = cha0 ; ta1 .'TEMPS_CALCULES' = 'PROG' 0. 'PAS' dt0 tfin0 ; *( 'PROG' 22. 'PAS' 2. 40. ) 'ET' *( 'PROG' 41. 'PAS' dt0 tfin0 ) ) ; * TMASAU=table; ta1 . 'MES_SAUVEGARDES'=TMASAU; TMASAU .'DEFTO'=VRAI; TMASAU .'DEFIN'=VRAI; PASAPAS ta1 ; * * * Post-traitement *----------------------------------------- * dim0 = 'DIME' ( ta1 .'TEMPS' ) ; char2 = 'PROG' 0. ; depl2 = 'PROG' 0. ; defi2 = 'PROG' 0. ; var10 = 'PROG' 0. ; * reac0 = ta1 .'REACTIONS'.( dim0 - 1 ) ; depl0 = ta1 .'DEPLACEMENTS'.( dim0 - 1 ) ; vec2 = 'VECT' reac0 1.E-2 'FX' 'FY' 'FZ' 'ROUG' ; *titr ' reactions ' ; *trace vec2 vol1 ; defo0 = 'DEFO' vol1 depl0 0. 'ROUG' ; defo1 = 'DEFO' vol1 depl0 1. ; *titr ' deformees ' ; *trace ( defo0 'ET' defo1 ) ; reac1 = 'REDU' reac0 p1 ; reac2 = 'REDU' reac0 p2 ; vec01 = 'VECT' reac1 1.E-2 'FX' 'FY' 'FZ' 'ROUG' ; vec02 = 'VECT' reac2 1.E-2 'FX' 'FY' 'FZ' 'VERT' ; *titr ' reactions 2 ' ; *trace ( vec01 'ET' vec02 ) vol1 ; * 'REPETER' bloc0 ( dim0 - 1 ) ; i0 = &bloc0 ; reac0 = ta1 .'REACTIONS'.i0 ; depl0 = ta1 .'DEPLACEMENTS'.i0 ; sigm0 = ta1 .'CONTRAINTES'.i0 ; temp0 = ta1 .'TEMPS'.i0 ; def0 = ta1 .'DEFORMATIONS_INELASTIQUES'.i0 ; char1 = 'EXTR' depl0 'UY' p21 ; reac0 = 'REDU' reac0 sur2 ; reac0 = 'EXCO' reac0 'FY' 'SCAL' ; chp1 = 'MANU' 'CHPO' sur2 1 'SCAL' 1. ; depl11 = 'XTY' reac0 chp1 ( 'MOTS' 'SCAL' ) ( 'MOTS' 'SCAL' ) ; depl2 = depl2 'ET' ( 'PROG' depl11 ) ; sigm0 = 'CHAN' 'CHPO' sigm0 mod0 ; def1 = 'CHAN' 'CHPO' def0 mod0 ; var0 = ta1 .'VARIABLES_INTERNES'.i0 ; * var1 = 'EXTR' ( 'EXCO' var0 'GPYZ' ) p21 ; * titr ' déformation plastique de cisaillement ' ; * trace ( 'EXCO' def1 'GAYZ' ) vol1 ; * titr ' déformation plastique suivant Y' ; * trace ( 'EXCO' def1 'EPYY' ) vol1 ; * titr ' déformation plastique Z ' ; * trace ( 'EXCO' def1 'EPZZ' ) vol1 ; * titr ' déformation plastique suivant X' ; * trace ( 'EXCO' def1 'EPXX' ) vol1 ; * titr ' Contrainte de cisaillement' ; * trace ( 'EXCO' sigm0 'SMYZ' ) vol1 ; * titr ' Contrainte suivant Y' ; * trace ( 'EXCO' sigm0 'SMYY' ) vol1 ; * titr ' Contrainte suivant Z' ; * trace ( 'EXCO' sigm0 'SMZZ' ) vol1 ; * titr ' Contrainte suivant X' ; * trace ( 'EXCO' sigm0 'SMXX' ) vol1 ; * cont0 = 'MAXI' ( 'EXCO' 'SMXX' sigm0 ) ; * cont1 = cont1 'ET' ( 'PROG' cont0 ) ; char2 = char2 'ET' ( 'PROG' char1 ) ; * var10 = var10 'ET' ( 'PROG' var1 ) ; 'FIN' bloc0 ; * * opti echo 0 dime 3 ; * * * Données du calcul coque * * Erreur * * err_e1 = 'PROG' 0. ; err_e2 = 'PROG' 0. ; dim10 = 'DIME' char2 ; * bool0 = faux ; 'REPETER' bloc0 ( dim10 - 1 ) ; i10 = &bloc0 ; depl1 = 'EXTR' depl2 i10 ; depl11 = 'EXTR' depl12 i10 ; depl111 = 'EXTR' depl120 i10 ; * 'SI' (depl1 'NEG' 0. ) ; err_e0 = 'ABS' ( ( depl1 - depl11 ) / depl1 ) ; err_e0 = err_e0 * 100. ; err_e00 = 'ABS' ( ( depl1 - depl111 ) / depl1 ) ; err_e00 = err_e00 * 100. ; 'SINON' ; err_e0 = 0. ; err_e00 = 0. ; 'FINSI' ; * 'SI' ( ( err_e0 '>' 5.E-2 ) 'OU' ( err_e00 '>' 5.E-2 ) ) ; bool0 = vrai ; 'FINSI' ; err_e1 = err_e1 'ET' ( 'PROG' err_e0 ) ; err_e2 = err_e2 'ET' ( 'PROG' err_e00 ) ; * 'FIN' bloc0 ; * 'SI' ( bool0 'EGA' vrai ) ; 'ERRE' 5 ; 'SINON' ; 'ERRE' 0 ; 'FINSI' ; * * Traces * evo1 = 'EVOL' 'MANU' 'depl' char2 'force' depl2 ; evo2 = 'EVOL' 'MANU' 'depl' char2 'force' depl12 ; evo3 = 'EVOL' 'MANU' 'chargement' char2 'erreur_%' err_e1 ; evo4 = 'EVOL' 'MANU' 'depl' char2 'chargement' depl120 ; evo5 = 'EVOL' 'MANU' 'chargement' char2 'erreur_%' err_e2 ; TAB = 'TABLE' ; TAB. 1 = 'MARQ PLUS' ; TAB. 2 = 'MARQ CROI' ; TAB. 3 = 'MARQ CARR' ; TAB.'TITRE' = 'TABLE' ; TAB.'TITRE'. 1 = MOT 'MASSIF' ; TAB.'TITRE'. 2 = MOT 'COQUE' ; TAB.'TITRE'. 3 = MOT 'EPAISSE' ; *'DESS' ( evo1 'ET' evo2 'ET' evo4 ) *'TITR' ' Deplacement de l extremite du cylindre' *'LEGE' TAB ; * TAB = 'TABLE' ; TAB. 1 = 'MARQ PLUS ' ; TAB. 2 = 'MARQ CROI ' ; TAB.'TITRE' = 'TABLE' ; TAB.'TITRE'. 1 = MOT 'MINCE' ; TAB.'TITRE'. 2 = MOT 'EPAISSE' ; *'DESS' ( evo3 'ET' evo5 ) *'TITR' 'Erreur sur les deplacements ' *'LEGE' TAB ; * 'FIN' ; * * 'FIN' ;