.. _cauchy_strain: 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 :math:`\boldsymbol{\varepsilon}` is the symmetric part of the displacement gradient. .. math:: \boldsymbol{\varepsilon} = \frac{1}{2} (\nabla \mathbf{u} + (\nabla \mathbf{u})^T) Component Formulation --------------------- For a 2D displacement field :math:`\mathbf{u} = (u, v)`: .. math:: \varepsilon_{xx} = \frac{\partial u}{\partial x} .. math:: \varepsilon_{yy} = \frac{\partial v}{\partial y} .. math:: \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. .. code-block:: python 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 ---------- * `Wikipedia: Infinitesimal Strain Theory `_ * *Continuum Mechanics*, A.J.M. Spencer (Dover Publications).