doc:user:elements:volumes:yield_stress
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
doc:user:elements:volumes:yield_stress [2020/07/08 09:43] – papeleux | doc: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) | + | S0 = \sqrt{3} \; KK (\sqrt{3} |
$$ | $$ | ||
* 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 : | ||
+ | < | ||
+ | |||
+ | class MyYieldStress(PythonYieldStress): | ||
+ | def __init__(self, | ||
+ | print(" | ||
+ | PythonYieldStress.__init__(self, | ||
+ | self.svm0 = _svm0 | ||
+ | self.h | ||
+ | self.K | ||
+ | self.m | ||
+ | def __del__(self): | ||
+ | print(" | ||
+ | print(" | ||
+ | input('' | ||
+ | exit(1) | ||
+ | def getYieldStress(self, | ||
+ | #print " | ||
+ | if dTime > 0.0: | ||
+ | dEvpl = deltaEvpl/ | ||
+ | else: | ||
+ | dEvpl = 0.0 | ||
+ | sigH = self.svm0+evpl*self.h | ||
+ | sigV = self.K*pow(dEvpl, | ||
+ | # | ||
+ | return sigH+sigV | ||
+ | def getYieldHardening(self, | ||
+ | if dTime > 0.0: | ||
+ | dEvpl = deltaEvpl/ | ||
+ | h = self.h + (self.K*pow(dEvpl, | ||
+ | else: | ||
+ | dEvpl = 0.0 | ||
+ | h = self.h | ||
+ | return h | ||
+ | </ | ||
doc/user/elements/volumes/yield_stress.1594194190.txt.gz · Last modified: 2020/07/08 09:43 by papeleux