Stress Tensor Components | Computational Mechanics Visualization | Skill-Lync Resources

50% OFF - Ends Soon!

Lesson 2 of 11 18 min

Stress Tensor Components

When you look at stress results in ANSYS or LS-DYNA, you see six components: $\sigma_{11}$, $\sigma_{22}$, $\sigma_{33}$, $\sigma_{12}$, $\sigma_{23}$, $\sigma_{13}$. But what do these numbers actually mean physically?

In this lesson, we'll visualize each component as traction vectors acting on the surfaces of an infinitesimal volume element. This physical interpretation is essential for understanding FEA results and identifying failure modes.

The Cauchy Stress Tensor

At every point in a solid, internal forces act between material particles. These forces are described by the Cauchy stress tensor:

Sponsored

Abhishek landed his dream job at TATA ELXSI

From learning simulations to working at an industry leader

See His Journey

$$\boldsymbol{\sigma} = \begin{bmatrix} \sigma_{11} & \sigma_{12} & \sigma_{13} \\ \sigma_{21} & \sigma_{22} & \sigma_{23} \\ \sigma_{31} & \sigma_{32} & \sigma_{33} \end{bmatrix}$$

Due to moment equilibrium (no angular acceleration), the stress tensor is symmetric: $\sigma_{ij} = \sigma_{ji}$. This means we have 6 independent components, not 9.

Component Interpretation

  • Diagonal terms ($\sigma_{11}, \sigma_{22}, \sigma_{33}$): Normal stresses — force perpendicular to the face
  • Off-diagonal terms ($\sigma_{12}, \sigma_{23}, \sigma_{13}$): Shear stresses — force parallel to the face

The subscripts indicate:

Sponsored

April batch closing soon — only 42 seats remaining

Join 3,000+ engineers who got placed at top companies

Reserve Your Seat
  • First index: Direction of the face normal
  • Second index: Direction of the force

For example, $\sigma_{12}$ acts on a face with normal in the 1-direction (x-face), and the force is in the 2-direction (y-direction).

Click to toggle between stress components. Observe how traction vectors change direction.

Cauchy's Formula: From Stress to Traction

Given a surface with outward unit normal $\mathbf{n}$, the traction vector (force per unit area) is:

$$\mathbf{t} = \boldsymbol{\sigma} \cdot \mathbf{n}$$

Sponsored

Harshal got placed at Fiat Chrysler as Design Engineer

Watch his video testimonial on how the program helped him

See His Journey

This is Cauchy's formula — the fundamental relationship in stress analysis.

Example: Normal to x-face

For a face with normal $\mathbf{n} = [1, 0, 0]^T$ (positive x-face):

$$\mathbf{t} = \begin{bmatrix} \sigma_{11} & \sigma_{12} & \sigma_{13} \\ \sigma_{21} & \sigma_{22} & \sigma_{23} \\ \sigma_{31} & \sigma_{32} & \sigma_{33} \end{bmatrix} \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix} = \begin{bmatrix} \sigma_{11} \\ \sigma_{21} \\ \sigma_{31} \end{bmatrix}$$

The traction has:

  • Component $\sigma_{11}$ in the x-direction (normal stress)
  • Component $\sigma_{21}$ in the y-direction (shear stress)
  • Component $\sigma_{31}$ in the z-direction (shear stress)
🎯 3,000+ Engineers Placed
Sponsored
Harshal Sukenkar

Harshal

Fiat Chrysler

Abhishek

Abhishek

TATA ELXSI

Srinithin

Srinithin

Xitadel

Ranjith

Ranjith

Core Automotive

Gaurav Jadhav

Gaurav

Automotive Company

Bino K Biju

Bino

Design Firm

Aseem Shrivastava

Aseem

EV Company

Puneet

Puneet

Automotive Company

Vishal Kumar

Vishal

EV Startup

Automotive Application: B-Pillar During Side Impact

During an NCAP side pole impact test, the B-pillar (between front and rear doors) experiences complex stress states:

LocationDominant ComponentsPhysical Meaning
Outer skin$\sigma_{11}$ (tension)Membrane stretching
Inner reinforcement$\sigma_{11}$ (compression)Crushing
Weld flanges$\sigma_{12}, \sigma_{13}$ (shear)Spot weld loading
CornersAll 6 componentsMultiaxial state

Understanding which components dominate helps predict:

  • Where plasticity initiates
  • Which welds are most loaded
  • How to add reinforcement effectively

Visualizing Stress on Volume Elements

We can visualize stress by showing traction vectors on the faces of an infinitesimal cube or sphere. This makes abstract tensor components tangible.

Cubic Element

The cube shows how tractions act on flat faces with simple normal vectors ($\pm\mathbf{e}_1, \pm\mathbf{e}_2, \pm\mathbf{e}_3$).

# Computing traction on x-faces
n_x_plus = np.array([1, 0, 0])
t_x_plus = sigma @ n_x_plus  # [sigma_11, sigma_21, sigma_31]

n_x_minus = np.array([-1, 0, 0])
t_x_minus = sigma @ n_x_minus  # [-sigma_11, -sigma_21, -sigma_31]

Spherical Element

The sphere shows tractions on faces with all possible orientations. Points on the sphere surface have normal vectors pointing radially outward:

$$\mathbf{n} = \frac{\mathbf{x}}{|\mathbf{x}|}$$

This reveals how stress varies with direction — essential for understanding failure criteria like von Mises and Tresca.

Python Code: Stress Tensor Visualization

Here's the complete code to create a rotating stress cube animation:

"""
Stress Tensor Cube Visualization
Automotive Application: B-pillar stress during NCAP side impact
"""
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from mpl_toolkits.mplot3d import Axes3D

# Stress tensor (MPa) - B-pillar during side impact
sigma = np.array([
    [450, 75, 0],    # High tension in x, some shear
    [75, 280, 45],   # Tension in y, shear in yz
    [0, 45, 120]     # Lower stress in z
])

# Cube setup
L = 1.0  # Cube edge length

# Face nodes (3x3 grid on each face)
r = np.linspace(-L/2, L/2, 3)
X, Y = np.meshgrid(r, r)

# Nodes on x-faces
nodes_xp = np.stack([L/2*np.ones_like(X), X, Y], axis=-1).reshape(-1, 3)
nodes_xm = np.stack([-L/2*np.ones_like(X), X, Y], axis=-1).reshape(-1, 3)

# Normals
n_xp = np.array([1, 0, 0])
n_xm = np.array([-1, 0, 0])

# Compute tractions using Cauchy's formula
t_xp = sigma @ n_xp  # Traction on positive x-face
t_xm = sigma @ n_xm  # Traction on negative x-face

# Scale for visualization
scale = 0.3 / np.max(np.abs(sigma))

# Create animation
fig = plt.figure(figsize=(8, 8), facecolor='black')
ax = fig.add_subplot(111, projection='3d', facecolor='black')

def animate(frame):
    ax.cla()
    ax.view_init(elev=20, azim=-60 + frame * 3)

    # Draw cube faces
    for z_val in [-L/2, L/2]:
        ax.plot_surface(X, Y, z_val*np.ones_like(X),
                       alpha=0.2, color='white')
    # ... similar for other faces

    # Draw traction arrows
    for node in nodes_xp:
        ax.quiver(*node, *(t_xp * scale), color='cyan')
    for node in nodes_xm:
        ax.quiver(*node, *(t_xm * scale), color='cyan')

    ax.set_xlim(-1, 1)
    ax.set_ylim(-1, 1)
    ax.set_zlim(-1, 1)
    ax.set_axis_off()

anim = animation.FuncAnimation(fig, animate, frames=120, interval=50)
anim.save('stress_cube.gif', writer='pillow', fps=30)
To run this code, download the full script from: /courses/computational-mechanics-viz/code/stress_tensor_cube.py

Von Mises Stress

FEA software often reports von Mises stress — a scalar measure of the "intensity" of the stress state:

$$\sigma_\text{VM} = \sqrt{\frac{1}{2}\left[(\sigma_{11}-\sigma_{22})^2 + (\sigma_{22}-\sigma_{33})^2 + (\sigma_{33}-\sigma_{11})^2 + 6(\sigma_{12}^2 + \sigma_{23}^2 + \sigma_{13}^2)\right]}$$

This combines all 6 components into a single number useful for:

  • Yield criterion: Material yields when $\sigma_\text{VM} \geq \sigma_Y$
  • Contour plots: Color by von Mises to find critical regions
  • Fatigue analysis: Equivalent stress for multiaxial loading

For our B-pillar example with $\sigma_{11}=450$, $\sigma_{22}=280$, $\sigma_{33}=120$, $\sigma_{12}=75$, $\sigma_{23}=45$, $\sigma_{13}=0$ MPa:

$$\sigma_\text{VM} = \sqrt{\frac{1}{2}[(450-280)^2 + (280-120)^2 + (120-450)^2 + 6(75^2 + 45^2 + 0^2)]} \approx 344 \text{ MPa}$$

Exercises

Exercise 1: Hydrostatic Pressure

Modify the stress tensor to represent pure hydrostatic pressure:

$$\boldsymbol{\sigma} = -p \mathbf{I} = \begin{bmatrix} -p & 0 & 0 \\ 0 & -p & 0 \\ 0 & 0 & -p \end{bmatrix}$$

What do the traction vectors look like? (They should all point inward, perpendicular to each face.)

Exercise 2: Pure Shear

Set $\sigma_{12} = \sigma_{21} = \tau$ and all other components to zero. Visualize how shear stress creates traction parallel to face surfaces.

Exercise 3: Uniaxial Tension

Set $\sigma_{11} = \sigma_0$ and all other components to zero. This represents a tensile test specimen. What happens on oblique planes?

Key Takeaways

  • The Cauchy stress tensor has 6 independent components due to symmetry
  • Cauchy's formula $\mathbf{t} = \boldsymbol{\sigma} \cdot \mathbf{n}$ gives traction from stress and normal
  • Diagonal components are normal stresses; off-diagonal are shear stresses
  • Visualizing stress on cube or sphere surfaces builds physical intuition
  • Von Mises stress combines all components into a scalar for yield/fatigue criteria

What's Next

In the next lesson, we'll explore large deformation kinematics — how bodies move and deform in nonlinear analysis. You'll learn to animate reference and current configurations, and track material points through deformation.

3,000+ Engineers Placed in Top Companies
Career Growth

3,000+ Engineers Placed in Top Companies

Join the ranks of successful engineers at Bosch, Tata, L&T, and 500+ hiring partners.