* fichier : g_theta_utilisateur_1.dgibi **************************************************** * Section : Mecanique rupture **************************************************** * * * VERIFICATION DE LA PROCEDURE G_THETA * * POUR LE CALCUL DE G POUR UNE FISSURE DROITE * * DANS UN CARRE * * - * * VERIFICATION DU CALCUL DE G VIA EN 2D AVEC * * ELEMENTS STANDARDS ET CHAMP_THETA UTILISATEUR * * EN MODE I PUR * * * **************************************************** * I - INIT DES DONNÉES CAS_TEST * ----------------------------- OPTI 'DIME' 2 'ELEM' 'QUA4' ; BTRA = FAUX ; * DONNEES GEOMETRIQUES A0 = 1. ; L1 = A0 / 4. ; DENS1 = L1 / 5. ; DENS2 = A0 / L1 * DENS1 ; DENS DENS1 ; * PROPRIÉTÉS MATÉRIAU MYOU = 2E11 ; POI = 0.3 ; KAPPA = 3-(4*POI) ; MU = MYOU/(2*(1+POI)) ; * II - MAILLAGE * ------------- * CREATION DES SURFACES P0 = 0. 0. ; D1 = DROI (P0 MOIN (L1 0.)) (P0 PLUS (L1 0.)) ; S1 = D1 TRAN (0. L1) ; CONT1 = CONT S1 ; CONT1 = DIFF CONT1 D1 ; CONT2 = CONT1 HOMO (A0 / L1) P0 ; S2 = CONT1 REGL 'DFIN' DENS2 CONT2 ; S1 = S1 ET S2 ; S2 = S1 SYME 'DROI' P0 (1. 0.) ; S0 = (S1 COUL 'BLEU') ET (S2 COUL 'ROUG') ; * TRAC S0 ;FIN ; * FUSION PRE1 = 1.E-10 ; PLIGS = S1 POIN 'DROI' P0 (1. 0.) ; PLIGS = (COOR 1 PLIGS) POIN 'EGSUPE' (0. - PRE1) ; PLIGI = S2 POIN 'DROI' P0 (1. 0.) ; PLIGI = (COOR 1 PLIGI) POIN 'EGSUPE' (0. - PRE1) ; ELIM PLIGS PLIGI PRE1 ; * LEVRES ET FRONT CON0 = CONT S0 ; PLEVS = S1 POIN 'DROI' P0 (1. 0.) ; PLEVS = (COOR 1 PLEVS) POIN 'EGINFE' PRE1 ; LVSUP = CON0 ELEM 'APPUYE' PLEVS ; PLEVI = S2 POIN 'DROI' P0 (1. 0.) ; PLEVI = (COOR 1 PLEVI) POIN 'EGINFE' PRE1 ; LVINF = CON0 ELEM 'APPUYE' PLEVI ; FRON1 = INTE (CHAN 'POI1' LVSUP) (CHAN 'POI1' LVINF) ; FRON1 = FRON1 POIN 1 ; * III - MODELE ET MATERIAU * ------------------------ MOD1 = MODE S0 'MECANIQUE' 'ELASTIQUE' ; MAT1 = MATE MOD1 'YOUN' MYOU 'NU' POI ; * IV - CONDITIONS AUX LIMITES POUR LES 2 MODES * -------------------------------------------- * IV.1 - EFFORTS DONNES * ********************* * PREPARATIFS CEXT = DIFF CON0 (LVSUP ET LVINF) ; SEXT = S0 ELEM 'APPUYE' 'LARGEMENT' CON0 ; MOD2 = REDU MOD1 SEXT ; X Y = COOR SEXT ; X Y = (CHAN 'CHAM' X MOD2 'STRESSES') (CHAN 'CHAM' Y MOD2 'STRESSES') ; TETA = CHAN (ATG Y (X + 1.E-30)) 'TYPE' 'SCALAIRE' ; RAY1 = (((X)**2) + ((Y)**2))**0.5 ; RAY1 = CHAN RAY1 'TYPE' 'SCALAIRE' ; PREF = 1. / ((2*PI*RAY1)**0.5) ; COS05 = COS (TETA/2) ; SIN05 = SIN (TETA/2) ; COS15 = COS (3*TETA/2) ; SIN15 = SIN (3*TETA/2) ; SIG0 = ZERO MOD2 'CONTRAIN' ; * MODE I : SXX = PREF*(COS05*(1.-(SIN05*SIN15))) ; SXY = PREF*(COS05*SIN05*COS15) ; SYY = PREF*(COS05*(1.+(SIN05*SIN15))) ; SZZ = POI * (SXX + SYY) ; SIG1 = SIG0 + (NOMC 'SMXX' SXX) + (NOMC 'SMXY' SXY) + (NOMC 'SMYY' SYY) + (NOMC 'SMZZ' SZZ) ; TCHAR = REDU (BSIG MOD2 SIG1) CEXT ; * IV.2 - DEPLACEMENT ANALYTIQUE * ***************************** * PREPARATIFS X Y = COOR S0 ; LSUP = (COOR 1 PLEVS) POIN 'EGINFE' (0. - PRE1) ; LINF = (COOR 1 PLEVI) POIN 'EGINFE' (0. - PRE1) ; Y = Y + ((COOR 2 LSUP) + 1.E-30) + ((COOR 2 LINF) - 1.E-30) ; TETA = ATG Y (X + 1.E-30) ; RAY1 = (((X)**2) + ((Y)**2))**0.5 ; PREF = (RAY1/(2*PI))**0.5 ; COS05 = COS (TETA/2) ; SIN05 = SIN (TETA/2) ; XI0 = CHAN 'CHPO' MOD1 (ZERO MOD1 'DEPLACEM') ; * MODE I : XIX = PREF/(2.*MU)*(COS05*(KAPPA - 1. + (2.*(SIN05**2)))) ; XIY = PREF/(2.*MU)*(SIN05*(KAPPA + 1. - (2.*(COS05**2)))) ; USOL = XI0 + (NOMC 'UX' XIX) + (NOMC 'UY' XIY) ; * V - APPEL A G_THETA * ------------------- * G_THETA AVEC OPTION 'COUCHE' SUPTAB = TABL ; SUPTAB.'OBJECTIF' = MOT 'J' ; SUPTAB.'FRONT_FISSURE' = FRON1 ; SUPTAB.'MODELE' = MOD1 ; SUPTAB.'LEVRE_SUPERIEURE' = LVSUP ; SUPTAB.'LEVRE_INFERIEURE' = LVINF ; SUPTAB.'CARACTERISTIQUES' = MAT1 ; SUPTAB.'SOLUTION_RESO' = USOL ; SUPTAB.'CHARGEMENTS_MECANIQUES' = TCHAR ; SUPTAB2 = COPI SUPTAB ; SUPTAB.'COUCHE' = 4 ; G_THETA SUPTAB ; GNUM1 = SUPTAB.'RESULTATS' ; * G_THETA AVEC LE CHAMP THETA CALCULE AVEC LE NOMBRE DE COUCHES MAIS FOURNI * DANS L'INDICE 'CHAMP_THETA' SUPTAB2.'CHAMP_THETA' = SUPTAB.'CHAMP_THETA' ; SUPTAB3 = COPI SUPTAB2 ; G_THETA SUPTAB2 ; GNUM2 = SUPTAB2.'RESULTATS' ; * G_THETA AVEC CHAMP THETA COMPLETEMENT CREE PAR L'UTILISATEUR * DANS L'INDICE 'CHAMP_THETA' PSI PHI = PSIP S0 LVSUP 'DEUX' FRON1 ; RHO = (((NOMC 'SCAL' PSI)**2.) + ((NOMC 'SCAL' PHI)**2.))**0.5 ; R1 = L1 ; R2 = 1.05*R1 ; FUNC = BORN ((RHO - R2) / (R1 - R2)) 'COMPRIS' 0. 1. ; THETA = MANU 'CHPO' S0 2 'UX' 1. 'UY' 0. ; THETA = FUNC * THETA ; SUPTAB3.'CHAMP_THETA' = THETA ; G_THETA SUPTAB3 ; GNUM3 = SUPTAB3.'RESULTATS' ; * RESULTAT ANALYTIQUE GANA = (1. - (POI**2.)) / MYOU ; * CALCUL DES ERREURS SAUT 'LIGNE' ; OPTI 'ECHO' 0 ; MESS 'RESULTAT AVEC ''COUCHE'' :' GNUM1/50 ; MESS 'RESULTAT AVEC ''CHAMP_THETA'' DE VALEUR IDENTIQUE :' GNUM2 ; MESS 'RESULTAT AVEC ''CHAMP_THETA'' DIFFERENT :' GNUM3/50 ; MESS 'RESULTAT ANALYTIQUE :' GANA/50 ; * ERREURS GNUM = PROG GNUM1 GNUM2 GNUM3 ; ERR1 = GNUM - GANA ; ERR1 = (ABS ERR1) / GANA ; CRI1 = 1.E-2 ; SI ((MAXI ERR1) >EG CRI1) ; MESS 'ERREUR : L''ERREUR SUR G DEPASSE LE CRITERE' ; ERRE 5 ; FINSI ; FIN ;