Can we modify J-C parameter thermal softening coeffient "m"

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Can we modify J-C parameter thermal softening coeffient "m"

Abaqus Users mailing list
Hii am facing a problem in my research that JC plasticity and damage models works well within certain cutting condition.However, as we increase speed as well as feed,the experimental cutting force suddenly drops which is not predicted by using the same JC coefficients and predicted force (in ABAQUS/Expliciy) is almost 70% more compared to experimental result.
I think higher speed and feed is causing thermal softening effect which is far dominant than strain hardening at that condition.When i decreas the value of thermal softening coeffient, the predicted cutting force matches with my experimental result.
I want to know is it possible to use different values of "m" at lower and higher cutting conditions (speed and feed) for the same material if the predicted results closely match with experimental results too?




Reply | Threaded
Open this post in threaded view
|

Re: Can we modify J-C parameter thermal softening coeffient "m"

Abaqus Users mailing list
It sure is possible; but you will probably have to programm your own
hardening-routine since AFAIK, Abaqus does not allow JC parameters to
depend on temperature.


I attach a simple vuhard (with some kind of damage model) written by a
student of mine (no guarantee that it actually works, though...)


Hope this helps,


Martin.














       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)
C
       character*80 cmname
C
       double precision A, B, n, C, m, Tmelt, Troom, epsdot0, term1,
      1      term2, term3, nr, dr, epsdot, eps, theta_h, elastic_fl, k,
      1       failflg, failstr, failinit, d, Cfact, logfact, strcrit, alpha
C       if(stepTime .gt. 7.031) then
C     print *,'***enter***'
C     end if
       do 100 km = 1,nblock
          A = props(1)
          B = props(2)
          n = props(3)
          C0 = props(4)
          m = props(5)
          Tmelt = props(6)
          Troom = props(7)
          epsdot0 = props(8)
          failstr = props(9)
          k = props(10)
          strcrit = props(11)
          failflg = props(12)
          failinit = failstr - 0.5D0
          d=0.D0
          Cfact=1.D0
          alpha = 8.d0
C
          eps = eqps(km)
          epsdot = eqpsRate(km)


          nr = tempNew(km) - Troom
          dr = Tmelt - Troom
          theta_h= (nr/dr)


          if(theta_h .lt. 0.D0) then
             theta_h = 0.D0
          else if (theta_h .gt. 1.0D0) then
             theta_h = 1.0D0
          end if


          if(epsdot .lt. epsdot0) then
             epsdot = epsdot0
          end if


          if(eps .lt. 0.D0) then
             eps = 0.D0
          end if


          if(eps .eq. 0.D0) then
             tanhterm = 1.0D0
          else
             tanhterm = tanh(1.0D0/eps**k)
          end if
          if(eps .gt. strcrit) then
             Cfact=1.0D0
          else
             Cfact=1.0D0
          end if
          C=C0*Cfact
          term1 = (A + B*(eps**n))
          term2 = (1.0D0 + C*Log(epsdot/epsdot0))
          term3 = (1.0D0-(theta_h**m))
          stateNew(km,2) = C
          stateNew(km,3) = strcrit
          stateNew(km,4) = term2
C
C
          yield(km) = term1*term2*term3
c
c       WARNING: SIMPLE HARDENING FOT TEST PURPOSES!!!!!
c
          yield(km) = term1
          if( eps .le. 0.D0) then
             dyieldDeqps(km,1) = 0.D0
          else
             dyieldDeqps(km,1) = term2*term3*(B*n*(eps**(n-1.0D0)))
          end if
          if(epsdot .ge. epsdot0) then
             dyieldDeqps(km,2) = term1*term3*C/epsdot
          else
             dyieldDeqps(km,2) = 0.D0
          end if
          if ((theta_h .gt. 0D0) .and. (theta_h .lt. 1.0D0)) then
             dyieldDtemp(km) = (-1.0D0)*term1*term2
      &           *m*(theta_h**(m-1.0D0))/dr
          else
             dyieldDtemp(km) = 0.D0
          end if
          d=(eps-failinit)/(failstr-failinit)
c        Linear Damage Law
c        d = (1-Dexp(-alpha*(eps/failstr)))/(1-Dexp(-alpha))
c        Exponential Damgage Law (include alpha in the user input so it is easier to change)
          stateNew(km,5)=d
          if(abs(fieldOld(km,1)) .lt. 1.e-5) then
             if (d .lt. 1.D0) then
                yield(km) = (1.D0-d)*yield(km)
                dyieldDeqps(km,1) = (1.D0-d)*dyieldDeqps(km,1)
                dyieldDeqps(km,2) = (1.D0-d)*dyieldDeqps(km,2)
                dyieldDtemp(km) = (1.D0-d)*dyieldDtemp(km)
                stateNew(km,1)=1.d0
             else
                stateNew(km,1)= 0.d0
c              print *, "Number of element, critical strain", km, eps
                yield(km) = 0.D0
                dyieldDeqps(km,1) = 0.D0
                dyieldDeqps(km,2) = 0.D0
                dyieldDtemp(km) = 0.D0
             end if
          else
             stateNew(km,1)=1.d0
          end if
   100 continue
C
       return
       end




> Hii am facing a problem in my research that JC plasticity and damage models works well within certain cutting condition.However, as we increase speed as well as feed,the experimental cutting force suddenly drops which is not predicted by using the same JC coefficients and predicted force (in ABAQUS/Expliciy) is almost 70% more compared to experimental result.
> I think higher speed and feed is causing thermal softening effect which is far dominant than strain hardening at that condition.When i decreas the value of thermal softening coeffient, the predicted cutting force matches with my experimental result.
> I want to know is it possible to use different values of "m" at lower and higher cutting conditions (speed and feed) for the same material if the predicted results closely match with experimental results too?
>
>
>
>

>


                    Priv.-Doz. Dr. Martin Bäker
                    Institut für Werkstoffe
                    Technische Universität Braunschweig
                    Langer Kamp 8
                    38106 Braunschweig
                    Germany
                    Tel.: 00-49-531-391-3065
                    Fax   00-49-531-391-3058
                    e-mail <[hidden email]>
    http://www.tu-braunschweig.de/ifw/institut/mitarbeiter/baeker
                  http://www.scienceblogs.de/hier-wohnen-drachen


[Non-text portions of this message have been removed]


Reply | Threaded
Open this post in threaded view
|

Re: Can we modify J-C parameter thermal softening coeffient "m"

Abaqus Users mailing list
In reply to this post by Abaqus Users mailing list
Thanks Martin.I shall check the program that you sent to me.I wanted to clarify that is it possible to use one value i.e. standard value of thermal softening coefficient m for lower or conventional cutting speed and feedrates of the same material whereas other value of m which satisfy the cutting force calculations abtained through experimentation for higher speeds and feedrates?




Because one value of m does not satisfy the cutting force results for all cutting conditions of the same material, obtained through experimentation.


--------------------------------------------
On Fri, 2/3/17, Martin Baeker [hidden email] [Abaqus] <[hidden email]> wrote:


 Subject: Re: [Abaqus] Can we modify J-C parameter thermal softening coeffient "m"
 To: [hidden email]
 Date: Friday, February 3, 2017, 5:09 PM

 It sure is possible; but
 you will probably have to programm your own
 hardening-routine since AFAIK, Abaqus does not
 allow JC parameters to
 depend on
 temperature.


 I attach a simple vuhard (with some kind of
 damage model) written by a
 student of mine
 (no guarantee that it actually works, though...)


 Hope this
 helps,


 Martin.







 







        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)
 C
    
    character*80 cmname
 C
        double precision A, B, n,
 C, m, Tmelt, Troom, epsdot0, term1,
      
 1          term2, term3, nr, dr, epsdot, eps, theta_h,
 elastic_fl, k,
       1       
    failflg, failstr, failinit, d, Cfact, logfact,
 strcrit, alpha
 C   
    if(stepTime .gt. 7.031) then
 C         print
 *,'***enter***'
 C     
    end if
        do
 100 km = 1,nblock
           A =
 props(1)
           B = props(2)
           n = props(3)
  
         C0 = props(4)

           m =
 props(5)
           Tmelt = props(6)
           Troom = props(7)
           epsdot0 = props(8)
           failstr = props(9)
           k = props(10)
  
         strcrit = props(11)
        
   failflg = props(12)
          
 failinit = failstr - 0.5D0
          
 d=0.D0
           Cfact=1.D0
           alpha = 8.d0
 C
           eps =
 eqps(km)
           epsdot =
 eqpsRate(km)


           nr = tempNew(km) - Troom
           dr = Tmelt - Troom
           theta_h= (nr/dr)


        
   if(theta_h .lt. 0.D0) then
          
    theta_h = 0.D0
          
 else if (theta_h .gt. 1.0D0) then
      
        theta_h = 1.0D0
      
     end if


           if(epsdot .lt. epsdot0) then
              epsdot =
 epsdot0
           end if


        
   if(eps .lt. 0.D0) then
          
    eps = 0.D0
           end
 if


    
       if(eps .eq. 0.D0) then
        
      tanhterm = 1.0D0
      
     else
          
    tanhterm = tanh(1.0D0/eps**k)
           end if
      
     if(eps .gt. strcrit) then
        
      Cfact=1.0D0
          
 else
          
    Cfact=1.0D0
           end
 if
           C=C0*Cfact
           term1 = (A + B*(eps**n))
           term2 = (1.0D0 +
 C*Log(epsdot/epsdot0))
           term3
 = (1.0D0-(theta_h**m))
          
 stateNew(km,2) = C
          
 stateNew(km,3) = strcrit
          
 stateNew(km,4) = term2
 C
 C
           yield(km) =
 term1*term2*term3
 c
 c   
    WARNING: SIMPLE HARDENING FOT TEST
 PURPOSES!!!!!
 c
        
   yield(km) = term1
           if( eps
 .le. 0.D0) then
          
    dyieldDeqps(km,1) = 0.D0
    
       else
          
    dyieldDeqps(km,1) =
 term2*term3*(B*n*(eps**(n-1.0D0)))
      
     end if
           if(epsdot .ge.
 epsdot0) then
          
    dyieldDeqps(km,2) = term1*term3*C/epsdot
           else
        
      dyieldDeqps(km,2) = 0.D0
  
         end if
           if
 ((theta_h .gt. 0D0) .and. (theta_h .lt. 1.0D0)) then
              dyieldDtemp(km) =
 (-1.0D0)*term1*term2
       &     
      *m*(theta_h**(m-1.0D0))/dr
           else
        
      dyieldDtemp(km) = 0.D0
  
         end if
          
 d=(eps-failinit)/(failstr-failinit)
 c   
     Linear Damage Law
 c        d =
 (1-Dexp(-alpha*(eps/failstr)))/(1-Dexp(-alpha))
 c        Exponential Damgage Law (include
 alpha in the user input so it is easier to change)
           stateNew(km,5)=d
           if(abs(fieldOld(km,1)) .lt.
 1.e-5) then
              if
 (d .lt. 1.D0) then
                
 yield(km) = (1.D0-d)*yield(km)
        
         dyieldDeqps(km,1) =
 (1.D0-d)*dyieldDeqps(km,1)
            
     dyieldDeqps(km,2) = (1.D0-d)*dyieldDeqps(km,2)
                 dyieldDtemp(km) =
 (1.D0-d)*dyieldDtemp(km)
            
     stateNew(km,1)=1.d0
          
    else
                
 stateNew(km,1)= 0.d0
 c             
 print *, "Number of element, critical strain", km,
 eps
                 yield(km) =
 0.D0
                
 dyieldDeqps(km,1) = 0.D0
            
     dyieldDeqps(km,2) = 0.D0
        
         dyieldDtemp(km) = 0.D0
      
        end if
          
 else
          
    stateNew(km,1)=1.d0
      
     end if
    100 continue
 C
        return
        end




 > Hii am facing a problem in my research

 that JC plasticity and damage models works well within
 certain cutting condition.However, as we increase speed as
 well as feed,the experimental cutting force suddenly drops
 which is not predicted by using the same JC coefficients and
 predicted force (in ABAQUS/Expliciy) is almost 70% more
 compared to experimental result.
 > I
 think higher speed and feed is causing thermal softening
 effect which is far dominant than strain hardening at that
 condition.When i decreas the value of thermal softening
 coeffient, the predicted cutting force matches with my
 experimental result.
 > I want to know is
 it possible to use different values of "m" at
 lower and higher cutting conditions (speed and feed) for the
 same material if the predicted results closely match with
 experimental results too?
 >
 >
 >
 >

 >


        
             Priv.-Doz. Dr. Martin Bäker
                     Institut für
 Werkstoffe
                    
 Technische Universität Braunschweig
    
                 Langer Kamp 8
    
                 38106 Braunschweig
                     Germany
                     Tel.:
 00-49-531-391-3065
                
     Fax   00-49-531-391-3058
  
                   e-mail <[hidden email]>
             http://www.tu-braunschweig.de/ifw/institut/mitarbeiter/baeker
                   
    http://www.scienceblogs.de/hier-wohnen-drachen


 [Non-text
 portions of this message have been removed]
Reply | Threaded
Open this post in threaded view
|

Re: Can we modify J-C parameter thermal softening coeffient &quot;m&quot;

Abaqus Users mailing list
Yes, using a program like I sent you it is possible. Whether it is wise or scientifically meaningful is a different question, of course... There is a large number of modified JC-laws to get a better match between experiment and machnining simulations. Problem (as always) is how to verify them. > Thanks Martin.I shall check the program that you sent to me.I wanted to clarify that is it possible to use one value i.e. standard value of thermal softening coefficient m for lower or conventional cutting speed and feedrates of the same material whereas other value of m which satisfy the cutting force calculations abtained through experimentation for higher speeds and feedrates? > > > > > Because one value of m does not satisfy the cutting force results for all cutting conditions of the same material, obtained through experimentation. > > >
Reply | Threaded
Open this post in threaded view
|

Re: Can we modify J-C parameter thermal softening coeffient "m"

ben2oeb
can you help me to simulate orhogonal cutting