黄永刚单晶塑性有限元umat子程?- 百度文库 ر

TERM2=2.*EXP(-TERM1)/(1.+EXP(-2.*TERM1)) HSELF=PROP(1)*TERM2**2

ELSE

C----- Bassani's hardening law CFIXA

TERM1=(PROP(1)-PROP(4))*GMSLTL(ISELF)/(PROP(2)-PROP(3)) CFIXB

TERM2=2.*EXP(-TERM1)/(1.+EXP(-2.*TERM1)) F=(PROP(1)-PROP(4))*TERM2**2+PROP(4)

ID=0 G=1.

DO I=1,NSET

IF (I.EQ.ISET) THEN GAMMA0=PROP(5) FAB=PROP(7) ELSE

GAMMA0=PROP(6) FAB=PROP(8) END IF

DO J=1,NSLIP(I) ID=ID+1

IF (ID.NE.ISELF) THEN CFIXA G=G+FAB*TANH(GMSLTL(ID)/GAMMA0) CFIXB END IF

END DO END DO

HSELF=F*G

END IF

RETURN END

C-----------------------------------

C----- Use single precision on cray CFIXA

REAL*8 FUNCTION HLATNT(GAMMA,GMSLTL,GAMTOL,NSLPTL,NSET, 2 NSLIP,PROP,CHECK,ISELF,ISET,LATENT) CFIXB

C----- User-supplied latent-hardening function

C----- Use single precision on cray C

IMPLICIT REAL*8 (A-H,O-Z) CFIXA

DIMENSION GAMMA(NSLPTL), NSLIP(NSET), PROP(16), 2 GMSLTL(NSLPTL) CFIXB

ILOWER=0

IUPPER=NSLIP(1) IF (ISET.GT.1) THEN DO K=2,ISET

ILOWER=ILOWER+NSLIP(K-1) IUPPER=IUPPER+NSLIP(K) END DO END IF

IF (LATENT.GT.ILOWER.AND.LATENT.LE.IUPPER) THEN Q=PROP(9) ELSE

Q=PROP(10) END IF

IF (CHECK.EQ.0.) THEN

C----- HYPER SECANT hardening law by Asaro, Pierce et al

TERM1=PROP(1)*GAMTOL/(PROP(2)-PROP(3)) TERM2=2.*EXP(-TERM1)/(1.+EXP(-2.*TERM1)) HLATNT=PROP(1)*TERM2**2*Q

ELSE

C----- Bassani's hardening law CFIXA

TERM1=(PROP(1)-PROP(4))*GMSLTL(ISELF)/(PROP(2)-PROP(3))

CFIXB

TERM2=2.*EXP(-TERM1)/(1.+EXP(-2.*TERM1)) F=(PROP(1)-PROP(4))*TERM2**2+PROP(4)

ID=0 G=1.

DO I=1,NSET

IF (I.EQ.ISET) THEN GAMMA0=PROP(5) FAB=PROP(7) ELSE

GAMMA0=PROP(6) FAB=PROP(8) END IF

DO J=1,NSLIP(I) ID=ID+1

IF (ID.NE.ISELF) THEN CFIXA G=G+FAB*TANH(GMSLTL(ID)/GAMMA0) CFIXB END IF

END DO END DO

HLATNT=F*G*Q

END IF

RETURN END

C----------------------------------------------------------------------

CFIXA

SUBROUTINE ITERATION (GAMMA, TAUSLP, GSLIP, GMSLTL, GAMTOL, 2 NSLPTL, NSET, NSLIP, ND, PROP, DGAMOD, 3 DHDGDG) CFIXB

C----- This subroutine generates arrays for the Newton-Rhapson C iteration method.

C----- Users who want to use their own self- and latent-hardening law

C may change the function subprograms DHSELF (self hardening) and C DHLATN (latent hardening). The parameters characterizing these C hardening laws are passed into DHSELF and DHLATN through array C PROP.

C----- Function subprograms: C

C DHSELF -- User-supplied function of the derivative of self- C hardening moduli C

C DHLATN -- User-supplied function of the derivative of latent- C hardening moduli

C----- Variables: C

C GAMMA -- shear strain in all slip systems at the start of time C step (INPUT)

C TAUSLP -- resolved shear stress in all slip systems (INPUT) C GSLIP -- current strength (INPUT)

CFIX GMSLTL -- total cumulative shear strains on each individual slip system CFIX (INPUT)

C GAMTOL -- total cumulative shear strains over all slip systems C (INPUT)

C NSLPTL -- total number of slip systems in all the sets (INPUT) C NSET -- number of sets of slip systems (INPUT) C NSLIP -- number of slip systems in each set (INPUT)

C ND -- leading dimension of arrays defined in subroutine UMAT C (INPUT) C

C PROP -- material constants characterizing the self- and latent- C hardening law (INPUT) C

C For the HYPER SECANT hardening law

C PROP(1,i) -- initial hardening modulus H0 in the ith C set of slip systems

C PROP(2,i) -- saturation stress TAUs in the ith set of C slip systems

C PROP(3,i) -- initial critical resolved shear stress C TAU0 in the ith set of slip systems C PROP(9,i) -- ratio of latent to self-hardening Q in the C ith set of slip systems