Free Open-Source Fatigue Analysis Software
Free Open-Source Fatigue Analysis Software
M.M. Pedersen
Aalborg University, Department of Energy Technology, Pontoppidanstraede 101, DK-9220 Aalborg East, Denmark
(e-mail: mmp@et.aau.dk).
Abstract
This paper describes a novel fatigue analysis software for post processing FE models. The program is called FATLAB
and is available as free open-source at www.fatiguetoolbox.org. The program is intended for teaching and research, as
well as practical engineering and handles both non-linear FE models and multiaxial loading. The background theory
and analysis workflow is reviewed in this paper together with a thorough application example.
Keywords: Mechanical engineering, Fatigue analysis, FE post processing, Multiaxial fatigue.
𝜎 𝜎
Δσ
time N
F F
Mean stress SN curve Damage calc.
σa
Δσ
σm N c) 1D interpolation d) 2D interpolation
𝜎 𝜎
FE model Result plot
𝜃 F
Figure 1: Fatigue analysis flow.
2
2.2.3. 1D Interpolation 2.3.2. Principal stresses
1D Interpolation (Figure 2c) is useful, e.g. when an- The calculation of principal stresses in 3D is easily
alyzing a model which experiences large deformation. achieved from the eigenvalues of the stress tensor.
In this case, the stresses will not depend linearly on the
load, because the geometry of the structure changes dur- σ p = eig(σ(t)) (6)
ing the analysis.
A an arbitrary number of FE unit load cases can be The principal stresses are defined by their algebraic
supplied and Fatlab will interpolate the stress compo- magnitude, i.e. σ1 > σ2 > σ3 .
nents linearly between them on an individual basis. Due to the way the principal stresses are defined,
none of them are generally suitable for fatigue assess-
2.2.4. 2D Interpolation ment alone. Therefore, the numerically largest principal
As the name suggests, 2D Interpolation (Figure 2d) stress is used
is used when the stress-load relationship needs to be in-
σ1
(
terpolated along two dimensions, e.g. in the case where f or |σ1 | ≥ |σ3 |
σ pnmax = (7)
the load changes direction and magnitude and both have σ3 f or |σ3 | < |σ1 |
a significant influence on the stress.
The four different stress load relationships can be 2.4. Critical plane analysis
mixed and combined as required by the FE model at
In case of significant multiaxiality, Fatlab also offers
hand, i.e. one load component can be linear and another
the possibility to perform a critical plane analysis. The
load can e.g. be bilinear or interpolated.
idea behind the critical plane approach is to find the
plane in which the component will fail, i.e. the criti-
2.3. Fatigue stress calculation
cal plane. In order to do so, a number of search planes
For fatigue calculations, in particular the cycle count-
intersecting the surface orthogonally and at some incli-
ing process, only one stress component must be selected
nation are searched for the maximum value of a damage
or a fatigue effective stress must be calculated. Selecting
parameter. The plane that maximizes the damage pa-
a stress component, e.g. σ x is straight-forward, how-
rameter is called the critical plane. Each search plane
ever this is only meaningful in certain cases, where the
is defined by its unit normal vector n s , which is again
global coordinate system is appropriately oriented in re-
defined by the angle to the local x-axis θ and the incli-
lation to the fatigue critical location.
nation angle φ, as shown in Figure 3.
In other cases, a fatigue effective stress can be used,
In Fatlab, the user specifies the number of search
such as the (signed) von Mises, principal stress or mod-
planes to use in the analysis. The planes are distributed
ified shear stress, as explained in the following.
evenly between 0 and 180◦ around the surface normal
and inclined between 0 and 90◦ . The stress determina-
2.3.1. Signed von Mises
tion, cycle counting and damage accumulation is then
Two versions of the von Mises equivalent stress are
carried out individually for each search plane, and the
available; the standard strictly positive and the so-called
plane achieving the maximum damage is selected as the
signed von Mises, which can take also negative values.
critical plane.
The first is generally a poor choice for fatigue assess-
Establishing a rotation matrix describing the direction
ment because the range calculated from the strictly pos-
cosines for the local frame defining each search plane
itive history of the von Mises stress does not include any
facilitates the calculations
potentially negative part of the stress cycle.
h i a11 a12 a13
σvm = [1/2((σ x − σy )2 + (σy − σz )2 + (σz − σ x )2 A= n u v = a21 a22 a23 (8)
(4)
a31 a32 a33
+6(τ2xy + τ2yz + τ2xz ))]
The normal stress σn on the search plane can then
The signed von Mises σ svm is thus used to mediate
be determined from the stress tensor and the rotation
this shortcoming, i.e. by applying the sign of the first
matrix [10]
stress invariant.
σ svm = sign(I1 ) · σvm (5) σn = σ x a211 + σy a212 + σz a213 + 2(τ xy a11 a12
(9)
where I1 = σ x + σy + σz . +τ xz a11 a13 + τyz a13 a12 )
3
ns
z’
v 𝛕
y’ u sn
n
ϕ nθ,ϕ 𝛔n
𝚫𝛕
θ
z
x’
y
x
Resolving the amplitude or range of the normal stress among the different criteria, so here we use the criteria-
is trivial using traditional cycle counting techniques independent nomenclature of Papuga [? ], in which k is
both for constant and variable amplitude loading. defined as the ratio of the normal stress fatigue limit to
Similarly, the two shear stress components acting in the shear stress fatigue limit, both at zero mean stress
the search plane is calculated as
∆σR@σm =0
k= . (11)
∆τR@τm =0
τu = σ x a11 a21 + σy a12 a22 + σz a13 a23
+τ xy (a11 a22 + a12 a21 ) + τyz (a12 a23 2.5.1. Normal stress criterion
+a13 a22 ) + τzx (a13 a21 + a11 a23 ) This criterion is recommended by GL for brittle or
(10) semi-ductile components, e.g. spheroidal cast iron [12].
According to Bruun and Härkegaard [13] it is well
τv = σ x a11 a31 + σy a12 a32 + σz a13 a33 suited when the fatigue limit is controlled by sharp de-
+τ xy (a11 a32 + a12 a31 ) + τyz (a12 a33 fects, such as graphite flakes in grey cast iron.
+a13 a31 ) + τzx (a13 a31 + a11 a33 )
σeq,N = σn (12)
In the most general case, i.e. non-proportional (out-
of-phase) loading, the shear stress vector will describe For determination of the maximum normal stress it is
some trajectory on the search plane, see Figure 3 (right). only necessary to search planes intersecting the surface
Resolving the shear stress range in this case is far from orthogonally, i.e. no inclined search planes are neces-
trivial and a multitude of techniques have been proposed sary.
for this purpose. Typically some geometric element is In case of uniaxial/proportional loading, the normal
fitted to the trajectory, e.g. the longest chord, minimum stress criterion corresponds to the principal stress ap-
circumscribed circle, maximum rectangular hull, etc., proach. In the case of non-proportional (out-of-phase)
and the shear stress amplitude and mean is determined loading, however, the use of this criterion avoids the
from here[11]. accumulation of damage from stress in different direc-
tions.
2.5. Multiaxial criteria This is currently the only criterion in Fatlab that sup-
A large number of damage parameters have been pro- ports variable amplitude loading using the traditional
posed in the literature, however only small selection cycle counting methods.
is currently available in Fatlab. All criteria are imple-
mented such that an equivalent uniaxial stress is calcu- 2.5.2. Findley criterion
lated which can then be compared against the SN curve. The Findley criterion [? ] is a shear stress based crite-
This may violate some of the criteria since in some cases rion predicting failure on the plane showing the highest
they are only be defined at the fatigue limit. damage calculated from the equivalent stress amplitude
Most criteria requires an experimentally determined √
constant k. The definition of this constant varies σeq,F = 2 k − 1τa + (2 − k)σmax (13)
4
Here, σmax is the largest normal stress observed on 2.6.1. Reservoir counting
the plane during the load cycle. This is not the original In order to use this method, the stress-time history is
formulation, but a rewritten one [? ] which provides an rearranged, such that it begins and ends with the highest
equivalent normal stress to be evaluated against the SN peak [15]. This is accomplished by moving the part of
curve for uniaxial normal stress. the stress-time history prior to the highest peak to the
end of the stress history.
2.5.3. Matake criterion The stress-time history is then imagined to be filled
The Matake criterion [14] is almost identical to the with water and subsequently drained, one valley at the
Findley criterion, except for a slightly different influ- time, starting from the lowest one. Each draining pro-
ence of the shear stress amplitude and the fact, that cedure results in one full stress cycle. The mean stress
the critical plane is defined as that obtaining the largest value is also recorded for each cycle.
shear stress.
2.6.2. Rainflow counting (half cycles)
σeq,M = kτa + (2 − k)σmax (14) The rainflow counting algorithm by Nieslony [16]
In general most of the multiaxial criteria primarily searches the stress-time history for half-cycles and pairs
relies on the shear stress amplitude as the dominating up opposing sets of these. In cases where half a stress
factor in the damage parameter. This is because crack cycle cannot be paired with an opposite half cycle,
initiation is typically observed on this plane in fatigue residual half cycles will occur. The handling of such
test experiments for ductile materials. residual half cycles can be problematic; however in Fat-
lab they are treated as any other cycles with ni = 0.5.
2.5.4. Dang Van criterion For long stress-time histories, only a small amount of
residual half cycles will remain. However, typically the
largest peak and deepest valley will remain as residual
σeq,D = kτa + (3 − 1.5k)σH,max (15)
half cycles, see Figure 4.
2.6. Cycle counting This algorithm is recommended for load-time series,
where the residual half cycles will not be closed by
Fatlab supports the following cycle counting tech-
a subsequent repeat of the time-series, i.e. where the
niques:
time-series actually describes the full lifetime loading
1. Reservoir counting of the component (or at least will not be repeated).
2. Rainflow counting (half cycles)
3. Rainflow counting (full cycles) 2.6.3. Rainflow counting (full cycles)
4. Single cycle (longest chord shear stress) If the time series at hand is expected to repeat during
the lifetime of the component under analysis, all half cy-
The reservoir counting algorithm is set as default and cles will be closed eventually. In this case the Rainflow
is recommended for short stress-time histories, because full algorithm is recommended, because it does not re-
it will only produce full cycles, i.e. no half-cycles as is turn any residual half cycles, i.e. they will all be closed.
the case for the rainflow counting algorithm. The rain- The algorithm is implemented after Amzallag et al.
flow counting algorithm is considered the best choice [17] and works by sequentially extracting cycles that are
for long stress-time series. In such cases, most half- smaller than or equal to its neighbors. After processing
cycles will be paired up, and the residual amount of the entire time-series this way, the residual cycles is du-
half-cycles relative to the total number of cycles is in- plicated and the process is repeated. This yields an ex-
significant. traction of full cycles corresponding to the residual and
Before any cycle counting, the stress-time history of a new residual equal to the previous.
the fatigue stress is searched for extremes, i.e. turning
points. This list of extreme values is then fed through a 2.6.4. Single cycle (longest chord shear stress)
racetrack filter order to eliminate stress ranges smaller For the shear stress based multiaxial criteria, e.g.
than some threshold value. The threshold is given as a Findley, the shear stress range on the search plane must
fraction of the maximum range and defaults to 0.05. be determined. This is achieved using the longest chord
The reduced stress-time history (list of extreme val- method [18]. The objective is to find the longest dis-
ues/turning points) is then used for cycle counting. No tance between two points on the curve described by the
binning of the stress ranges is done, i.e. all stress ranges tip of the shear stress vector on the search plane, see
are evaluated individually. Figure 3(right), i.e.
5
calculated for both parts of the SN curve (before/after
∆τ = max{max|τ(ti ) − τ(t j )|} (16) knee).
ti tj
q
X ni n1 n2 nq 2.8. Mean stress correction
D= = + + ... + ≤ 1.0 (17)
i
Ni N1 N2 Nq
The effect of mean stresses can be handled by several
Failure is usually assumed when reaching a damage different corrections. In all cases, the knee point stress
sum of D = 1.0, however it is well known that the real range of the SN curve is reduced by some amount de-
damage sum can vary greatly, e.g. in the range of 0.1 − pending on the mean stress of the cycle being treated as
10. Some codes therefore recommend using only 0.5 or shown in Figure 6.
0.2 [19].
The SN curve is defined according to Figure 5 us-
2.8.1. No mean stress correction
ing subscript R to denote resistance. Two SN curves
are shown; the dashed one is supplied by the user Selecting this (default) option will leave the SN
(∆σR1 , NR1 ) and the solid line is the one used in calcula- curve unaffected by the mean stress level. This is rec-
tions (∆σR2 , NR2 ), i.e. scaled down by the partial safety ommended in case of e.g. welded or bolted joints,
factor γ M f . The slopes of the two curves are identical, for which the detrimental effect of high tensile mean
i.e. m1 before the knee point and m2 after. It is possible stresses is already included in the SN curve.
(but not necessary) to define also two cut-off levels for
the SN curve; such that stress ranges below ∆σRmin will 2.8.2. Linear
be ignored, and stress ranges above ∆σRmax will produce
The linear mean stress correction reduces the allow-
a warning and set D ≥ 1.0.
able stress range depending on a single parameter called
In order to take into account the bi-linear nature of
the mean stress sensitivity.
SN curves, the calculation of the endurable number of
cycles is calculated as
∆σR2@σm = ∆σR2 − 2Mσm (20)
f or ∆σi > ∆σR2
C1
m
∆σ 1
C2i
The mean stress sensitivity M is determined from ex-
Ni = f or ∆σi ≤ ∆σR2
m
∆σi 2
(18)
periments and is defined as
f or ∆σi < ∆σmin
∞
where ∆σR2@σm is the stress range at the knee point cor- ∆σR2@σm =0
M= −1 (21)
rected for mean stress. The fatigue capacity C is also ∆σR2@σm =σa
6
Sine Cosine Decaying Short random Long random
1 1 1 1 1
0 0 0 0 0
−1 −1 −1 −1 −1
0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 5 10 15 20 0 0.5 1 1.5 2
time time time time time x 10
4
Rainflow half Rainflow half Rainflow half Rainflow half Rainflow half
Cycles: 0 full, 3 half Cycles: 0 full, 2 half Cycles: 0 full, 9 half Cycles: 6 full, 11 half Cycles: 1266 full, 20 half
Eq. range: 1.73 @ N=1 Eq. range: 2.00 @ N=1 Eq. range: 0.94 @ N=5 Eq. range: 1.23 @ N=12 Eq. range: 0.75 @ N=1276
Rainflow full Rainflow full Rainflow full Rainflow full Rainflow full
Cycles: 2 full, 0 half Cycles: 2 full, 0 half Cycles: 5 full, 0 half Cycles: 12 full, 0 half Cycles: 1283 full, 0 half
Eq. range: 2.00 @ N=1 Eq. range: 0.00 @ N=1 Eq. range: 1.08 @ N=5 Eq. range: 1.25 @ N=12 Eq. range: 0.74 @ N=1276
450
Re = 355MPa
400 Rm = 520MPa R=-1 Haigh diagram. It is thus less conservative compared to
𝛥𝜎R2 = 230MPa
𝜎R2@𝜎m
R=- R=0
σ2
!
250
200
60% compression ∆σR2@σm = ∆σR2 1 − m2 (23)
𝛥𝜎R2 Gerber parabola Rm
2 Modified Goodman
150
Linear (M=0.3)
100 This option is recommended for reasonably ductile
50 materials [20].
0
-Re -300 -200 -100 0 100 200 300 Re
Mean stress m [MPa] 2.8.5. 60% compression rule
Some codes, e.g. EC3 [21] allows using only part
Figure 6: Haigh diagram showing mean stress corrections. of the compressive stresses under the condition, that
the component under investigation is not affected by
7
detrimental tensile residual stresses, e.g. stress relieved 2.9.3. Utilization ratio
welded joints. The utilization ratio (on stresses, rather than life) is
calculated from
∆σEC3 = |σmax | + 0.6 · |σmin | (24) ∆σeq@NR2
UR = (27)
In Fatlab, this principle is incorporated as a modifi- ∆σR2
cation to the SN curve instead of a modification on the i.e. using the equivalent stress at the same number of
stress range, i.e. by scaling up the SN curve under com- cycles as the knee point of the SN curve. The utiliza-
pressive mean stresses. tion ratio on stresses is often preferable compared to the
damage because it is less sensitive to small changes e.g.
in loading.
2.9. Result evaluation
4.5. Input files availability [6] SINTEF, P-FAT, FEM post-processor for fatigue analysis,
www.sintef.no/en/sintef-materials-and-chemistry/softvare/fem-
To be downloaded from [www.fatiguetoolbox.org]. post-processor-for-fatigue-analysis/.
[7] J. Papuga, PragTic Software, http://www.pragtic.com/ (2015).
[8] MathWorks, Matlab, www.mathworks.com.
5. Discussion [9] M. M. Pedersen, Multiaxial fatigue assessment of welded joints
using the notch stress approach, Int. Journal of Fatigue.
[10] D. Socie, G. Marquis, Multiaxial Fatigue, SAE, 2000.
Showed an example of the complex fatigue analysis [11] G. Petrucci, A critical assessment of methods for the determi-
of a ductile cast iron component subjected to multiaxial nation of the shear stress amplitude in multiaxial fatigue crite-
loading. Introduced Fatlab program ria belonging to critical plane class, Int. Journal of Fatigue 74
(2015) 119131.
[12] GL, Guideline for the Ceritication of Wind Turbines; Edition
6. Acknowledgments 2010, Germanischer Lloyd Industrial Services GmbH - Rules
and Guidelines IV.
[13] Ø. A. Bruun, G. Härkeg\rard, A comparative study of design
Fatlab was developed at Aalborg University in col- code criteria for prediction of the fatigue limit under in-phase
laboration with R&D A/S. It is part of the project Wind and out-of-phase tensiontorsion cycles, Int. Journal of Fatigue
load simulator for function and durability test of wind 73 (2015) 116.
[14] T. Matake, An explanation on fatigue limit under combined
turbine drive-trains and has been partly sponsored by the stress, Bull JSME 20 (1977) 25763.
Danish Energy Technology Development and Demon- [15] S. J. Maddox, Fatigue strength of welded structures, 2nd Edi-
stration Programme (EUDP). tion, Woodhead Publishing, Cambridge, UK, 1991.
[16] A. Nieslony, Rainflow counting algorithm,
http://www.mathworks.com/matlabcentral/fileexchange/3026-
rainflow-counting-algorithm.
7. References
[17] C. Amzallag, J. P. Gerey, J. L. Robert, J. Bahuaudl, Standard-
ization of the rainflow counting method for fatigue analysis, Int.
[1] MSC Software, MSC.Fatigue, www.mscsoftware.com.
Journal of Fatigue 16 (1993) 287–293.
[2] HBM, nCode software, www.ncode.com.
[18] J. Lemaitre, J.-L. Chaboche, Mechanics of solid materials, Cam-
[3] MAGNA, FEMFAT software, www.femfat.com.
bridge University Press, 1994.
[4] STZ Verkehr GmbH, winLIFE, www.stz-verkehr.de.
[19] A. Hobbacher, IIW Recommendations for Fatigue Design of
[5] J. Papuga, Mapping of Fatigue Damages Program Shell of FE-
Welded Joints and Components, Revised September 2013., IIW-
Calculation, Ph.D. thesis, CTU, Prague (2005).
9
doc. XIII-2460-13, 2013.
[20] J. Schijve, Fatigue of structures and materials, 2nd Edition,
Springer, 2009.
[21] Eurocode 3, Eurocode 3, Design of Steel Structures, Part 1-9:
Fatigue, CEN, 2005.
[22] E. Niemi, Random loading behavior of welded components,
in: S. J. Maddox, M. Prager (Eds.), IIW International Con-
ference on Performance of Dynamically Loaded Welded Struc-
tures, Welding Research Council, San Francisco, 1997.
[23] J. Jonkman, FAST v8, NWTC Information Portal,
nwtc.nrel.gov/FAST8.
[24] Gudehus, Zenner, Leitfaden für eine Betriebsfestigkeitsrech-
nung, 4th Edition, Stahleisen, 1999.
10
11
12