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 [2025/03/11 16:56] (current) – [SellarsTeggartYieldStress] papeleux | ||
---|---|---|---|
Line 300: | Line 300: | ||
- | ===== SellarsTeggartYieldStress===== | + | ===== SellarsTegartYieldStress |
Yield Stress used for hot rolling defined by : | Yield Stress used for hot rolling defined by : | ||
- | * a Static | + | * a viscous power term : |
$$ | $$ | ||
- | S0 = \sqrt(3) \; KK (\sqrt(3) | + | S0 = \sqrt{3} \; KK (\sqrt{3} \;\dot{\bar{\varepsilon}}^{vp})^{M0} |
$$ | $$ | ||
- | * a Dynamic | + | * a viscous asinh 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 (using a Voce hardening term): |
$$ | $$ | ||
\sigma_{yield} | \sigma_{yield} | ||
Line 319: | Line 319: | ||
^ Name | ^ Name | ||
- | |$KK $ | + | |$KK $ |
- | |$M0 $ | + | |$M0 $ |
- | |$As $ | + | |$As $ |
- | |$Zs $ | + | |$Zs $ |
- | |$Ms $ | + | |$Ms $ |
- | |$C $ | '' | + | |$C $ | '' |
- | |$R $ | '' | + | |$R $ | '' |
+ | ===== 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