Search
Close this search box.
Notifications
Clear all

How to define the state dependent variables in VUMAT subroutine

3 Posts
2 Users
0 Reactions
523 Views
Posts: 17
Topic starter
(@thegiving21)
Active Member
Joined: 8 years ago

Hello,
I am new in VUMAT subroutine. I am implementing a damage model in VUMAT subroutine. I want to know how can I define the state dependent variables in VUMAT. I have two dependent variables, damage and elastic equivalent strain. Following is the position of the state depentent variables in my code. Could any one help please, if it is right of wrong ? thank you

subroutine vumat(
1 nblock, ndir, nshr, nstatev, nfieldv, nprops, lanneal,
2 stepTime, totalTime, dt, cmname, coordMp, charLength,
3 props, density, strainInc, relSpinInc,
4 tempOld, stretchOld, defgradOld, fieldOld,
3 stressOld, stateOld, enerInternOld, enerInelasOld,
6 tempNew, stretchNew, defgradNew, fieldNew,
5 stressNew, stateNew, enerInternNew, enerInelasNew )
C
INCLUDE VABA_PARAM.INC

character*80 cmname
dimension props(nprops), density(nblock),
1 coordMp(nblock,*),
2 charLength(*), strainInc(nblock,ndir+nshr),
3 relSpinInc(*), tempOld(*),
4 stretchOld(*), defgradOld(*),
5 fieldOld(*), stressOld(nblock,ndir+nshr),eigVal(nblock,3),
6 stateOld(nblock,nstatev), enerInternOld(nblock),
7 enerInelasOld(nblock), tempNew(*), strain(nblock,ndir+nshr),
8 stretchNew(*), defgradNew(*), fieldNew(*),PrinStrain(nblock,ndir+nshr),
9 stressNew(nblock,ndir+nshr), stateNew(nblock,nstatev),
1 enerInternNew(nblock), enerInelasNew(nblock), DDSDDE(3,3)
*USER SUBROUTINE

C--- materials properties

do 100 i = 1,nblock

stateNew(i,1)=equi_strain
stateNew(i,2)=damage

C--- material stiffness

C--- main code

.
.
.
.
stateNew(i,1)=equi_strain
stateNew(i,2)=damage
C update stress
100 continue
Return
end

Topic Tags
2 Replies
Posts: 80
(@FrankMonkey)
Trusted Member
Joined: 15 years ago

It should suffice to state
statev(1)=stateNew(i,1)

Topic Tags
2 Replies
Posts: 17
Topic starter
(@thegiving21)
Active Member
Joined: 8 years ago

thank you Frank for the reply. Should I define it at the beginning or at the end of the code ?
is it like that ? :

equi_strain=stateNew(i,1)
damage=stateNew(i,2)

Reply
Share: