====== Isotropic hardening ====== The ''IsotropicHardening'' class manages all isotropic hardening laws in Metafor, which are described below. ===== LinearIsotropicHardening ===== === Description === Linear isotropic hardening $$ \sigma_{vm} = \sigma^{el} + h\, \bar{\varepsilon}^{vp} $$ === Parameters === ^ Name ^ Metafor Code ^ Dependency ^ |Initial yield stress $\sigma^{el}$ | ''IH_SIGEL'' | ''TM/TO'' | |Plastic Modulus $h $ | ''IH_H'' | ''TM/TO'' | **NB**: the plastic modulus is defined as $h = \frac{E E_T}{E - E_T} $, where $E$ is the Young's modulus and $E_T$ the tangent modulus. ===== SaturatedIsotropicHardening ===== === Description === Saturated isotropic hardening $$ \sigma_{vm} = \sigma^{el} + Q\left(1-\exp\left(-\xi \bar{\varepsilon}^{vp}\right)\right) $$ === Parameters === ^ Name ^ Metafor Code ^ Dependency ^ |Initial yield stress $\sigma^{el}$ | ''IH_SIGEL'' | ''TM/TO'' | |$Q $ | ''IH_Q'' | ''TM/TO'' | |$\xi$ | ''IH_KSI'' | ''TM/TO'' | ===== DoubleSaturatedIsotropicHardening ===== === Description === Double saturated isotropic hardening $$ \sigma_{vm} = \sigma^{el} + Q_1\left(1-\exp\left(-\xi_1 \bar{\varepsilon}^{vp}\right)\right) + Q_2\left(1-\exp\left(-\xi_2 \bar{\varepsilon}^{vp}\right)\right) $$ === Parameters === ^ Name ^ Metafor Code ^ Dependency ^ |Initial yield stress $\sigma^{el}$ | ''IH_SIGEL'' | ''TM/TO'' | |$Q_1$ | ''IH_Q1'' | ''TM/TO'' | |$\xi_1$ | ''IH_KSI1'' | ''TM/TO'' | |$Q_2$ | ''IH_Q2'' | ''TM/TO'' | |$\xi_2$ | ''IH_KSI2'' | ''TM/TO'' | ===== RambergOsgoodIsotropicHardening ===== === Description === Ramberg-Osgood isotropic hardening $$ \sigma_{vm} = \sigma^{el} \left(1+A\, \bar{\varepsilon}^{vp}\right)^{\frac{1}{n}} $$ === Parameters === ^ Name ^ Metafor Code ^ Dependency ^ |Initial yield stress $\sigma^{el}$ | ''IH_SIGEL'' | ''TM/TO'' | |$A $ | ''IH_A'' | ''TM/TO'' | |$n $ | ''IH_N'' | ''TM/TO'' | ===== SwiftIsotropicHardening ===== === Description === Swift isotropic hardening (a more common formulation of Ramberg - Osgood) $$ \sigma_{vm} = \sigma^{el} +B \left(\bar{\varepsilon}^{vp}\right)^{n} $$ === Parameters === ^ Name ^ Metafor Code ^ Dependency ^ |Initial yield stress $\sigma^{el}$ | ''IH_SIGEL'' | ''TM/TO'' | |$B $ | ''IH_B'' | ''TM/TO'' | |$n $ | ''IH_N'' | ''TM/TO'' | ===== KrupkowskyIsotropicHardening ===== === Description === Krupkowski isotropic hardening $$ \sigma_{vm} = K \left(\bar{\varepsilon}^{vp}_{0} + \bar{\varepsilon}^{vp}\right)^{n} $$ === Parameters === ^ Name ^ Metafor Code ^ Dependency ^ | Initial equivalent plastic strain $\bar{\varepsilon}^{vp}_{0}$ | ''IH_EVPL0'' | ''TM/TO'' | | strength coefficient $K$ | ''IH_K'' | ''TM/TO'' | | strain hardening exponent $n$ | ''IH_N'' | ''TM/TO'' | ===== Nl8pIsotropicHardening ===== === Description === Nonlinear isotropic hardening with 8 parameters. First one implemented, can be used to do almost everything. $$ \sigma_{vm} = \left(P_2-P_1\right) \left(1-\exp\left(-P_3\bar{\varepsilon}^{vp}\right)\right) + P_4\left(\bar{\varepsilon}^{vp}\right)^{P_5} + $$ $$ + P_1\left(1+P_6\bar{\varepsilon}^{vp}\right)^{P_7} + P_8\bar{\varepsilon}^{vp} $$ === Parameters === ^ Name ^ Metafor Code ^ Dependency ^ |$P_1$ | ''IH_P1'' | ''TM/TO'' | |$P_2$ | ''IH_P2'' | ''TM/TO'' | |$P_3$ | ''IH_P3'' | ''TM/TO'' | |$P_4$ | ''IH_P4'' | ''TM/TO'' | |$P_5$ | ''IH_P5'' | ''TM/TO'' | |$P_6$ | ''IH_P6'' | ''TM/TO'' | |$P_7$ | ''IH_P7'' | ''TM/TO'' | |$P_8$ | ''IH_P8'' | ''TM/TO'' | ===== FunctIsotropicHardening ===== === Description === Piecewise linear isotropic hardening. A function is associated to the yield stress. $$ \sigma_{vm} = \sigma^{el} \, * \, f\left(\bar{\varepsilon}^{vp}\right) $$ === Parameters === ^ Name ^ Metafor Code ^ Dependency ^ |Initial yield stress $\sigma^{el}$ | ''IH_SIGEL'' | ''IF_EPL'' | An [[doc:user:general:fonctions]] must be associated to ''IH_SIGEL'' (depending on ''Field(IF_EPL)''). ===== PowerIsotropicHardening ===== === Description === $$ \sigma_{vm}= P_1 \left[ P_2 \sigma_{vm} + P_3 \overline{\varepsilon}^{vp} \right] ^{P_4} $$ This law is integrated with an iterative method. === Parameters === ^ Name ^ Metafor Code ^ Dependency ^ |$P_1$ | ''IH_P1'' | ''TM/TO'' | |$P_2$ | ''IH_P2'' | ''TM/TO'' | |$P_3$ | ''IH_P3'' | ''TM/TO'' | |$P_4$ | ''IH_P4'' | ''TM/TO'' | ===== AutesserreIsotropicHardening ===== === Description === "Smatch" isotropic hardening. $$ \sigma_{vm}= \left( P_1 + P_2 \overline{\varepsilon}^{vp} \right) \left( 1 - P_3 \exp \left( -P_4 \overline{\varepsilon}^{vp} \right) \right) + P_5 $$ === Parameters === ^ Name ^ Metafor Code ^ Dependency ^ |$P_1$ | ''IH_P1'' | ''TM/TO'' | |$P_2$ | ''IH_P2'' | ''TM/TO'' | |$P_3$ | ''IH_P3'' | ''TM/TO'' | |$P_4$ | ''IH_P4'' | ''TM/TO'' | |$P_5$ | ''IH_P5'' | ''TM/TO'' | ===== GoijaertsIsotropicHardening ===== === Description === "Goijaerts" isotropic hardening $$ \sigma_{vm}= \sigma_{el} + M_1 \left( 1-\exp(-\frac{\overline{\varepsilon}^{vp}}{M_2})\right) + M_3 \sqrt{\overline{\varepsilon}^{vp}} + M_4 \overline{\varepsilon}^{vp} $$ === Parameters === ^ Name ^ Metafor Code ^ Dependency ^ |$M_1$ | ''IH_M1'' | ''TM/TO'' | |$M_2$ | ''IH_M2'' | ''TM/TO'' | |$M_3$ | ''IH_M3'' | ''TM/TO'' | |$M_4$ | ''IH_M4'' | ''TM/TO'' | ===== KocksMeckingIsotropicHardening ===== === Description === "Kocks-Mecking" isotropic hardening $$ \sigma_{y} = \sigma_{y}^{0} + \frac{\Theta_{0}}{\beta} [ 1-exp(-\beta \bar{\varepsilon}^{vp}) ] \;\;\; si \;\;\; \bar{\varepsilon}^{vp} < \bar{\varepsilon}^{vp}_{tr} $$ $$ \sigma_{y} = \sigma_{y}^{tr} + \Theta_{IV} \left( \bar{\varepsilon}^{vp} - \bar{\varepsilon}^{vp}_{tr}\right) \;\;\; si \;\;\; \bar{\varepsilon}^{vp} >\bar{\varepsilon}^{vp}_{tr} $$ where the transition yield stress between stages 3 and 4 is defined as $$ \sigma_{y}^{tr} = \sigma_{y}^{0} + \frac{\Theta_{0}-\Theta_{IV}}{\beta} $$ and the corresponding yield strain as $$ \bar{\varepsilon}^{vp}_{tr} = \frac{1}{\beta} \ln \left(\frac{\Theta_{0}}{\Theta_{IV}}\right) $$ === Parameters === ^ Name ^ Metafor Code ^ Dependency ^ |$\sigma_0$ | ''IH_SIGEL'' | ''TM/TO'' | |$\beta$ | ''KM_BETA'' | ''TM/TO'' | |$\Theta_{0}$ | ''KM_THETA0'' | ''TM/TO'' | |$\Theta_{IV}$ | ''KM_THETA4'' | ''TM/TO'' | ===== Python ===== User defined Isotropic Hardening by a pythonDirector : Python Director allows user to define their own Isotropic Hardening law. Five functions has to be defined in the Python Class : * a constructor (__init__), * a destructor (__del__) that must never be called, * computeSvm (epl, pLaw) * computeH (epl, pLaw) * computePotential (epl, pLaw) for hyperElastics models See the example below of a Linear Isotropic Hardening : class MyIsoH(PythonIsotropicHardening): def __init__(self, _no, _svm0, _h): print("MyIsoH : __init__") PythonIsotropicHardening.__init__(self,_no) self.svm0 = _svm0 self.h = _h print("no = ", _no) print("self.svm0 = ", self.svm0) print("self.h = ", self.h) print("MyIsoH : __init__ finished") print("computeSvm(0.0) = " , self.computeSvm(0.0, None)) def __del__(self): print("MyIsoH : __del__") print("callToDestructor of MyIsoH not allowed. Add MyIsoH.__disown__()") input('') exit(1) def computeSvm(self, epl, pLaw) : #print "MyIsoH compute SVM" return self.svm0+epl*self.h def computeH(self, epl, pLaw) : #print "MyIsoH compute H" return self.h def computePotential(self, epl, pLaw) : #print "MyIsoH compute Potential" return (self.svm0+self.h*epl*0.5)*epl