Single Sine Tone Fatigue from FRF Analysis

The article below demonstrates three methods for a Single Sine Tone Fatigue Analysis based on FRF Analysis, implementing Sine-Sweep, Steady State (Steady) and Multiple Sine Tones (HARMO) approaches.

As an example, to analyze these methods, we will calculate the fatigue damage on a plate model, where we will enforce a sinusoidal acceleration with a frequency of 100Hz, and 2.0E6 mm/s2 amplitude for 100 seconds.

Time Period of this input signal will be, T=1/f=1/ (100 Hz) =0.01 sec

To calculate the FRF stresses we performed a Direct Frequency Response Analysis, applied the enforced acceleration in Z-direction via a RLOAD2 - SPCD configuration and requested results only for the frequency of interest, 100 HZ. The set up can be seen in the bellow image:


After the FRF solution is obtained one of the three methods will follow.



1.1 SINE-SWEEP Method:

Sine Sweep is a well-known method of vibration testing which is conducted to evaluate the vibration behavior of a specimen. For this case, it can be modified so no sweep happens, and damage evaluation will consider only a desired frequency. This method is applicable to both Optistruct and HyperLife.


More Information about Sine Sweep Fatigue Damage Calculation can be found in Optistruct’s and HyperLife’s Documentation:

Sine Sweep Fatigue (Optistruct)

Sine Sweep Fatigue (HyperLife)


For a single sine tone the following input steps are required to characterize the fatigue analysis:



  1. The LCID field on FATLOAD Bulk Data Entry references the Frequency Response Analysis subcase.
  2. The SWEEP continuation line should be specified on FATLOAD Bulk Data Entry, and corresponding sine sweep parameters, via SR (sweep rate) and SRUNIT (sweep rate unit) fields are required.

For SR=0.0 no sweep happens, the first loading frequency in the frequency response subcase is used for damage evaluation. Also, if only one loading frequency is defined in the frequency response subcase, then the damage value is calculated for that frequency.

  1. The SWEEP continuation line on the FATPARM Bulk Data Entry can be used to define the frequencies (NF or DF fields) at which the sine sweep fatigue calculations are performed. If we select NFREQ all the frequencies available in the FRF solution will be considered, in this case only the one of 100Hz.

  1. By checking Real, T field on the FATSEQ Bulk Data Entry, the field corresponds to time in seconds if only a single frequency is considered or if sweep rate is set to 0.0. We set up T=100 sec.


  1. In the Fatigue Module Set up, we select as Type of Loading= Sine-Sweep.

  1. We create a constant load channel that will scale the frequency response stresses. In this case the results are obtained for the real excitation, so no scaling is needed (scale=1). And we select both ConstLoad1 and FRF subcase to create the Fatigue event.


  1. The corresponding sine sweep parameters, i.e. theSR (sweep rate) and SRUNIT (sweep rate unit) fields, are specified with each fatigue event created. The number of sweeps is to be specified alongside the event (default = 1 Sweep). The number of sweeps will be considered as time ‘T’ seconds if only one Frequency is considered, or if the SR = 0.0. We set up T=100 sec.



1.2 Steady State Method (STEADY):

Steady state analysis is used to convert results of an FRF analysis from frequency domain to time domain (transient) to combine the results with a linear static subcase or another FRF subcase in time domain but also to perform Fatigue Calculations.

To create the steady state analysis, we will have to create a new subcase after the FRF containing the STEADY command, in which we will refence the FRF subcase.


Steady bulk data entry will reference the Direct FRF subcase ID=1.


Steady State Analysis is not yet supported in Hypermesh interface (2024) and it will be implemented in a future release. At the moment, it has to be added manually as Bulk and Subcase Unsupported cards or directly to the solver deck.

The LCID field of the FATLOAD Bulk Data Entry will point to the subcase ID of the steady state analysis. The load-time history input is not required, as it is calculated internally during transient analysis.

In FATEVENT we will reference the FATLOAD load collector.

By default, the total time of the Steady State Subcase or Transient will be TTIME=1/ (min loading frequency) =1/100=0.01 sec, which corresponds to one period of the loading acceleration.

In FATSEQ we will reference the FATEVENT load collector and insert the Number of times this loading event is repeated. To achieve the desired 100 sec duration, we will have to apply this event for N=10000 cycles, ([10000 cycles] *[1 cycle event (1 cycle duration=1 period = 0.01 sec)]=100 sec).



1.3 Multiple Sine Tone Method (HARMO):

For Optistruct the Multiple Sine Tones Fatigue would be another method to extract damage for a singular sine.

In contrary with the sine-sweep, HARMO uses a probabilistic method (Dirlik, Narrow, Lalanne, Steinberg 3-Band) to calculate damage and thus it is more suitable for Random signals. See Optistruct’s Documentation for more information about the damage calculation in Random Fatigue Analysis: Random Fatigue

This method can be set up with HARMO continuation line in FATLOAD, where we can list the frequencies of Sinusoidals to be applied. So, for this example we only list one frequency of 100Hz and its amplitude factor of 1.

HARMO continuation line is not yet supported in Hypermesh interface (2024) and it will be implemented in a future release. At the moment, it has to be added manually to the solver deck.


The NARROW Probability Density Function model is intended for random signals for which the stress range is expected to be closely associated with a high probability of certain stress range distribution. So, we can select NARROW in RNDPDF continuation line in FATPARM, since we expect the highest probability of stress-ranges to lie at or around this particular stress range (single sine tone).

Also, the Random response probability density function parameters can be set in RANDOM continuation line in FATPARM.  There, we set the upper limit of the stress range considered to be SREND=2*σRMS*FACSREND=4.2* σRMS and the number of stress ranges NBIN=100. The width of stress ranges will be DS=SREND/NBIN


Exposure time in seconds will be set up in T field on FATSEQ.


2. Comparison of the methods


The example files PLATE_SINE_SWEEP_FATIGUE.fem, PLATE_STEADY_STATE.fem and PLATE_HARMO_FATIGUE.fem offer a comparison between these three methods:




As shown in the above contours, damage results for Sine-Sweep and Steady State are exactly matching but HARMO results are not.

Steady State and Sine-Sweep

For Steady State and Sine Sweep (since we have only one frequency and no sweep happen) the damage is directly calculated from the S-N curve for the calculated stresses.

For example, if we investigate the calculated stress for 1 period for element with ID=87:


The solver will use the stress amplitude of 105.583 MPa to calculate the damage from the S-N curve.

 From the Basquin equation we can calculate the allowable cycles for this stress amplitude as:

 S=S1(Nf)b1=>2*105.583=3826(Nf)-0.1831=> Nf=7435753.62 cycles

From the Palmgren Miner Damage law, we can calculate damage for one load cycle (n):




In HARMO the Narrow Band Random Fatigue Damage model will calculate the probability density function of the occurrence of the stress ranges, calculate the number of cycles for each stress range by considering the probability of occurrence, calculate damage for each stress range from the S-N curve and sum them up to calculate total damage.

By examining the calculated damage per event for element with ID =87, we can observe the difference in calculations. We can request the fatigue damage results output for all fatigue subcases or individual fatigue subcases with the RNFLOW (format, rtop)= option output entry. Optistruct’s Documentation: Rainflow output



1 Event =100 Loading Cycle.



1 Event =1 Loading Cycle.





1 Event =100 Loading Cycle.