2. Stress-life and strain-life fatigue theories

Fatigue assessment in CAE rests on two complementary frameworks. Stress-life (S-N) theory treats cyclic stress amplitude as the driving quantity and works best in the high-cycle regime, where nominal stresses stay below yield and deformation remains macroscopically elastic. Strain-life (ε-N) theory treats local strain amplitude as the driving quantity and extends coverage into the low-cycle regime, where plastic strain at notches or in smooth specimens dominates crack initiation. Choosing the wrong framework is one of the most common sources of non-conservative durability predictions, so the first engineering decision is always regime identification.

S-N Curves and Their Parameters

An S-N curve relates a constant-amplitude stress range or amplitude to the number of cycles to failure. In log-log space, the finite-life portion is approximately linear:

sigma_a = sigma_f' * (2N_f)^b        (Basquin, stress amplitude form)
Delta_sigma / 2 = sigma_a             (amplitude convention)
N_f = 0.5 * (sigma_a / sigma_f')^(1/b)

Here sigma_f' is the fatigue strength coefficient (approximately the true fracture strength for many steels) and b is the fatigue strength exponent, typically between −0.05 and −0.12. Note the factor 2: N_f counts cycles, while 2N_f counts reversals. Mixing these conventions silently shifts life by a factor of two and is a frequent review finding.

For steels, an endurance limit sigma_e is often observed near 106–107 cycles, below which life is considered infinite. Aluminum and most titanium alloys show no true endurance limit; their S-N curves continue to decline, so a design life must always be stated explicitly. Surface finish, size, load type, and reliability are applied as modifying factors:

sigma_e = k_a * k_b * k_c * k_d * k_e * sigma_e'
k_a: surface factor      k_b: size factor
k_c: load factor         k_d: temperature factor
k_e: reliability factor  sigma_e': polished rotating-bending endurance limit

Strain-Life Curves and the Coffin-Manson Relation

Strain-life theory decomposes total strain amplitude into elastic and plastic parts:

Delta_epsilon / 2 = Delta_epsilon_e / 2 + Delta_epsilon_p / 2
Delta_epsilon / 2 = (sigma_f' / E) * (2N_f)^b + epsilon_f' * (2N_f)^c

The elastic term reuses the Basquin parameters; the plastic term introduces the fatigue ductility coefficient epsilon_f' and the fatigue ductility exponent c, usually between −0.5 and −0.7. The transition fatigue life 2N_t marks where elastic and plastic contributions are equal. Below it, plasticity dominates and ε-N must be used; above it, S-N is adequate. For a typical annealed steel with sigma_f' = 1200 MPa, E = 207 GPa, b = −0.09, epsilon_f' = 0.6, and c = −0.6, the transition falls near 2N_t ≈ 2×104 reversals — a useful sanity check before selecting a method.

Mean Stress Effects

Constant-amplitude test data are generated at zero mean stress, but real service loads rarely are. Tensile mean stress reduces fatigue life; compressive mean stress generally improves it. Three classical corrections are widely implemented:

ModelExpressionTypical Use
Goodmansigma_a / sigma_e + sigma_m / sigma_u = 1Brittle materials, conservative for steels
Gerbersigma_a / sigma_e + (sigma_m / sigma_u)² = 1Ductile steels, less conservative
Soderbergsigma_a / sigma_e + sigma_m / sigma_y = 1Very conservative, yield-limited designs

For strain-life, the Morrow and Smith-Watson-Topper (SWT) corrections are standard. Morrow shifts the elastic term by the mean stress; SWT multiplies by the maximum stress, which naturally handles compressive mean stress by reducing damage:

Morrow:  Delta_epsilon/2 = ((sigma_f' - sigma_m)/E)*(2N_f)^b + epsilon_f'*(2N_f)^c
SWT:     sigma_max * Delta_epsilon/2 = (sigma_f'^2/E)*(2N_f)^(2b) + sigma_f'*epsilon_f'*(2N_f)^(b+c)
Do not apply a mean-stress correction twice. If the FE solver already reports local stresses including mean stress, and the material curve was fitted from zero-mean data, one correction is required. Applying Goodman on top of an already-corrected curve produces artificially long lives.

Material Data Fitting Workflow

Fitting is a regression problem, not a curve-drawing exercise. The practical sequence is:

  1. Collect constant-amplitude coupon data at multiple strain or stress levels, recording amplitude, mean, and cycles to failure.
  2. Separate runouts (unfailed specimens) from failures; runouts must be handled as censored data, not discarded.
  3. Fit the elastic and plastic terms simultaneously in log-life space using least squares, or fit each regime separately and blend at the transition.
  4. Check residuals: systematic curvature indicates the wrong model or a missing regime.
  5. Validate against an independent data set or a known component test before releasing the curve.

A minimal Python fit for the strain-life parameters illustrates the mechanics:

import numpy as np
from scipy.optimize import curve_fit

def strain_life(Nf, sf, b, ef, c, E):
    return (sf/E)*np.power(2*Nf, b) + ef*np.power(2*Nf, c)

p0 = [1200.0, -0.09, 0.6, -0.6]
popt, pcov = curve_fit(lambda Nf, sf, b, ef, c: strain_life(Nf, sf, b, ef, c, 207000.0),
                       Nf_data, eps_a_data, p0=p0, maxfev=20000)
sigma_f, b, eps_f, c = popt
print(f"sigma_f'={sigma_f:.1f} MPa  b={b:.4f}  eps_f'={eps_f:.4f}  c={c:.4f}")

Typical fitted output for the example steel might read sigma_f'=1180 MPa, b=-0.088, eps_f'=0.58, c=-0.61. If b comes out positive or c near zero, the data set is too narrow or the runouts were mishandled. Always report the fitting range and the number of specimens; a curve extrapolated beyond its fitted life range is an assumption, not a material property.

When only S-N data exist but the component experiences local plasticity, estimate ε-N parameters using the four-point correlation method (Manson's universal slopes) as a first pass, then refine with a strain-controlled test if the design is life-critical.

Selecting the Right Framework

The decision hinges on the local stress-strain state at the critical location, not on the nominal load. If the notch-root strain remains elastic and the design life exceeds roughly 104–105 cycles, S-N with a mean-stress correction is efficient and well-validated. If local plasticity occurs, if the material is strain-rate sensitive, or if the design life is below the transition life, ε-N is required. In practice, many teams run both and compare: agreement within a factor of two on life is a reasonable confidence indicator, while large divergence signals that the regime assumption or the mean-stress treatment needs review.

S-N vs ε-N Regimes and Mean-Stress Correction Path Cycles to failure, N_f (log scale) Stress amplitude / Strain amplitude Low-cycle / plastic High-cycle / elastic 2N_t transition S-N (Basquin) ε-N plastic term ε-N elastic term endurance limit σ_e Mean-Stress Correction Goodman: σ_a/σ_e + σ_m/σ_u = 1 Gerber: σ_a/σ_e + (σ_m/σ_u)² = 1 SWT: σ_max · Δε/2 = f(2N_f) Apply once — never stack corrections N_f < 2N_t → ε-N N_f > 2N_t → S-N

The figure summarizes the decision logic: the transition life separates the two regimes, the S-N and ε-N elastic terms coincide above it, and the plastic term governs below it. Mean-stress corrections modify the amplitude axis but do not change the regime boundary. Keeping this structure in mind prevents the two most damaging errors in fatigue CAE — applying an elastic method to a plastic problem, and correcting for mean stress more than once.