Skip to content

Orthotropic Elasticity 3D

Bases: Material

Orthotropic elastic material in 3D.

Parameters:

  • E_1 (Tensor | float) –

    Young's modulus in direction 1.

  • E_2 (Tensor | float) –

    Young's modulus in direction 2.

  • E_3 (Tensor | float) –

    Young's modulus in direction 3.

  • nu_12 (Tensor | float) –

    Poisson's ratio \(\nu_{12}\).

  • nu_13 (Tensor | float) –

    Poisson's ratio \(\nu_{13}\).

  • nu_23 (Tensor | float) –

    Poisson's ratio \(\nu_{23}\).

  • G_12 (Tensor | float) –

    Shear modulus \(G_{12}\).

  • G_13 (Tensor | float) –

    Shear modulus \(G_{13}\).

  • G_23 (Tensor | float) –

    Shear modulus \(G_{23}\).

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

    Mass density. Default is 1.0.

Notes
  • Small-strain assumption.
  • No internal state variables (n_state = 0).
  • Supports batched/vectorized material parameters.
  • Supports rotation of the material coordinate system via rotate().
Orthotropic stiffness tensor

The orthotropic stiffness tensor in Voigt notation has the structure $$ \mathbb{C} = \begin{bmatrix} C_{11} & C_{12} & C_{13} & 0 & 0 & 0 \cr C_{12} & C_{22} & C_{23} & 0 & 0 & 0 \cr C_{13} & C_{23} & C_{33} & 0 & 0 & 0 \cr 0 & 0 & 0 & G_{23} & 0 & 0 \cr 0 & 0 & 0 & 0 & G_{13} & 0 \cr 0 & 0 & 0 & 0 & 0 & G_{12} \end{bmatrix} $$ where the upper-left block contains the normal stiffness components and the lower-right block contains the shear moduli. The nine independent components are derived from nine independent engineering constants (\(E_1, E_2, E_3, \nu_{12}, \nu_{13}, \nu_{23}, G_{12}, G_{13}, G_{23}\)). The actual stiffness tensor \(C_{ijkl}\) is stored as full 4th-order tensor with major and minor symmetries.

vectorize(n_elem)

Returns a vectorized copy of the material for n_elem elements.

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 orthotropic elasticity model.

The stress is updated as $$ \pmb{\sigma}_{n+1} = \pmb{\sigma}_n + \mathbb{C} : (\Delta \pmb{\varepsilon} - \Delta \pmb{\varepsilon}^0) $$

Parameters:

  • H_inc (Tensor) –

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

  • F (Tensor) –

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

  • stress (Tensor) –

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

  • state (Tensor) –

    Internal state variables (unused). Shape: (..., 0).

  • de0 (Tensor) –

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

  • cl (Tensor) –

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

  • iter (int) –

    Current iteration number.

Returns:

  • stress_new ( Tensor ) –

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

  • state_new ( Tensor ) –

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

  • ddsdde ( Tensor ) –

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

rotate(R)

Rotates the material coordinate system with a rotation matrix \(\mathbf{R}\).

The rotated stiffness tensor is computed as \(C'_{mnop} = R_{mi} R_{nj} R_{ok} R_{pl} \, C_{ijkl}\) and the engineering constants are re-extracted from the compliance matrix.

Parameters:

  • R (Tensor) –

    Rotation matrix. Shape: (..., 3, 3).

Returns: