* fichier : fatsin-1d.dgibi ******************************************************************* * * * TEST MATERIAU ENDOMMAGEMENT EN FATIGUE SINUSOIDALE * * * * * * EPROUVETTE EN FATIGUE UNIAXIALE PILOTE en DEPLACEMENT * * * * CONTRAINTES PLANES. * * * * LES RESULTATS OBTENUS SONT COMPARES A LA SOLUTION ANALYTIQUE * * * ******************************************************************* * * procédure de génération d'un signal alterné DEBPROC TR_PROG tps ; *donnant la liste des tempsla procédure ressort * la liste des temps complétées des temps intérmédiaires * la liste du chargement unitaire alterné en positi et négatif char = PROG (DIME tps) * 1. ; REPEter bouc (-1+(DIME tps)) ; tps = INSE tps (2*&bouc) (0.5*((EXTR tps (2*&bouc-1) )+ (EXTR tps (2*&bouc) ))) ; char = INSE char (2*&bouc) -1 ; FIN bouc; FINPROC tps char ; * *opti echo 0 ; GRAPH = FAUX ; *GRAPH = VRAI ; * ajout de option epsilon lineaire pour la precision des test! OPTION epsilon lineaire; opti dime 2 elem qua4 mode plan cont; densite 1.; p1=0. 0.; p2=1. 0.; p3=1. 1.; p4=0. 1.; d1=d p1 p2;d2=d p2 p3;d3=d p3 p4;d4=d p4 p1; surf1=daller d1 d2 d3 d4 plane; * amplitude de deplacement (déformation) eps_a = 100.e-6 ; ddldepl = 'UY' ; chargpt1 = P3 ; chargpt2 = P1 ; * test des deux lois en local et en non-local lst_loi = PROG 2. 3. 2. 3. ; lst_nloc = MOTS 'VRAI' 'VRAI' 'FAUX' 'FAUX' ; lst_err = PROG ; REPEter bou9 (DIME lst_loi) ; loi = EXTR lst_loi &bou9 ; SI ((&bou9 EGA 1) OU (&bou9 EGA 2)) ; NLOC1 = VRAI ; SINON; NLOC1 = FAUX ; FINSI ; NLOCi = EXTR lst_nloc &bou9 ; tit_1 = CHAINE 'LOI ' loi ' - NON LOCAL = ' NLOCi ; MESSage tit_1 ; ************************************************************** ** Longueur caractéristique pour les calculs non-locaux *NLOC1 = FAUX ; *NLOC1 = VRAI ; lcar1 = 18.e-3 ; **************************************************** *données matériau yg=12.e9; poisson = 0.35 ; epsd0 = 0. ; * * Parametre loi d'endommagement en fatigue * beta= 4. ; * *loi = 3. ; * SI (loi EGA 2.); C = 2.87e12 ; alfa = -2.25 ; alfa1 = 0. ; alfa2 = 0. ; alfa3 = 0. ; SINON ; C = 0. ; alfa = 0. ; alfa1 = 5.58e-15 ; alfa2 = 0.42 ; alfa3 = 3.0 ; FINSI ; *modèle de comportement MODmeca=mode surf1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE' 'ENDOMMAGEMENT' FATSIN ; MATmeca=matr MODmeca YOUN yg NU poisson RHO 2.3E+03 'KTR0' epsd0 'BETA' beta 'LOI ' loi 'C ' C 'ALFA' alfa 'ALF1' alfa1 'ALF2' alfa2 'ALF3' alfa3 'DIM3' 1.; ******************************************************** *evolution pour le chargement * nombre de cycle max N_max = 3e6 ; **** nb_calc = 30 ; nb_calc = 15 ; tps1=prog 0. pas (n_max/nb_calc) n_max ; tps2 char1 = TR_PROG tps1 ; * conditions aux limites MESSage 'ESSAI PILOTE en DEPLACEMENT' ; blo1=bloq ux p1; blo2=bloq uy d1; blo3=bloq uy d3; cltot=blo1 et blo2 et blo3 ; fo1 = depi blo3 eps_a ; evol1=evol manu temps tps2 depl char1; char1=charg evol1 fo1 DIMP; * preparation des données pour PASAPAS tab1=table; tab1.mova='D '; tab1.blocages_mecaniques=cltot; tab1.caracteristiques=MATmeca; tab1.modele=MODmeca; tab1.chargement=char1; tab1.temps_calcules=tps2; tab1.temps_sauves=tps1; tab1.maxisouspas=1000; SI NLOC1 ; *construction ed la matrice de connectivité conn1 = CONN MODmeca lcar1 'NORMAL' 'INTERIEUR' ; conntot = conn1 ; * tab1 . 'NON_LOCAL' = 'MOT' 'MOYE' ; tab1 . 'LCAR' = lcar1 ; tab1 . 'CONN' = conntot ; ; * Grandeur moyennee tab1 . 'LVIAM' = (MOTS 'EPTI' ) ; FINSI ; pasapas tab1; *************************************** * Results post-treatment *************************************** force1 = tab1.'REACTIONS'; ndim = DIME force1 ; * list de réel de force lis1 = PROG (YG * EPS_A) ;mess ' prem ';list lis1; REPETER BOUCL1 (ndim-1) ; forc1 = ABS (-1*(@TOTAL (force1 . (&BOUCL1)) d1 'FY')); lis1 = INSER lis1 (&BOUCL1+1) (forc1) ; FIN BOUCL1; mess ' lis1 ' ;list lis1; lst_un = prog (DIME tps1) * 1. ; mess ' lst_un';list lst_un; ** Resultat du calcul EF aaa = maxi lis1; ppp= prog (DIME tps1) * aaa; D_EFA = (lst_un-(lis1/(MAXI lis1))) ; D_EF=ABS (( ppp - lis1) / aaa); ** solution analytique def_t1 = ((eps_a**(beta+1))-(epsd0**(beta+1))) ; def_t1 = 0.5*(def_t1+(abs(def_t1))) ; def_term = (def_t1 /(beta+1)); SI (def_term EGA 0.) ; N_N = tps1 ; D_N = 0.*lst_un ; SINON ; SI (loi EGA 2.); D_N = ( C*(1-alfa)*def_term*tps1)**(1/(1-alfa)); N_N = tps1 ; SINON ; N_N = PROG ; D_N = PROG ; REPEter bou1 (DIME tps1) ; N_i = EXTR tps1 &bou1 ; N_1 = alfa1/def_term*(1-(EXP(-1.*(alfa2**(-1.*alfa3))))) ; SI (N_i < N_1) ; D_i = alfa2 * ((-1.*(LOG (1.-(def_term*N_i/alfa1))))**(1/(alfa3))) ; SINON ; D_i = 1.-1e-5 ; FINSI ; D_N = INSE D_N &bou1 D_i; N_N = INSE N_N &bou1 N_i; FIN bou1 ; FINSI ; FINSI ; ev2=evol manu Cycles N_N Damage D_N 'COUL' 'ROUG' ; ev1=evol manu Cycles tps1 Damage D_EF 'COUL' 'VERT' ; ev3 = evol manu 'Cycles' tps1 'Num-Analytique' (D_N-D_EF) ; Tdess = 'TABLE' ; Tdess . 1 = 'MOT' 'MARQ LOSA NOLI'; Tdess . 'TITRE' = 'TABLE' ; Tdess . 'TITRE' . 1 = 'MOT' 'Calcul EF'; Tdess . 'TITRE' . 2 = 'MOT' 'Reference analytique' ; 'SI' GRAPH ; dess (ev1 et ev2) Tdess 'LEGE' Tdess 'TITR' tit_1 ; dess ev3 Tdess 'TITR' tit_1 ; 'FINSI' ; mess ' d_EF' ; list d_ef; mess ' d_n ' ; list d_n; zdn = 'MASQUE' d_n 'EGAL' 0.D0 ; udn = 'PROG' ('DIME' D_N) * 1.D0 ; mzdn = '-' udn zdn ; d_n2 = '+' ('*' d_n mzdn) ('*' udn zdn) ; qqq= abs( (D_EF - D_N)/D_N2); mess ' err ' ; list qqq; err1=maxi (abs( (D_EF - D_N)/D_N2)); lst_err = INSE lst_err &bou9 err1 ; FIN bou9 ; *comparaison des deux resultats * list lst_err ; err1 = maxi (lst_err) ; temps; si (err1 < 1.e-10); ERRE 0; sinon ; ERRE 5; finsi; fin; *
© Cast3M 2003 - All rights reserved.
Disclaimer