.. _green_lagrange_strain: Green-Lagrange Strain ===================== The Green-Lagrange strain tensor (:math:`\mathbf{E}`) is a finite strain measure suitable for large displacements and rotations. It is defined in the **reference (material) configuration**. Unlike Cauchy strain, it accounts for geometric non-linearities (such as the stretching of a rotated element). Theory ------ It is derived from the Right Cauchy-Green deformation tensor :math:`\mathbf{C}`: .. math:: \mathbf{E} = \frac{1}{2} (\mathbf{C} - \mathbf{I}) = \frac{1}{2} (\mathbf{F}^T \mathbf{F} - \mathbf{I}) Where :math:`\mathbf{F} = \mathbf{I} + \nabla \mathbf{u}` is the deformation gradient. Component Formulation --------------------- When expanded in 2D cartesian coordinates, the components include the quadratic terms of the displacement gradients: .. math:: E_{xx} = \frac{\partial u}{\partial x} + \frac{1}{2} \left[ \left(\frac{\partial u}{\partial x}\right)^2 + \left(\frac{\partial v}{\partial x}\right)^2 \right] .. math:: E_{yy} = \frac{\partial v}{\partial y} + \frac{1}{2} \left[ \left(\frac{\partial u}{\partial y}\right)^2 + \left(\frac{\partial v}{\partial y}\right)^2 \right] .. math:: E_{xy} = \frac{1}{2} \left[ \frac{\partial u}{\partial y} + \frac{\partial v}{\partial x} + \left( \frac{\partial u}{\partial x} \frac{\partial u}{\partial y} + \frac{\partial v}{\partial x} \frac{\partial v}{\partial y} \right) \right] where - :math:`u`: displacement in x-direction - :math:`v`: displacement in y-direction - :math:`\frac{\partial u}{\partial x}`: the partial derivative of the displacement field along x (:math:`\mathbf{u}`) with respect to the spatial coordinate :math:`x`, - :math:`\frac{\partial v}{\partial y}`: the partial derivative of the displacement field along y (:math:`\mathbf{v}`) with respect to the spatial coordinate :math:`y`, - :math:`\frac{\partial u}{\partial y}`: the partial derivative of the displacement field along y (:math:`\mathbf{u}`) with respect to the spatial coordinate :math:`y`, - :math:`\frac{\partial v}{\partial x}`: the partial derivative of the displacement field along x (:math:`\mathbf{v}`) with respect to the spatial coordinate :math:`x`, Python Implementation --------------------- .. code-block:: python import numpy as np def compute_strain_green_lagrange(disp_x, disp_y, dx, dy): """ Compute Green-Lagrange Strain (Large Strain). Assumes indexing='ij' (axis 0 is x, axis 1 is y). """ # 1. Compute Gradients grad_u = np.gradient(disp_x, dx, dy) du_dx, du_dy = grad_u[0], grad_u[1] # u_x, u_y grad_v = np.gradient(disp_y, dx, dy) dv_dx, dv_dy = grad_v[0], grad_v[1] # v_x, v_y # 2. Compute Strain Components (Corrected for cross-terms) # Exx uses derivatives w.r.t X only (u_x and v_x) E_xx = du_dx + 0.5 * (du_dx**2 + dv_dx**2) # Eyy uses derivatives w.r.t Y only (u_y and v_y) E_yy = dv_dy + 0.5 * (du_dy**2 + dv_dy**2) # Exy mixes terms E_xy = 0.5 * (du_dy + dv_dx + (du_dx * du_dy) + (dv_dx * dv_dy)) return E_xx, E_yy, E_xy References ---------- * `Wikipedia: Finite Strain Theory (Green-Lagrangian) `_ * *Nonlinear Solid Mechanics: A Continuum Approach for Engineering*, G. Holzapfel.