ricbetf1
C RICBETF1 SOURCE CB215821 16/04/21 21:18:16 8920 C C====&===1=========2=========3=========4=========5=========6=========7== C Commentaires : Subroutine permettant de mettre en oeuvre le C modele RICBET pour representer C le comportement simplifie d'un beton ordinaire sous C sollicitations cycliques C C Traits : - Endommagement scalaire C - Glissement frottant C - multifibre C - Monotone et cyclique C - Effet unilatteral C - Comportement non lineaire en compression C C Auteurs : B. Richard C : CEA-DEN/DANS/DM2S/SEMT/EMSI C : Benjamin.Richard@cea.fr C C Date : Mars 2011 C====&===1=========2=========3=========4=========5=========6=========7== C C-----DECLARATION GENERALE---------------------------------------------- C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C C-----DECLARATION DES VARIABLES----------------------------------------- C DIMENSION XMAT(15),DEPS(3),SIG0(3),VAR0(10),SIGF(3),VARF(10) REAL*8 VAR1(10),DEPS1(3) C Parametre pour le nombre d iteration locales internes C Parametre pour le nombre de sous pas lie au sub-steeping NENTIER = 50 C C-----DONNEES MATERIAUX------------------------------------------------- C XYG = XMAT(1) XGC = XMAT(1)/2.0D0/(XMAT(2)+1.0D0) XNU = XMAT(2) XY0 = 0.5D0*XYG*(XMAT(5)/XMAT(1))**2.0D0 XAT = XMAT(6) XGAM = XMAT(7) XAA = XMAT(8) XSIGF= XMAT(9) XFC = XMAT(10) XAF = XMAT(11) XAG = XMAT(12) XAC = XMAT(13) XBC = XMAT(14) XSIGU = XMAT(15) SXX = SIG0(1) C C-----PREPARATION SUBSTEPPING------------------------------------------- C DO I=1,10 VAR1(I) = VAR0(I) ENDDO DO I=1,3 DEPS1(I) = DEPS(I)/NENTIER ENDDO C C-----LANCEMENT DU SUBSTEPPING------------------------------------------ C DO IQ=1,NENTIER C C-----VARIABLES INTERNES------------------------------------------------ C EPSXX = VAR1(1)+DEPS1(1) EPSXY = (VAR1(2)+DEPS1(2))/2.0D0 EPSXZ = (VAR1(3)+DEPS1(3))/2.0D0 C XD = VAR1(4) XZ = VAR1(5) EPSPI = VAR1(6) XEC = VAR1(7) C RECO = VAR1(8) DEFN = VAR1(9) DEFP = VAR1(10) IF (SXX.GE.0.0D0) THEN C C-----ENDOMMAGEMENT----------------------------------------------------- C C Partie positive de la deformation EPSXXP = 0.5D0*(ABS(EPSXX-DEFN)+(EPSXX-DEFN)) C Seuil en energie XYE=0.5D0*XYG*EPSXXP*EPSXXP C Calcul du seuil XENDO = XYE - (XY0 + XZ) IF ((XENDO.GT.0.0D0).AND.(SXX.GE.0.0D0)) THEN XD=1.0D0-1.0D0/(1.0D0+XAT*(XYE-XY0)) XZ=XYE-XY0 ENDIF C C-----GLISSEMENT INTERNE------------------------------------------------ C C La contrainte de frottement SPI = XD*XYG*((EPSXX-DEFN)-EPSPI) C Verification du seuil de glissement interne C IF ((ABS(SPI-XEC).GT.0.0D0).AND.(SXX.GE.0.0D0)) THEN IF (ABS(SPI-XEC).GT.0.0D0) THEN C Valeur initiale du seuil pour critere relatif XF0=ABS(SPI-XEC) C Initialisation du multiplicateur de Lagrange XDLAM=1.0D0 C Debut des iterations internes C Calcul du critere relatif SEUIL=ABS(SPI-XEC)/XF0 C Calcul de la derive du critere XSG=ABS(SPI-XEC)/(SPI-XEC) C Calcul du multiplicateur de Lagrange XDLAM=ABS(SPI-XEC)/(XYG*XD-XSG*XGAM*(-XSG+XAA*XEC)) C Actualisation des variables internes XEC=XEC-XGAM*XDLAM*(-XSG+XAA*XEC) SPI=SPI-XD*XYG*XDLAM*XSG C Calcul de la deformation de glissement EPSPI=-SPI/(XD*XYG)+(EPSXX-DEFN) C Recalcul du seuil pour eventuel arret SEUIL=ABS(SPI-XEC)/XF0 C Critere d arret IF ((SEUIL.LE.1.0D-8).OR.(XDLAM.LE.1.0D-10)) THEN GOTO 900 ENDIF ENDDO ENDIF C Balise de sortie 900 CONTINUE SXX=XYG*(EPSXX-DEFN-XD*EPSPI) GOTO 761 ELSEIF (SXX.LE.XSIGF) THEN C Calcul de la contrainte effective SXX=XYG*(EPSXX-DEFN) C Calcul du seuil plastique XFP = XAF*ABS(SXX) - (RECO + XFC) C On test le seuil plastique IF (XFP.GT.0.0D0) THEN C On retient le seuil pour le critere relatif XFP0 = XFP C Debut des iterations internes XFP = XAF*ABS(SXX) - (RECO + XFC) DXFP = XAF*ABS(SXX)/SXX DXGP = XAG*ABS(SXX)/SXX XTEMP1 = XYG*DXGP XTEMP2 = EXP(-XBC*DEFP)*(XAC-(XAC*DEFP+XFC+XSIGU)*XBC) XLAMP = XFP/(XTEMP1*DXFP+XTEMP2) RECO = RECO + XTEMP2*XLAMP DEFP = DEFP + XLAMP DEFN = DEFN + XLAMP*DXGP SXX = SXX - XLAMP*XTEMP1 XFP = XAF*ABS(SXX) - (RECO + XFC) IF ((ABS(XFP/XFP0).LE.1.0D-8).OR.(XLAMP.LE.1.0D-10)) THEN GOTO 666 ENDIF ENDDO ENDIF 666 CONTINUE GOTO 761 ELSE SXX = SXX + DEPS1(1)*XYG/ & (1.0D0-(XYG*XD*EPSPI)/(XSIGF)) GOTO 761 ENDIF 761 CONTINUE C C-----MISE A JOUR DE VAR1----------------------------------------------- C VAR1(1 ) = EPSXX VAR1(2 ) = 2.0D0*EPSXY VAR1(3 ) = 2.0D0*EPSXZ VAR1(4 ) = XD VAR1(5 ) = XZ VAR1(6 ) = EPSPI VAR1(7 ) = XEC VAR1(8 ) = RECO VAR1(9 ) = DEFN VAR1(10) = DEFP C C-----FIN DU SUBSTEPPING------------------------------------------------ C ENDDO C C-----SOCKAGE EN SORTIE------------------------------------------------- C C Les variables internes VARF(1) = EPSXX VARF(2) = 2.0D0*EPSXY VARF(3) = 2.0D0*EPSXZ VARF(4) = XD VARF(5) = XZ VARF(6) = EPSPI VARF(7) = XEC VARF(8) = RECO VARF(9) = DEFN VARF(10) = DEFP C Les contraintes SIGF(1) = SXX SIGF(2) = SIG0(2)+XGC*DEPS(2) SIGF(3) = SIG0(3)+XGC*DEPS(3) C Fin de l integration RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales