Goodman Diagram Simulator: Mean Stress Effect on Fatigue

simulator intermediate ~10 min
Loading simulation...
n = 1.43 — marginally safe per Goodman criterion

With σₐ = 120 MPa and σₘ = 150 MPa on a steel with Se = 250 MPa and Sᵤ = 600 MPa, the Goodman safety factor is 1.43. The operating point is inside the safe region but close to the boundary — acceptable for non-critical applications.

Formula

σₐ/Se + σₘ/Sᵤ = 1/n (modified Goodman line)
σₐ/Se + (σₘ/Sᵤ)² = 1/n (Gerber parabola)
σₐ/Se + σₘ/Sy = 1/n (Soderberg line)

Mean Stress Matters

Most fatigue data comes from fully reversed loading tests (mean stress = 0), but real components almost always operate with a non-zero mean stress. A bolted joint has tensile preload, a rotating shaft has bending superimposed on axial loads, and a pressure vessel cycles around a positive mean pressure. John Goodman recognized in 1899 that tensile mean stress reduces the allowable alternating stress, and his diagram provides a simple, conservative method to account for this effect.

The Goodman Line

The modified Goodman diagram plots alternating stress (σₐ) on the vertical axis and mean stress (σₘ) on the horizontal axis. A straight line from the endurance limit Se (at σₘ = 0) to the ultimate strength Sᵤ (at σₐ = 0) defines the failure boundary. Any operating point (σₘ, σₐ) inside this line is predicted to have infinite fatigue life; points outside will eventually fail. The safety factor is the ratio of the distance from origin to the Goodman line along the load line.

Comparing Failure Theories

The Goodman line is a conservative approximation. The Gerber parabola, which passes through the same endpoints but bulges outward, typically fits experimental data for ductile metals more closely. The Soderberg line, connecting Se to the yield strength Sy, is more conservative still and additionally prevents yielding. This simulation overlays all three criteria so you can compare their predictions and choose the appropriate one for your design context and required safety margin.

Design Application

In practice, the Goodman diagram is combined with stress concentration factors, surface finish corrections, and reliability factors. The modified endurance limit Se already accounts for these derating factors. Engineers plot the operating point considering the worst-case combination of alternating and mean stress, then verify that the safety factor meets the design requirement — typically n > 1.5 for general machine design and n > 3 for safety-critical applications.

FAQ

What is a Goodman diagram?

A Goodman diagram plots alternating stress (σₐ) versus mean stress (σₘ) with a failure boundary line connecting the endurance limit (on the σₐ axis) to the ultimate strength (on the σₘ axis). Points inside the line are safe; points outside predict fatigue failure. It is the most widely used mean stress correction in mechanical design.

How does mean stress affect fatigue life?

Tensile mean stress reduces fatigue life by holding the crack open longer during each cycle, accelerating growth. A component with zero mean stress might survive 10⁶ cycles at σₐ = 250 MPa, but with σₘ = 300 MPa tensile, it might need σₐ reduced to 125 MPa for the same life. The Goodman diagram quantifies this effect.

What is the difference between Goodman, Gerber, and Soderberg?

Goodman uses a straight line from Se to Sᵤ (conservative, widely used). Gerber uses a parabola from Se to Sᵤ (fits data better for ductile metals, less conservative). Soderberg uses a line from Se to Sy (most conservative, prevents yielding). Most test data falls between the Goodman and Gerber lines.

When should I use a Goodman diagram?

Use Goodman diagrams whenever a component experiences cyclic loading with a non-zero mean stress — which is most real applications. Bolted joints (preload = mean stress), rotating shafts with bending and axial loads, pressure vessels with cyclic pressure, and spring designs all require mean stress analysis.

Sources

Embed

<iframe src="https://homo-deus.com/lab/materials-fatigue/goodman-diagram/embed" width="100%" height="400" frameborder="0"></iframe>
View source on GitHub