Orthotropic Elasticity Plane Strain¶
Bases: OrthotropicElasticity3D
Orthotropic elastic material for plane strain problems.
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) –In-plane shear modulus \(G_{12}\).
-
G_13(Tensor | float, default:0.0) –Transverse shear modulus \(G_{13}\). Default is
0.0. -
G_23(Tensor | float, default:0.0) –Transverse shear modulus \(G_{23}\). Default is
0.0. -
rho(Tensor | float, default:1.0) –Mass density. Default is
1.0.
Notes
- Small-strain assumption with plane strain condition (\(\varepsilon_{33} = 0\)).
- No internal state variables (
n_state = 0). - Supports rotation of the material coordinate system via
rotate().
Plane strain orthotropic stiffness
The in-plane stiffness tensor is derived from the full 3D orthotropic stiffness by enforcing \(\varepsilon_{33} = 0\). The in-plane components are populated using the same reciprocal relations as the 3D case, with the full factor \(F = (1 - \nu_{12}\nu_{21} - \nu_{13}\nu_{31} - \nu_{23}\nu_{32} - 2\nu_{21}\nu_{32}\nu_{13})^{-1}\).
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:
-
OrthotropicElasticityPlaneStrain(OrthotropicElasticityPlaneStrain) –A new material instance with vectorized properties.
rotate(R)
¶
Rotates the material coordinate system with a rotation matrix \(\mathbf{R}\).
Parameters:
-
R(Tensor) –Rotation matrix. Shape:
(..., 2, 2).
Returns:
-
OrthotropicElasticityPlaneStrain(OrthotropicElasticityPlaneStrain) –The material itself with rotated properties.
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).