ric3nl
C RIC3NL SOURCE OF166741 25/11/04 21:16:04 12349 C sub ricnl3d C C====&===1=========2=========3=========4=========5=========6=========7== C Commentaires : Subroutine permettant de mettre en oeuvre le C modele RICRAG (F. Ragueneau & B. Richard) pour représenter C le comportement 3D d'un béton ordinaire sous C sollicitations complexes en non local C Traits : - Endommagement scalaire C - Glissement frottant C - 3D C - Monotone et cyclique C - Non localité portant sur le seuil d'endommagement (Fd) C - Bon comportement unilatteral C Auteurs : B. Richard (doctorant) & F. Ragueneau (LCPC, FDOA & BCC) C Date : Mai 2008 C====&===1=========2=========3=========4=========5=========6=========7== C C-----DECLARATION GENERALE---------------------------------------------- C IMPLICIT REAL*8(A-H,O-Z) C C-----LISTE DES INCLUDES A CHARGER-------------------------------------- C -INC PPARAM -INC CCOPTIO -INC DECHE -INC CCREEL C C-----DECLARATION GENERALE---------------------------------------------- C C REAL*8 XMAT(9),VAR0(30),VARF(30),SIGF(6),DEPST(6) REAL*8 E,NU,FT,ALIND,GAMMA1,A1,ALDIR REAL*8 EPS0,K,G,Y0,DEPSDEV(3,3),DTRA REAL*8 UNIT(3,3),DEPSI(3,3),EPSTFBIS(6) REAL*8 FORCEI,NRUPT,SEUILT,DEVPI(3,3) REAL*8 YD,YN,EPSDIR(3,3),EPSIND(3,3),Dn REAL*8 SIGMPI(3,3),SIGMOD(3,3),SIGMOX(3,3),X(3,3),TERME6(3,3) REAL*8 TERME7(3,3),TERME8(3,3),TERME9(3,3),TROGO,DEVTRO(3,3) REAL*8 DEVDGS(3,3) C CHARACTER*8 CMATE C C-----DEFINITION DE PARAMETRES------------------------------------------ C PARAMETER (XZER=0.0D0 , UN=1.0D0 , DEUX=2.0D0, XCOEF=0.00D0) C C-----OUVERTURE DE SEGMENTS DE TRAVAIL---------------------------------- C C-----MISE EN DONNEE---------------------------------------------------- C CMATE='ISOTROPE' E = XMAT(1) NU = XMAT(2) FT = XMAT(5) ALIND = XMAT(6) GAMMA1 = XMAT(7) A1 = XMAT(8) ALDIR = XMAT(9) EPS0 = FT/E K = E/(1.D0-2.D0*NU) G = E/(2.D0*(1.D0+NU)) Y0 = (K/6.0D0*EPS0**2.D0) DO J=1,3 DO I=1,3 IF (I.EQ.J) THEN UNIT(I,J)=UN ELSE UNIT(I,J)=XZER ENDIF ENDDO ENDDO C C-----PASSAGE DES VARIABLES INTERNES------------------------------------ C C GLISSEMENT (EPSILON_PI) C EPSIPI(1,1)=VAR0(2) EPSIPI(2,2)=VAR0(3) EPSIPI(3,3)=VAR0(4) EPSIPI(1,2)=VAR0(5) EPSIPI(1,3)=VAR0(6) EPSIPI(2,3)=VAR0(7) EPSIPI(2,1)=VAR0(5) EPSIPI(3,1)=VAR0(6) EPSIPI(3,2)=VAR0(7) C C ECROUISSAGE CINEMATIQUE (ALPHA) C C C C C ENDOMMAGEMENT (D) C D=VAR0(14) C C FORCE ECROUISSAGE ISOTROPE C FFFZ=VAR0(17) C C DEFORMATION TOTALE MISE DANS EPSI C DO I=1,6 EPSTFBIS(I)=VAR0(18+I)+DEPST(I) ENDDO DO I=1,3 DEPSI(I,I)=DEPST(I) ENDDO DEPSI(1,2)=DEPST(4)*0.5D0 DEPSI(1,3)=DEPST(5)*0.5D0 DEPSI(2,3)=DEPST(6)*0.5D0 DEPSI(2,1)=DEPST(4)*0.5D0 DEPSI(3,1)=DEPST(5)*0.5D0 DEPSI(3,2)=DEPST(6)*0.5D0 C C ECROUISSAGE C FORCED = VAR0(25) FORCEI = VAR0(26) C C MATRICE DE HOOKE C AUX0=E/((UN+NU)*(UN-NU-NU)) AUX=AUX0*(UN-NU) AUX1=AUX0*NU XGEGE=0.5D0*E/(UN+NU) DDHOOK(1,1)=AUX DDHOOK(2,1)=AUX1 DDHOOK(3,1)=AUX1 DDHOOK(1,2)=AUX1 DDHOOK(2,2)=AUX DDHOOK(3,2)=AUX1 DDHOOK(1,3)=AUX1 DDHOOK(2,3)=AUX1 DDHOOK(3,3)=AUX DDHOOK(4,4)=XGEGE DDHOOK(5,5)=XGEGE DDHOOK(6,6)=XGEGE C----------------------------------------------------------------------- C-----DEBUT INTEGRATION NUMERIQUE--------------------------------------- C----------------------------------------------------------------------- DTRA = (DEPSI(1,1)+DEPSI(2,2)+DEPSI(3,3))/3.D0 DO J=1,3 DO I=1,3 DEPSDEV(I,J) = DEPSI(I,J)-DTRA*UNIT(I,J) ENDDO ENDDO DO J=1,3 DO I=1,3 ENDDO ENDDO C C-----ENDOMMAGEMENT------------------------------------------------------ C C CALCUL DES VALEURS PRINCIPALES C C C CALCUL DE EPSILON DIRECT C IF (TRA.GE.XZER) THEN XPDC=1.0D0 c GAMMA1 = 7.0D8 c A1 = 7.0D-5 ELSE XPDC=XZER ENDIF DO J=1,3 DO I=1,3 IF (I.EQ.J) THEN EPSDIR(I,J)=0.5D0*(ABS(VPEPS(I))+VPEPS(I))*XPDC ELSE EPSDIR(I,J)=XZER ENDIF ENDDO ENDDO C C CALCUL DE EPSILON INDUIT C DO J=1,3 DO I=1,3 IF (I.EQ.J) THEN EPSIND(I,J)=0.5D0*(ABS(VPEPS(I))+VPEPS(I))-EPSDIR(I,J) ELSE EPSIND(I,J)=XZER ENDIF ENDDO ENDDO C C TAUX D ENERGIES CORRESPONDANTES C DONMDNL=XZER DONMINL=XZER DO J=1,3 DO I=1,3 DONMDNL=DONMDNL+EPSDIR(I,J)*EPSDIR(I,J) DONMINL=DONMINL+EPSIND(I,J)*EPSIND(I,J) ENDDO ENDDO SEUIL1NL=(K/6.0D0) * (DONMDNL*XPDC+DONMINL*(1.0D0-XPDC)) IF (ISTEP.EQ.0) THEN SEUIL1=SEUIL1NL VARF(1)=SEUIL1 ELSE IF (ISTEP.EQ.1) THEN VARF(1)=SEUIL1NL DO I=2,26 VARF(I)=VAR0(I) ENDDO GOTO 2000 ELSE IF (ISTEP.EQ.2) THEN SEUIL1=VAR0(1) VARF(1)=SEUIL1 ENDIF C C CALCUL NON LOCAL - ON MOYENNE LE SEUIL C FFFZ=FORCED*XPDC+FORCEI*(1.0D0-XPDC) SEUILT=SEUIL1-(FFFZ+Y0) C C EVOLUTION ENDOMMAGEMENT C IF (SEUILT.GT.XZER) THEN IF (TRA.GE.XZER) THEN Dn = 1.0D0-1.0D0/(1.0D0+ALDIR*(SEUIL1-Y0)) FORCED = SEUIL1-Y0 ELSE Dn = 1.0D0-1.0D0/(1.0D0+ALIND*(SEUIL1-Y0)) FORCEI = SEUIL1-Y0 ENDIF C C ON VERIFIE D COISSANT C IF (Dn.GE.D) THEN D=Dn ENDIF C C ON LIMITE LA VALEUR DE D C IF (D.GE.0.99999D0) THEN D=0.99999D0 ENDIF C C ON BLOQUE LES ECROUISSAGES C FFFZ=FORCED*XPDC+FORCEI*(1.0D0-XPDC) ENDIF DO J=1,3 DO I=1,3 ENDDO ENDDO C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C SUBSTEPPING C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C NENTIER=100 DO KIN=1,NENTIER DO I=1,6 EPSTFBIS(I)=VAR0(18+I)+KIN*DEPST(I)/NENTIER ENDDO TRAPI = (EPSIPI(1,1)+EPSIPI(2,2)+EPSIPI(3,3))/3.D0 DO J=1,3 DO I=1,3 DEVPI(I,J)=EPSIPI(I,J)-TRAPI*UNIT(I,J) ENDDO ENDDO DO J=1,3 DO I=1,3 & (1.0D0-D)*2.0D0*G*EPSDEV(I,J)+ & K*D*(TRA-TRAPI)*UNIT(I,J)+ & 2.0D0*G*D*(EPSDEV(I,J)-DEVPI(I,J)) ENDDO ENDDO DO J=1,3 DO I=1,3 SIGMPI(I,J)=K*D*(TRA-TRAPI)*UNIT(I,J)+ & 2.0D0*G*D*(EPSDEV(I,J)-DEVPI(I,J)) ENDDO ENDDO C C====&===1=========2=========3=========4=========5=========6=========7== C-----DEBUT INTEGRATION GLISSEMENT-------------------------------------- C====&===1=========2=========3=========4=========5=========6=========7== C DO 500 IREMP=1,500 C C 1) EVALUATION DU SEUIL C ---------------------- DO 101 J=1,3 DO 201 I=1,3 SIGMOX(I,J)=XZER SIGMOX(I,J)=SIGMPI(I,J)-X(I,J) 201 CONTINUE 101 CONTINUE TRASX= (SIGMOX(1,1)+SIGMOX(2,2)+SIGMOX(3,3))/3.D0 DO 102 J=1,3 DO 202 I=1,3 SIGMOD(I,J)=XZER SIGMOD(I,J)=SIGMOX(I,J)-TRASX*UNIT(I,J) 202 CONTINUE 102 CONTINUE TERME4=XZER DO 103 J=1,3 DO 203 I=1,3 TERME4=TERME4+SIGMOD(I,J)*SIGMOD(I,J) 203 CONTINUE 103 CONTINUE C C CALCUL DU J2(SIGMPI-X) C TRASIN = 0.5D0*(-ABS(TRASIN)+TRASIN)*0.0D0 TERME4=SQRT(1.5D0*TERME4)+(TRASIN/3.0D0)*0.80D0 SEUIL2=TERME4+XCOEF*TRASX IF (IREMP.EQ.1) THEN SEUINI=SEUIL2 DLAM2=XZER COCO=2 ENDIF IF (SEUINI.GT.1.0D0) THEN ELSE CRIT=XZER ENDIF C C 2) ON VERIFIE LA VALEUR RELATIVE DU SEUIL C ----------------------------------------- & (D.EQ.XZER))THEN GOTO 666 ELSE IF (IREMP.EQ.1) COCO=1 C C 3) CALCUL DES DERIVÉES POUR LA REDESCENTE C ----------------------------------------- DO J=1,3 DO I=1,3 TERME6(I,J)=XZER TERME7(I,J)=XZER TERME8(I,J)=XZER TERME9(I,J)=XZER ENDDO ENDDO C C CALCUL DE DF/DS.................................................... C DO J=1,3 DO I=1,3 TERME6(I,J)=1.5D0*SIGMOX(I,J)/TERME4+XCOEF*1.0D0/3.D0* & UNIT(I,J) ENDDO ENDDO C C CALCUL DE DF/DX.................................................... C DO J=1,3 DO I=1,3 TERME7(I,J)=-TERME6(I,J) ENDDO ENDDO C C CALCUL DE DG/DS.................................................... C DO J=1,3 DO I=1,3 TERME8(I,J)=1.5D0*SIGMOX(I,J)/TERME4+XCOEF*1.0D0/3.D0* & UNIT(I,J) ENDDO ENDDO C C CALCUL DE DG/DX.................................................... C DO J=1,3 DO I=1,3 TERME9(I,J)=-1.5D0*SIGMOX(I,J)/TERME4+A1*X(I,J)- & XCOEF*1.0D0/3.D0*UNIT(I,J) ENDDO ENDDO C C 4) CALCUL DU MULTIPLICATEUR DE GLISSEMENT C ----------------------------------------- TRDGZ=(TERME8(1,1)+TERME8(2,2)+TERME8(3,3))/3.D0 DO J=1,3 DO I=1,3 DEVDGS(I,J)=TERME8(I,J)-TRDGZ*UNIT(I,J) ENDDO ENDDO TERM10=XZER DO J=1,3 DO I=1,3 TERM10=TERM10+TERME6(I,J)*(K*TRDGZ*UNIT(I,J)+ & 2.0D0*G*DEVDGS(I,J)) ENDDO ENDDO TERM11=XZER DO J=1,3 DO I=1,3 TERM11=TERM11+TERME7(I,J)*TERME9(I,J) ENDDO ENDDO DLAM2=SEUIL2/(TERM10+GAMMA1*TERM11) C C 5) ACTUALISATION DES VARIABLES FORCES C ------------------------------------- DO J=1,3 DO I=1,3 SIGMPI(I,J)=SIGMPI(I,J)-DLAM2*D*(K*TRDGZ*UNIT(I,J)+ & 2.0D0*G*DEVDGS(I,J)) ENDDO ENDDO DO J=1,3 DO I=1,3 X(I,J)=X(I,J)-GAMMA1*DLAM2*TERME9(I,J) ENDDO ENDDO ENDIF 500 CONTINUE C C-----ACTUALISATION DES VARIABLES FLUX (S'IL Y A LIEU)------------------ C C 1) ALPHA : C ------- 666 CONTINUE IF (COCO.EQ.1) THEN DO 303 J=1,3 DO 403 I=1,3 403 CONTINUE 303 CONTINUE C C 2) EPSILON_PI : C ------------ dplus=max(d,xpetit) TRA_Z = (SIGMPI(1,1)+SIGMPI(2,2)+SIGMPI(3,3))/3.D0 TROGO = TRA - TRA_Z/(Dplus*K) DO J=1,3 DO I=1,3 DEVTRO(I,J)=EPSDEV(I,J)-(SIGMPI(I,J)-TRA_Z*UNIT(I,J)) & /(2.0D0*G*Dplus) ENDDO ENDDO DO J=1,3 DO I=1,3 EPSIPI(I,J)=TROGO*UNIT(I,J)+DEVTRO(I,J) ENDDO ENDDO ENDIF C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C ENDDO C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C-----CORRECTION DES CONTRAINTES C TRAPOS = ( ABS(TRA)+TRA)*0.5D0 TRANEG = (-ABS(TRA)+TRA)*0.5D0 DO J=1,3 DO I=1,3 & K*TRANEG*UNIT(I,J)+ & (1.0D0-D)*2.0D0*G*EPSDEV(I,J)+ & SIGMPI(I,J) ENDDO ENDDO C------------------------------------------------------------------------ C-----FIN INTEGRATION NUMERIQUE------------------------------------------ C------------------------------------------------------------------------ C C GLISSEMENT (EPSILON_PI) C VARF(2)=EPSIPI(1,1) VARF(3)=EPSIPI(2,2) VARF(4)=EPSIPI(3,3) VARF(5)=EPSIPI(1,2) VARF(6)=EPSIPI(1,3) VARF(7)=EPSIPI(2,3) C C ECROUISSAGE CINEMATIQUE (ALPHA) C C C ENDOMMAGEMENT (D) C VARF(14)=D C C FORCE LIEE A L ECROUISSAGE ISOTROPE C VARF(17)=FFFZ C C DEFORMATION TOTALE C DO I=1,6 VARF(18+I)=EPSTFBIS(I) ENDDO C C ECROUISSAGES C VARF(25)=FORCED VARF(26)=FORCEI C C CONTRAINTES DE FROTTEMENT C * VARF(27)=SIGMPI(1,1) * VARF(28)=SIGMPI(2,2) * VARF(29)=SIGMPI(3,3) * VARF(30)=SIGMPI(1,3) 2000 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales