黄永刚单晶塑性有限元umat子程序 联系客服

发布时间 : 星期六 文章黄永刚单晶塑性有限元umat子程序更新完毕开始阅读

DDEMSD(6,J)=DDEMSD(6,J)-SLPSPN(3,J)*STRESS(2) END IF

IF (NDI.GT.2) THEN

DDEMSD(5,J)=DDEMSD(5,J)-SLPSPN(2,J)*STRESS(3) DDEMSD(6,J)=DDEMSD(6,J)+SLPSPN(3,J)*STRESS(3) END IF

IF (NSHR.GE.1) THEN

DDEMSD(1,J)=DDEMSD(1,J)+SLPSPN(1,J)*STRESS(NDI+1) DDEMSD(2,J)=DDEMSD(2,J)-SLPSPN(1,J)*STRESS(NDI+1) DDEMSD(5,J)=DDEMSD(5,J)-SLPSPN(3,J)*STRESS(NDI+1) DDEMSD(6,J)=DDEMSD(6,J)+SLPSPN(2,J)*STRESS(NDI+1) END IF

IF (NSHR.GE.2) THEN

DDEMSD(1,J)=DDEMSD(1,J)-SLPSPN(2,J)*STRESS(NDI+2) DDEMSD(3,J)=DDEMSD(3,J)+SLPSPN(2,J)*STRESS(NDI+2) DDEMSD(4,J)=DDEMSD(4,J)+SLPSPN(3,J)*STRESS(NDI+2) DDEMSD(6,J)=DDEMSD(6,J)-SLPSPN(1,J)*STRESS(NDI+2) END IF

IF (NSHR.EQ.3) THEN

DDEMSD(2,J)=DDEMSD(2,J)+SLPSPN(3,J)*STRESS(NDI+3) DDEMSD(3,J)=DDEMSD(3,J)-SLPSPN(3,J)*STRESS(NDI+3) DDEMSD(4,J)=DDEMSD(4,J)-SLPSPN(2,J)*STRESS(NDI+3) DDEMSD(5,J)=DDEMSD(5,J)+SLPSPN(1,J)*STRESS(NDI+3) END IF

END DO END IF

C----- Shear strain-rate in a slip system at the start of increment: C FSLIP, and its derivative: DFDXSP C

ID=1

DO I=1,NSET

IF (I.GT.1) ID=ID+NSLIP(I-1)

CALL STRAINRATE (STATEV(NSLPTL+ID), STATEV(2*NSLPTL+ID), 2 STATEV(ID), NSLIP(I), FSLIP(ID), DFDXSP(ID), 3 PROPS(65+8*I)) END DO

C----- Self- and latent-hardening laws

CFIXA

CALL LATENTHARDEN (STATEV(NSLPTL+1), STATEV(2*NSLPTL+1), 2 STATEV(1), STATEV(9*NSLPTL+1),

3 STATEV(10*NSLPTL+1), NSLIP, NSLPTL, 4 NSET, H(1,1), PROPS(97), ND) CFIXB

C----- LU decomposition to solve the increment of shear strain in a C slip system C

TERM1=THETA*DTIME DO I=1,NSLPTL

TAUSLP=STATEV(2*NSLPTL+I) GSLIP=STATEV(I) X=TAUSLP/GSLIP

TERM2=TERM1*DFDXSP(I)/GSLIP TERM3=TERM1*X*DFDXSP(I)/GSLIP

DO J=1,NSLPTL TERM4=0. DO K=1,6

TERM4=TERM4+DDEMSD(K,I)*SLPDEF(K,J) END DO

WORKST(I,J)=TERM2*TERM4+H(I,J)*TERM3*DSIGN(1.D0,FSLIP(J))

IF (NITRTN.GT.0) WORKST(I,J)=WORKST(I,J)+TERM3*DHDGDG(I,J)

END DO

WORKST(I,I)=WORKST(I,I)+1. END DO

CALL LUDCMP (WORKST, NSLPTL, ND, INDX, DDCMP)

C----- Increment of shear strain in a slip system: DGAMMA TERM1=THETA*DTIME DO I=1,NSLPTL

IF (NITRTN.EQ.0) THEN

TAUSLP=STATEV(2*NSLPTL+I) GSLIP=STATEV(I) X=TAUSLP/GSLIP

TERM2=TERM1*DFDXSP(I)/GSLIP

DGAMMA(I)=0. DO J=1,NDI

DGAMMA(I)=DGAMMA(I)+DDEMSD(J,I)*DSTRAN(J) END DO

IF (NSHR.GT.0) THEN DO J=1,NSHR

DGAMMA(I)=DGAMMA(I)+DDEMSD(J+3,I)*DSTRAN(J+NDI) END DO END IF

DGAMMA(I)=DGAMMA(I)*TERM2+FSLIP(I)*DTIME

ELSE

DGAMMA(I)=TERM1*(FSLIP(I)-FSLIP1(I))+FSLIP1(I)*DTIME 2 -DGAMOD(I)

END IF

END DO

CALL LUBKSB (WORKST, NSLPTL, ND, INDX, DGAMMA)

DO I=1,NSLPTL

DGAMMA(I)=DGAMMA(I)+DGAMOD(I) END DO

C----- Update the shear strain in a slip system: STATEV(NSLPTL+1) - C STATEV(2*NSLPTL) C

DO I=1,NSLPTL

STATEV(NSLPTL+I)=STATEV(NSLPTL+I)+DGAMMA(I)-DGAMOD(I) END DO

C----- Increment of current strength in a slip system: DGSLIP DO I=1,NSLPTL DGSLIP(I)=0. DO J=1,NSLPTL

DGSLIP(I)=DGSLIP(I)+H(I,J)*ABS(DGAMMA(J)) END DO END DO

C----- Update the current strength in a slip system: STATEV(1) -

C STATEV(NSLPTL) C

DO I=1,NSLPTL

STATEV(I)=STATEV(I)+DGSLIP(I)-DGSPOD(I) END DO

C----- Increment of strain associated with lattice stretching: DELATS DO J=1,6

DELATS(J)=0. END DO

DO J=1,3

IF (J.LE.NDI) DELATS(J)=DSTRAN(J) DO I=1,NSLPTL

DELATS(J)=DELATS(J)-SLPDEF(J,I)*DGAMMA(I) END DO END DO

DO J=1,3

IF (J.LE.NSHR) DELATS(J+3)=DSTRAN(J+NDI) DO I=1,NSLPTL

DELATS(J+3)=DELATS(J+3)-SLPDEF(J+3,I)*DGAMMA(I) END DO END DO

C----- Increment of deformation gradient associated with lattice C stretching in the current state, i.e. the velocity gradient

C (associated with lattice stretching) times the increment of time: C DVGRAD (only needed for finite rotation) C

IF (NLGEOM.NE.0) THEN DO J=1,3 DO I=1,3

IF (I.EQ.J) THEN

DVGRAD(I,J)=DELATS(I) ELSE

DVGRAD(I,J)=DELATS(I+J+1) END IF END DO END DO

DO J=1,3 DO I=1,J

IF (J.GT.I) THEN