File Exchange

image thumbnail

Quick Fatigue Tool

version 6.11.13 (2 GB) by

Multiaxial fatigue analysis code



If you experience problems using this code, please contact the author directly at
Messages left in the comment section cannot easily be replied to.

Quick Fatigue Tool for MATLAB is an experimental fatigue analysis code. The application includes:
• A general stress-life and strain-life fatigue analysis framework configured via a text-based interface;
• Material Manager, a material database and MATLAB application which allows the user to create and store materials for fatigue analysis;
• Multiaxial Gauge Fatigue, a strain-life code and MATLAB application which allows the user to perform fatigue analysis from measured strain gauge histories;
• Export Tool, an ODB interface which allows the user to export fatigue results to an Abaqus Output Database (.odb) file for visualization in SIMULIA Abaqus/Viewer; and
• Supplementary analysis tools for static failure assessment.

Quick Fatigue Tool is a family of scripts which run alongside the standard MATLAB user interface. The program does not require any executables, custom UIs or external dependencies—all of the code is available to view and customise according to the user’s desires.

The stress-life program requires the following inputs from the user:

1. A material definition
2. A loading definition consisting of:
a. Stress data sets
b. Load histories

The above input is specified by means of a job file. This is an .m script file containing a list of options which completely define the analysis. Analyses are performed by running the job file. Basic fatigue result output is written to the command window, and extensive output is written to a set of individual data files.

Below is a summary of the main features of Quick Fatigue Tool.

Stresses exported from finite elements models can be analysed to obtain the following insights:

- Fatigue life
- Damage
- Factor of strength
- Fatigue reserve factor
- Fatigue hotspots
- Maximum stress
- Stress histories
- Critical plane information

The code includes the following fatigue analysis algorithms:

- Uniaxial Stress-Life
- Uniaxial Strain-Life
- Stress-based Brown-Miller*
- Normal Stress*
- Findley's Method*
- Stress Invariant Parameter (von Mises, principal, hydrostatic and Tresca)
- BS 7608 Fatigue of Welded Steel Joints*
- User-defined

* Multiaxial (critical plane) methods

The code includes several additional features:

- Mean stress correction (including user-defined corrections)
- Custom fatigue reserve factor envelopes
- Surface finish effects
- Fatigue notch effects
- S-N knock-down curves
- Multiple group analysis
- Multiple block loading
- Virtual strain gauges
- Many more...

Quick Fatigue Tool includes the Gauge Fatigue Toolbox: A collection of MATLAB applications which allow the user to calculate fatigue lives from strain gauge data.

- Energy-based criteria to predict the onset of yield
- Stress-based and strain-based criteria of fibre-reinforced composites
- Stress-based criteria of closed-cell PVC foam
- Damage initiation criteria of fibre-reinforced composites (Hashin's theory and LaRC05)

For a quick guide to getting started, consult the README file. For a detailed description of the code and its features, refer to the Quick Fatigue Tool User Guide.

Comments and Ratings (19)

Dear Louis,

mainly interested in the material properties themselves for now but equally thankful for your great contribution.

All the best with it!


Hi, please forgive me if this is already explained and I am just not seeing it, but does this fatigue tool work with MATLAB only, or does it also require additional MATLAB Toolboxes?

very perfect .. and I will use them. thanks

Hi Manisha,

Please contact me at and further explain the error you are receiving. The tutorials are tested before each update so it should work. Make sure the Application_Files, Data and Project directories are all added to the MATLAB search path. Have you modified the file tutorial_intro.m in any way?

Kind regards,


Hi louis, even after running the intro tutorial file ,I am getting error in main.m file in the line preProcess.getPrincipalStress(N,Sxx,Syy,Szz,Txy,Tyz,Txz,algorithm,0). And also error using remat. Can you kindly help me fix the bug

Emily Zaeske

Great submission. Really helped me with my research.

Hi Portu,

I can confirm that this is a bug.

The Findley algorithm has been rewritten for v6.8 and I have included this fix. For now you can do the following in 6.7-07:

In main.m on line 705:
worstNodeTensor = [Sxx(tensorID, :); Syy(tensorID, :);...
Szz(tensorID, :); Txy(tensorID, :);...
Tyz(tensorID, :); Txz(tensorID, :)];


worstNodeTensor = [Sxx(tensorID, :); Syy(tensorID, :);...
Szz(tensorID, :); Txy(tensorID, :);...
Txz(tensorID, :); Tyz(tensorID, :)];

In algorithm_findley.m on line 52:
stress = [Sxxi; Syyi; Szzi; Txyi; Tyzi; Txzi];


stress = [Sxxi; Syyi; Szzi; Txyi; Txzi; Tyzi];


Portu (view profile)

Hi Louis,

I think there is a mistake in the Findley algorithm program since Tyz is in the 5th column of the stress matrix and Txz in the 6th. I believe all the calculations are made with these two vectors switched.

very nyce toolbox
see scope of great usage in comming future in upcomming times in fatigue analysis


QFT is stress-based calculator, and currently only accepts stress as the input. However, the code may be expanded in future versions to include strain-life methods with stress-strain dataset pairs.

For the time being you would have to convert the strain history into stresses. I would suggest this:

CAUTION: The stress-life approach assumes elastic stresses (very small plasticity). If the strain amplitudes are large enough that the equivalent stresses deviate significantly from the elastic stress (e*E), then the stress-life method is no longer valid.

Hi Louis,

Is it possible to use strain time history as input in this tool?


Hania (view profile)


Hania (view profile)


fsgeek (view profile)



- See for the latest update notes


- See for the latest update notes


- See for the latest update notes


- See for the latest update notes


- See for the latest update notes


- See for the latest update notes


- See for the latest update notes


- See for the latest update notes


- See for the latest update notes


- See for the latest update notes


- See for the latest update notes


- See for the latest update notes


- See for the latest update notes


- See for the latest update notes


See for the latest update notes


- See for the latest update notes


- Quick Fatigue Tool is now available on GitHub


- Bug fixes
- Improved workspace caching options
- The FRF calculation now accounts for the residual stress


- Bug fixes


- Bug fixes


- Bug fixes
- Improved behaviour of the Factor of Strength algorithm
- Improved log file output


- Bug fixes
- The ODB interface now accepts multiple part instances
- Added text file processor for material data
- Relaxed group definition checks
- Materials can be defined directly in text-based job files


- Bug fixes


- Bug fixes


- Bug fixes


- Bug fixes
- Added Virtual Strain Gauge app
- GUI improvements to the Gauge Fatigue Toolbox
- Improved Multiaxial Gauge Fatigue app


- Bug fixes


- Bug fixes
- Abaqus version can be now specified with the ODB interface
- Added Goodman B (Goodman-Buch hybrid) FRF envelope (consult Section 9.4.2 of the User Guide for details)
- General performance enhancements to the FRF code


- Bug fixes
- Jobs can now be submitted from a text file (consult Section 2.4.3 of the User Guide for details)
- Added virtual strain gauges
- BS 7608 algorithm now supports user-defined Sr-N data
- Minor GUI enhancements to the toolbox apps


- Bug fixes


- Bug fixes


- Bug fixes


- Bug fixes
- Performance enhancements
- Added fatigue notch factor job file option
- Improved fatigue limit definition for S-N data
- Improved convergence behaviour of the Factor of Strength algorithm
- Minor GUI enhancements for Material Manager


- Bug fixes
- FOS accuracy is available as field output
- Fixed a typo in Appendix I of the User Guide. Equation A1.2 indicated that Q(3, 3) = sind(theta), when it should be
Q(3, 3) = sind(phi) [Pec]


- Bug fixes


- Bug fixes
- Renamed Principal Stress algorithm to Normal Stress, as this is a more accurate description
- Replaced von Mises algorithm with Stress Invariant Parameter algorithm. Consult Section 6.5 of the User Guide for more information


- Bug fixes
- Improved functionality of user FRF data (consult Section 9.4.1 of the User Manual for details)
- Added data check function (consult Section 2.4.2 of the User Manual for details)


- Bug fixes
- ODB interface can now export results to an existing results step
- Results can now be superimposed onto field data from a previous job. Consult Section 4.8 of the User Guide for more information


- Bug fixes
- Analysis items can be written to the results .odb file as element/node sets
- The ODB interface now supports collapsed elements


- Bug fixes


- Bug fixes
- Minor GUI enhancements
- Improved Multiaxial Gauge Fatigue App
- Yield calculation now uses multi-linear hardening model


- Bug fixes


- Bug fixes
- Further enhancements to the Multiaxial Gauge Fatigue app


- Bug fixes
- New critical plane search algorithm extended to all multiaxial algorithms
- Performance enhancements
- New Multiaxial Gauge Fatigue application
- Added combined (shear + normal) criterion for BS 7608 analysis


- Bug fixes
- ODB interface is now compatible with stresses from Abaqus/Explicit analyses
- Improved implementation of Findley's Method is now up to 20 times faster and behaves closer to the original theory


- Fixed an issue where Txz and Tyz shear tensor components were reversed, occasionally leading to incorrect results [Portu]


- Bug fixes


- Bug fixes
- Minor performance enhancements
- Nodal elimination is 25% more effective
- Added "PEEK" analysis option for large models (consult Section 4.5.3 of the User Manual for details)


- Bug fixes
- The yield calculation can be used with a total or shear strain criterion
- Field data for automatic ODB export can now be preselected from defaults


- Bug fixes
- Performance enhancements for the Factor of Strength algorithm

- Additional bug fix for 6.7-03


- Bug fixes
- Improved field output for BS 7608 weld analysis


- Bug fixes
- Minor enhancements to the critical plane search algorithm
- Fixed some crashes in the NASALIFE algorithm
- S-N data can be scaled by knock-down factors
- Dataset files containing multiple regions can contain different element types


- Bug fixes
- Items below design life are written as hotspots
- Endurance limit can now be specified per analysis group
- Walker Gamma parameter can now be user-defined
- Added worst cycle stress amplitude to the command window results summary


- Bug fixes
- FE models can be analysed in groups with multiple material definitions
- Analysis messages can be printed to the command window in real time
- Stability fixes for custom FRF envelopes
- Material endurance limit can be specified manually

- Additional bug fixes for 6.6-03


- Bug fixes
- Revised Factor of Strength algorithm for improved reliability
- User-defined step names when writing results from multiple analyses to an .odb file
- Worst analysis item ID is now reported in the message file
- Minor GUI enhancements


- Bug fixes
- Added compatibility with user-defined FRF envelopes
- Improved enforcement of the endurance limit


- Bug fixes
- New, iterative Factor of Strength algorithm
- Fatigue Reserve Factor can now be used with Goodman or Gerber envelopes
- Load histories can now be offset
- Improved Goodman mean stress correction
- More accurate load history gating


- Bug fixes
- New cycle counting algorithm (up to 15x better cycle recognition)
- History data can now be defined directly (see Section 3.3 of the User Manual for details)
- Improved default MATLAB figure visibility
- Added YouTube tutorial


- Bug fixes
- ODB files are now automatically upgraded
- Export Tool is at least 2x faster with element-nodal data
- NASALIFE algorithm has been re-worked
- User can now choose between several effective stress parameters for the NASALIFE algorithm


- Bug fixes
- Added NASALIFE fatigue algorithm
- Added ability to supply user-defined mean stress corrections
- Surface finish can now be specified in terms of roughness (Rz)
- Field data can be automatically exported to the .odb file after analysis


- Bug fixes
- Added user-defined units
- Added a second tutorial to the User Guide
- Nodal elimination can now be performed based on a user-defined design life


- Bug fixes
- Improved peak-valley detection
- MATLAB figures can now be saved in various formats [P. Altidis]


- Bug fixes
- Field data can now be written back to the model ODB and viewed as a contour plot in Abaqus/Viewer
- Updated documentation


- Bug fixes
- Improved stability of high frequency dataset loading


- Bug fixes
- Added support for shell face stresses
- Input file reader generally more stable
- Improved sign conventions for von Mises algorithm


- Bug fixes


- Bug fixes
- Added Uniaxial Stress-Life algorithm
- New history output including a Rainflow histogram of cycles
- Improved peak-valley detection with automatic gating and noise reduction
- Added loading capability for high frequency stress datasets


- Bug fixes


- Bug fixes
- Updated documentation
- See the change log for the complete list of updates!


- Bug fixes
- Updated documentation
- Added Soderberg mean stress correction
- Added BS 7608 Fatigue of Welded Steel Joints
- See the change log for the complete list of updates!


- Many bug fixes
- Surface finish can now be specified (directly or from a .kt file)
- New gauge fatigue toolbox for calculating fatigue from measured strain data
- Updated documentation
- See the change log for the complete list of updates!


- Bug fixes
- S-N data can now be scaled
- New field output including the worst stress amplitude for each analysis item
- Updated documentation
- See the change log for the complete list of updates!


- Bug fixes
- Updated documentation

MATLAB Release
MATLAB 8.3 (R2014a)

Inspired by: Multiple eigen-values for 2x2 and 3x3 matrices

MATLAB Online Live Editor Challenge

Win cash prizes and have your live script featured on our website

Learn more

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video