adva11
C ADVA11 SOURCE CHAT 05/01/12 21:18:34 5004 & VARPT,XMAT,NSTRS,NVARI,MFR) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO DIMENSION SIG(*),EPSV(*),VAR(*),SIG1(*),EPSV1(*),VAR1(*) DIMENSION DSPT(*),EPSVPT(*),VARPT(*),XMAT(*) C C ICI : le modele est obligatoirement CERAMIQUE C ____________________________________________________________________ C C THIS ROUTINE UPDATES THE STRAINS ,STRESSES & INTERNAL VARIABLES C ____________________________________________________________________ C STEP-1 : UPDATING STRAINS C ---------------------------- YOU = XMAT(1) XNU = XMAT(2) DO 10 I=1,NSTRS EPSV1(I)=EPSV(I)+TAU*EPSVPT(I) 10 CONTINUE C C STEP-2 : UPDATING STESSES C ---------------------------- IF(IFOUR.EQ.-2) THEN SIG(3)=0.D0 X2MU=YOU/(1.D0+XNU) XCO=X2MU/(1.D0-XNU) SIG1(1)=SIG(1)+TAU*(DSPT(1)-XCO*(EPSVPT(1)+XNU*EPSVPT(2))) SIG1(2)=SIG(2)+TAU*(DSPT(2)-XCO*(EPSVPT(2)+XNU*EPSVPT(1))) SIG1(4)=SIG(4)+TAU*(DSPT(4)-X2MU*EPSVPT(4)) SIG1(3)=0.D0 ELSEIF (IFOUR.EQ.2.OR.IFOUR.EQ.0.OR.IFOUR.EQ.-1) THEN X2MU = YOU/(1.D0+XNU) ALMB = X2MU*XNU/(1.D0-2.D0*XNU) IF (MFR.EQ.5) THEN X2MU=YOU/(1.D0+XNU) XCO=X2MU/(1.D0-XNU) SIG1(1)=SIG(1)+TAU*(DSPT(1)-XCO*(EPSVPT(1)+XNU*EPSVPT(2))) SIG1(2)=SIG(2)+TAU*(DSPT(2)-XCO*(EPSVPT(2)+XNU*EPSVPT(1))) SIG1(3)=SIG(3)+TAU*(DSPT(3)-X2MU*EPSVPT(3)) SIG1(4)=SIG(4)+TAU*(DSPT(4)-X2MU*EPSVPT(4)) SIG1(5)=SIG(5)+TAU*(DSPT(5)-X2MU*EPSVPT(5)) ELSE DO 20 I=1,NSTRS A = 0.D0 IF (I.LE.3) A=1.D0 SIG1(I) = SIG(I) + & TAU*(DSPT(I)-ALMB*A*TRACE-X2MU*EPSVPT(I)) 20 CONTINUE ENDIF ENDIF C C STEP-3 : UPDATING THE INTERNAL VARIABLES C------------------------------------------ IF (MFR.EQ.5) THEN NSTRS0=NSTRS+1 ELSE NSTRS0=NSTRS ENDIF VAR1(1) = VAR(1)+TAU*VARPT(1) C On met la variable de déformation de fluage égale à la variable de déformation VAR1(NVARI) = VAR(NVARI)+TAU*VARPT(1) C On conserve la variable interne qui correspond à l'endommagement généralisé VAR1(NVARI-1) = VAR(NVARI-1) CCC IF ((IFOUR.EQ.2.AND.MFR.EQ.3).OR.IFOUR.EQ.-2) THEN CCC IBID = 11 CCC ELSE IF(IFOUR.EQ.-3.OR.IFOUR.EQ.-1 CCC 1 .OR.IFOUR.EQ.0) THEN CCC IBID = 14 CCC ELSE IF(IFOUR.EQ.2.AND.MFR.EQ.1) THEN CCC IBID = 19 CCC ENDIF CCC Eloi : correction de IBID CCC de plus : ici on a obligatoirement MFR different de 3 IBID=NVARI-(2*NSTRS)-5 C C On ne change pas les variables de OTTOSEN de 2 à IBID DO 30 I=2,IBID VAR1(I)=VAR(I) 30 CONTINUE C C On met les variables internes à VARPT de IBID+1 à IBID+ 2*NSTRS0+3 DO 40 I=1,2*NSTRS0+3 VAR1(I+IBID)=VARPT(I+IBID) 40 CONTINUE C _____________________________________________________________________ RETURN END C Pour mémoire ce qu'il y avait dans advan1 C DO 30 I=1,2*NSTRS0+3 C 30 VAR1(I)=VARPT(I) C NSUB=2*NSTRS0+4 C VAR1(NSUB)=VAR(NSUB)+TAU*VARPT(NSUB) C cette variable correspond à EPSE
© Cast3M 2003 - Tous droits réservés.
Mentions légales