Skip to content

Isotropic Elasticity 3D

Bases: Material

Isotropic elastic material in 3D.

Parameters:

  • E (Tensor | float) –

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

  • nu (Tensor | float) –

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

  • rho (Tensor | float, 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.
  • No internal state variables (n_state = 0).
  • Supports batched/vectorized material parameters.
Definition of stiffness tensor

This class represents a 3D isotropic linear elastic material 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}\) with components $$ C_{ijkl} = \lambda \delta_{ij} \delta_{kl} + G (\delta_{ik} \delta_{jl} + \delta_{il} \delta_{jk}) $$ based on these parameters with $$ \lambda = \frac{E \nu}{(1 + \nu)(1 - 2 \nu)}, \quad G = \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:

  • IsotropicElasticity3D ( IsotropicElasticity3D ) –

    A new material instance with vectorized properties.

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