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 revisionBoth sides next revision
doc:user:elements:volumes:yield_stress [2020/07/08 09:43] papeleuxdoc:user:elements:volumes:yield_stress [2020/07/08 10:09] – [SellarsTeggartYieldStress] papeleux
Line 300: Line 300:
  
  
-===== SellarsTeggartYieldStress=====+===== SellarsTeggartYieldStress =====
  
 Yield Stress used for hot rolling defined by  : Yield Stress used for hot rolling defined 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 MyIsoH not allowed. Add MyIsoH.__disown__()")
 +        input('')
 +        exit(1)
 +    def getYieldStress(self, evpl, deltaEvpl, dTime, yieldGPState, pLaw):
 +        #print "MyIsoH compute SVM"
 +        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.txt · Last modified: 2020/07/08 10:27 by papeleux

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki