Skip to content

Isotropic Damage 1D

Bases: IsotropicDamage3D, IsotropicElasticity1D

Isotropic damage material model in 1D.

Parameters:

  • E (Tensor | float) –

    Young's modulus. 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.
  • Two internal state variables (n_state = 2): \(\kappa\) (damage driving variable) and \(D\) (damage variable).
  • Supports batched/vectorized material parameters.
  • \(\kappa\) never decreases, so a bar damages in tension alone.
Uniaxial damage

The single strain is the only principal strain, so the model of IsotropicDamage3D reduces to \(\sigma = (1 - D) E \varepsilon\) with \(\kappa = \max(\kappa_n, \varepsilon)\) and the tangent \((1 - D) E - D' \sigma^{\text{trial}}\).

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 isotropic damage model.

The stress is computed as \(\pmb{\sigma} = (1 - D) \, \mathbb{C} : \pmb{\varepsilon}\) and the algorithmic tangent stiffness is

\[ C^{\text{alg}}_{ijkl} = (1 - D) C_{ijkl} - D'(\kappa, l_c) \, \sigma^{\text{trial}}_{ij} \, n_k \, n_l \]

where \(\mathbf{n}\) is the direction of the damage-driving principal strain.

Parameters:

  • H_inc (Tensor) –

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

  • F (Tensor) –

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

  • stress (Tensor) –

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

  • state (Tensor) –

    Internal state variables, here: equivalent plastic strain. Shape: (..., 1).

  • de0 (Tensor) –

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

  • cl (Tensor) –

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

  • iter (int) –

    Newton iteration.

Returns:

  • stress_new ( Tensor ) –

    Updated Cauchy stress tensor after plastic update. Shape: (..., 3, 3).

  • state_new ( Tensor ) –

    Updated internal state with updated plastic strain. Shape: same as state.

  • ddsdde ( Tensor ) –

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