−Table of Contents
Isotropic hardening
The IsotropicHardening
class manages all isotropic hardening laws in Metafor, which are described below.
LinearIsotropicHardening
Description
Linear isotropic hardening
σvm=σel+hˉεvp
Parameters
Name | Metafor Code | Dependency |
---|---|---|
Initial yield stress σel | IH_SIGEL | TM/TO |
Plastic Modulus h | IH_H | TM/TO |
NB: the plastic modulus is defined as h=EETE−ET, where E is the Young's modulus and ET the tangent modulus.
SaturatedIsotropicHardening
Description
Saturated isotropic hardening
σvm=σel+Q(1−exp(−ξˉεvp))
Parameters
Name | Metafor Code | Dependency |
---|---|---|
Initial yield stress σel | IH_SIGEL | TM/TO |
Q | IH_Q | TM/TO |
ξ | IH_KSI | TM/TO |
DoubleSaturatedIsotropicHardening
Description
Double saturated isotropic hardening
σvm=σel+Q1(1−exp(−ξ1ˉεvp))+Q2(1−exp(−ξ2ˉεvp))
Parameters
Name | Metafor Code | Dependency |
---|---|---|
Initial yield stress σel | IH_SIGEL | TM/TO |
Q1 | IH_Q1 | TM/TO |
ξ1 | IH_KSI1 | TM/TO |
Q2 | IH_Q2 | TM/TO |
ξ2 | IH_KSI2 | TM/TO |
RambergOsgoodIsotropicHardening
Description
Ramberg-Osgood isotropic hardening
σvm=σel(1+Aˉεvp)1n
Parameters
Name | Metafor Code | Dependency |
---|---|---|
Initial yield stress σ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)
σvm=σel+B(ˉεvp)n
Parameters
Name | Metafor Code | Dependency |
---|---|---|
Initial yield stress σel | IH_SIGEL | TM/TO |
B | IH_B | TM/TO |
n | IH_N | TM/TO |
KrupkowskyIsotropicHardening
Description
Krupkowski isotropic hardening
σvm=K(ˉεvp0+ˉεvp)n
Parameters
Name | Metafor Code | Dependency |
---|---|---|
Initial equivalent plastic strain ˉεvp0 | 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.
σvm=(P2−P1)(1−exp(−P3ˉεvp))+P4(ˉεvp)P5+ +P1(1+P6ˉεvp)P7+P8ˉεvp
Parameters
Name | Metafor Code | Dependency |
---|---|---|
P1 | IH_P1 | TM/TO |
P2 | IH_P2 | TM/TO |
P3 | IH_P3 | TM/TO |
P4 | IH_P4 | TM/TO |
P5 | IH_P5 | TM/TO |
P6 | IH_P6 | TM/TO |
P7 | IH_P7 | TM/TO |
P8 | IH_P8 | TM/TO |
FunctIsotropicHardening
Description
Piecewise linear isotropic hardening. A function is associated to the yield stress.
σvm=σel∗f(ˉεvp)
Parameters
Name | Metafor Code | Dependency |
---|---|---|
Initial yield stress σel | IH_SIGEL | IF_EPL |
An Functions y=f(t) must be associated to IH_SIGEL
(depending on Field(IF_EPL)
).
PowerIsotropicHardening
Description
σvm=P1[P2σvm+P3¯εvp]P4
This law is integrated with an iterative method.
Parameters
Name | Metafor Code | Dependency |
---|---|---|
P1 | IH_P1 | TM/TO |
P2 | IH_P2 | TM/TO |
P3 | IH_P3 | TM/TO |
P4 | IH_P4 | TM/TO |
AutesserreIsotropicHardening
Description
“Smatch” isotropic hardening.
σvm=(P1+P2¯εvp)(1−P3exp(−P4¯εvp))+P5
Parameters
Name | Metafor Code | Dependency |
---|---|---|
P1 | IH_P1 | TM/TO |
P2 | IH_P2 | TM/TO |
P3 | IH_P3 | TM/TO |
P4 | IH_P4 | TM/TO |
P5 | IH_P5 | TM/TO |
GoijaertsIsotropicHardening
Description
“Goijaerts” isotropic hardening
σvm=σel+M1(1−exp(−¯εvpM2))+M3√¯εvp+M4¯εvp
Parameters
Name | Metafor Code | Dependency |
---|---|---|
M1 | IH_M1 | TM/TO |
M2 | IH_M2 | TM/TO |
M3 | IH_M3 | TM/TO |
M4 | IH_M4 | TM/TO |
KocksMeckingIsotropicHardening
Description
“Kocks-Mecking” isotropic hardening
σy=σ0y+Θ0β[1−exp(−βˉεvp)]siˉεvp<ˉεvptr
σy=σtry+ΘIV(ˉεvp−ˉεvptr)siˉεvp>ˉεvptr
where the transition yield stress between stages 3 and 4 is defined as
σtry=σ0y+Θ0−ΘIVβ
and the corresponding yield strain as
ˉεvptr=1βln(Θ0ΘIV)
Parameters
Name | Metafor Code | Dependency |
---|---|---|
σ0 | IH_SIGEL | TM/TO |
β | KM_BETA | TM/TO |
Θ0 | KM_THETA0 | TM/TO |
Θ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