0% found this document useful (0 votes)
19 views5 pages

Abaqus Umat

Uploaded by

hhujunwu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views5 pages

Abaqus Umat

Uploaded by

hhujunwu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,

1 RPL,DDSDDT,DRPLDE,DRPLDT,STRAN,DSTRAN,
2 TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,NDI,NSHR,NTENS,
3 NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,CELENT,
4 DFGRD0,DFGRD1,NOEL,NPT,KSLAY,KSPT,KSTEP,KINC)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
DIMENSION STRESS(NTENS),STATEV(NSTATV),
1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),
2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),
3 PROPS(NPROPS),COORDS(3),DROT(3,3),
4 DFGRD0(3,3),DFGRD1(3,3)
C
DIMENSION EELAS(6),EPLAS(6),ALPHA(6),dFsig(6),OLDS(6),OLDPL(6),
1 HARD(3),DEP(6), CdFsig(6),dFsigC(6)
C
DOUBLE PRECISION I1
C
PARAMETER (ZERO=0.D0,ONE=1.D0,TWO=2.D0,THREE=3.D0,SIX=6.D0,
1 ENUMAX=.4999D0,NEWTON=100,TOLER=1.0D-6)
C
IF (NDI.NE.3) THEN
WRITE(6,1)
1 FORMAT(//,30X,'***ERROR - THIS UMAT MAY ONLY BE USED FOR ',
$ 'ELEMENTS WITH THREE DIRECT STRESS COMPONENTS')
ENDIF
C
C ELASTIC PROPERTIES
C
EMOD=PROPS(1) !EMOD=YOUNG'S MODULUS
ENU=MIN(PROPS(2),ENUMAX) !ENUMAX=user defined limitation of posson
ENU=POISSON RATIO
C
EBULK3=EMOD/(ONE-TWO*ENU) !EBULK3 = K*3
EG2=EMOD/(ONE+ENU) !EG2 = G*2
EG=EG2/TWO !EG = G
EG3=THREE*EG !EG3 = G*3
ELAM=(EBULK3-EG2)/THREE !ELAM = λ = K-2/3*G
EBULK=EBULK3/THREE !EBULK = K
C
C READ THE MATERIAL PARAMETERS: F=A*I1+Q-(S0+H*EQPLAS**B)
A=PROPS(3)
S0=PROPS(4)
H=PROPS(5)
B=PROPS(6)
C
C ELASTIC STIFFNESS
C
DO K1=1,NDI
DO K2=1,NDI
DDSDDE(K2,K1)=ELAM
END DO
DDSDDE(K1,K1)=EG2+ELAM
END DO

DO K1=NDI+1,NTENS
DDSDDE(K1,K1)=EG
END DO
C
C STORE THE EQUIVALENT PLASTIC STRAIN TO THE 13th STATE VARABLE
C
EQPLAS=STATEV(2*NTENS+1) ! EQPLAS - the equivalent PLASTIC STRAINS
C
C SAVE STRESS AND PLASTIC STRAINS AND
C CALCULATE PREDICTOR STRESS AND ELASTIC STRAIN
C
DO K1=1,NTENS
EELAS(K1)=EELAS(K1)+DSTRAN(K1)
DO K2=1,NTENS
STRESS(K2)=STRESS(K2)+DDSDDE(K2,K1)*DSTRAN(K1)
END DO
END DO
C
C CALCULATE EQUIVALENT VON MISES STRESS: Q OR Seq
C
SMISES=(STRESS(1)-STRESS(2))**2.
1 +(STRESS(2)-STRESS(3))**2.
1 +(STRESS(3)-STRESS(1))**2.
DO K1=NDI+1,NTENS
SMISES=SMISES+SIX*STRESS(K1)**2.
END DO
SMISES=SQRT(SMISES/TWO)
C
SHYDRO=(STRESS(1)+STRESS(2)+STRESS(3))/THREE !HYDROSTATIC
STRESS
I1=SHYDRO*THREE !FIRST STRESS INVARIANT
CC
F=A*I1+SMISES-(S0+H*EQPLAS**B)
ITERNO=0
DO WHILE(F.GT.TOLER) !F>TOLER
C
DO K1=1,NDI
dFsig(K1)=1.5*(STRESS(K1)-SHYDRO)/SMISES+A
END DO
DO K1=NDI+1,NTENS
dFsig(K1)=1.5*(STRESS(K1))/SMISES
END DO

C
C dFr=-H*B*R**(B-1.)
IF(EQPLAS.EQ.0.0)THEN
dFr=0.0
ELSE
dFr=-H*B*(EQPLAS**(B-1.))
ENDIF

C
C CALCULATE THE PLASTIC MULTIPLIER
CdFsig=0.0
dFsigCdFsig=0.0
DO K1=1,NTENS
DO K2=1,NTENS
CdFsig(K2)=CdFsig(K2)+DDSDDE(K2,K1)*dFsig(K1)
ENDDO
dFsigCdFsig=dFsigCdFsig+dFsig(K1)*CdFsig(K1)
ENDDO

dR=F/(dFsigCdFsig-dFr)
C SOLVE FOR NEW YIELD STRESS
C AND EQUIVALENT PLASTIC STRAIN INCREMENT USING NEWTON ITERATION
C
DO K1=1,NTENS
DEP(K1)=dR*dFsig(K1)
EPLAS(K1)=EPLAS(K1)+DEP(K1)
EELAS(K1)=EELAS(K1)-DEP(K1)
DO K2=1,NTENS
STRESS(K2)=STRESS(K2)-DDSDDE(K2,K1)*DEP(K1)
ENDDO
ENDDO
C
C CALCULATE EQUIVALENT VON MISES STRESS: Q OR Seq
C
SMISES=(STRESS(1)-STRESS(2))**2.
1 +(STRESS(2)-STRESS(3))**2.
1 +(STRESS(3)-STRESS(1))**2.
DO K1=NDI+1,NTENS
SMISES=SMISES+SIX*STRESS(K1)**2.
END DO
SMISES=SQRT(SMISES/TWO)

C
SHYDRO=(STRESS(1)+STRESS(2)+STRESS(3))/THREE !HYDROSTATIC
STRESS
I1=SHYDRO*THREE !FIRST STRESS INVARIANT
C
C CALCULATE THE EQUIVALENT PLASTIC STRAIN INCREMENT

DEQPL=dR !ANOTHER METHOD LATER


C UPDATE THE EQUIVALENT PLASTIC STRAIN
EQPLAS=EQPLAS+DEQPL
ITERNO=ITERNO+1

F=A*I1+SMISES-(S0+H*EQPLAS**B)
C WRITE(6,*)"F",F,ITERNO
C
C dFsig=A*DEL(I,J)+S/Seq
DO K1=1,NDI
dFsig(K1)=1.5*(STRESS(K1)-SHYDRO)/SMISES+A
END DO
DO K1=NDI+1,NTENS
dFsig(K1)=1.5*(STRESS(K1))/SMISES
END DO
C
C dFr=-H*B*R**(B-1.)
IF(EQPLAS.EQ.0.0)THEN
dFr=0.0
ELSE
dFr=-H*B*(EQPLAS**(B-1.))
ENDIF

C TANGENT STIFFNESS TENSOR


CdFsig=0.0
dFsigC=0.0
DO K1=1,NTENS
DO K2=1,NTENS
CdFsig(K2)=CdFsig(K2)+DDSDDE(K2,K1)*dFsig(K1)
ENDDO
ENDDO

DO K1=1,NTENS
DO K2=1,NTENS
dFsigC(K2)=dFsigC(K2)+dFsig(K1)*DDSDDE(K1,K2)
ENDDO
ENDDO

DO K1=1,NTENS
DO K2=1,NTENS
DDSDDE(K1,K2)=DDSDDE(K1,K2)-CdFsig(K1)*dFsigC(K2)/
1 (dFsigCdFsig-dFr)
ENDDO
ENDDO

ENDDO
C WRITE(6,*)"CHECK!"
C
C STORE ELASTIC STRAINS, PLASTIC STRAINS AND SHIFT TENSOR
C IN STATE VARIABLE ARRAY
C
DO K1=1,NTENS
STATEV(K1)=EELAS(K1)
STATEV(K1+NTENS)=EPLAS(K1)
END DO
STATEV(2*NTENS+1)=EQPLAS
C
RETURN
END
C

You might also like