Loading [MathJax]/jax/output/CommonHTML/jax.js

Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:elements:volumes:yield_stress

Yield Stress

The class YieldStress manages the yield stress used in the plastic criterion, whether plastic (isotropic hardening), visco-plastic (Perzyna as additive, Cowper-Symonds as multiplicative or ZerilliArmstrong, JohnsonCook, … as flow stress models)

σyield=σyield(ˉεvp,˙ˉεvp,grainSize,...)

The laws implemented in Metafor are described below

IsotropicHardening

In order to simplify most of the test cases, the IsotropicHardening classes (Isotropic hardening) derive from the YieldStress class.

σyield=σisoHard(ˉεvp) Consequently, isotropic hardening is directly referred in the material as a YieldStress.

GsIsoHYieldStress

Yield Stress defined by an isotropic hardening:

σyield=σisoHard(ˉεvp)+σgrainSize(ˉεvp,˙ˉεvp,grainSize)

Parameters

Name Metafor Code Dependency
Number of the isotropic hardening law IH_NUM
Number of the grain size evolution law GS_NUM

PerzynaYieldStress

Yield Stress defined by an isotropic hardening and a visco-plastic Perzyna yield stress:

σyield=σisoHard(ˉεvp)+K(˙ˉεvp)M(ˉεvp)N

Parameters

Name Metafor Code Dependency
Number of the isotropic hardening law IH_NUM
K PERZYNA_K TM/TO
M PERZYNA_M TM/TO
N PERZYNA_N TM/TO

GsPerzynaYieldStress

Yield Stress defined by an isotropic hardening, a visco-plastic Perzyna yield stress and a “grain size” stress:

σyield=σisoHard(ˉεvp)+K(˙ˉεvp)M(ˉεvp)N+σgrainSize(ˉεvp,˙ˉεvp,grainSize)

Parameters

Name Metafor Code Dependency
Number of the isotropic hardening law IH_NUM
Number of the grain size evolution law GS_NUM
K PERZYNA_K TM/TO
M PERZYNA_M TM/TO
N PERZYNA_N TM/TO

JohnsonCookYieldStress

Johnson-Cook visco-plastic law:

σyield=(A+B(ˉεvp)n)(1+Cln(˙ˉεvp˙ε0)+C2(ln(˙ˉεvp˙ε0))2)(1(TTroomTmeltTroom)m)

Parameters

Name Metafor Code Dependency
A JC_A TM/TO
B JC_B TM/TO
n JC_N TM/TO
m JC_M TM/TO
Room temperature Troom JC_TROOM TM/TO
Melting temperature Tmelt JC_TMELT TM/TO
C JC_C TM/TO
C2 JC_C2 TM/TO
˙ε0 JC_EPSP0 TM/TO

JohnsonCookMecYieldStress

Isotherm version of the Johnson-Cook visco-plastic law :

σyield=(A+B(ˉεvp)n)(1+Cln(˙ˉεvp˙ε0)+C2(ln(˙ˉεvp˙ε0))2)

Parameters

Name Metafor Code Dependency
A JC_A TM/TO
B JC_B TM/TO
n JC_N TM/TO
C JC_C TM/TO
C2 JC_C2 TM/TO
˙ε0 JC_EPSP0 TM/TO

PowJohnsonCookYieldStress

Power version of the Johnson-Cook visco-plastic law (PP implementation):

σyield=(A+B(ˉεvp)n)(1+˙ˉεvp˙ε0)C(1(TTroomTmeltTroom)m)

Parameters

Name Metafor Code Dependency
A JC_A TM/TO
B JC_B TM/TO
n JC_N TM/TO
m JC_M TM/TO
Room temperature Troom JC_TROOM TM/TO
Melting temperature Tmelt JC_TMELT TM/TO
C JC_C TM/TO
˙ε0 JC_EPSP0 TM/TO

ZerilliArmstrongYieldStress

Zerilli-Armstong visco-plastic law:

σyield=σ0+C5(ˉεvp)n1+C2(ˉεvp)n2exp(C3T+C4Tln˙ˉεvp)

For FCC metals, C5=0. For BCC metals, n2=0.

:!: Careful: this law is thermomechanical, and the temperature is the absolute one. To have proper results, finite elements must be thermomechanical, and so must be the integration scheme.

Parameters

Name Metafor Code Dependency
σ0 ZA_SIGMA0 TM/TO
C5 ZA_C5 TM/TO
n1 ZA_N1 TM/TO
C2 ZA_C2 TM/TO
n2 ZA_N2 TM/TO
C3 ZA_C3 TM/TO
C4 ZA_C4 TM/TO

CowperSymondsYieldStress

Cowper-Symonds visco-plastic law.

σyield=σ0(1+(˙¯εvpD)1p)

where σ0 is the static yield stress, whose evolution is often given by a piecewise linear function.

Parameters

Name Metafor Code Dependency
Number of the hardening law IH_NUM
D CS_D TM/TO
p CS_P TM/TO

ViscoKocksMeckingYieldStress

Description

Visco-plastic extension of the “Kocks-Mecking” isotropic hardening law.

σy=σ0y+σv[1exp(Θ0σvˉεvp)]siσyσtry

σy=σtry+ΘIV(ˉεvpˉεvptr)siσy>σtry

where σtry is a transition yield stress, computed to guarantee continuity between both phases:

σtry=σ0y+σv(Θ0ΘIV)Θ0

and where ˉεvptr is the corresponding plastic strain:

ˉεvptr=σvΘ0ln(Θ0ΘIV)

The viscous component of the yield stress is hidden in the calculation of the saturation stress:

σv=σv0(˙ˉεvp˙ˉεvp0)(kTA)

k : Boltzman's constant = 1.381e23J/K

T : Temperature K (CAREFUL in Kelvin : requires the definition of the temperature in the material)

A : Activation energy (material constant)

˙ˉεvp0 : reference plastic strain rate (= 1.e7)

Parameters

Name Metafor Code Dependency
σ0 IH_SIGMA0 TM/TO
Θ0 KM_THETA0 TM/TO
ΘIV KM_THETA4 TM/TO
σv0 KM_SIGV0 -
˙ˉεvp0 KM_DEVPL0 -
k : Boltzman's constant KM_BOLTZMANN -
A KM_A -

ViscoKocksMecking2YieldStress

Description

Second visco-plastic extension of the “Kocks-Mecking” isotropic hardening law, to match the Ta6V better.

No fourth step

The basic equation is still: σy=σ0y+σv[1exp(Θ0σvˉεvp)]

Both plastic strain rate and temperature dependency are hidden in the calculation of the Voce stress σv. If this Voce stress is plotted as a function of the g parameter, defined as:

g=kTμb3ln(˙ˉεvp0˙ˉεvp)

where

b : is the norm of the Burgers vector
k : is the Boltzmann's constant
(for Ta6V, kb3 1.135, in “Mpa”)
T : Temperature K (CAREFUL in Kelvin : requires the definition of the temperature in the material)
μ : Elastic shear modulus of the material (requires a new definition of Young's modulus and Poisson ratio in the KM2 law!!!)
˙ˉεvp0: reference plastic strain rate (= 1.e7)

the following figure is obtained:

KocksMecking usually predicts a linear evolution (KM data). However, the Ta6V trial data are the colored dots. The evolution is more in broken lines, defined as follow:

G12 and G23 are defined as the transition values between the three areas:

σvμ=A1g+B1sig<G12σvμ=A2g+B2siG12<g<G23σvμ=A3g+B3siG23<g

Finally, the apparition of plasticity was observed to depend on strain rate and temperature (here, the temperature dependency is explicitly defined, but it could be done implicitly):

σ0=A+BT+(C+DT)ln(˙ˉεvp)

Parameters

Name Metafor Code Dependency
A IH_SIGEL_A -
B IH_SIGEL_B -
C IH_SIGEL_C -
D IH_SIGEL_D -
A1 KM2_SIGVOCE_A1 -
B1 KM2_SIGVOCE_B1 -
G12 KM2_SIGVOCE_G12 -
A2 KM2_SIGVOCE_A2 -
B2 KM2_SIGVOCE_B2 -
G23 KM2_SIGVOCE_G23 -
A3 KM2_SIGVOCE_A3 -
B3 KM2_SIGVOCE_B3 -
kb3 KM2_BOLTZMANN_BURGER3 -
Young's Modulus KM2_ELASTIC_MODULUS -
Poisson ratio KM2_POISSON_RATIO -
Θ0 KM_THETA0 TM/TO
˙ˉεvp0 KM_DEVPL0 -

SellarsTegartYieldStress

Yield Stress used for hot rolling defined by :

  • a viscous power term :

S0=3KK(3˙ˉεvp)M0

  • a viscous asinh Term :

Ss=Asasinh((˙ˉεvpZs)Ms)

  • for the Yield Stress computed by (using a Voce hardening term):

σyield=S0+(SsS0)(1eCˉεvp)R

Parameters

Name Metafor Code Dependency
KK SELLARSTEGART_KK TM/TO
M0 SELLARSTEGART_M0 TM/TO
As SELLARSTEGART_AS TM/TO
Zs SELLARSTEGART_MS TM/TO
Ms SELLARSTEGART_ZS TM/TO
C SELLARSTEGART_R TM/TO
R SELLARSTEGART_C TM/TO

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, _no, _svm0, _h, _K, _m):
        print("MyYieldStress: __init__")
        PythonYieldStress.__init__(self,_no)
        self.svm0 = _svm0
        self.h    = _h
        self.K    = _K
        self.m    = _m        
    def __del__(self):
        print("MyIsoH : __del__")
        print("callToDestructor of MyYieldStress not allowed. Add MyIsoH.__disown__()")
        input('')
        exit(1)
    def getYieldStress(self, evpl, deltaEvpl, dTime, yieldGPState, pLaw):
        #print "MyYieldStress compute Yield Stress"
        if dTime > 0.0:
            dEvpl = deltaEvpl/dTime
        else:
            dEvpl = 0.0
        sigH = self.svm0+evpl*self.h
        sigV = self.K*pow(dEvpl, self.m)
        #yieldGPState.setVpStress(sigV)
        return sigH+sigV
    def getYieldHardening(self, epl, deltaEvpl, dTime, yieldGPState, pLaw) :
        if dTime > 0.0:
            dEvpl = deltaEvpl/dTime
            h = self.h + (self.K*pow(dEvpl, self.m-1))/dTime
        else:
            dEvpl = 0.0
            h = self.h
        return h
doc/user/elements/volumes/yield_stress.txt · Last modified: 2025/03/11 16:56 by papeleux

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki