Code_Aster Fatigue Analysis
Theory: from stress history to life
Overview
Is fatigue analysis in Code_Aster done with separate commands from the stress analysis?
Yes. Fatigue is assessed as post-processing of the stress analysis. First a static or transient analysis gives stresses for the changing loads. Then the stress time history at the point of interest goes into POST_FATIGUE, which splits it into cycles by rainflow counting, applies a mean-stress correction, takes each cycle's damage from the S-N curve defined in the material and sums them by Miner's rule. When stress is multiaxial and principal directions rotate, POST_FATIGUE's multiaxial criteria or CALC_FATIGUE give a damage distribution over the structure using methods such as the critical plane. Because Code_Aster has long been used to assess EDF's nuclear components, procedures following the pressure-vessel code RCC-M are also provided.
Mean-stress correction, S-N curve and Miner's rule
σ_a is amplitude, σ_m mean stress, σ_u tensile strength, σ_ar the corrected equivalent amplitude, σ_f′ and b Basquin constants, N cycles to failure, n the number of applied cycles and D cumulative damage (failure at 1).
Counting the way rain runs off a roof
Rainflow counting was proposed in 1968 by Tatsuo Endo and Masanori Matsuishi of Kyushu Institute of Technology. Turning the stress-history plot on its side, they likened the counting to rain running down a pagoda roof — hence the name. Because it extracts cycles that correspond to the hysteresis loops the material actually traces under irregular loading, it is now standard in automotive, aerospace and nuclear engineering alike.
Worked examples
Example: damage from a short stress history (steel assumed: σ_u 600 MPa, σ_f′ = 900 MPa, b = −0.09)
Stress history (MPa): 0 → 250 → −50 → 150 → 50 → 200 → −150 → 0. Rainflow counting gives these cycles.
| Range | Mean | Count | Goodman-corrected amplitude | Cycles to failure N |
|---|---|---|---|---|
| 250 | 125 | 0.5 | 157.9 | 1.25×10⁸ |
| 100 | 100 | 1 | 60.0 | 5.84×10¹² |
| 250 | 75 | 1 | 142.9 | 3.81×10⁸ |
| 400 | 50 | 0.5 | 218.2 | 3.44×10⁶ |
| 150 | −75 | 0.5 | 75.0 | 4.90×10¹¹ |
Damage per block is 1.52×10⁻⁷, so failure takes about 6.6 million repeats of the block. About 95% of the damage comes from the 400 MPa half cycle (the first peak at 250 MPa and the later valley at −150 MPa). Without mean-stress correction the life becomes about 17.8 million blocks, 2.7 times longer.
I split long measured data into daily files, ran fatigue on each, and summed the damage. Is there a problem?
You risk missing the largest cycle. In this example most damage comes from the 400 MPa cycle formed by the history's first peak and a valley near the end; cutting the history prevents that pairing and splits it into halves of smaller cycles. Because fatigue damage scales with amplitude to a high power (about the 11th here), losing the largest cycle greatly overestimates life. If you process in pieces, join each piece's leftover half cycles and run rainflow again at the end, or separately add one cycle spanning the overall maximum and minimum. Also, the history changes with the assessment point, so check not only the peak-stress point but also points where the combination of amplitude and mean stress is severe.
Practical workflow
- Run stress analyses per load case and choose assessment points and stress components (or an equivalent stress).
- Define the S-N curve as a function in the material and give values needed for mean-stress correction, such as tensile strength.
- Specify rainflow and a correction such as Goodman in POST_FATIGUE and compute damage.
- Confirm results on a simple hand-calculable history before moving to real load histories.
- For multiaxial cases, map damage over the structure with critical-plane methods and confirm the most critical point.
“Check the S-N curve's units and definition”
One of the most common fatigue errors is misreading the S-N curve's definition. Whether the vertical axis is amplitude or range, whether the horizontal axis is cycles N or reversals 2N, and whether stress is in MPa or Pa can shift life by orders of magnitude. Code_Aster uses the curve you supply as a function verbatim, so when transcribing a curve from the literature, confirm which definition it uses and first check that a hand-calculable constant-amplitude case reproduces the published life.
Common mistakes
Mistakes and fixes
| Mistake | Effect | Fix |
|---|---|---|
| Counting the history in pieces | Largest cycle missed | Join leftovers and recount |
| Ignoring mean stress | Life overestimated | Correct with Goodman etc. |
| Amplitude vs range confusion | Life off by orders of magnitude | Check the S-N definition |
| Assessing only the peak-stress point | Critical point missed | Check the damage distribution |
| One equivalent stress for multiaxial loading | Rotation of principal axes ignored | Critical-plane method |
I'd like to learn related topics.
Related pages include rainflow counting, S-N curves and high-cycle fatigue, Miner's rule, Code_Aster structural analysis and introduction to Code_Aster.
Related Topics
Experience the theory firsthand with the interactive simulator for this field
All Simulators