lcgldm
C LCGLDM SOURCE CB215821 16/04/21 21:17:40 8920 C C====&===1=========2=========3=========4=========5=========6=========7== C Commentaires : Subroutine permettant de mettre en oeuvre le C modele LGCR_DM (EDF R&D/AMA) pour representer C le comportement cyclique du béton armé sous C sollicitations cycliques C C Traits : - Endommagement scalaire C - 2D (DKT/COQUES/PLAQUES MINCES) pré-intégrée C - Monotone et cyclique C - Effet unilateral (retour à l'origine) C C Auteur : B. Richard (Dr - Ing.) - CEA/DEN/DANS/DM2S/SEMT/EMSI C====&===1=========2=========3=========4=========5=========6=========7== C C----DECLARATION GENERALES---------------------------------------------- C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C C----DECLARATION SEGMENTS----------------------------------------------- C REAL*8 EPSIM(3,3),EPSIF(3,3),UNIT(2,2),SIGMAM(3,3) REAL*8 SIGMAF(3,3),VAPM(3),VEPM(3,3),VAPF(3),VEPF(3,3) REAL*8 XMAT(*),SIG0(*),SIGF(*),VAR0(*),VARF(*),DEPST(*),XCAR(*) REAL*8 XLAMM,XLAMF,XMUM,XMUF,XD1,XD2,XTOL REAL*8 XTRAV1(3,3),XTRAV2(3,3),VEPMT(3,3),VEPFT(3,3) REAL*8 XTRAV3(3,3),XTRAV4(3,3),XIMI(2),XIFI(2),BETAF(3,3) REAL*8 XTRAV5(2,2),XTRAV6(2,2),BETAM(3,3),SGEFF(3) C C----DECLARATION PARAMETRES--------------------------------------------- C PARAMETER (UN=1.D0) PARAMETER (XTOL=1.D-8) DO I=1,2 DO J=1,2 IF (I.EQ.J) THEN UNIT(I,J) = 1.0D0 ELSE UNIT(I,J) = 0.0D0 ENDIF ENDDO ENDDO C C----MISE EN DONNEES---------------------------------------------------- C YOUN = XMAT(1) XNU = XMAT(2) XYOUNM = XMAT(1) XNUM = XMAT(2) XYOUNF = XMAT(5) XNUF = XMAT(6) EPAI = XCAR(1) XLAMM = XNUM*XYOUNM*EPAI/((1.0D0+XNUM)*(1.0D0-2.0D0*XNUM)) XMUM = XYOUNM*EPAI/(2.0D0*(1.0D0+XNUM)) XLAMF = (XNUF*XYOUNF*(EPAI**(3.0D0)))/ & (12.0D0*(1.0D0-(XNUF**(2.0D0)))) XMUF = (XYOUNF*(EPAI**(3.0D0)))/ & (24.0D0*(1.0D0+XNUF)) XGAMMT = XMAT(7) XGAMMC = XMAT(8) XGAMF = XMAT(9) XSEUI0 = XMAT(10) XALFA = XMAT(11) C C----VARIABLES INTERNES------------------------------------------------- C EPSIM(1,1) = VAR0(1) EPSIM(2,2) = VAR0(2) EPSIM(1,2) = VAR0(3)/2.0D0 EPSIM(2,1) = VAR0(3)/2.0D0 EPSIF(1,1) = VAR0(4) EPSIF(2,2) = VAR0(5) EPSIF(1,2) = VAR0(6)/2.0D0 EPSIF(2,1) = VAR0(6)/2.0D0 XD1 = VAR0(9) XD2 = VAR0(10) XD10 = VAR0(9) XD20 = VAR0(10) C print*,'DEPST',(DEPST(I),I=1,3) C C----ACTUALISATION DEFORMATION------------------------------------------ C EPSIM(1,1) = EPSIM(1,1) + DEPST(1) EPSIM(2,2) = EPSIM(2,2) + DEPST(2) EPSIM(1,2) = EPSIM(1,2) + DEPST(3)/2.0D0 EPSIM(2,1) = EPSIM(2,1) + DEPST(3)/2.0D0 EPSIF(1,1) = EPSIF(1,1) + DEPST(4) EPSIF(2,2) = EPSIF(2,2) + DEPST(5) EPSIF(1,2) = EPSIF(1,2) + DEPST(6)/2.0D0 EPSIF(2,1) = EPSIF(2,1) + DEPST(6)/2.0D0 C C----PREDICTION ELASTIQUE----------------------------------------------- C C Deformation hors plan C C----CALCUL DES SEUILS YM1 ET YM2--------------------------------------- C C C----CALCUL DES SEUILS YF1 ET YF2--------------------------------------- C C Calcul de YF01 et YF02 C Calcul de YF1 et YF2 YF1 = (XALFA/(XD1+XALFA)**2.0D0)*YF01 YF2 = (XALFA/(XD2+XALFA)**2.0D0)*YF02 C C----CALCUL DES SEUILS Y1 ET Y2----------------------------------------- C XSEUIL1 = YM1 + YF1 - XSEUI0 XSEUIL2 = YM2 + YF2 - XSEUI0 C C----TEST SEUIL 1------------------------------------------------------- C IF (XSEUIL1.GT.0.0D0) THEN C Debut des iterations internes DO NINTER=1,100 C Calcul du residu 1 YF1 = (XALFA/(XD1+XALFA)**2.0D0)*YF01 XRES1 = YM1 + YF1 - XSEUI0 C Calcul de l'operateur tangent 1 & XMUM,XLAMF,XMUF,XD1,XD2,XEPS33,DR1DD1) C Corrections de l'endommagement XDD1 = -1.0D0*(1.0D0/DR1DD1)*XRES1 C Critere d arret des iterations internes XCRI1 = ABS(XDD1*DR1DD1/XSEUI0) IF (XCRI1.LE.XTOL) THEN GOTO 111 ELSE XD1 = XD1 + XDD1 & XEPS33) ENDIF ENDDO ENDIF 111 CONTINUE C C----TEST SEUIL 2------------------------------------------------------- C IF (XSEUIL2.GT.0.0D0) THEN C Debut des iterations internes DO NINTER=1,100 C Calcul du residu 1 YF2 = (XALFA/(XD2+XALFA)**2.0D0)*YF02 XRES2 = YM2 + YF2 - XSEUI0 C Calcul de l'operateur tangent 1 & XMUM,XLAMF,XMUF,XD1,XD2,XEPS33,DR2DD2) C Corrections de l'endommagement XDD2 = -1.0D0*(1.0D0/DR2DD2)*XRES2 C Critere d arret des iterations internes XCRI2 = ABS(XDD2*DR2DD2/XSEUI0) IF (XCRI2.LE.XTOL) THEN GOTO 112 ELSE XD2 = XD2 + XDD2 & XEPS33) ENDIF ENDDO ENDIF 112 CONTINUE XTRA = EPSIM(1,1)+EPSIM(2,2) C C-----CALCUL DE CONTRAINTES--------------------------------------------- C C Test sur les endommagements pour obtenir une dissipation positive IF (XD1.LE.XD10) THEN XD1 = XD10 ENDIF IF (XD2.LE.XD20) THEN XD2 = XD20 ENDIF C Cacul du repere propre C print*,'EPSIM=',((EPSIM(I,J),I=1,2),J=1,2) C print*,'VAPM=',(VAPM(I),I=1,3) C print*,'VEPM=',((VEPM(I,J),I=1,2),J=1,2) C print*,'EPSIF=',((EPSIF(I,J),I=1,3),J=1,3) C print*,'VAPF=',(VAPF(I),I=1,3) C print*,'VEPF=',((VEPF(I,J),I=1,2),J=1,2) C Calcul de l'endommagement xim, xim1 et xim2 XTRA = EPSIM(1,1)+EPSIM(2,2) XIMI(1) = XIM1 XIMI(2) = XIM2 C Calcul de l'endommagement xif, xif1 et xif2 XTRAK = EPSIF(1,1)+EPSIF(2,2) XIFI(1) = XIF1 XIFI(2) = XIF2 C Calcul du repere propre des deformations generalisees C Calcul des contraintes generalisees dans le repere propre XTRA = EPSIM(1,1)+EPSIM(2,2) XTRAK = EPSIF(1,1)+EPSIF(2,2) XTRAK = EPSIF(1,1) + EPSIF(2,2) DO I = 1,2 SIGMAM(I,I) = XIM*XLAMM*(XTRA+XEPS33)+ & 2.0D0*XMUM*VAPM(I)*XIMI(I) C Abandon de la non linearite en partie flexion C SIGMAF(I,I) = XIF*XLAMF*XTRAK+ C & 2.0D0*XMUF*VAPF(I)*XIFI(I) ENDDO C Calcul des contraintes generalisees dans le repere global C Abandon de la non linearite en partie flexion C CALL MATMAT(VEPF,SIGMAF,3,3,3,XTRAV6) C CALL ZERO(SIGMAF,3,3) C CALL MATMAT(XTRAV6,VEPFT,3,3,3,SIGMAF) C C----CONTRAINTES------------------------------------------------------- C SIGF(1) = SIGMAM(1,1) SIGF(2) = SIGMAM(2,2) SIGF(3) = SIGMAM(1,2) FAC = (EPAI**3)/12.D0 AUX = FAC*XYOUNF/(1.D0-XNUF*XNUF) AUX1 = FAC*XYOUNF*.5D0/(1.D0+XNUF) AUX2 = EPAI*XYOUNF*.5D0/(1.d0+XNUF)/1.2d0 SIGF(4) = SIG0(4)+AUX*(DEPST(4)+XNUF*DEPST(5)) SIGF(5) = SIG0(5)+AUX*(DEPST(5)+XNUF*DEPST(4)) SIGF(6) = SIG0(6)+AUX1*DEPST(6) C print*,'SIGF(I)',(SIGF(I),I=4,6) C Cisaillement élastique SIGF(7) = SIG0(7)+AUX2*DEPST(7) SIGF(8) = SIG0(8)+AUX2*DEPST(8) C C----VARIABLES INTERNES------------------------------------------------- C VARF(1) = EPSIM(1,1) VARF(2) = EPSIM(2,2) VARF(3) = EPSIM(1,2)*2.0D0 VARF(4) = EPSIF(1,1) VARF(5) = EPSIF(2,2) VARF(6) = EPSIF(1,2)*2.0D0 VARF(9) = XD1 VARF(10) = XD2 VARF(11) = 1.0D0-XIM VARF(12) = 1.0D0-XIF RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales