# Isotropic Hardening VUMAT Problem

Hi All,

I have a problem of an Expression of the VUMAT for Isotropic hardening code. part of the code is as follows.

subroutine vumat(

1  nblock, ndir, nshr, nstatev, nfieldv, nprops, lanneal,

2  stepTime, totalTime, dt, cmname, coordMp, charLength,

3  props, density, strainInc, relSpinInc,

5  stressOld, stateOld, enerInternOld, enerInelasOld,

c Write only -

7  stressNew, stateNew, enerInternNew, enerInelasNew)

c

include 'vaba_param.inc'

C

dimension props(nprops), density(nblock),

1  coordMp(nblock,*), nElement(nblock), nMatPoint(nblock),

2  charLength(*), strainInc(nblock,ndir+nshr),

3  relSpinInc(*), tempOld(*),nLayer(nblock),

5  fieldOld(*), stressOld(nblock,ndir+nshr),

6  stateOld(nblock,nstatev), enerInternOld(nblock),

7  enerInelasOld(nblock), tempNew(*),

9  fieldNew(*), stressNew(nblock,ndir+nshr),

1  stateNew(nblock,nstatev),

2  enerInternNew(nblock), enerInelasNew(nblock)

character*80 cmname

parameter(zero = 0.d0, one = 1.d0, two = 2.d0, half = .5d0,

&   Three = 3.d0, op5 = 1.5d0)

C Assume purely elastic material at the beginning of the analysis

E = props(1)

xnu = props(2)

yields1= props(3)

eqpl1 = props(4)

yields2= props(5)

eqpl2 = props(6)

twomu = E /(one + xnu)

alambda = xnu*twomu/(one-two*xnu)

thremu = op5 * twomu

nvalue = (nprops/two)-1

if (stepTime.eq.zero) then

do k = 1,nblock

trace=strainInc(k,1)+strainInc(k,2)+strainInc(k,3)

stressNew(k,1)=stressOld(k,1)

&             + twomu*strainInc(k,1)+ alambda*trace

stressNew(k,2)=stressOld(k,2)

&             + twomu*strainInc(k,2)+ alambda*trace

stressNew(k,3)=stressOld(k,3)

&             + twomu*strainInc(k,3)+ alambda*trace

stressNew(k,4)=stressOld(k,4)+twomu*strainInc(k,4)

if (nshr.gt.1) then

stressNew(k,5)=stressOld(k,5)+twomu*strainInc(k,5)

stressNew(k,6)=stressOld(k,6)+twomu*strainInc(k,6)

end if

end do

else

do k=1,nblock

c

peeqOld = stateOld(k,1)

call vuhard(yieldOld, hard, peeqOld, props(3), nvalue)

trace=strainInc(k,1)+strainInc(k,2)+strainInc(k,3)

C Trial Stress

s11=stressOld(k,1)+twomu*strainInc(k,1)

&  + alambda*trace

s22=stressOld(k,2)+twomu*strainInc(k,2)

&  + alambda*trace

s33=stressOld(k,3)+twomu*strainInc(k,3)

&  + alambda*trace

s12=stressOld(k,4)+twomu*strainInc(k,4)

if (nshr.gt.1) then

s13=stressOld(k,5)+twomu*strainInc(k,5)

s23=stressOld(k,6)+twomu*strainInc(k,6)

end if

smean = (1/three)*(s11+s22+s33)

s11 = s11 - smean

s22 = s22 - smean

s33 = s33 - smean

if (nshr.eq.1) then

vmises = sqrt(op5*(s11*s11+s22*s22+s33*s33

&      +two*s12*s12))

else

vmises = sqrt(op5*(s11*s11+s22*s22+s33*s33

&      +two*s12*s12+two*s13*s13+two*s23*s23))

end if

sigdif=vmises-yieldOld

facyld=zero

if (sigdif.gt.zero)facyld=one

C update the stress

c   deqps = facyld * sigdif /(thremu + hard)

yieldNew = yieldOld + hard * deqps

C update the stress

factor = yieldNew/( yieldNew + thremu * deqps)

stressNew(k,1) = s11 * factor + smean

stressNew(k,2) = s22 * factor + smean

stressNew(k,3) = s33 * factor + smean

stressNew(k,4) = s12 * factor

if (nshr.gt.1)then

stressNew(k,5) = s13 * factor

stressNew(k,6) = s23 * factor

end if

This is only the part of the code..and the full code is working...my problem is, in this code..do anyone know how the expression called 'factor' is derived??

I have been looking.. how this expression has been derived..but could not find any clue for it...i mean..many people just mentioned this expression but did not mentioned how it has been derived.....if any body know it..could you please let me know..how it has been derived...any clue will be much apprciated..is there any book which this derivation is mentioned??? Thanks a lot...

regards

Get the file
http://imechanica.org/files/Writing User Subroutines with ABAQUS.pdf
it may show up as
http://imechanica.org/files/Writing%20User%20Subroutines%20with%20ABAQUS...

A code derivaion is given in:

COMPUTATIONAL METHODS FOR PLASTICITY THEORY AND APPLICATIONS
EA de Souza Neto
D Peric
DRJ Owen
publisher: Wiley

Good luck

Frank 