1 : C ADVA11 SOURCE CHAT 05/01/12 21:18:34 5004 2 : SUBROUTINE ADVA11(TAU,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EPSVPT, 3 : & VARPT,XMAT,NSTRS,NVARI,MFR) 4 : IMPLICIT INTEGER(I-N) 5 : IMPLICIT REAL*8(A-H,O-Z) 6 : -INC CCOPTIO 7 : 8 : DIMENSION SIG(*),EPSV(*),VAR(*),SIG1(*),EPSV1(*),VAR1(*) 9 : DIMENSION DSPT(*),EPSVPT(*),VARPT(*),XMAT(*) 10 : C 11 : C ICI : le modele est obligatoirement CERAMIQUE 12 : C ____________________________________________________________________ 13 : C 14 : C THIS ROUTINE UPDATES THE STRAINS ,STRESSES & INTERNAL VARIABLES 15 : C ____________________________________________________________________ 16 : C STEP-1 : UPDATING STRAINS 17 : C ---------------------------- 18 : YOU = XMAT(1) 19 : XNU = XMAT(2) 20 : DO 10 I=1,NSTRS 21 : EPSV1(I)=EPSV(I)+TAU*EPSVPT(I) 22 : 10 CONTINUE 23 : C 24 : C STEP-2 : UPDATING STESSES 25 : C ---------------------------- 26 : IF(IFOUR.EQ.-2) THEN 27 : SIG(3)=0.D0 28 : X2MU=YOU/(1.D0+XNU) 29 : XCO=X2MU/(1.D0-XNU) 30 : SIG1(1)=SIG(1)+TAU*(DSPT(1)-XCO*(EPSVPT(1)+XNU*EPSVPT(2))) 31 : SIG1(2)=SIG(2)+TAU*(DSPT(2)-XCO*(EPSVPT(2)+XNU*EPSVPT(1))) 32 : SIG1(4)=SIG(4)+TAU*(DSPT(4)-X2MU*EPSVPT(4)) 33 : SIG1(3)=0.D0 34 : ELSEIF (IFOUR.EQ.2.OR.IFOUR.EQ.0.OR.IFOUR.EQ.-1) THEN 35 : X2MU = YOU/(1.D0+XNU) 36 : ALMB = X2MU*XNU/(1.D0-2.D0*XNU) 37 : IF (MFR.EQ.5) THEN 38 : X2MU=YOU/(1.D0+XNU) 39 : XCO=X2MU/(1.D0-XNU) 40 : SIG1(1)=SIG(1)+TAU*(DSPT(1)-XCO*(EPSVPT(1)+XNU*EPSVPT(2))) 41 : SIG1(2)=SIG(2)+TAU*(DSPT(2)-XCO*(EPSVPT(2)+XNU*EPSVPT(1))) 42 : SIG1(3)=SIG(3)+TAU*(DSPT(3)-X2MU*EPSVPT(3)) 43 : SIG1(4)=SIG(4)+TAU*(DSPT(4)-X2MU*EPSVPT(4)) 44 : SIG1(5)=SIG(5)+TAU*(DSPT(5)-X2MU*EPSVPT(5)) 45 : ELSE 46 : TRACE=EPSVPT(1)+EPSVPT(2)+EPSVPT(3) 47 : DO 20 I=1,NSTRS 48 : A = 0.D0 49 : IF (I.LE.3) A=1.D0 50 : SIG1(I) = SIG(I) + 51 : & TAU*(DSPT(I)-ALMB*A*TRACE-X2MU*EPSVPT(I)) 52 : 20 CONTINUE 53 : ENDIF 54 : ENDIF 55 : C 56 : C STEP-3 : UPDATING THE INTERNAL VARIABLES 57 : C------------------------------------------ 58 : IF (MFR.EQ.5) THEN 59 : NSTRS0=NSTRS+1 60 : ELSE 61 : NSTRS0=NSTRS 62 : ENDIF 63 : VAR1(1) = VAR(1)+TAU*VARPT(1) 64 : C On met la variable de déformation de fluage égale à la variable de déformation 65 : VAR1(NVARI) = VAR(NVARI)+TAU*VARPT(1) 66 : C On conserve la variable interne qui correspond à l'endommagement généralisé 67 : VAR1(NVARI-1) = VAR(NVARI-1) 68 : CCC IF ((IFOUR.EQ.2.AND.MFR.EQ.3).OR.IFOUR.EQ.-2) THEN 69 : CCC IBID = 11 70 : CCC ELSE IF(IFOUR.EQ.-3.OR.IFOUR.EQ.-1 71 : CCC 1 .OR.IFOUR.EQ.0) THEN 72 : CCC IBID = 14 73 : CCC ELSE IF(IFOUR.EQ.2.AND.MFR.EQ.1) THEN 74 : CCC IBID = 19 75 : CCC ENDIF 76 : CCC Eloi : correction de IBID 77 : CCC de plus : ici on a obligatoirement MFR different de 3 78 : IBID=NVARI-(2*NSTRS)-5 79 : C 80 : C On ne change pas les variables de OTTOSEN de 2 à IBID 81 : DO 30 I=2,IBID 82 : VAR1(I)=VAR(I) 83 : 30 CONTINUE 84 : C 85 : C On met les variables internes à VARPT de IBID+1 à IBID+ 2*NSTRS0+3 86 : DO 40 I=1,2*NSTRS0+3 87 : VAR1(I+IBID)=VARPT(I+IBID) 88 : 40 CONTINUE 89 : C _____________________________________________________________________ 90 : RETURN 91 : END 92 : C Pour mémoire ce qu'il y avait dans advan1 93 : C DO 30 I=1,2*NSTRS0+3 94 : C 30 VAR1(I)=VARPT(I) 95 : C NSUB=2*NSTRS0+4 96 : C VAR1(NSUB)=VAR(NSUB)+TAU*VARPT(NSUB) 97 : C cette variable correspond à EPSE 98 : 99 : 100 : 101 : 102 : 103 : 104 : 105 : 106 :
© Cast3M 2003 - All rights reserved.
Disclaimer