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: by papeleux
