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.
Plane strain von Mises plasticity

The elastic domain is bounded by the same yield surface as in 3D, $$ f(\pmb{\sigma}, q) = |\pmb{\sigma}'| - \sqrt{\tfrac{2}{3}} \, \sigma_f(q) = 0 $$ with the deviatoric stress \(\pmb{\sigma}'\) and the yield stress \(\sigma_f(q)\), given as a function of the equivalent plastic strain \(q\), but it is evaluated on the full 3D stress. Plane strain constrains only the total out-of-plane strain, \(\varepsilon_{33} = 0\), while its plastic part does not vanish. Hence \(\varepsilon_z^p\) is carried as a second state variable and the out-of-plane stress $$ \sigma_{33} = \nu (\sigma_{11} + \sigma_{22}) - E \, \varepsilon_z^p $$ is reconstructed before each yield check in step(...).

vectorize(n_elem)

Returns the material batched over n_elem elements.

Parameters:

  • n_elem (int) –

    Number of elements to vectorize the material for.

Returns:

  • Material ( T ) –

    A material of the same type carrying one entry per element, or itself if it is vectorized already.

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:

  • 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).