Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

simple problem with UMAT

Status
Not open for further replies.

EvgenAbaqus

Mechanical
Jan 27, 2015
17
Hello Dears!

could you help me please.

I wrote a small umat subr, but it works doesn't correctly

I have 2 steps

Dens=7800
for Emodulus i use next eq. E=Dens**2.5
at first i define DDSDDE, stess, strain, strain energy denity, and parametr S

if S < some value then Ddens=7800

and then Densnew=Dens+DDens
Enew=Densnew**2.5
in second step i'd like use new Emodulus but stress does not change!!!

Help me Please!! i don't know what to do anymore..!

there is umat and inp file
 
 http://files.engineering.com/getfile.aspx?folder=0ba80b10-924c-4c61-b860-9fa18718ac6e&file=um.rar
Replies continue below

Recommended for you

SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
1 RPL,DDSDDT,DRPLDE,DRPLDT,
2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,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),DFGRD0(3,3),DFGRD1(3,3)

c elastic property

PARAMETER (ONE=1.0D0,TWO=2.0D0)

E=PROPS(1)
ANU=PROPS(2)
ALAMBDA=E*ANU/(ONE+ANU)/(ONE-TWO*ANU)
AMU=E/(ONE+ANU)/2
DO I=1, NTENS
DO J=1, NTENS
DDSDDE(I,J)=0.0D0
ENDDO
ENDDO
DDSDDE(1,1)=(ALAMBDA+TWO*AMU)
DDSDDE(2,2)=(ALAMBDA+TWO*AMU)
DDSDDE(3,3)=(ALAMBDA+TWO*AMU)
DDSDDE(4,4)=AMU
DDSDDE(5,5)=AMU
DDSDDE(6,6)=AMU
DDSDDE(1,2)=ALAMBDA
DDSDDE(1,3)=ALAMBDA
DDSDDE(2,3)=ALAMBDA
DDSDDE(2,1)=ALAMBDA
DDSDDE(3,1)=ALAMBDA
DDSDDE(3,2)=ALAMBDA
DO I=1, NTENS
DO J=1, NTENS
STRESS(I)=STRESS(I)+DDSDDE(I,J)*DSTRAN(J)
ENDDO
ENDDO

If (KSTEP.eq.2) then
E=111111111111
Endif


RETURN
END​

please check this umat

why in case of second step i have error?

in 1s step i'd like use 1st Emodulus

but in 2 step i'd like use new Emodulus
 
nothing happened!
and also i'd like use modulus after calculations of some values
i should to calculate new stress in second step from values which i obtained in first step

please check attached file

SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
1 RPL,DDSDDT,DRPLDE,DRPLDT,
2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,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),DFGRD0(3,3),DFGRD1(3,3)

c elastic property

PARAMETER (ONE=1.0D0,TWO=2.0D0)

Dens=PROPS(1)
ANU=PROPS(2)
E=Dens**2.5


ALAMBDA=E*ANU/(ONE+ANU)/(ONE-TWO*ANU)
AMU=E/(ONE+ANU)/2
DO I=1, NTENS
DO J=1, NTENS
DDSDDE(I,J)=0.0D0
ENDDO
ENDDO
DDSDDE(1,1)=(ALAMBDA+TWO*AMU)
DDSDDE(2,2)=(ALAMBDA+TWO*AMU)
DDSDDE(3,3)=(ALAMBDA+TWO*AMU)
DDSDDE(4,4)=AMU
DDSDDE(5,5)=AMU
DDSDDE(6,6)=AMU
DDSDDE(1,2)=ALAMBDA
DDSDDE(1,3)=ALAMBDA
DDSDDE(2,3)=ALAMBDA
DDSDDE(2,1)=ALAMBDA
DDSDDE(3,1)=ALAMBDA
DDSDDE(3,2)=ALAMBDA
DO I=1, NTENS
DO J=1, NTENS
STRESS(I)=STRESS(I)+DDSDDE(I,J)*DSTRAN(J)
ENDDO
ENDDO
c MESIS

S11 =STRESS(1)
S22 =STRESS(2)
S33 =STRESS(3)
S12 =STRESS(4)
S13 =STRESS(5)
S23 =STRESS(6)

STATEV(1)=(((S11-S22)**2+(S22-S33)**2+(S33-S11)**2+6*S12**2+S23**2+S13**2)/2)**0.5
c
c stain
STATEV(2)= STATEV(1)/E

c strain dens

STATEV(3)= (STATEV(1)*STATEV(2))/2

c param S
STATEV(4)= STATEV(3)/Dens

S =STATEV(4)

c define const

b=4.0E-6
f=0.10
S0=2e-11

c algoritm
IF (S.GT.(S0+f*S0)) THEN
DDens= b*(S-(1+f)*S0)
ENDIF

c IF ((S.GT. (S0-f*S0)).AND.(S.LT. (S0+f*S0))) THEN
c DDens = O
c ENDIF

IF (S.LT. (S0-f*S0)) THEN
DDens= 7800
ENDIF


c new dens

If (KSTEP.eq.2) then
Densnew=Dens+DDens
Enew=Densnew**2.5
E=Enew
Endif
ALAMBDA=E*ANU/(ONE+ANU)/(ONE-TWO*ANU)
AMU=E/(ONE+ANU)/2
DO I=1, NTENS
DO J=1, NTENS
DDSDDE(I,J)=0.0D0
ENDDO
ENDDO
DDSDDE(1,1)=(ALAMBDA+TWO*AMU)
DDSDDE(2,2)=(ALAMBDA+TWO*AMU)
DDSDDE(3,3)=(ALAMBDA+TWO*AMU)
DDSDDE(4,4)=AMU
DDSDDE(5,5)=AMU
DDSDDE(6,6)=AMU
DDSDDE(1,2)=ALAMBDA
DDSDDE(1,3)=ALAMBDA
DDSDDE(2,3)=ALAMBDA
DDSDDE(2,1)=ALAMBDA
DDSDDE(3,1)=ALAMBDA
DDSDDE(3,2)=ALAMBDA
DO I=1, NTENS
DO J=1, NTENS
STRESS(I)=STRESS(I)+DDSDDE(I,J)*DSTRAN(J)
ENDDO
ENDDO
c MESIS

S11 =STRESS(1)
S22 =STRESS(2)
S33 =STRESS(3)
S12 =STRESS(4)
S13 =STRESS(5)
S23 =STRESS(6)

STATEV(6)=(((S11-S22)**2+(S22-S33)**2+(S33-S11)**2+6*S12**2+S23**2+S13**2)/2)**0.5

RETURN
END​
 
 http://files.engineering.com/getfile.aspx?folder=ea4659d4-fd06-4c57-836a-fd5176873654&file=um2.rar
Status
Not open for further replies.

Part and Inventory Search

Sponsor