User login

Navigation

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)

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. 

Comments

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,

     * 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.

 

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.

Frank Richter's picture

shahram's picture

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. 

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

 

 

Subscribe to Comments for "ABAQUS VUHARD subroutine problem"

Recent comments

More comments

Syndicate

Subscribe to Syndicate