Processing math: 100%

Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:elements:volumes:isohard

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=EETEET, where E is the Young's modulus and ET the tangent modulus.

SaturatedIsotropicHardening

Description

Saturated isotropic hardening

σvm=σel+Q(1exp(ξˉε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(1exp(ξ1ˉεvp))+Q2(1exp(ξ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=(P2P1)(1exp(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=σelf(ˉε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)(1P3exp(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(1exp(¯ε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β[1exp(βˉε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
doc/user/elements/volumes/isohard.txt · Last modified: 2020/07/08 10:16 by papeleux

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki