You are here
ABAQUS VUHARD subroutine problem
Hello
I am working on the simulation of ring rolling. I have written the subroutine for the plasticity part in the subroutine VUHARD and have set the PLASTIC part in material definition to USER.
I dont have HARDENING PROPERTIES so i have set it BLANK. i have set the path of the subroutine in the job defintion part too. But abaqus crashes whenever i try to do DATA CHECK
It says ABAQUS KERNEL EXITED WITH AN ERROR.I dont know why this problem arises?. I am stuck.
The curve i want to define is yieldstress=K*plasticstrain^m*plasticstrainrate^n
I have defined the yield,Dyieldeqps(k,1)Dyieldeps(k,2) as abaqus has told.
Abaqus has told to define Statenew too.I dont know how to define it.
This is my subroutine :
c-----subroutine for plasticity
subroutine vuhard(
C Read only -
* nblock,
* jElem, kIntPt, kLayer, kSecPt,
* lAnneal, stepTime, totalTime, dt, cmname,
* nstatev, nfieldv, nprops,
* props, tempOld, tempNew, fieldOld, fieldNew,
* stateOld,
* eqps, eqpsRate,
C Write only -
* yield, dyieldDtemp, dyieldDeqps,
* stateNew )
C
include 'vaba_param.inc'
C
dimension props(nprops), tempOld(nblock), tempNew(nblock),
1 fieldOld(nblock,nfieldv), fieldNew(nblock,nfieldv),
2 stateOld(nblock,nstatev), eqps(nblock), eqpsRate(nblock),
3 yield(nblock), dyieldDtemp(nblock), dyieldDeqps(nblock,2),
4 stateNew(nblock,nstatev), jElem(nblock)
parameter( one=1.0d0,small=1.0d-8)
C
character*80 cmname
double precision a,b,c
k=100.0d0
m=0.30d0
n=0.15d0
C
C
do km = 1,nblock
plstrain=eqps(km)
plstrnrt=eqpsRate(km)
C
yield(km)=k*(plstrain**m)*(plstrnrt**n)
dyieldDeqps(km,1)=k*m*(plstrain**(m-one))*(plstrnrt**n)
dyieldDeqps(km,2)=k*n*(plstrain**m)*(plstrnrt**(n-one))
end do
C
return
end
I would be grateful if someone could help me figure out the error.
- ramaanb's blog
- Log in or register to post comments
- 17076 reads
Comments
VUHARD, cant find the mistake
Hello,
i have the same or similar problem ramaanb posted before. I want abaqus to calculate the yield himself using a formula. I have just started working on abaqus subroutines. it would be great if someone could tell me, whether iam completely wrong or I have made a mistake. I dont really get a error but abaqus stops before startng the simulation.
Iam using Abaqus 10. If you need more information just tell me.
My Subrouine:
subroutine vuhard(
* nblock,
* jElem, kIntPt, kLayer, kSecPt,
* lAnneal, stepTime, totalTime, dt, cmname,
* nstatev, nfieldv, nprops,
* props, tempOld, tempNew, fieldOld, fieldNew,
* stateOld,
* eqps, eqpsRate,
C
* yield, dyieldDtemp, dyieldDeqps,
* stateNew )
C
include 'vaba_param.inc'
C
dimension props(nprops), tempOld(nblock), tempNew(nblock),
1 fieldOld(nblock,nfieldv), fieldNew(nblock,nfieldv),
2 stateOld(nblock,nstatev), eqps(nblock), eqpsRate(nblock),
3 yield(nblock), dyieldDtemp(nblock), dyieldDeqps(nblock,2),
4 stateNew(nblock,nstatev), jElem(nblock)
C
character*80 cmname
Double Precision K, m1, m2, m3, m4
Double Precision plstrain, plstrnrt, temp
C
parameter( one=1.0d0, two=2.0d0)
K=789.49487667d0
m1=0.0108123d0
m2=-0.00051014d0
m3=0.14494796d0
m4=-0.00577363d0
C
do km = 1,nblock
C
if (plstrain .LE. 0.0001D0) then
plstrain = 0.0001D0
endif
if (plstrnrt .LE. 0.00001D0) then
plstrnrt = 0.00001D0
endif
C
plstrain = eqps(km)
C Plastische Dehnrate
plstrnrt = eqpsRate(km)
temp = tempNew(km)
C
yield(km)= (K * (plstrnrt**m1) * (exp**(temp*m2))
1 * (plstrain**m3) * (exp**(m4/plstrain)))
C
dyieldDtemp(km) = (K * (plstrnrt**m1) * m2*(exp**temp*m2)
1 * (plstrain**m3) * (exp**(m4/plstrain)))
C
dyieldDeqps(km,1) = (K * (plstrnrt**m1) * (plstrain**(m3-two))
1 * (m3 * plstrain - m4) * (exp**(m2*temp+m4/plstrain)))
C
dyieldDeqps(km,2) = (m1 * K * (plstrnrt**(m1-one))
1 * (plstrain**m3) * (exp**(m2*temp + m4/plstrain)))
C
end do
C
return
END
I can compile the *.for file. This shouldnt be the problem.
Question for VUHARD
Thanks for your posting.
Did you solve the problem?
I want to know the solution for your problem.
I am doing some metal forming simulation and
need to apply VUHARD for the material modeling
Thanks.
ABAQUS mailing list
ABAQUS mailing list
https://groups.yahoo.com/group/ABAQUS
you both need to write to a
you both need to write to a file what you want as output in your vuhard.
pay attaention that what you can get in aany step by writing to filr.
actully I have written Vuhard for Hollomon, swift and Johnson-cook and it works well. but the way you have written is little bit complicated.
Vuhard subroutine problem
Hello
I am new with abaqus subroutines. I found the following code in <Writing User Subroutines with Abaqus> about the isotropic hardening in plasticity Vumat. But I am very confused with the vuhard part.
a)how does the short subroutines work
b) what is the "table" and "nvalue" and how does this two variables get their values.
Could you please help me with these questions! Thanks a lot for your kind-hearted.
the subroutines is as follows:
subroutine vuhard(syield, hard, eqplas, table, nvalue)
include 'vaba_param.inc'
dimension table(2, nvalue)
parameter(zero=0.d0)
syield=table(1, nvalue)
hard=zero
if(nvalue.gt.1) then
do k1=1, nvalue-1
eqpl1=table(2,k1+1)
if(eqplas.lt.eqpl1) then
eqpl0=table(2, k1)
deqpl=eqpl1-eqpl0
syiel0=table(1, k1)
syiel1=table(1, k1+1)
dsyiel=syiel1-syiel0
hard=dsyiel/deqpl
syield=syiel0+(eqplas-eqpl0)*hard
goto 10
end if
end do
10 continue
end if
return
end