Isotropic Elasticity Plane Stress¶
Bases: IsotropicElasticity3D
Isotropic elastic material for planar stress problems.
Parameters:
-
E(Tensor) –Young's modulus. If a float is provided, it is converted. Shape:
()for a scalar or(N,)for a batch of materials. -
nu(Tensor) –Poisson's ratio. If a float is provided, it is converted. Shape:
()for a scalar or(N,)for a batch of materials. -
rho(Tensor, 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.
- Plane stress condition (\(\sigma_{33} = 0\)).
- No internal state variables (
n_state = 0). - Supports batched/vectorized material parameters.
Definition of plane stress stiffness tensor
This class represents a 2D isotropic linear elastic material for plane stress 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}\) by enforcing the plane stress condition \(\sigma_{33} = 0\) as $$ C_{0000} = C_{1111} = \frac{E}{1 - \nu^2} $$ $$ C_{0011} = C_{1100} = \frac{E \nu}{1 - \nu^2} $$ $$ C_{0101} = C_{0110} = C_{1001} = C_{1010} = \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:
-
IsotropicElasticityPlaneStress(IsotropicElasticityPlaneStress) –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).