Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:elements:volumes:yield_stress

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:user:elements:volumes:yield_stress [2020/07/08 09:43] papeleuxdoc:user:elements:volumes:yield_stress [2020/07/08 10:27] (current) – [SellarsTeggartYieldStress] papeleux
Line 300: Line 300:
  
  
-===== SellarsTeggartYieldStress=====+===== SellarsTeggartYieldStress =====
  
 Yield Stress used for hot rolling defined by  : Yield Stress used for hot rolling defined by  :
   * a Static term :    * a Static term : 
 $$ $$
-S0 = \sqrt(3 \; KK (\sqrt(3 \;\bar{\varepsilon}^{vp})^{M0}+S0 = \sqrt{3 \; KK (\sqrt{3 \;\bar{\varepsilon}^{vp})^{M0}
 $$ $$
   * a Dynamic Term :    * a Dynamic Term : 
 $$ $$
-Ss = As  \; asinh(\frac{\dot{\bar{\varepsilon}}^{vp}}{Zs})^{Ms}+Ss = As  \; asinh((\frac{\dot{\bar{\varepsilon}}^{vp}}{Zs})^{Ms})
 $$ $$
   * for the Yield Stress computed by :    * for the Yield Stress computed by : 
Line 328: Line 328:
  
  
 +===== PythonYieldStress =====
 +
 +User defined Yield Stress by a pythonDirector :
 +Python Director allows user to define their own Yield Stress law. Four functions has to be defined in the Python Class : a constructor (__init__), a destructor (__del__) that must never be called, and the computation functions : getYieldStress (returning YieldStress) and getYieldHardening (returning h).
 +See the example below of a Perzyna law : 
 +<code>
 +
 +class MyYieldStress(PythonYieldStress):
 +    def __init__(self, _no, _svm0, _h, _K, _m):
 +        print("MyYieldStress: __init__")
 +        PythonYieldStress.__init__(self,_no)
 +        self.svm0 = _svm0
 +        self.h    = _h
 +        self.K    = _K
 +        self.m    = _m        
 +    def __del__(self):
 +        print("MyIsoH : __del__")
 +        print("callToDestructor of MyYieldStress not allowed. Add MyIsoH.__disown__()")
 +        input('')
 +        exit(1)
 +    def getYieldStress(self, evpl, deltaEvpl, dTime, yieldGPState, pLaw):
 +        #print "MyYieldStress compute Yield Stress"
 +        if dTime > 0.0:
 +            dEvpl = deltaEvpl/dTime
 +        else:
 +            dEvpl = 0.0
 +        sigH = self.svm0+evpl*self.h
 +        sigV = self.K*pow(dEvpl, self.m)
 +        #yieldGPState.setVpStress(sigV)
 +        return sigH+sigV
 +    def getYieldHardening(self, epl, deltaEvpl, dTime, yieldGPState, pLaw) :
 +        if dTime > 0.0:
 +            dEvpl = deltaEvpl/dTime
 +            h = self.h + (self.K*pow(dEvpl, self.m-1))/dTime
 +        else:
 +            dEvpl = 0.0
 +            h = self.h
 +        return h
 +</code>
  
doc/user/elements/volumes/yield_stress.1594194190.txt.gz · Last modified: 2020/07/08 09:43 by papeleux

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki