In Theory Manual we can find the following formulation for Ni (number of cycles to failure) calculation (picture)
I tried to find out from my research where this formulation comes from because I can’t understand the 1/2 and i could not find it.(There is only reference to Annex G but that does not contain this formulation) From what I understood this formula only takes into account one slope unlike in the Eurocode.
Thank you for your help.
Dear Maryana,
The 1/2 is there because the SN curve is typically given in terms of load amplitudes (peaktomean) rather than load ranges (peaktotrough) and the variable L^RF_i is a range, not an amplitude.
Best regards,
Dear Jason,
Thank you very much for your quick answer.
Best regards,
Dear Jason,
In the meantime, other doubts have arisen regarding the programme:

In the CertTest folder I checked the fatigue channels that were chosen in different tests. I noticed that there are axial force, shear force and moment channels. That is, they have different units.
But there is no step where the units are checked and transformed into a single one.
So I can’t understand the formula used for the number of cycles to failure. How does one formula fit different types of input? And shouldn’t all the channels for fatigue calculations be in MPa ?

Another uncertainty I have is about the input file. If I want to analyze a thousand files, do I have to name them one by one in Settings File ? And I already have to know what type of file has a specific operation status (normal oper, idling, discrete event)?
Excerpt from Setting File:
" Input Files 
1 FileFormat Format of input files. 1 = FAST ascii, 2 = FAST binary
9 1.1 1.3 1.5 1.7 (WeibullWeighted Normal Operation: NumNormFiles, PSF1, PSF2, PSF3, PSF4)
“DLC1.1_01_small.out”
“DLC1.1_07_small.out”
“DLC1.1_13_small.out”
“DLC1.1_19_small.out”
“DLC1.1_25_small.out”
“DLC1.1_31_small.out”
“DLC1.1_37_small.out”
“DLC1.1_43_small.out”
“DLC1.1_49_small.out”
0 1.1 1.3 1.5 1.7 (WeibullWeighted Idling: NumIdleFiles, PSF1, PSF2, PSF3, PSF4)
0 1.2 1.3 1.4 1.6 (Discrete Events: NumDiscFiles, PSF1, PSF2, PSF3, PSF4)
==EOF== DO NOT REMOVE OR CHANGE. MUST COME JUST AFTER LAST LINE OF VALID INPUT.
"
Thank you very much !!
Dear Maryana,
Here are my answers to your questions:

In the MLife CertTest examples, loads from FAST are processed directly for fatigue rather than first using the loads to calculate stress; calculating stress is likely the preferred approach, but requires tools (e.g., FEA) to be used as a postprocess to FAST before using MLife. (MLife can process loads directly from FAST or postprocess stress time series.) When processing loads directly, the SN curve is treated in terms of load, i.e., “S” is a load with the appropriate load units (e.g., N for force and Nm for moment). My Mar 25, 2020 post in the following forum topic provides some guidance on how to calculate the associated loadbased ultimate load (LUlt) used to define the SN curve for thinwalled circular cross sections: http://forums.nrel.gov/t/mlifeuserdefineddistribution/1970/15.

Yes.
Best regards,
Dear Jason ,
Thank you very much for your help. Your advice has helped a lot.
Dear Jason,
I have another question)). I was trying to understand how it is possible to change direction of wind in MLife, and did’t find some good explanation. In some reply you wrote :"And for offshore loads analysis, it is often important to consider a multidimensional probability distribution of wind and waves. "
Is it what i am looking for? Can you suggest something to read.
Thank you very much for your work !
Dear Maryana,
MLife supports a userspecified multidimensional probability distribution (in place of the simple Weibull windspeed distribution) through the UserDistrib, nDistribVars, and DistribName inputs in the MLife input file. This is documented a bit in the User_Probability_Distributions.pdf file provided in the Documentation directory of the MLife archive and Test28 in the MLife CertTest shows a simple example of how to use it.
Best regards,
Thank you Jason, you are the best !
I am trying now to do some fatigue calculations using load roses. But it stops always with the same error (before adding load rose everything works):
[b]Matrix dimensions must agree.
Error in compute_brief_aggregate_statistics (line 34)
Statistics.AggMinInds = Statistics.MinInds(uint32(Statistics.AggMinFileNum) + offset);
Error in mlife (line 466)
Statistics = compute_brief_aggregate_statistics( FileInfo.nChannels, FileInfo.nFiles,
Statistics );[/b]
I can not understand what is wrong. Is it because the channel $TwHt2MLxt$ is negative?
Thank you very much,
Leaving here a part of my input file :
 Load Roses 
1 NumRoses The number of load roses to generate.
Rose Name Units Channel1 Channel2 nSectors
“TwHt2MLxyt” “kN·m” $TwHt2MLxt$ $TwHt2MLyt$ 6
 Time and Wind Speed 
1 TimeChan The channel containing time.
2 WSChan The primary windspeed channel (used for mean wind speed and turbulence intensity, 0 for none)
 Statistics and Extreme Events 
false DoStats Generate statistics of all the channels.
false WrStatsTxt Write the stats to a text file?
false WrStatsXLS Write the stats to an Excel file?
1 NumSFChans Number of channels that will have summary statistics generated for them.
$TwHt2MLxyt_2$ SFChans List of channels that will have summary statistics generated for them. Must number NumSFChans.
 Distributions 
false UserDistrib User defined distribution? true = load userspecified distribution, false = only use Weibull wind distribution
2.00001 WeibullShape Weibull shape factor. If WeibullShape=2, enter the mean wind speed for WeibullScale.
8.462843 WeibullScale Weibull scale factor. If WeibullShape<>2. Otherwise, enter the mean wind speed.
4 WSin Cutin wind speed for the turbine.
20 WSout Cutout wind speed for the turbine.
31 WSmax Maximum wind speed value for the windspeed bins.
1 WSMaxBinSize Maximum width of a windspeed bin.
0 nDistribVars Number of independent variables in the userspecified distribution, ignored if UserDistrib = false
“” DistribName Filename of the usersupplied distribution table, ignored if UserDistrib = false
 Fatigue 
8 nFatigueChannels The number of fatigue channels. Next six lines ignored if zero.
0.0 FiltRatio The fraction of the maximum range of each channel used as a cutoff range for the racetrack filter. Use zero for no filter.
630720000 DesignLife Number of seconds in the design lifetime (20 years = 630720000 seconds).
1 Availability Fraction of the design life the turbine is operating when winds are between Vin and Vout
true BinCycles Bin the rainflow cycles?
0.5 UCMult Multiplier for binning unclosed cycles. (0 discards, 1 counts as a full cycle)
true DoShortTerm Compute simple (unweighted) damageequivalent loads and damage rates.
true DoLife Do lifetimerelated calculations?
false DoAggregate Compute a DELs and a damage result based on an aggregate of all the input files (does not use the wind spped distribution)
true WrShortTermTxt Write shortterm results to plaintext files?
true WrShortTermXLS Write shortterm resultsto an Excel workbook?
true WrLifeTxt Write lifetime results to plaintext files?
true WrLifeXLS Write lifetime results to an Excel workbook?
1 EquivalentFrequency The frequency of the damage equivalent load (Hz)
true DEL_AsRange true = report DELs as a range value, false = report as a onesided amplitude
3 DEL_Type 1 = fixed mean, 2 = zero mean, 3 = both
0 GoodmanFlag 0 = no Goodman correction, 1 = use Goodman correction, 2 = compute results with and without Goodman correction
Channel# NSlopes SNslopeLst BinFlag BinWidth/Number TypeLMF LUlt BinWidth not used when BinCycles is false. nFatigueChannels rows of data follow. LUlt >> LMF
$TwHt2MLyt$ 1 5 BW 402 AM 266233.9842
$TwHt2MLxt$ 1 5 BW 402 AM 266233.9842
$TwHt2MLxyt_1$ 1 5 BW 402 AM 266233.9842
$TwHt2MLxyt_2$ 1 5 BW 402 AM 266233.9842
$TwHt2MLxyt_3$ 1 5 BW 402 AM 266233.9842
$TwHt2MLxyt_4$ 1 5 BW 402 AM 266233.9842
$TwHt2MLxyt_5$ 1 5 BW 402 AM 266233.9842
$TwHt2MLxyt_6$ 1 5 BW 402 AM 266233.9842
0 NumDELGroups Number of DEL groups. DEL tables are organized according to groups.
Name NChannels ChannelList
Dear Maryana,
I’m not sure. I would not expect a negative value in the channel value to cause a problem with load roases. Do the outputs TwHt2MLxt and TwHt2MLyt exist in your FAST/OpenFAST output file?
Many of the MLife CertTest test cases test roses; do these run for you?
Best regards,