Running an analysis

Run Fatlab by executing Fatlab.m in Matlab (source version) or selecting Fatlab from the Windows Start menu (deployed version) to get the main window containing:

  • Toolbar: Open, save, new analysis. Pan, zoom, rotate view. Select/probe nodes and help.
  • Model view: 3D view of the FE model (or part of it).
  • Setup panel: Buttons for setting up and running an analysis + modifying the model view.
  • Results panel: Specify and view detailed results.

A fatigue analysis consists of the following steps, each activated by a button in the setup panel.

  1. Setup loads
  2. Setup model
  3. Setup SN curve
  4. Running the analysis

1. Setup loads

The first step in setting up an analysis is to import the loads. Fatlab currently accepts only time series as loading. Therefore to analyse simple cases, e.g. single load ranges, the user must construct a load-time series, e.g. a sine wave having the correct min/max mean values.

The loads file is imported into Fatlab through Setup Loads>Browse… and the content is plotted in the graph. Additional statistical information is provided in the table below. If the loads file have been edited outside Fatlab, the changes can be imported using the Update button.

The load time series can also be manipulated in this window by entering a scale/offset in the table. This is particularly useful for sensitivity studies.

For longer time series, the computational time can be reduced using the Load reduction popup menu. Here, the user can choose from the following options:

  • Full time series: Calculate stress at all time instances of input.
  • All turning points: If the input is  oversampled, this option removes all non-peak time instances, without any loss of damage.
  • Racetrack filtered:  The input is subjected to racetrack filtering eliminating cycles smaller than 5, 10, 20, 30 or 40% of the largest range. This causes minor loss in damage.
  • Single cycle DEL: The input is condensed to a single sinusoidal load cycle with a range corresponding to the damage equivalent load of the input, calculated using the slope (m) specified above.


  • The provided load-time series must contain at least one cycle for one of the load components.
  • A load component is allowed to be constant, e.g. 0, as long as some other load component experiences at least one cycle.
  • For constant loads, e.g. gravity, add a constant time series to control this.

2. Setup model

The second step is to import the model file. Select the file using the Browse button and the appropriate file format from the Format popup menu and the model is imported. This processes the FE model by “hollowing it out”, i.e. finding and excluding internal nodes and element faces to enhance performance.

Next, the FE stress files must be imported. Again the file format must be selected. Press Add to select the FE stress files (multiple files can be selected in one go, by holding CTRL while selecting them). Then place the FE stress files in ascending order using the up/down buttons.

The requirements to the FE stress files differ depending on the load-stress relationship (Type) chosen for each load component:

  • Linear: A single FE stress file is imported.
  • Bilinear: Two FE stress files is imported (one for negative and one for positive loading).
  • 1D interpolation:  A minimum of 2 FE stress files must be given.
  • 2D interpolation: A  minimum of 4 FE stress files must be given.
    • Var for 2D interp.: No FE stress files is used for this type. This is simply a helper-variable for the 2D interpolation routine, e.g. an angle or similar.

In all cases except 2D interpolation, extrapolation beyond the smallest/largest FE unit load case is supported. Thus, in the case of 2D interpolation, the supplied FE unit load cases must cover the entire loading range, i.e. if the max load is 100kN, an FE unit load case of at least 100kN must be supplied.

Finish by pressing OK. This causes the program to consolidate the inputs, i.e. arranging them in a neat manner for fast access later.

Pressing OK returns to the main window and displays the FE model.


  • It is an error if the FE stress files are not placed in monotonically increasing order.
  • The lists of nodes in the FE stress files must be a subset of the nodes in the model.
  • Currently no sanity checks are performed on the input, e.g. whether the selected format matches the selected file and so forth, so you will have to do that yourself.

 3. Setup SN curve

Pressing Setup SN curve brings up the window shown below. Here, the user may supply the SN curve, mean stress handling, fatigue stress, safety factor and so forth for the analysis.

In the Database panel, the user can insert as many SN curves as necessary. Fatlab will use the one that is selected for the overall analysis. The remaining SN curves can be used for analysis of hotspots later on or comparison of different materials. Also the mean stress handling and analysis options are stored individually with each SN curve. A database can be saved to a file and then loaded into another analysis.

Selecting an SN curve will bring up its defining parameters and shows the curve in the diagram. The dashed line SN curve is the one the user defines and the full line SN curve is reduced by the partial safety factor. The latter is of course used in the computations.

The input parameters is explained in the following table:

Parameter Description
Primary slope, m1 Slope of the SN curve before the knee.
Secondary slope, m2 Slope of the SN curve after the knee.
Fatigue strength, dsR1 Stress range defining the SN curve [MPa] (at zero mean stress).
Associated cycles, NR1 Number of cycles at which the above stress range is given. Typically 2,000,000.
Knee point stress range, dsR2 Stress range at the knee point [MPa]. Calculated from ds1/N1.
Knee point cycles, NR2 Number of cycles at the stress range. Typically 5,000,000 (EC3) or 10,000,000 (IIW).
Max/min cut-off Limit value at top/bottom where the SN curve is horizontal [MPa].
Mean stress mode None: No mean stress correction. Recommended e.g. for welded or bolted joints.
Linear: Simple linear mean stress correction. Recommended if M is available.
Bilinear: Same as linear until R=0, then follows line down to Rm.
Modified Goodman: Recommended for brittle materials.
Gerber parabola: Recommended for ductile materials.
Soderberg: Similar to Goodman, but using Re instead of Rm.
Smith-Watson-Topper: only depends on R
60% compression: Equivalent to EC3 rule using only 60% of compressive loading.
IIW, low residual stress: FAT classes are scaled up by up to 1.6.
IIW, medium residual stress: FAT classes are scaled up by up to 1.3.
FKM: controlled by M and M/3 depending on R.
Mean stress sensitivity, M Slope of linear mean stress reduction in Haigh diagram.
Yield strength, Re [MPa] Material yield strength, used if “Observe yield lines” or “Soderberg” mean stress mode is selected.
Tensile strength, Rm [MPa] Material tensile strength, used by Goodman/Gerber mean stress correction.
Observe yield lines Limits SN curve to avoid yielding.
Extrapolate in compression Extend mean stress correction for compressive mean stress (non-conservative).
Fatigue stress Sx, Sy, Sz, Txy, Tyz, Txz: Stress components in global coordinate system.
P1, P2, P3: Principal stresses.
Pnmax: Numerically largest principal stress (between P1 and P3). Default.
Tmax: Maximum shear stress.
CP: Critical plane approach.
Cycle counter Reservoir: Recommended for short time series (few/single cycles)
Rainflow half: Recommended for non-repeating time series (returns a number of residual half cycles).
Rainflow full: Recommended for repeating time series (no residual half cycles).
Single cycle: No counting, just set number of cycles to 1.
Single cycle LC: as above, but using the “Longest Chord” method for determining the shear stress amplitude.
Single cycle MCC/MRH: under development.
Partial safety factor Safety factor scaling down the SN curve.
Multiaxial criterion Select Fatigue stress = CP to enable these options.
Normal stress
Modified shear
IIW equivalent
Normal search planes Number of search planes normal to the surface to use in critical plane method.
Inclined search planes Used for the Findley criterion.
1 = no inclination planes (search planes normal to surface only).
2 = search planes normal to surface and at 45 degrees inclination
3+ = distribute inclination planes evenly between 0 and 90 degrees.
Multiaxiality parameter, k1, k2 Used for the multiaxial criteria. See the Theory reference.


  • Using the critical plane method can be very time consuming (execution time grows linear with no. search planes). It is therefore recommended to perform a simple analysis first, then res-select a few interesting nodes and then switch to critical plane analysis.

4. Running the analysis

After setting up the model, the loading and the SN curve, Fatlab is ready to run fatigue analysis. Pressing Run analysis brings up the dialog shown below. Here it is possible to adjust performance settings and reduce the scope of the analysis.

A Racetrack filter fraction may be entered (default is 0.05, set to 0.0 to disable). This causes Fatlab to discard stress ranges smaller than the given fraction of the maximum occurring stress range (calculated individually for each node).

The Select nodes panel allows for selecting a subset of nodes for analysis:

  • All nodes: Analyse all nodes in model (element corner nodes only).
  • All visible nodes: Only analyse the currently visible nodes.
  • Nodelist from file: An ANSYS NLIST export file is read containing the node numbers to analyse.
  • Node range: A vector of node number specified using Matlab syntax, e.g. [1 2 3 6:10].
  • Selected (single) node: Run analysis only for the node selected in the main window.
  • Nodes from previous result: Selects those nodes from a previous run, that experience a total damage sum larger than the specified value.

The Damage accumulation panel allows the user to add the damage from an analysis to the the damage found in the previous analysis. This is intended for damage monitoring of a structure.

4 thoughts on “Running an analysis

  1. George Li

    Hi, Dr. Petersen, I have the following problem while loading loads files within the FATLAB 2.054 version:
    Error setup_loads>calc_LC_DELs (line 164)
    extremes = sig2ext_mex(LC.L(:,i));
    btw, I run the Matlab R2020a on Mac OS.

    1. admin Post author

      Hi George

      Fatlab only runs on the Windows platform. All the .mex files have been compiled for this.

      BR Mikkel

  2. NIcola Pecile

    Dear Mr. Pedersen,

    First and foremost, I would like to congratulate you for this magnificent tool. I am a mechanical engineering master’s degree student from Italy, I am part of a Formula Sae Team . During these year I designed new uprights and now i’m going to do the fatigue verification with the tool you developed. The most critical point has a multiaxial state of stress for this reason I am going to use a multiaxial criterion. The problem is that I can only use normal stress criterion and I am not able to use the others. Do you have any suggestion? It’s something special to do in order to use the other criterions? At the moment I am using Fatlab 2.054

    Thank you in advance,

    Nicola Pecile

    1. admin Post author

      Dear Nicola

      Thank you for posting. At the moment, Fatlab only supports the normal stress criterion for critical plane analysis. In this case, it is only necessary to search planes that are perpendicular to the surface. I did try to implement further criteria, but I never finished it because it simply got out of hand, since also planes inclined to the surface should be considered for finding the plane of maximum shear. This causes massive bookkeeping challenges, but other problems also followed, e.g. how to extract the range of the shear stress in the search planes in a manner that is coherent with the normal stress ranges…?

      I suppose the best option offered by Fatlab is to use the critical plane approach with the normal stress criterion and good safety factor

      Good luck,
      BR Mikkel


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.