Skip to content

Isotropic Damage Plane Stress

Bases: IsotropicDamage3D, IsotropicElasticityPlaneStress

Isotropic damage material model for plane stress problems.

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.

  • d (Callable) –

    Damage evolution function \(D(\kappa, l_c)\).

  • d_prime (Callable) –

    Derivative of the damage evolution \(D'(\kappa, l_c)\).

  • eq_strain (Literal['rankine', 'mises']) –

    Type of equivalent strain measure used for damage driving.

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

    Mass density. Default is 1.0.

Notes
  • Small-strain assumption with plane stress condition.
  • Two internal state variables (n_state = 2): \(\kappa\) (damage driving variable) and \(D\) (damage variable).
  • Supports batched/vectorized material parameters.
  • The external strain de0 is not condensed, so the equivalent strain follows the total in-plane strain, as it does in IsotropicDamage3D.
Plane stress damage

A scalar damage leaves the plane stress condition untouched, since \(\sigma_{33} = (1 - D) (\mathbb{C} : \pmb{\varepsilon})_{33} = 0\) holds for \(D < 1\) exactly when the undamaged condition does, so the out-of-plane strain is the elastic one,

\[ \varepsilon_{33} = -\frac{\nu}{1 - \nu} (\varepsilon_{11} + \varepsilon_{22}). \]

It enters the equivalent strain, where it may exceed the in-plane principal strains in magnitude, and varies with the in-plane strain, so

\[ \frac{\partial \kappa}{\partial \varepsilon_{kl}} = n_k n_l - n_3^2 \frac{\nu}{1 - \nu} \delta_{kl}. \]

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.

rotate(R)

Returns the material with its properties rotated by R.

Parameters:

  • R (Tensor) –

    Rotation tensor. Shape: (..., d, d).

Returns:

  • Material ( Material ) –

    A material with rotated properties, or itself if isotropic.

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

Performs a strain increment with the plane stress damage model.

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 \(\kappa\) and \(D\). Shape: (..., 2).

  • de0 (Tensor) –

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

  • cl (Tensor) –

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

  • iter (int) –

    Newton iteration.

Returns:

  • stress_new ( Tensor ) –

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

  • state_new ( Tensor ) –

    Updated internal state. Shape: same as state.

  • ddsdde ( Tensor ) –

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