×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

simple problem with UMAT

simple problem with UMAT

simple problem with UMAT

(OP)
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

RE: simple problem with UMAT

(OP)
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

RE: simple problem with UMAT

Add your IF loop under the line with E=PROPS(1)

RE: simple problem with UMAT

(OP)
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

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!


Resources