******************************************************************* ** raff03.dgibi ******************************************************************* * * Calcul en mecanique de la rupture avec un maillage raffine par * l'operateur RAFF et des elements X-FEM. * * d'une plaque elastique en traction en 2D déformations planes * avec fissure horizontale * test avec des éléments QUA4 QUA6 TRI3 et TRI6 * * Dimentions du quart de plaque: * l1= 0.5 m * l2= 0.5 m * Longueur de la fissure : * a=0.005 m * Inclinaison : * alpha=20 degre * *création : gg, le 15.03.2017 * * Comparaison de la simulations avec une solution de reference * pour g,k1 et k2 donne par : * [TADA, STRESS ANALYSIS HANDBOOK,1973] * [ISIDA,IJF(7),301-316,1971] * ************************************************************************ *** Options de calcul : 2D *opti trac psc; *graph = vrai; graph = faux; ******************************************************* *** Maillage : Plaque rectangulaire saine * dimension et finesse Lb1 = 0.50 ; nb1 = 20; dx2 = (2.*Lb1) / (flot nb1) ; dx1 = dx2/16; P1 = (-1*Lb1) (-1*Lb1) ; P2 = (-1*Lb1) Lb1 ; P3 = Lb1 Lb1 ; P4 = Lb1 (-1*Lb1) ; L1 = DROITE nb1 P1 P2 ; L2 = DROITE nb1 P2 P3 ; L3 = DROITE nb1 P3 P4 ; L4 = DROITE nb1 P4 P1 ; ******************************************************* *** Maillage de la fissure * longueur et angle de la fissure *a0 = 0.1; a0 = 0.05; *alpha0 = 0.; alpha0 = 20.; *alpha0 = 40.; *alpha0 = 45.; *alpha0 = 50.; * finesse du maillage de la fissure *na0 = 10; *da0 = a0 / (flot na0) ; da0 = dx1 / 10.; na0 = enti (a0 / da0); * maillage ptip1 = (a0 * (cos alpha0)) (a0 * (sin alpha0)); ptip2 = (-1.*a0 * (cos alpha0)) (-1.*a0 * (sin alpha0)); * table (+ pratique pour gérer la propa) TXFEM . 0 . 'POINTE1' = ptip1; TXFEM . 0 . 'POINTE2' = ptip2; TXFEM . 0 . 'FISSURE' = lcrack0; ******************************************************* * raffinement du maillage proche des fronts * rayon min de la zone raffiné dmin= 1.5*dx2; dmax=dmin+(dx2); DF1= (((x1 - (a0 * (cos alpha0)))**2)+ ((y1 - (a0 * (sin alpha0)))**2))**0.5; DF2= (((x1 + (a0 * (cos alpha0)))**2)+ ((y1 + (a0 * (sin alpha0)))**2))**0.5; *DF3= (0.5*DF1)+(0.5*DF2); aff = (((dx2 - dx1)*(DF3 - dmax))/(dmax - dmin)) + (dx2) ; si (graph); finsi; (a0+(dx2*0.5)); si (graph); finsi ; * creation des level set psi0 phi0 = PSIPHI SURFX lcrack0 'DEUX' ptip1 ptip2; si (graph); finsi ; *opti donn 5 ; ******************************************************* *** Modeles et materiaux * definition des models elementaires *mod1tot = MODE stot2 mecanique elastique isotrope xq4R; * enrichissement * constructionsion des blocages des ddl X-fem non actifs dans * les éléments de transition et des relation de conformitées dues au * raffinent. mod1tot = mod1x et mod1f; *list resu Che1X . 0; * apres cela on assemble mod1tot = mod1x et mod1f; * on crée le ou les materiau et on les assemble Ey1 = 2.E11 ; nu1 = 0.3; rho1 = 7800.; ******************************************************* *** Matrices + CL * on bloque les depl de corps rigides cl1tot = cl1x et cl1y; K1tot = Rig1tot et cl1tot et Rel1X.0 ; syy0 = 1.E9; si (graph); finsi; ******************************************************* *** RESOlution avec RESO ******************************************************* *** Post traitement * verif du fonctionnement des principaux operateurs ddef0 = def0 - defel0; * calcul du residu Res0 = Fint0 - (Freac0 + pre1); * * calcul energie elastique = energie exterieure * wdefel0= 0.5 * (ENER sig0 defel0 mod1tot); * Iwdef0 = INTG wdefel0 mod1tot; * wext = 0.5 * (PSCA u0 pre1 (mots UY) (mots FY)); * Iwext = maxi (RESU wext); * * travail des efforts internes de deformations * wdef0 = WORK mod1tot sig0 gru0; * messages * mess 'erreur relative / Energie =' ((Iwdef0-Iwext) / (abs Iwext)); * traces si (graph); * trac defel0 mod1tot (lcrack0); * TRAC svm0 mod1tot (stot1 et lcrack0); * TRAC wdefel0 mod1tot (stot1 et lcrack0); * TRAC gru0 mod1tot (stot1 et lcrack0); finsi; ******************************************************* * calcul de l integrale J, de K1, de K2 *** valeur theorique de J,K1,K2 *** k0th1 = syy0 * ((a0 * pi) ** 0.5) * (cos alpha0); Estar1 = (1. - (nu1**2)) / Ey1; Gth1 = Estar1 * (k0th1 ** 2); * facteur de forme pour a/b=0.1 et h/b=Inf *facfor1 = 1.006; * facteur de forme pour a/b=0.1 et h/b=1 facfor1 = 1.014; Gth1 = (facfor1 ** 2) * Gth1; K1ref = k0th1 * (cos alpha0) * facfor1; K2ref = k0th1 * (sin alpha0) * facfor1; *** G_THETA -> J *** SUPTAB.'PSI' = psi0; SUPTAB.'PHI' = phi0; SUPTAB.'FRONT_FISSURE' = ptip1 ; SUPTAB.'MODELE' = mod1tot; SUPTAB.'CARACTERISTIQUES' = mat1tot; SUPTAB.'SOLUTION_RESO' = u0; SUPTAB.'CHARGEMENTS_MECANIQUES' = pre1; * on calcule J pour differents contours jmoy1 = 0.; repe BCOU1 ncou1; SUPTAB.'COUCHE' = icou1; G_THETA SUPTAB; jmoy1=jmoy1 + (SUPTAB . 'RESULTATS'); fin BCOU1; si(graph); fins; * extraction d un J moyen jmoy1 = jmoy1 / ncou1; *erreur relative / J errG1 = abs (1. - (jmoy1 / Gth1)); *** Calcul des FIC par methode integrale G_THETA *** KTAB .'PSI' = psi0; KTAB .'PHI' = phi0; KTAB .'FRONT_FISSURE' = ptip1 ; KTAB .'MODELE' = mod1tot; KTAB .'CARACTERISTIQUES' = mat1tot; KTAB .'SOLUTION_RESO' = u0; KTAB .'CHARGEMENTS_MECANIQUES' = pre1; KTAB . 'COUCHE' = ncou1; G_THETA KTAB; K1G = KTAB . 'RESULTATS' . 'I'; K2G = KTAB . 'RESULTATS' . 'II'; errK1G = ABS (1 - (ABS ( K1G/K1ref))); errK2G = ABS (1 - (ABS ( K2G/K2ref))); GK1K2 = Estar1 * ((K1G**2) + (K2G**2)) ; ********************************************************* Si (errG1 < 0.01); Sinon; finsi; fin;
© Cast3M 2003 - Tous droits réservés.
Mentions légales