Skip to content

Isotropic Plasticity Plane Strain

Bases: IsotropicElasticityPlaneStrain

Isotropic elastoplastic material for plane strain problems.

This class extends IsotropicElasticityPlaneStrain to incorporate isotropic plasticity with a von Mises yield criterion under the plane strain constraint.

Parameters:

  • E (Tensor | float) –

    Young's modulus. Shape: () for a scalar or (N,) for a batch of materials.

  • nu (Tensor | float) –

    Poisson's ratio. Shape: () for a scalar or (N,) for a batch of materials.

  • sigma_f (Callable) –

    Yield stress function \(\sigma_f(q)\).

  • sigma_f_prime (Callable) –

    Derivative \(\sigma_f'(q)\).

  • tolerance (float, default: 1e-05 ) –

    Convergence tolerance. Default is 1e-5.

  • max_iter (int, default: 10 ) –

    Maximum Newton iterations. Default is 10.

  • rho (Tensor | float, default: 1.0 ) –

    Mass density. Default is 1.0.

Notes
  • Small-strain assumption with plane strain condition.
  • Two internal state variables (n_state = 2): equivalent plastic strain \(q\) and out-of-plane plastic strain \(\varepsilon_z^p\).
  • Supports batched/vectorized material parameters.

vectorize(n_elem)

Returns a vectorized copy of the material for n_elem elements.

Parameters:

  • n_elem (int) –

    Number of elements to vectorize the material for.

Returns:

step(H_inc, F, stress, state, de0, cl, iter)

Performs a strain increment with the plane strain return-mapping algorithm.

The return mapping expands the in-plane stress to a full 3D tensor with the out-of-plane stress $$ \sigma_{zz} = \nu (\sigma_{xx} + \sigma_{yy}) - E \, \varepsilon_z^p $$ and performs the deviatoric yield check and radial return in 3D.

Parameters:

  • H_inc (Tensor) –

    Incremental displacement gradient. Shape: (..., 2, 2), where ... represents batch dimensions.

  • F (Tensor) –

    Current deformation gradient. Shape: (..., 2, 2), same as H_inc.

  • stress (Tensor) –

    Current Cauchy stress tensor. Shape: (..., 2, 2).

  • state (Tensor) –

    Internal state variables, here: equivalent plastic strain and stress in the third direction. Shape: (..., 2).

  • de0 (Tensor) –

    External small strain increment (e.g., thermal). Shape: (..., 2, 2).

  • cl (Tensor) –

    Characteristic lengths. Shape: (..., 1).

  • iter (int) –

    Current iteration number.

Returns:

  • tuple ( tuple[Tensor, Tensor, Tensor] ) –
    • stress_new (Tensor): Updated Cauchy stress tensor after plastic update. Shape: (..., 2, 2).
    • state_new (Tensor): Updated internal state with updated plastic strain. Shape: same as state.
    • ddsdde (Tensor): Algorithmic tangent stiffness tensor. Shape: (..., 2, 2, 2, 2).