Calculator methodology

Fatigue Spectrum Analyzer — methodology & traceability

Where every number comes from. This page explains how engine v0.2.0 produces its answers — the in-browser counting pipeline, the four code routes in their own verification formats, the seven checks, the validation evidence and its honest boundary — with the clause behind each step. The registers below are rendered live from the same objects the calculation uses, so they cannot go stale.

4

code routes

7

registered checks

22

validation cases

30

source clauses

103

EN details

v0.2.0

engine version

Method 01

Principles

The way things are done here, stated up front. Every rule below is enforced structurally — by the build gate, not by good intentions.

Every check cites its clause

An implemented check computes a specific clause of a specific edition and cites it — in the result, in the register below, and in the report. Nothing is invented: a check that cannot be traced to a filed source would remain unavailable rather than guess. This pack shipped with zero such placeholders — all of its checks are implemented and sourced.

No standard text is reproduced

The source registry stores metadata — code, edition, clause, and design parameters (numbers and exponents) — never the standard's prose. Detail figures are generated from first-principles geometry, and their descriptions are written from that geometry, not from the standard's artwork or text.

Recommended values, disclosed as such

Nationally determined parameters ship at the standard's RECOMMENDED values (EN Table 3.1's γMf ladder, γFf = 1,0) and are user-overridable. National Annex values take precedence and are not shipped; the tool warns when an entered factor is below the recommendation but never overrides the user.

Dual units, one physics

Both unit systems are first-class. Internals are canonical SI; where a code publishes exact equations in both systems (AISC's ksi and MPa forms), the route uses the printed form for the active system rather than converting one into the other.

Method 02

The counting pipeline, honestly

A CSV stress or strain record becomes a code-ready spectrum in five disclosed steps — all of them in the user's browser.

From record to spectrumFigure 1
The in-browser counting pipelineA CSV record is parsed, conditioned, reduced to turning points, rainflow-counted and binned entirely in the browser: for the sample record, 400 samples become 89 turning points, 44 counted cycles and 24 spectrum bins. Only the binned spectrum, a SHA-256 fingerprint and the conditioning trail leave that boundary for the assessment and report — the file itself never does.Runs in your browser — the file never leaves this tab1CSV recordSample file: 400 data rows(comma, semicolon or tab delimited)2ConditioningMissing data, optional detrend and unit scale.Despike is OFF by default — every step is logged.3Turning points400 samples reduce to 89 peaks and troughs4Rainflow countingASTM E1049 §5.4.4 extracts 44 cycles(half cycles counted at 0,5)5Binned spectrum24 logarithmic bins with damage-equivalentrepresentative ranges (cross-checked to 1 %)6Assessment + reportThe spectrum is assessed; the report carries the trailSHA-256 + audit trail
Every stage the record passes through, with the sample record's real counts computed by running the actual pipeline at render time. Nothing left of the report boundary ever reaches Xarpis.

Parsing and conditioning

The parser handles comma, semicolon and tab delimiters, quoted cells, header rows and decimal commas; the user maps which column is the stress. Conditioning is a short, fully disclosed list: missing or non-numeric samples are dropped or linearly interpolated; an optional detrend removes the mean or a linear drift; a multiplicative scale converts units (microstrain to MPa via the modulus). One step is off by default on purpose: despiking. In fatigue the largest range often dominates the damage, and an automatic outlier filter can silently delete the governing event. When the user enables it, every removed sample is recorded with its index and value, and the report carries the filter setting and the removal count. Every operation that alters the signal emits an audit token; a step that changed a fatigue answer without leaving a trace would be a defect.

Counting per ASTM E1049

The conditioned series is reduced to turning points and counted. The default counter is rainflow per ASTM E1049-85 (Reapproved 2011) §5.4.4, including its treatment of the residue — what cannot be paired into closed cycles is counted as half cycles per the standard's own steps, not by a convention of ours. Three alternatives are offered, each labelled with its clause: the §5.4.5 simplified rainflow for repeating histories (full cycles only), §5.4.3 range-pair counting, and the reservoir method of EN 1993-1-9 Figure A.1 c).

The reservoir counter doubles as a structural cross-check: it is an independent implementation (a watershed algorithm, not the rainflow stack in disguise), and the automated suite asserts that the two standard-sanctioned counters produce identical cycle multisets — ranges and means — to within 1×10⁻⁹ on a 5 001-point reference history. The suite also reproduces ASTM E1049's own worked example (Table X1.3) cell for cell at machine precision.

Binning, and the 1 % honesty bound

The counter is exact; what travels into the assessment is a binned spectrum of 16, 32 or 64 bins. The bin edges are logarithmic in range, because damage rises with roughly the cube of stress and resolution belongs where the damage lives. Each bin is represented by the single stress range that would cause the same damage as the cycles inside it, computed on the standard's primary slope (m = 3). Cycle counts round up, never down — rounding must never delete a damaging cycle. The residual error of the whole step is then measured, not assumed: at ingest the exact damage of the unbinned cycles is recorded, and the assessment compares its binned damage against that reference, noting agreement and warning whenever the difference exceeds 1 %. Because counting happens before binning, results can differ slightly from tools that bin the signal into levels first — pre-binning quantises turning points and can destroy small cycles. The difference is disclosed rather than hidden.

Provenance — proof without the data

The record itself never leaves the browser and never reaches Xarpis. What the assessment carries instead is a SHA-256 fingerprint of the file's bytes, the number of parsed rows, and the ordered audit tokens of every conditioning and counting step — each of which the report expands into a clause-cited sentence. A reviewer holding the original file can therefore verify exactly which record was assessed and reproduce the count; a reviewer without the file can verify the process but not reconstruct the data, which is the intended boundary. A shared link transports the binned spectrum and the provenance, never the record — a recipient sees an explicit statement to that effect.

Method 03

The verification, per route

Four codes, four subsections, and the same four questions answered in the same order for each: what curve family, what verification format, what limits and factors, and what is deliberately different.

EN 1993-1-9:2005

Curve family: the §7.1 two-slope curves, anchored at the detail category ΔσC at 2×10⁶ cycles, falling at m = 3 to the constant-amplitude fatigue limit ΔσD at 5×10⁶, then at m = 5 to the cut-off ΔσL at 10⁸ cycles. Format: Palmgren-Miner damage accumulation per Annex A.5, Dd ≤ 1,0, with γFf applied to every stress range and γMf dividing the strength. Limits and factors: γMf ships at the recommended Table 3.1 values (damage tolerant 1,00/1,15, safe life 1,15/1,35 by consequence); §8(1) caps the largest ranges at 1,5·fy and 1,5·fy/√3; §8(3) combines direct and shear.

Deliberately precise behaviours worth knowing. The CAFL trichotomy is the standard's own: a spectrum entirely below ΔσD accumulates no damage (§7.1(2)); a spectrum with ranges above and below it is assessed on the extended two-slope curve (§7.1(3)); ranges below the cut-off contribute exactly zero. Asterisk details (ΔσC*) default to their tabulated, already-reduced category, with §7.1 NOTE 3's alternative — one category up with the CAFL redefined at 10⁷ cycles — as an explicit option. The §7.2.2 size effect reduces the category via ks. The §7.2.1 mean-stress benefit applies only to non-welded or stress-relieved details, and only in signal mode, because binned spectra carry no cycle means. Details whose table specifies a different slope (Table 8.7's m = 5 lattice-node categories; Table 8.5 detail 10's m = 8 stud per EN 1994-2) are assessed on single-slope curves with no invented fatigue limit or cut-off — the literal, conservative reading of tables that define nothing below the category.

The EN curve family's anatomyFigure 2
Anatomy of the EN 1993-1-9 fatigue strength curveCategory 71, characteristic values Mf = 1,0) regenerated from the route module's constants
no damage below ΔσL10⁴10⁵10⁶10⁷10⁸10⁹Endurance NR (cycles)1020501002005001000Stress range Δσ (MPa)ΔσD = 52.3 MPa (CAFL, 5×10⁶)ΔσL = 28.7 MPa (cut-off, 10⁸)ΔσC = 71 at 2×10⁶m = 3m = 5
The category 71 characteristic curve, regenerated from the route module's constants: anchor, CAFL, extended branch and cut-off. The same machinery, with γMf applied, produces every design curve the assessment uses.

AISC 360-22 Appendix 3

Curve family: Eq. A-3-1M's allowable stress range, FSR = 6900·(Cf/nSR)0,333 in MPa — and, in US units, the printed ksi form Eq. A-3-1, FSR = 1000·(Cf/nSR)0,333, used exactly rather than converted, so the route is exact in both systems. Category constants Cf and thresholds FTH come from Table A-3.1 (categories A–E′, plus G for bolts in tension per §3.4(b)); shear on the weld throat is always category F (Eq. A-3-2). Format: an allowable-STRESS-range verification — every band of the spectrum is checked against FSR at its own lifetime cycle count, with FTH as a per-band floor. Limits: no evaluation is required at or below 20 000 cycles, and §3.1 caps the stress due to peak cyclic loads at 0,66·Fy — a cap that cannot be derived from stress ranges and is therefore stated for separate verification, never silently assumed satisfied.

What is deliberately different: no damage sum is ever printed on this route. Appendix 3 defines no variable-amplitude accumulation rule, and the tool does not invent one — the verdict is the governing band against its FSR, the remaining life is the inversion of Eq. A-3-1/A-3-1M for the governing band, and interaction between bands is stated as not covered by the code. The two formats genuinely disagree on some spectra (a spectrum can fail a Miner sum while every band passes its own FSR); the automated suite asserts that divergence so a future “simplification” fails loudly.

DNV-RP-C203 (2011)

Curve family: the Tables 2-1/2-2/2-3 classes (B1…W3, plus T for tubular joints), kept in their native log-intercept form log N = log ā − m·log Δσ so reported intermediates match Eq. (2.4.1) as a checker reads it. The design curves are mean minus two standard deviations of the test data — 97,7 % probability of survival — and their inherent failure criterion is crack growth through the thickness: a “failure” on this route is a through-thickness crack, not a detectable surface crack. Format: Palmgren-Miner per §2.2, with the acceptance D ≤ 1/DFF — the Design Fatigue Factor scales the allowable damage down for consequence and inspectability.

What is deliberately different: the knee moves with the environment — the slope changes at 10⁷ cycles in air but at 10⁶ in seawater with cathodic protection, and free corrosion is a single m = 3 slope with no fatigue limit at all, so every cycle damages. The §2.11 omission criterion (analysis may be omitted below the fatigue limit at 10⁷) uses the TABLE's own fatigue-limit column, reduced by DFF0,33 when DFF exceeds 1 — not a value re-derived from the curve, which differs in the last digits and would change verdicts at the boundary. The Eq. (2.4.3) thickness correction multiplies every stress range by (t/tref)k on the stress side, with each class carrying its own exponent k. The route defines no pure-shear curves — details are classified for the principal stress direction per Appendix A — so a supplied shear spectrum is flagged as unassessed rather than silently dropped.

IIW-1823-07 (2008)

Curve family: FAT classes — the characteristic stress range at 2×10⁶ cycles — for welded details under normal stress (m = 3, knee at 10⁷), base material (m = 5, knee at 10⁷) and shear (m = 5, knee at 10⁸). Below the knee the variable-amplitude column of Table {4.3}-2 applies: the curve continues at m₂ = 2·m₁ − 1. Format: Palmgren-Miner with the recommended variable-amplitude limit D ≤ 0,5 (§4.3.1, Table {4.3}-1) — deliberately the strictest Miner acceptance here, because the recommendations themselves state D = 1 can be non-conservative. The Eq. (4.1) partial factors are taken as γF = γM = 1,0, disclosed in the assumptions; the recommendations' own alternative — stepping the FAT class down — remains available to the user.

What is deliberately different: the constant-amplitude column is unrepresentable. Table {4.3}-2 carries separate constant-amplitude (slopes up to m = 22) and variable-amplitude columns whose constants differ by up to roughly 32 orders of magnitude; a rainflow spectrum is variable amplitude by definition, so this route hardcodes the variable-amplitude slopes and the wrong-column mistake cannot be made. Knee stresses are recomputed from FAT·(2×10⁶/Nknee)1/m rather than transcribed, which matches the tabulated ladder to its own 0,1 MPa rounding and defeats a known misprint in circulating copies. Combined normal and shear loading is verified by Eq. (4.6) against the comparison value CV = 1,0 (proportional) or 0,5 (non-proportional).

Method 04

The seven checks

Rendered from the live check registry — the same objects the engine computes and the verification gate audits. Each check dispatches on the active route, so one stable check identity carries each code's own clause and format.

FSA_DAMAGE_MINER

implemented

23 sources · 17 validation cases

Fatigue verification (damage sum / allowable stress range)

The route's own acceptance: Miner damage sum Dd against the route limit (EN), or the governing band against the allowable stress range FSR (AISC).

FSA_EQUIVALENT_RANGE

implemented

6 sources · 2 validation cases

Equivalent stress range at 2×10⁶ cycles

Damage-equivalent constant-amplitude range ΔσE,2 against ΔσCMf — the §8(2) verification format (EN route).

FSA_LIMIT_STRESS_RANGE

implemented

4 sources · 1 validation case

Stress ceiling (1.5 fy / 0.66 Fy)

EN 1993-1-9 §8(1)'s ceiling of 1.5·fy on the largest direct range; AISC's §3.1 peak-stress cap of 0.66·Fy (stated, not derivable from ranges).

FSA_LIMIT_SHEAR_RANGE

implemented

4 sources · 1 validation case

Shear stress ceiling

EN 1993-1-9 §8(1)'s ceiling of 1.5·fy/√3 on the largest shear range; AISC defines no separate shear ceiling.

FSA_COMBINED_SIGMA_TAU

implemented

8 sources · 1 validation case

Combined direct + shear stress ranges

EN 1993-1-9 §8(3) interaction of the direct and shear equivalent ranges; AISC verifies the two categories independently.

FSA_LIFE_REMAINING

implemented

6 sources · 2 validation cases

Remaining fatigue life

Allowable and remaining spectrum repetitions (and years) — from linear damage accumulation, or per band on the AISC route.

FSA_DETAIL_REQUIRED

implemented

10 sources · 2 validation cases

Required detail category

Smallest detail category (EN, continuous solve) or the set of sufficient stress categories (AISC, per-class evaluation) for which the spectrum passes.

Which checks carry the verdict

The fatigue verification, the two stress ceilings, the combined criterion and the remaining-life check carry pass/fail verdicts and compete for the governing slot; the overall status is Pass only when every verdict-carrying check passes. Two checks are deliberately informational. The equivalent-stress-range check is the §8(2) format — the same acceptance as the damage sum, expressed on a stress scale — and the required-category check is an inverse solve of that same acceptance. Neither may carry a utilisation of its own, because a stress-scale ratio would out-govern the damage-scale sum whenever D is below 1 (D1/3 exceeds D there): the governing check would then flatter every passing design. Where the two formats must agree — every bin on the equivalence slope — the engine verifies that they do, to 1×10⁻⁹, as a free internal-consistency check (Annex A.6, Eq. (A.3)).

A verdict from nothing is also refused: with zero stress ranges supplied, the verification checks report no result at all rather than a vacuous pass, and the overall status reads indeterminate until there is something to assess.

Method 05

The comparison, and why the codes are not interchangeable

The route comparison shows each configured code's own verdict side by side. Its caveats are a single shared constant — the exact text below is what the screen and the report render, verbatim.

These results are not the same quantity. EN 1993-1-9 is a partial-factor format (γFf on the ranges, γMf on the strength); DNV-RP-C203's design curves are mean-minus-two-standard-deviation curves with 97,7 % probability of survival whose inherent failure criterion is crack growth through the thickness; IIW-1823-07 is characteristic with its own knee and a recommended Miner limit of 0,5 for variable amplitude; and AISC 360-22 Appendix 3 is an allowable-stress format with a threshold rather than a damage sum — its row reports the governing band against FSR, not a Dd. A damage-scale utilisation and a stress-scale ratio also differ in kind (damage grows with roughly the cube of stress), so bar lengths are comparable only against each code's own acceptance at 1,0 — never against each other.

The classifications are equivalent, not identical. Each code's class (EN detail category, AISC stress category, DNV S-N curve, IIW FAT class) was selected separately by the report author; mapping a detail across the taxonomies is an engineering judgement this comparison attributes to the author rather than asserts. Codes without a selected class are shown as not configured — they were not run on a silently assumed equivalent.

Unpacked: the four codes differ in safety format (partial factors, characteristic values, survival probability, allowable stress), in failure criterion (EN's design curves and DNV's through-thickness crack are not the same event), and in acceptance limit (1,0 · 1/DFF · 0,5 · a stress ratio). A bar at 0,8 on one route and a bar at 0,8 on another describe different quantities that happen to share a scale — each is meaningful only against its own code's acceptance at 1,0. And a code the user never classified the detail for is shown as “not configured” rather than run on a silently assumed equivalent class, because mapping a detail between taxonomies is an engineering judgement the tool attributes to its author instead of asserting.

Method 06

Validation

The validation registry holds 22 executable fixtures asserting 32 expected check results, run through the pure engine by the verification gate on every build. They are evidence, not narrative.

CaseWhat it pinsSourceTolerance
FSA_VC_CAT71_ANCHORCategory 71 at 71 MPa, 2×10⁶ cycles Dd = 1,0 exactlyEN 1993-1-9 §7.1(2), §7.1(3), Figures 7.1 & 7.2rel 1e-9
FSA_VC_GAMMA_MFγMf = 1,35 scales damage by 1,35³ = 2,460375EN 1993-1-9 §3(7) NOTE, Table 3.1rel 1e-9
FSA_VC_TWO_BRANCH_CUTOFFTwo-branch spectrum + cut-off: hand-computed Dd = 0,0816176EN 1993-1-9 §7.1(2), §7.1(3), Figures 7.1 & 7.2rel 0.000001
FSA_VC_CAFL_CONSTANTConstant amplitude below ΔσD zero damage (§7.1(2))EN 1993-1-9 §7.1(2), §7.1(3), Figures 7.1 & 7.2rel 1e-9 · abs 1e-15
FSA_VC_SIZE_EFFECTks = (25/50)0,2: reduced anchor gives Dd = 1,0EN 1993-1-9 §7.2.2, Eq. (7.1)rel 1e-9
FSA_VC_ASTERISK_RAISEDΔσC* alternative: 71* raised to 80, anchor gives Dd = 1,0EN 1993-1-9 §7.1 NOTE 3, Figure 7.3rel 1e-9
FSA_VC_REQUIRED_CATEGORYRequired category solve lands exactly on ΔσC = 100EN 1993-1-9 §7.1(2), §7.1(3), Figures 7.1 & 7.2rel 0.000001
FSA_VC_LIMIT_DIRECTDirect range ceiling 1,5·fy: 600/532,5 = 1,1267606EN 1993-1-9 §8(1), Eq. (8.1)rel 1e-9
FSA_VC_COMBINED§8(3) combined σ+τ: hand-computed 0,1515648EN 1993-1-9 §8(3), Eq. (8.3)rel 0.000001
FSA_VC_LIFE_HALFHalf the anchor life consumed Dd = 0,5, one repetition leftEN 1993-1-9 Annex A.5, Eq. (A.1)rel 1e-9
FSA_VC_BINNING_FIDELITY32-bin transport reproduces unbinned rainflow damage within 1%EN 1993-1-9 Annex A.4 [normative]rel 0.01
FSA_VC_M5_TABLE87Table 8.7 m = 5: anchor exact, and 2⁵ endurance ratio at half rangeEN 1993-1-9 Table 8.7; Table 8.5 detail 10rel 1e-9
FSA_VC_M8_STUDStud shear m = 8: single slope with no cut-off (Δτ = 40 MPa damages)EN 1993-1-9 Table 8.7; Table 8.5 detail 10rel 1e-9
FSA_VC_AISC_C_EXACTAISC category C: FSR = 6900·10−1,998 at n = 4,4×10⁶AISC 360-22 Appendix 3, §3.3(a), Eqs. A-3-1 & A-3-1Mrel 1e-9
FSA_VC_AISC_THRESHOLDAISC threshold: 68 MPa < FTH = 69 passes at any cycle countAISC 360-22 Appendix 3, §3.1rel 1e-9
FSA_VC_DNV_AIR_KNEEDNV curve D in air: 52,63 MPa lands on the 10⁷ knee (D ≈ 1,0)DNV-RP-C203 §2.4.4, Table 2-1rel 1e-9
FSA_VC_DNV_CP_KNEEDNV environment knee: seawater-CP slope change at 10⁶, not 10⁷DNV-RP-C203 §2.4.5, Table 2-2rel 1e-9
FSA_VC_DNV_THICKNESSDNV thickness correction: ×20,20 at t = 50 mm on curve DDNV-RP-C203 §2.4.3, Eqs. (2.4.1) & (2.4.3)rel 1e-9
FSA_VC_IIW_FAT80_ANCHORIIW FAT 80 anchor: D = 1,0 at 2×10⁶ utilisation 2,0 (limit 0,5)IIW-1823-07 §4.3, Table {4.3}-2rel 1e-9
FSA_VC_IIW_COLUMN_GUARDIIW variable-amplitude column guard: below-knee slope is m = 5, not m = 22IIW-1823-07 §4.3.1, Eq. (4.3)rel 1e-9
FSA_VC_IIW_EQ45_BELOW_KNEEIIW Eq. (4.5): all-below-knee equivalent range takes the m₂ root (34,5 MPa, not 28,1)IIW-1823-07 §4.3, Eqs. (4.4) & (4.5)rel 1e-9
FSA_VC_AISC_GOVERNING_BANDAISC governing band: 80 MPa @ 2×10⁶ governs over 120 MPa @ 10⁴AISC 360-22 Appendix 3, Table A-3.1rel 1e-9

The flagship cases, in words

  • The anchor: category 71 loaded at exactly 71 MPa for exactly 2×10⁶ cycles with unit factors must give Dd = 1,0 exactly — the definition of a detail category, asserted with no tolerance.
  • The factor chain: raising γMf to 1,35 must scale that damage by exactly 1,35³ = 2,460375, because the factor enters the strength side of an m = 3 curve.
  • The DNV moving knee: curve D in seawater with cathodic protection must change slope at 10⁶ cycles, not 10⁷ — a module that left the knee in the air position would miss by a factor of about 1,9 and fail the case.
  • The IIW column guard: a mixed spectrum on FAT 80 must be assessed on the variable-amplitude column (m = 5 below the knee); the constant-amplitude m = 22 column would understate the case's damage sum by roughly a factor of ten (the below-knee term itself by three orders of magnitude), and the case fails loudly on it.
  • The binning bound: a 1 500-cycle pseudo-random spectrum binned to 32 bins must reproduce the exact unbinned damage within 1 % — the transport-loss contract the signal pipeline is held to.

Beyond the validation registry, the automated test suite asserts the counting layer against the standards' own material: ASTM E1049's Table X1.3 rainflow example is reproduced to machine precision, the independent repeating-history rainflow (§5.4.5) and reservoir implementations must agree on identical cycle multisets to 1×10⁻⁹, the AISC-versus-Miner format divergence is pinned so the two can never be “unified”, and every pack input survives an SI↔US round trip with the engine result unchanged.

Method 07

Assumptions and scope

The 21 assumptions below are rendered from the live registry the routes contribute to; the ones active for a given assessment appear in its result and report.

FSA_EN_SCOPE
The assessment assumes conditions inside EN 1993-1-9 §1.1 scope: structural steel to the EN 1993 series, no seawater-corrosion environment, and member temperatures not above 150 °C.
FSA_NOMINAL_STRESS
Supplied stress ranges are nominal (or modified nominal) stress ranges at the assessed detail per EN 1993-1-9 §6 — stress concentration factors for geometry not covered by the detail category are already included.
FSA_MINER
Damage accumulates linearly (Palmgren-Miner, EN 1993-1-9 Annex A); load-sequence and interaction effects are neglected.
FSA_SINGLE_SITE
The assessment addresses one crack-initiation site. Joints with several potential sites (each weld toe, weld ends, the weld throat) need one assessment per site, each with its own detail category.
FSA_CATEGORY_USER
The detail category (and any ks size-effect parameters) are selected by the user from the standard's tables; the tool does not verify the classification against the actual joint geometry.
FSA_AISC_SCOPE
The assessment assumes conditions inside AISC 360-22 Appendix 3 scope: high-cycle elastic stresses, suitable corrosion protection or mild atmospheres, and member temperatures not above 150 °C (§3.1).
FSA_AISC_STRESS
Supplied stress ranges are service-load stress ranges from elastic analysis, not amplified by stress concentration factors for geometrical discontinuities (Appendix 3 §3.2); stress reversals are entered as the numerical sum of the tensile and compressive parts (§3.1).
FSA_AISC_PER_BAND
Appendix 3 defines a constant-amplitude allowable stress range, not a variable-amplitude accumulation rule. Each band of the spectrum is verified against FSR at its own cycle count; interaction between bands is not covered by the code and is not assessed.
FSA_AISC_PEAK
The Appendix 3 §3.1 cap on peak cyclic stress (0,66·Fy) cannot be verified from stress ranges alone and must be checked separately.
FSA_AISC_CATEGORY_USER
The stress category is selected by the user from Table A-3.1; the tool does not verify the classification against the actual joint geometry. Categories C′ and C″ (weld-root cracking with the RPJP/RFIL factors) are not offered.
FSA_DNV_SCOPE
The assessment assumes conditions inside DNV-RP-C203's scope: steel structures in air or seawater, high-cycle elastic stress ranges, and corrosion protection consistent with the selected environment curve set.
FSA_DNV_CLASS_USER
The S-N class (B1…W3, T) and environment are selected by the user per DNV-RP-C203 Appendix A; the tool does not verify the classification against the actual joint geometry. The tabulated class curves embed the weld's own stress concentration — supplied stress ranges are the nominal (or hot-spot, for the T curve) ranges the class definition expects.
FSA_DNV_MINER
Damage accumulates linearly (Palmgren-Miner, DNV-RP-C203 §2.2); load-sequence and interaction effects are neglected.
FSA_DNV_CAST
The cast-node provisions of §2.4.7 (tref = 38 mm with the effective-thickness reduction of Eq. (2.4.4)) are not automated; cast nodes need a manual thickness input consistent with that clause.
FSA_SINGLE_SITE_DNV
The assessment addresses one crack-initiation site; joints with several potential sites need one assessment per site, each with its own class (DNV-RP-C203 §2.4.3).
FSA_IIW_SCOPE
The assessment assumes conditions inside IIW-1823-07's scope: welded joints or base material of structural steel, high-cycle elastic stress ranges, and no environmental reduction (the recommendations' corrosion and temperature provisions are not applied).
FSA_IIW_FAT_USER
The FAT class is selected by the user from IIW-1823-07 §3.2's catalogue (or Table {4.3}-2's families); the tool does not verify the classification against the actual joint geometry.
FSA_IIW_MINER_05
Damage accumulates linearly with the IIW-recommended limit D ≤ 0,5 for variable-amplitude spectra (§4.3.1); for spectra with strongly fluctuating mean stress the recommendations note an even lower sum (0,2) may be appropriate.
FSA_IIW_GAMMA
The partial factors of Eq. (4.1) are taken as γF = γM = 1,0; apply other levels of safety by selecting a lower FAT class (§6.4.3 — one step of the m = 3 welded-detail grid ≈ ÷1,12; the base-material ladder is coarser) or scaling the spectrum before entry.
FSA_IIW_SINGLE_SITE
The assessment addresses one crack-initiation site; joints with several potential sites need one assessment per site, each with its own FAT class.
FSA_BINNED_SPECTRUM
The assessment operates on the binned stress-range spectrum as supplied. For spectra entered directly, the fidelity of the binning (bin widths, counting method) is the responsibility of whoever produced the spectrum; for records counted in this tool, the binned damage is cross-checked against the unbinned count.

Automatic out-of-scope rules

RuleTriggerExplanation
FSA_DIRECT_CATEGORY_RANGEDetail category outside the standard familyEN 1993-1-9 Figure 7.1 defines detail categories from 36 to 160 N/mm². A ΔσC outside that band has no basis in the standard's curve family.
FSA_SHEAR_CATEGORY_RANGEShear detail category outside the standard familyEN 1993-1-9 Figure 7.2 defines shear detail categories 100 and 80 N/mm². A ΔτC outside 80–100 has no basis in the standard's curve family.

Consolidated limitations

The tool starts from stress: it contains no load models, influence lines or finite-element analysis, and the supplied ranges are assumed to be the nominal (or modified nominal) stress at the assessed detail. It carries no stress-concentration-factor library and no hot-spot FE integration — EN Annex B's hot-spot categories are a category set, not an FE method. One stress channel and one crack-initiation site are assessed at a time. Damage accumulation is linear and order-independent: load-sequence and overload-retardation effects are outside the model. There is no fracture mechanics — the tool cannot assess a detected crack. Binned spectra are an approximation bounded at 1 % and disclosed. The codes' own scope limits apply and are stated in the assumptions: EN 1993-1-9 excludes seawater corrosion and member temperatures above 150 °C; AISC Appendix 3 assumes mild atmospheres and the same temperature bound. Detail figures are schematics with exaggerated thickness — never to scale.

Method 08

Sources

The receipt: all 30 clause-level source entries the four route modules register, grouped by standard. Every note stores design parameters and scope — never the standard's text.

EN 1993-1-9 · 2005 (incl. corrigenda 2005/2009)

ClauseWhat it supplies
§7.1(2), §7.1(3), Figures 7.1 & 7.2
[EN19319_S71]
Fatigue strength curves: m = 3 to 5×10⁶ anchored at ΔσC (2×10⁶); ΔσD = (2/5)1/3·ΔσC; extended m = 5 branch to 10⁸ with ΔσL = (5/100)1/5·ΔσD. Shear: m = 5 anchored at ΔτC with ΔτL = (2/100)1/5·ΔτC.
§7.1 NOTE 3, Figure 7.3
[EN19319_NOTE3]
ΔσC* details: tabulated one category lower; alternatively raised one category with the CAFL defined as the strength at 10⁷ cycles for m = 3.
§7.2.1, Figure 7.4
[EN19319_S721]
Mean-stress modification for non-welded / stress-relieved details: effective range = tensile portion + 0,6 × compressive portion.
§7.2.2, Eq. (7.1)
[EN19319_S722]
Size effect: ΔσC,red = ks·ΔσC with ks per the detail's row in Tables 8.1–8.10.
§3(7) NOTE, Table 3.1
[EN19319_T31]
Recommended γMf: damage tolerant 1,00/1,15; safe life 1,15/1,35 (low/high consequence). NDP — recommended values shipped, user-overridable.
§8(1), Eq. (8.1)
[EN19319_S8]
Stress-range ceilings under frequent loads: Δσ ≤ 1,5·fy and Δτ ≤ 1,5·fy/√3.
§8(2), Eq. (8.2)
[EN19319_S82]
Equivalent-range verification format: γFf·ΔσE,2 / (ΔσCMf) ≤ 1,0 (and the shear analogue).
§8(3), Eq. (8.3)
[EN19319_S83]
Combined direct + shear ranges: cube of the direct utilisation plus fifth power of the shear utilisation ≤ 1,0.
Table 8.7; Table 8.5 detail 10
[EN19319_T87]
Table-specified curve slopes: the lattice-girder node categories of Table 8.7 are all assessed on m = 5 direct-stress curves; Table 8.5 detail 10 (welded stud shear connector) is assessed on Δτ over the stud's nominal cross section at category 90 with m = 8, per EN 1994-2. Neither table defines a CAFL or cut-off for these slopes — the single-slope lines are applied over the whole range.
Annex A.4 [normative]
[EN19319_A4]
Stress-range spectrum presented in descending order; peaks below 1 % of total damage and ranges below the cut-off may be neglected.
Annex A.5, Eq. (A.1)
[EN19319_A5]
Palmgren–Miner damage Dd = Σ nEi/NRi with applied ranges × γFf and strength ÷ γMf.
Annex A.6, Eqs. (A.2) & (A.3)
[EN19319_A6]
Verification formats: Dd ≤ 1,0, or γFf·ΔσE,2 ≤ ᵐ√Dd·ΔσCMf with m = 3.

AISC 360-22 · 2022

ClauseWhat it supplies
Appendix 3, §3.1
[AISC360_A3_1]
Fatigue provisions apply above 20 000 cycles of live load; no evaluation is required when the applied stress range is below the threshold FTH; peak cyclic stress capped at 0,66·Fy; stress reversal counted as the sum of the tensile and compressive parts; valid to 150 °C and mildly corrosive atmospheres.
Appendix 3, §3.3(a), Eqs. A-3-1 & A-3-1M
[AISC360_A3_3]
Allowable stress range for categories A–E′ (and G via §3.4(b)): FSR = 1000·(Cf/nSR)0,333 ≥ FTH (ksi); FSR = 6900·(Cf/nSR)0,333 ≥ FTH (MPa).
Appendix 3, §3.3(b), Eqs. A-3-2 & A-3-2M
[AISC360_A3_3B]
Allowable stress range for category F (shear on the throat of continuous or intermittent fillet welds, and plug/slot welds): FSR = 100·(1,5/nSR)0,167 ≥ 8 ksi; FSR = 690·(1,5/nSR)0,167 ≥ 55 MPa.
Appendix 3, Table A-3.1
[AISC360_TA31]
Fatigue design parameters per stress category: Cf = 25 / 12 / 6,1 / 4,4 / 2,2 / 1,1 / 0,39 and FTH = 24 / 16 / 12 / 10 / 7 / 4,5 / 2,6 ksi (170 / 110 / 83 / 69 / 48 / 31 / 18 MPa) for categories A / B / B′ / C / D / E / E′; bolts in tension (case 8.5, category G): Cf = 0,39, FTH = 7 ksi (48 MPa).
Appendix 3, §3.4(b)
[AISC360_A3_4]
Bolts, threaded anchor rods and hanger rods: maximum tensile stress range on the net tensile area against Eq. A-3-1 with Cf and FTH from case 8.5 (stress category G).

DNV-RP-C203 · October 2011

ClauseWhat it supplies
§2.2, Eq. (2.2.1)
[DNVC203_22]
Palmgren-Miner accumulation over a stress histogram: D = Σ nᵢ/Nᵢ = (1/ā)·Σ nᵢ·Δσᵢ^m ≤ η, with the usage factor η = 1/DFF (Design Fatigue Factor per OS-C101). At least 20 stress blocks recommended.
§2.4.1, §2.4.2
[DNVC203_241]
Design S-N curves are mean-minus-two-standard-deviation curves for the experimental data (97,7 % probability of survival); the failure criterion inherent in the curves is crack growth through the thickness.
§2.4.3, Eqs. (2.4.1) & (2.4.3)
[DNVC203_243]
Basic curve log N = log ā − m·log Δσ; thickness effect as a stress modification Δσ·(t/tref)k for t > tref, with tref = 25 mm for welded connections other than tubular joints (and bolts), 32 mm for tubular joints; t = tref used below tref.
§2.4.4, Table 2-1
[DNVC203_T21]
S-N curves in air: m₁ and log ā₁ for N ≤ 10⁷ cycles (B1 4,0/15,117; B2 4,0/14,885; C 12,592; C1 12,449; C2 12,301; D 12,164; E 12,010; F 11,855; F1 11,699; F3 11,546; G 11,398; W1 11,261; W2 11,107; W3 10,970; T 12,164 — m₁ = 3,0 for C…T); m₂ = 5,0 with log ā₂ beyond 10⁷; tabulated fatigue limits at 10⁷ and thickness exponents k per curve.
§2.4.5, Table 2-2
[DNVC203_T22]
S-N curves in seawater with cathodic protection: the knee moves to N = 10⁶ cycles; log ā₁ = air value − 0,200 for every class (B1 14,917 … T 11,764); log ā₂, fatigue limits and k as in air.
§2.4.9, Table 2-3
[DNVC203_T23]
S-N curves in seawater for free corrosion: single slope m = 3,0 for all cycles with log ā per class (B1 12,436; B2 12,262; C 12,115; C1 11,972; C2 11,824; D 11,687; E 11,533; F 11,378; F1 11,222; F3 11,068; G 10,921; W1 10,784; W2 10,630; W3 10,493; T 11,687); no fatigue limit.
§2.11
[DNVC203_211]
A detailed fatigue analysis can be omitted when the largest local stress range is below the fatigue limit at 10⁷ cycles (Table 2-1 in air, Table 2-2 with cathodic protection), reduced by a factor DFF0,33 for DFF > 1. With any cycle above the limit, the damage from cycles below it must be included.

IIW-1823-07 · December 2008 (XIII-2151r4-07/XV-1254r4-07)

ClauseWhat it supplies
§4.3, Eq. (4.1)
[IIW_41]
Fatigue assessment with design values: characteristic stress ranges multiplied by γF, characteristic resistance (FAT) divided by γM. This implementation takes γF = γM = 1,0; other levels of safety per §6.4.3 (one step of the §3.2 m = 3 welded-detail grid ≈ ÷1,12 — the base-material ladder is coarser).
§4.3.1, Eq. (4.3)
[IIW_431]
Palmgren-Miner rule D = Σ nᵢ/Nᵢ ≤ 0,5…1,0, with D = 0,5 recommended (D = 1 can be non-conservative; down to 0,2 for strongly fluctuating mean stress). When the maximum design range is below the design fatigue limit the life is infinite; otherwise the CAFL/knee is ignored and the curve extrapolated beyond it at m₂ = 2·m₁ − 1.
§4.3, Table {4.3}-2
[IIW_T432]
FAT data and S-N constants N = C/Δσm: welded details under normal stress FAT 125…12 (m = 3, knee at 10⁷, variable-amplitude slope 5); base material FAT 160/80/71 (m = 5, knee at 10⁷, VA slope 9); shear FAT 100/80/36/28 (m = 5, knee at 10⁸, VA slope 9). Knee stresses recomputed from FAT·(2×10⁶/Nknee)1/m; the separate constant-amplitude (m = 22) column is NOT used — a rainflow spectrum is variable amplitude.
§4.3, Table {4.3}-1
[IIW_T431]
Assessment procedures for combined normal and shear stress: for variable-amplitude loading, Miner sum D = 0,5 with comparison value CV = 1,0 (proportional) or CV = 0,5 (non-proportional).
§4.3, Eqs. (4.4) & (4.5)
[IIW_44]
Equivalent constant-amplitude stress range for a two-slope curve: Δσeq,S,d = [ (1/D)·(Σnᵢ·Δσᵢ^m1 + ΔσL,dm1−m2·Σnⱼ·Δσⱼ^m2)/(Σnᵢ+Σnⱼ) ]^(1/m1), with ranges above/below the knee split at ΔσL,d.
§4.3, Eqs. (4.2) & (4.6)
[IIW_46]
Combined normal + shear criterion: (Δσeq,S,d/ΔσR,d)² + (Δτeq,S,d/ΔτR,d)² ≤ CV, with the resistance ranges taken at the specified number of cycles for the appropriate FAT classes.

Cycle counting is additionally traceable to ASTM E1049-85 (Reapproved 2011) — §5.4.4 and §5.4.5 rainflow, §5.4.3 range-pair — and to EN 1993-1-9 Figure A.1 c) for the reservoir method; those clauses are cited by the counting layer and by every conditioning-trail sentence in the report. Table 8.5 detail 10's stud shear curve is EN 1994-2's (ΔτC = 90 at m = 8), cited where it is applied.

Method 09

Precision and numbers

How the numbers are held, converted and reproduced.

TopicImplementationReview implication
Canonical unitsAll internals are SI — stress in MPa, cycle counts dimensionless. Display values convert exactly at the UI and report boundary; no check branches on the display system (AISC's dual published equation forms are selected by system, which is the code's own dual publication, not a conversion).SI/US selection cannot change the physics. Compare calculations in physical units, not rounded screen strings.
DeterminismThe engine is a pure function of the inputs: identical inputs produce identical results, charts and report bodies. Timestamps are report metadata only and enter no calculation.A saved input state plus the engine version reproduces the result exactly.
Shared linksThe share URL encodes the full input state, including the binned spectrum and — for counted records — the SHA-256 provenance and audit tokens. The raw record is never in a link; a recipient sees the complete assessment and an explicit note that the signal charts need the file re-uploaded.A link is a complete, reviewable assessment — but never a data leak.
RoundingResults are computed unrounded and formatted only for display; the binned spectrum transports ranges at one decimal and integer counts, with the damage effect of that transport bounded at 1 % and cross-checked.A displayed value may round; the verdict is computed on the unrounded number.
Engine versionThe current engine is v0.2.0. A change to any curve constant, factor, check or validation tolerance is an engine change and moves this version — never a silent edit.The version printed on a report binds it to a released engine state.
Fatigue Spectrum Analyzer — methodology & traceability · Xarpis