黄永刚单晶塑性有限元umat子程序 下载本文

END DO

END IF

ELSE

C----- Orthotropic metarial

DLOCAL(1,1)=PROPS(1) DLOCAL(1,2)=PROPS(2) DLOCAL(2,1)=PROPS(2) DLOCAL(2,2)=PROPS(3)

DLOCAL(1,3)=PROPS(4) DLOCAL(3,1)=PROPS(4) DLOCAL(2,3)=PROPS(5) DLOCAL(3,2)=PROPS(5) DLOCAL(3,3)=PROPS(6)

DLOCAL(4,4)=PROPS(7) DLOCAL(5,5)=PROPS(8) DLOCAL(6,6)=PROPS(9)

END IF

ELSE

C----- General anisotropic material ID=0 DO J=1,6 DO I=1,J ID=ID+1

DLOCAL(I,J)=PROPS(ID) DLOCAL(J,I)=DLOCAL(I,J) END DO END DO END IF

C----- Rotation matrix: ROTATE, i.e. direction cosines of [100], [010] C and [001] of a cubic crystal in global system C

CALL ROTATION (PROPS(57), ROTATE)

C----- Rotation matrix: ROTD to transform local elastic matrix DLOCAL C to global elastic matrix D

C

DO J=1,3 J1=1+J/3 J2=2+J/2

DO I=1,3 I1=1+I/3 I2=2+I/2

ROTD(I,J)=ROTATE(I,J)**2

ROTD(I,J+3)=2.*ROTATE(I,J1)*ROTATE(I,J2) ROTD(I+3,J)=ROTATE(I1,J)*ROTATE(I2,J)

ROTD(I+3,J+3)=ROTATE(I1,J1)*ROTATE(I2,J2)+ 2 ROTATE(I1,J2)*ROTATE(I2,J1)

END DO END DO

C----- Elastic matrix in global system: D

C {D} = {ROTD} * {DLOCAL} * {ROTD}transpose C

DO J=1,6 DO I=1,6 D(I,J)=0. END DO END DO

DO J=1,6 DO I=1,J

DO K=1,6 DO L=1,6

D(I,J)=D(I,J)+DLOCAL(K,L)*ROTD(I,K)*ROTD(J,L) END DO END DO

D(J,I)=D(I,J)

END DO END DO

C----- Total number of sets of slip systems: NSET NSET=NINT(PROPS(25)) IF (NSET.LT.1) THEN

WRITE (6,*) '***ERROR - zero sets of slip systems' STOP

ELSE IF (NSET.GT.3) THEN WRITE (6,*)

2 '***ERROR - more than three sets of slip systems' STOP END IF

C----- Implicit integration parameter: THETA THETA=PROPS(145)

C----- Finite deformation ?

C----- NLGEOM = 0, small deformation theory

C otherwise, theory of finite rotation and finite strain, Users C must declare \C

IF (PROPS(146).EQ.0.) THEN NLGEOM=0 ELSE

NLGEOM=1 END IF

C----- Iteration?

C----- ITRATN = 0, no iteration

C otherwise, iteration (solving increments of stresses and C solution dependent state variables) C

IF (PROPS(153).EQ.0.) THEN ITRATN=0 ELSE

ITRATN=1 END IF

ITRMAX=NINT(PROPS(154)) GAMERR=PROPS(155)

NITRTN=-1

DO I=1,NTENS DSOLD(I)=0. END DO

DO J=1,ND

DGAMOD(J)=0.

DTAUOD(J)=0. DGSPOD(J)=0. DO I=1,3

DSPNRO(I,J)=0. DSPDRO(I,J)=0. END DO END DO

C----- Increment of spin associated with the material element: DSPIN C (only needed for finite rotation) C

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

TERM(I,J)=DROT(J,I) TRM0(I,J)=DROT(J,I) END DO

TERM(J,J)=TERM(J,J)+1.D0 TRM0(J,J)=TRM0(J,J)-1.D0 END DO

CALL LUDCMP (TERM, 3, 3, ITRM, DDCMP)

DO J=1,3

CALL LUBKSB (TERM, 3, 3, ITRM, TRM0(1,J)) END DO

DSPIN(1)=TRM0(2,1)-TRM0(1,2) DSPIN(2)=TRM0(1,3)-TRM0(3,1) DSPIN(3)=TRM0(3,2)-TRM0(2,3)

END IF

C----- Increment of dilatational strain: DEV DEV=0.D0 DO I=1,NDI

DEV=DEV+DSTRAN(I) END DO

C----- Iteration starts (only when iteration method is used) 1000 CONTINUE

C----- Parameter NITRTN: number of iterations