Skip to content

Isotropic Elasticity Plane Stress

Bases: IsotropicElasticity3D

Isotropic elastic material for planar stress problems.

Parameters:

  • E (Tensor) –

    Young's modulus. If a float is provided, it is converted. Shape: () for a scalar or (N,) for a batch of materials.

  • nu (Tensor) –

    Poisson's ratio. If a float is provided, it is converted. Shape: () for a scalar or (N,) for a batch of materials.

  • rho (Tensor, default: 1.0 ) –

    Mass density. If a float is provided, it is converted. Shape: () for a scalar or (N,) for a batch of materials.

Notes
  • Small-strain assumption.
  • Plane stress condition (\(\sigma_{33} = 0\)).
  • No internal state variables (n_state = 0).
  • Supports batched/vectorized material parameters.
Definition of plane stress stiffness tensor

This class represents a 2D isotropic linear elastic material for plane stress under small-strain assumptions, defined by (batched) Young's modulus \(E\) and (batched) Poisson's ratio \(\nu\). The constructor derives the (batched) stiffness tensor \(\mathbb{C}\) by enforcing the plane stress condition \(\sigma_{33} = 0\) as $$ C_{0000} = C_{1111} = \frac{E}{1 - \nu^2} $$ $$ C_{0011} = C_{1100} = \frac{E \nu}{1 - \nu^2} $$ $$ C_{0101} = C_{0110} = C_{1001} = C_{1010} = \frac{E}{2(1 + \nu)}. $$

vectorize(n_elem)

Returns a vectorized copy of the material for n_elem elements.

This function creates a batched version of the material properties. If the material is already vectorized (self.is_vectorized == True), the function simply returns self without modification.

Parameters:

  • n_elem (int) –

    Number of elements to vectorize the material for.

Returns:

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

Performs an incremental step in the small-strain isotropic elasticity model.

This function updates the stress and algorithmic tangent stiffness based on a small-strain assumption and linear elasticity as $$ \pmb{\sigma}_{n+1} = \pmb{\sigma}_n + \mathbb{C} : (\Delta \pmb{\varepsilon} - \Delta \pmb{\varepsilon}^0) $$ and $$ \frac{\partial \Delta \pmb{\sigma}}{\partial \Delta \mathbf{H}} = \mathbb{C} $$

Parameters:

  • H_inc (Tensor) –

    Incremental displacement gradient. Shape: (..., d, d).

  • F (Tensor) –

    Current deformation gradient. Shape: (..., d, d).

  • stress (Tensor) –

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

  • state (Tensor) –

    Internal state variables (unused in linear elasticity). Shape: (..., 0).

  • de0 (Tensor) –

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

  • cl (Tensor) –

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

  • iter (int) –

    Current iteration number.

Returns:

  • stress_new ( Tensor ) –

    Updated Cauchy stress tensor. Shape: (..., d, d).

  • state_new ( Tensor ) –

    Updated internal state (unchanged). Shape: (..., 0).

  • ddsdde ( Tensor ) –

    Algorithmic tangent stiffness tensor. Shape: (..., d, d, d, d).