C CLBECO SOURCE CHAT 05/01/12 22:04:27 5004 C C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% C % % C % subroutine integrant le comportement du beton % C % % C % - determine les nouvelles valeurs des variables % C % d'histoire YLIM1 YLIM2 D1 et D2 % C % % C % % C % en fonction du vecteur des deformations % C % % C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% C C C SUBROUTINE CLBECO(WRK0,WRK1,WRKK2,WRK5,NSTRS,NVARI,NMATT, 1 ISTEP,ICARA,KERRE) C C C C C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% C % % C % % C % declaration des variables % C % % C % % C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% C C C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO SEGMENT WRK0 REAL*8 XMAT(NMATT) ENDSEGMENT * SEGMENT WRK1 REAL*8 DDHOOK(NSTRS,NSTRS),SIG0(NSTRS),DEPST(NSTRS) REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI) REAL*8 DEFP(NSTRS),XCAR(ICARA) ENDSEGMENT SEGMENT WRKK2 REAL*8 EPSILI(NSTRS) END SEGMENT SEGMENT WRK3 REAL*8 EPSILO(NSTRS) END SEGMENT * SEGMENT WRK5 REAL*8 EPIN0(NSTRS),EPINF(NSTRS),EPST0(NSTRS) ENDSEGMENT * REAL*8 YLIM1,YLIM2,DOM1,DOM2,Y1,Y2,Z1,Z2 * REAL*8 EPS33(3,3),XROTA(3,3),EPSA(3),EPSN(3) REAL*8 SIGNN(3),SIGA(3),SIGMAN(3,3) INTEGER JSIGN(3) * * LOGICAL CONV REAL*8 UN,DEUX,ZERO PARAMETER (ZERO=0.D0) PARAMETER (UN=1.D0) PARAMETER (DEUX=2.D0) * * -----> RECUPERATION DES VARIABLES INTERNES * YLIMA1 = VAR0(1) YLIMA2 = VAR0(2) DOM1 = VAR0(3) DOM2 = VAR0(4) E = XMAT(1) * * * Z1=UN/(UN-DOM1) Z2=UN/(UN-DOM2) * * -----> ON DIAGONALISE LES ANCIENNES DEFORMATIONS * CALL ENDOCA(EPSILI,EPS33,2) CALL JACOB3(EPS33,2,EPSA,XROTA) * PRINT*,'ANCIENNES DEFORMATIONS PPALES',EPSA(1),EPSA(2),EPSA(3) * * -----> ON DIAGONALISE LES ANCIENNES CONTRAINTES * CALL ENDOCA(SIG0,EPS33,1) CALL JACOB3(EPS33,2,SIGA,XROTA) * * -----> ON CALCULE LES DEFORMATIONS TOTALES * SEGINI WRK3 DO ISTRS=1,NSTRS EPSILO(ISTRS)=EPSILI(ISTRS)+DEPST(ISTRS) * print*,'ISTRS',ISTRS,'EPSILO',EPSILO(ISTRS) END DO * * -----> ON LES DIAGONALISE * CALL ENDOCA(EPSILO,EPS33,2) CALL JACOB3(EPS33,2,EPSN,XROTA) * PRINT*,'DEFORMATIONS PPALES',EPSN(1),EPSN(2),EPSN(3) * * -----> ON INITIALISE Y1 ET Y2 * IF (SIGA(1) .GE. ZERO) THEN JSIGN(1)=1 ELSE JSIGN(1)=0 END IF IF (SIGA(2) .GE. ZERO) THEN JSIGN(2)=1 ELSE JSIGN(2)=0 END IF TRSIG=SIGA(1)+SIGA(2) IF (TRSIG .GE. ZERO) THEN FSIG=TRSIG ELSE IF (TRSIG.GE.-SIGF) THEN FSIG=TRSIG*(UN+TRSIG/(DEUX*SIGF)) ELSE FSIG=-SIGF*TRSIG/DEUX END IF YA1=( JSIGN(1)*SIGA(1)*SIGA(1)+JSIGN(2)*SIGA(2)*SIGA(2) ) & *Z1*Z1/(DEUX*E) YA2=( (1-JSIGN(1))*SIGA(1)*SIGA(1)+ & (1-JSIGN(2))*SIGA(2)*SIGA(2) ) & *Z2*Z2/(DEUX*E) C C C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% C % % C % DECOUPAGE DE L'INCREMENT DE DEFORMATION % C % % C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% c NEPS=1 CONV=.FALSE. DO WHILE ((.NOT. CONV).AND.(NEPS.LE.1000)) SIG1 = SIGA(1) SIG2 = SIGA(2) YLIM1=YLIMA1 YLIM2=YLIMA2 IF (SIG1.GE.0.D0)THEN JSIGN(1)=1 ELSE JSIGN(1)=0 END IF IF (SIG2.GE.0.D0)THEN JSIGN(2)=1 ELSE JSIGN(2)=0 END IF Z1=1.D0/(1.D0-DOM1) Z2=1.D0/(1.D0-DOM2) Y1 = YA1 Y2 = YA2 DEPS1=(EPSN(1)-EPSA(1))/NEPS DEPS2=(EPSN(2)-EPSA(2))/NEPS IEPS=0 CONV=.TRUE. DO WHILE (CONV .AND. (IEPS.LT.NEPS)) IEPS=IEPS+1 EPSP1=EPSA(1)+IEPS*DEPS1 EPSP2=EPSA(2)+IEPS*DEPS2 c C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% C % % C % CALCUL DES VALEURS DES VARIABLES INTERNES % C % % C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% C C c CALL MODCLB(WRK0,NMATT,EPSP1,EPSP2,YLIM1,YLIM2,Z1,Z2,Y1,Y2, 1 JSIGN,SIG1,SIG2,CONV) C C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% C % % C % REACTUALISATION DES SEUILS % C % % C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% c IF (CONV) THEN IF (Y1 .GT.YLIM1)THEN VARF(1)=Y1 VARF(3)=1.D0-1.D0/Z1 ELSE VARF(1)=VAR0(1) VARF(3)=VAR0(3) END IF IF (Y2 .GT. YLIM2)THEN VARF(2)=Y2 VARF(4)=1.D0-1.D0/Z2 ELSE VARF(2)=VAR0(2) VARF(4)=VAR0(4) END IF END IF END DO NEPS=NEPS*10 END DO IF (.NOT. CONV)THEN print*,'valeur de neps et ieps',neps,ieps print*, 'NON CONVERGE DANS EULER' CALL MODCLB(WRK0,NMATT,EPSP1,EPSP2,YLIM1,YLIM2,Z1,Z2,Y1,Y2, 1 JSIGN,SIG1,SIG2,CONV) SEGSUP WRK3 KERRE=56 return END IF C C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% C % % C % CALCUL DES CONTRAINTES DANS LE REPERE DE L'ELEMENT % C % % C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% C SIGNN(1)=SIG1 SIGNN(2)=SIG2 SIGNN(3)=0.D0 CALL PRODT2 (SIGMAN,SIGNN,XROTA,3) SIGF(1)=SIGMAN(1,1) SIGF(2)=SIGMAN(2,2) SIGF(3)=SIGMAN(3,3) SIGF(4)=SIGMAN(1,2) C C C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% C % % C % CALCUL DES DEFORMATIONS ANELASTIQUES % C % % C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% C CALL MATVE1 (DDHOOK,SIGF,NSTRS,NSTRS,EPSILI,1) DO ISTRS=1,NSTRS EPINF(ISTRS)=EPSILO(ISTRS)-EPSILI(ISTRS) END DO SEGSUP WRK3 RETURN END