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.
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.
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_MINERimplemented
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_RANGEimplemented
6 sources · 2 validation cases
Equivalent stress range at 2×10⁶ cycles
Damage-equivalent constant-amplitude range ΔσE,2 against ΔσC/γMf — the §8(2) verification format (EN route).
FSA_LIMIT_STRESS_RANGEimplemented
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_RANGEimplemented
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_TAUimplemented
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_REMAININGimplemented
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_REQUIREDimplemented
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.
| Case | What it pins | Source | Tolerance |
|---|---|---|---|
FSA_VC_CAT71_ANCHOR | Category 71 at 71 MPa, 2×10⁶ cycles ⇒ Dd = 1,0 exactly | EN 1993-1-9 §7.1(2), §7.1(3), Figures 7.1 & 7.2 | rel 1e-9 |
FSA_VC_GAMMA_MF | γMf = 1,35 scales damage by 1,35³ = 2,460375 | EN 1993-1-9 §3(7) NOTE, Table 3.1 | rel 1e-9 |
FSA_VC_TWO_BRANCH_CUTOFF | Two-branch spectrum + cut-off: hand-computed Dd = 0,0816176 | EN 1993-1-9 §7.1(2), §7.1(3), Figures 7.1 & 7.2 | rel 0.000001 |
FSA_VC_CAFL_CONSTANT | Constant amplitude below ΔσD ⇒ zero damage (§7.1(2)) | EN 1993-1-9 §7.1(2), §7.1(3), Figures 7.1 & 7.2 | rel 1e-9 · abs 1e-15 |
FSA_VC_SIZE_EFFECT | ks = (25/50)0,2: reduced anchor gives Dd = 1,0 | EN 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,0 | EN 1993-1-9 §7.1 NOTE 3, Figure 7.3 | rel 1e-9 |
FSA_VC_REQUIRED_CATEGORY | Required category solve lands exactly on ΔσC = 100 | EN 1993-1-9 §7.1(2), §7.1(3), Figures 7.1 & 7.2 | rel 0.000001 |
FSA_VC_LIMIT_DIRECT | Direct range ceiling 1,5·fy: 600/532,5 = 1,1267606 | EN 1993-1-9 §8(1), Eq. (8.1) | rel 1e-9 |
FSA_VC_COMBINED | §8(3) combined σ+τ: hand-computed 0,1515648 | EN 1993-1-9 §8(3), Eq. (8.3) | rel 0.000001 |
FSA_VC_LIFE_HALF | Half the anchor life consumed ⇒ Dd = 0,5, one repetition left | EN 1993-1-9 Annex A.5, Eq. (A.1) | rel 1e-9 |
FSA_VC_BINNING_FIDELITY | 32-bin transport reproduces unbinned rainflow damage within 1% | EN 1993-1-9 Annex A.4 [normative] | rel 0.01 |
FSA_VC_M5_TABLE87 | Table 8.7 m = 5: anchor exact, and 2⁵ endurance ratio at half range | EN 1993-1-9 Table 8.7; Table 8.5 detail 10 | rel 1e-9 |
FSA_VC_M8_STUD | Stud shear m = 8: single slope with no cut-off (Δτ = 40 MPa damages) | EN 1993-1-9 Table 8.7; Table 8.5 detail 10 | rel 1e-9 |
FSA_VC_AISC_C_EXACT | AISC 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-1M | rel 1e-9 |
FSA_VC_AISC_THRESHOLD | AISC threshold: 68 MPa < FTH = 69 passes at any cycle count | AISC 360-22 Appendix 3, §3.1 | rel 1e-9 |
FSA_VC_DNV_AIR_KNEE | DNV curve D in air: 52,63 MPa lands on the 10⁷ knee (D ≈ 1,0) | DNV-RP-C203 §2.4.4, Table 2-1 | rel 1e-9 |
FSA_VC_DNV_CP_KNEE | DNV environment knee: seawater-CP slope change at 10⁶, not 10⁷ | DNV-RP-C203 §2.4.5, Table 2-2 | rel 1e-9 |
FSA_VC_DNV_THICKNESS | DNV thickness correction: ×20,20 at t = 50 mm on curve D | DNV-RP-C203 §2.4.3, Eqs. (2.4.1) & (2.4.3) | rel 1e-9 |
FSA_VC_IIW_FAT80_ANCHOR | IIW FAT 80 anchor: D = 1,0 at 2×10⁶ ⇒ utilisation 2,0 (limit 0,5) | IIW-1823-07 §4.3, Table {4.3}-2 | rel 1e-9 |
FSA_VC_IIW_COLUMN_GUARD | IIW variable-amplitude column guard: below-knee slope is m = 5, not m = 22 | IIW-1823-07 §4.3.1, Eq. (4.3) | rel 1e-9 |
FSA_VC_IIW_EQ45_BELOW_KNEE | IIW 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_BAND | AISC governing band: 80 MPa @ 2×10⁶ governs over 120 MPa @ 10⁴ | AISC 360-22 Appendix 3, Table A-3.1 | rel 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_SCOPEFSA_NOMINAL_STRESSFSA_MINERFSA_SINGLE_SITEFSA_CATEGORY_USERFSA_AISC_SCOPEFSA_AISC_STRESSFSA_AISC_PER_BANDFSA_AISC_PEAKFSA_AISC_CATEGORY_USERFSA_DNV_SCOPEFSA_DNV_CLASS_USERFSA_DNV_MINERFSA_DNV_CASTFSA_SINGLE_SITE_DNVFSA_IIW_SCOPEFSA_IIW_FAT_USERFSA_IIW_MINER_05FSA_IIW_GAMMAFSA_IIW_SINGLE_SITEFSA_BINNED_SPECTRUMAutomatic out-of-scope rules
| Rule | Trigger | Explanation |
|---|---|---|
FSA_DIRECT_CATEGORY_RANGE | Detail category outside the standard family | EN 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_RANGE | Shear detail category outside the standard family | EN 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)
| Clause | What 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 / (ΔσC/γMf) ≤ 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·ΔσC/γMf with m = 3. |
AISC 360-22 · 2022
| Clause | What 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
| Clause | What 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)
| Clause | What 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.
| Topic | Implementation | Review implication |
|---|---|---|
| Canonical units | All 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. |
| Determinism | The 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 links | The 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. |
| Rounding | Results 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 version | The 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. |