Cauchy Strain (Infinitesimal)¶
The Cauchy strain tensor (also known as the engineering strain or infinitesimal strain tensor) is used for analyses where deformations and rotations are assumed to be very small (typically < 5%). It is a linear approximation of the deformation.
Theory¶
In the limit of small deformations, the difference between the reference and current configuration is negligible. The strain tensor \(\boldsymbol{\varepsilon}\) is the symmetric part of the displacement gradient.
\[\boldsymbol{\varepsilon} = \frac{1}{2} (\nabla \mathbf{u} + (\nabla \mathbf{u})^T)\]
Component Formulation¶
For a 2D displacement field \(\mathbf{u} = (u, v)\):
\[\varepsilon_{xx} = \frac{\partial u}{\partial x}\]
\[\varepsilon_{yy} = \frac{\partial v}{\partial y}\]
\[\varepsilon_{xy} = \frac{1}{2} \left( \frac{\partial u}{\partial y} + \frac{\partial v}{\partial x} \right)\]
Python Implementation¶
The implementation uses numpy.gradient to compute the partial derivatives. Note that for Cauchy strain, second-order terms are discarded.
import numpy as np
def compute_strain_cauchy(disp_x, disp_y, dx, dy):
"""
Compute Infinitesimal (Cauchy) Strain.
Assumes indexing='ij' (axis 0 is x, axis 1 is y).
"""
# 1. Compute Gradients
# gradient returns [d/dx (axis 0), d/dy (axis 1)]
grad_u = np.gradient(disp_x, dx, dy)
du_dx, du_dy = grad_u[0], grad_u[1]
grad_v = np.gradient(disp_y, dx, dy)
dv_dx, dv_dy = grad_v[0], grad_v[1]
# 2. Compute Strain Components
epsilon_xx = du_dx
epsilon_yy = dv_dy
epsilon_xy = 0.5 * (du_dy + dv_dx)
return epsilon_xx, epsilon_yy, epsilon_xy
References¶
Continuum Mechanics, A.J.M. Spencer (Dover Publications).