jaxmat.materials.plastic_surfaces module#

safe_zero(method)[source]#

Decorator for yield surfaces to avoid NaNs for zero stress in both fwd and bwd AD.

class AbstractPlasticSurface[source]#

Bases: Module

Abstract plastic surface class.

normal(sig, *args)[source]#

Normal to the yield surface. Computed automatically using forward AD on __call__().

Parameters:
  • sig (SymmetricTensor2) – Stress tensor.

  • args – Additional thermodynamic forces entering the yield surface definition.

class vonMises[source]#

Bases: AbstractPlasticSurface

von Mises yield surface

\[\sqrt{\dfrac{3}{2}\bs:\bs}\]

where \(\bs = \dev(\bsig)\)

class DruckerPrager[source]#

Bases: AbstractPlasticSurface

Drucker-Prager yield surface

\[\alpha I_1 + \sqrt{J_2}\]

where \(I_1=\tr(\bsig)\) is the first stress invariant, \(J_2=\dfrac{1}{2}\bs:\bs\) is the second deviatoric invariant and \(\alpha\) a material constant describing the slope of the conic yield surface (friction effects).

Parameters:

alpha (float) – Pressure sensitivity parameter

alpha: float#
class Hosford[source]#

Bases: AbstractPlasticSurface

Hosford yield surface

\[\left(\dfrac{1}{2}(\lvert\sigma_\text{I}-\sigma_\text{II}\rvert^a + \lvert\sigma_\text{II}-\sigma_\text{III}\rvert^a + \lvert\sigma_\text{I}-\sigma_\text{III}\rvert^a)\right)^{1/a}\]

with \(\sigma_\text{I}\) being the stress principal values.

Parameters:

a (float) – Hosford shape parameter

a: float = 2.0#
class Tresca[source]#

Bases: AbstractPlasticSurface

Tresca yield surface

\[\max_{\text{I},\text{J}}|\sigma_\text{I}-\sigma_\text{J}|\]

with \(\sigma_\text{I}\) being the stress principal values.