What is the force experienced by each point? This is called stress inside the material.

There are a couple types of stress:

"\\usepackage{tikz}\n\\usetikzlibrary{arrows.meta}\n\n\\begin{document}\n\\begin{tikzpicture}\n\n% --- Color Theme ---\n\\definecolor{frontColor}{RGB}{85, 136, 205} \n\\definecolor{topColor}{RGB}{125, 175, 235} \n\\definecolor{sideColor}{RGB}{65, 110, 175} \n\\definecolor{transFill}{RGB}{200, 220, 240} \n\\definecolor{transLine}{RGB}{120, 140, 160} \n\\definecolor{arrowColor}{RGB}{230, 20, 20} \n\n% --- Global Styles ---\n\\tikzset{\n force/.style={-{Stealth[length=4mm, width=3.5mm]}, line width=2pt, arrowColor},\n trans/.style={transLine, dashed, fill=transFill, fill opacity=0.3, thick}\n}\n\n% -----------------------------------------------------\n% 1. Tension\n% -----------------------------------------------------\n\\begin{scope}[shift={(0,0)}]\n % Solid Block\n \\filldraw[fill=frontColor, draw=black] (-0.35, -2.2) rectangle (0.35, 2.2);\n \\filldraw[fill=topColor, draw=black] (-0.35, 2.2) -- (0.35, 2.2) -- (0.55, 2.4) -- (-0.15, 2.4) -- cycle;\n \\filldraw[fill=sideColor, draw=black] (0.35, -2.2) -- (0.55, -2.0) -- (0.55, 2.4) -- (0.35, 2.2) -- cycle;\n\n % Transparent Over-Block (Original State)\n \\draw[trans] (-0.5, -1.5) -- (0.5, -1.5) -- (0.8, -1.2) -- (-0.2, -1.2) -- cycle; \n \\draw[trans] (-0.5, -1.5) -- (0.5, -1.5) -- (0.5, 1.5) -- (-0.5, 1.5) -- cycle; \n \\draw[trans] (0.5, -1.5) -- (0.8, -1.2) -- (0.8, 1.8) -- (0.5, 1.5) -- cycle; \n \\draw[trans] (-0.5, 1.5) -- (0.5, 1.5) -- (0.8, 1.8) -- (-0.2, 1.8) -- cycle; \n\n % Force Arrows\n \\draw[force] (0.1, 2.4) -- (0.1, 3.4);\n \\draw[force] (0.1, -2.2) -- (0.1, -3.2);\n\n % Label\n \\node[font=\\Large] at (0.1, -3.8) {tension};\n\\end{scope}\n\n% -----------------------------------------------------\n% 2. Compression\n% -----------------------------------------------------\n\\begin{scope}[shift={(3.5,0)}]\n % Solid Block \n \\filldraw[fill=frontColor, draw=black] (-0.65, -1.0) rectangle (0.65, 1.0);\n \\filldraw[fill=topColor, draw=black] (-0.65, 1.0) -- (0.65, 1.0) -- (1.05, 1.4) -- (-0.25, 1.4) -- cycle;\n \\filldraw[fill=sideColor, draw=black] (0.65, -1.0) -- (1.05, -0.6) -- (1.05, 1.4) -- (0.65, 1.0) -- cycle;\n\n % Transparent Over-Block\n \\draw[trans] (-0.5, -1.5) -- (0.5, -1.5) -- (0.8, -1.2) -- (-0.2, -1.2) -- cycle;\n \\draw[trans] (-0.5, -1.5) -- (0.5, -1.5) -- (0.5, 1.5) -- (-0.5, 1.5) -- cycle;\n \\draw[trans] (0.5, -1.5) -- (0.8, -1.2) -- (0.8, 1.8) -- (0.5, 1.5) -- cycle;\n \\draw[trans] (-0.5, 1.5) -- (0.5, 1.5) -- (0.8, 1.8) -- (-0.2, 1.8) -- cycle;\n\n % Force Arrows\n \\draw[force] (0.2, 2.4) -- (0.2, 1.4);\n \\draw[force] (0.2, -2.4) -- (0.2, -1.4);\n\n % Label\n \\node[font=\\Large] at (0.2, -3.8) {compression};\n\\end{scope}\n\n% -----------------------------------------------------\n% 3. Shear\n% -----------------------------------------------------\n\\begin{scope}[shift={(7.5,0)}]\n % Solid Block \n \\filldraw[fill=frontColor, draw=black] (-0.5, -1.5) -- (0.5, -1.5) -- (1.2, 1.5) -- (0.2, 1.5) -- cycle;\n \\filldraw[fill=topColor, draw=black] (0.2, 1.5) -- (1.2, 1.5) -- (1.5, 1.8) -- (0.5, 1.8) -- cycle;\n \\filldraw[fill=sideColor, draw=black] (0.5, -1.5) -- (0.8, -1.2) -- (1.5, 1.8) -- (1.2, 1.5) -- cycle;\n\n % Transparent Over-Block\n \\draw[trans] (-0.5, -1.5) -- (0.5, -1.5) -- (0.8, -1.2) -- (-0.2, -1.2) -- cycle;\n \\draw[trans] (-0.5, -1.5) -- (0.5, -1.5) -- (0.5, 1.5) -- (-0.5, 1.5) -- cycle;\n \\draw[trans] (0.5, -1.5) -- (0.8, -1.2) -- (0.8, 1.8) -- (0.5, 1.5) -- cycle;\n \\draw[trans] (-0.5, 1.5) -- (0.5, 1.5) -- (0.8, 1.8) -- (-0.2, 1.8) -- cycle;\n\n % Force Arrows\n \\draw[force] (0.0, 1.65) -- (1.6, 1.65);\n\n % Label\n \\node[font=\\Large] at (0.4, -3.8) {shear};\n\\end{scope}\n\n% -----------------------------------------------------\n% 4. Bending\n% -----------------------------------------------------\n\\begin{scope}[shift={(11.5,0)}]\n % Solid Block (Curving to the right to yield to the arrows)\n \\filldraw[fill=frontColor, draw=black]\n (-0.5, -1.5) .. controls (0.0, -0.5) and (0.0, 0.5) .. (-0.5, 1.5) --\n (0.5, 1.5) .. controls (1.0, 0.5) and (1.0, -0.5) .. (0.5, -1.5) -- cycle;\n \\filldraw[fill=topColor, draw=black]\n (-0.5, 1.5) -- (0.5, 1.5) -- (0.8, 1.8) -- (-0.2, 1.8) -- cycle;\n \\filldraw[fill=sideColor, draw=black]\n (0.5, -1.5) .. controls (1.0, -0.5) and (1.0, 0.5) .. (0.5, 1.5) --\n (0.8, 1.8) .. controls (1.3, 0.8) and (1.3, -0.2) .. (0.8, -1.2) -- cycle;\n\n % Transparent Over-Block\n \\draw[trans] (-0.5, -1.5) -- (0.5, -1.5) -- (0.8, -1.2) -- (-0.2, -1.2) -- cycle;\n \\draw[trans] (-0.5, -1.5) -- (0.5, -1.5) -- (0.5, 1.5) -- (-0.5, 1.5) -- cycle;\n \\draw[trans] (0.5, -1.5) -- (0.8, -1.2) -- (0.8, 1.8) -- (0.5, 1.5) -- cycle;\n \\draw[trans] (-0.5, 1.5) -- (0.5, 1.5) -- (0.8, 1.8) -- (-0.2, 1.8) -- cycle;\n\n % Force Arrows\n \\draw[force] (1.8, 1.2) -- (0.8, 1.2);\n \\draw[force] (1.8, -1.2) -- (0.8, -1.2);\n \\draw[force] (-1.8, 0) -- (-0.9, 0);\n\n % Label\n \\node[font=\\Large] at (0.2, -3.8) {bending};\n\\end{scope}\n\n% -----------------------------------------------------\n% 5. Torsion\n% -----------------------------------------------------\n\\begin{scope}[shift={(15.5,0)}]\n % Solid Block \n \\filldraw[fill=frontColor, draw=black, line join=round] (-0.4, -1.5) -- (0.4, -1.5) -- (0.1, 0) -- (-0.5, 0) -- cycle;\n \\filldraw[fill=sideColor, draw=black, line join=round] (0.4, -1.5) -- (0.7, -1.2) -- (0.4, 0.3) -- (0.1, 0) -- cycle;\n\n \\filldraw[fill=sideColor, draw=black, line join=round] (-0.5, 0) -- (0.1, 0) -- (0.4, 1.5) -- (-0.2, 1.5) -- cycle;\n \\filldraw[fill=topColor, draw=black, line join=round] (0.1, 0) -- (0.4, 0.3) -- (0.7, 1.8) -- (0.4, 1.5) -- cycle;\n\n \\filldraw[fill=frontColor, draw=black, line join=round] (-0.2, 1.5) -- (0.4, 1.5) -- (0.7, 1.8) -- (0.1, 1.8) -- cycle;\n\n % Force Arrows\n \\draw[force] (-0.6, 1.8) .. controls (-0.6, 1.5) and (0.8, 1.5) .. (0.9, 1.9);\n \\draw[force] (0.7, -1.6) .. controls (0.7, -1.9) and (-0.6, -1.9) .. (-0.8, -1.5);\n\n % Label\n \\node[font=\\Large] at (0.1, -3.8) {torsion};\n\\end{scope}\n\n\\end{tikzpicture}\n\\end{document}"tensioncompressionshearbendingtorsion
source code

Cauchy’s Stress Theory

Consider an infinitesimal plane within a material. The force acting on that surface is called the traction force denoted as , dependent on the orientation of the plane defined by the normal vector . It satisfies the reciprocity property, meaning the force on the opposite side of the plane is equal in magnitude, but opposite in direction: .

The total force experienced by a volume is given by the total traction force

\iiint_{V} \bf dV = \oiint_{\del V} \bT^{(\bn)} dA

Cauchy’s Stress Theorem is defined as: is linear in (i.e. there is a matrix called the stress tensor) such that .

The net force at each point is defined as the divergence of the stress tensor: (or written in index notation as ). For a material in equilibrium, the sum of these internal foces any any external forces must be zero:

Furthermore, at equilibrium, the Cauchy stress tensor must be symmetric.

  • This can be shown by requesting zero net torque.
  • When it’s not in equilibrium, the Cauchy stress tensor can be non-symmetric, such as viscoelastic fluids.
  • For a different that we will see next, in pure elastic material, Cauchy stress is always symmetric even at non-equilibrium.

Alternative Stress Tensors

The Cauchy Stress Tensor is not the only way to represent stress. Consider the deformation gradient:

And let .

The First Piola-Kirchhoff Stress Tensor is defined as

allowing us to calculate the net “world-force” at a point using the original coordinate (Lagrangian) grid . This tensor is generally non-symmetric.

The Second Piola-Kirchhoff Stress Tensor is defined as

It is symmetric iff Cauchy is symmetric.

Equation of Motion

We first need to define the strain. Strain is a measure of how much a material has deformed from its rest state. The right Cauchy-Green deformation tensor is

And then the Green-St Venant strain

Next, we need to model the stress-strain relationship (deformation-”internal forces”). To calculate the 2nd Piola-Kirchhoff stress ,

where are the Lamé parameters, dictating the specific material properties.

To easily compute the forces, we convert it to the 1st Piola-Kirchhoff stress :

Now we want to find the actual force vector acting on each point in the original (Lagrangian) coordinate system by taking its divergence (like before!):

Fianlly, applying Newton’s second law to get the equation of motion:

Type-Sensitive Tensor Analysis

Having a type-sensitive tensor analysis will make it more transparent. In particular, theorems like Cauchy stress symmetry is just the result of type checking.