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