fatigue-analysis
Fatigue analysis for offshore structures including S-N curves, rainflow counting, Miner's rule, and DNV standards
npx skills add majiayu000/claude-skill-registry --skill fatigue-analysis --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
What it does
Provides comprehensive fatigue analysis capabilities for offshore structures, including mooring lines, risers, and structural components, using S-N curves (DNV and general), rainflow counting, Miner's rule, and design-factor-based life assessments.
How it works
- Uses S-N curve fundamentals to map stress ranges to cycles to failure, including a bilinear approach with a and m parameters for different curve segments.
- Retrieves DNV S-N curve parameters via a function that selects a class (e.g., B1, C, D, E, F, G, W1-W3) and applies thickness corrections, returning a1, m1, a2, m2, and thickness.
- Calculates cycles-to-failure (N) from a1/(Δσ)^m1, switching to the second segment if N1 > 1e7 using a2/(Δσ)^m2.
- Performs Rainflow counting on a stress time series to extract stress ranges and cycle counts, producing a histogram of ranges (bin centers and counts).
- Applies Palmgren-Miner damage accumulation: total_damage = Σ(n_i / N_i), where N_i comes from the SN curve, then applies a design factor to get damage_with_design_factor and fatigue_life estimates.
- Includes a narrow-band spectral fatigue method using a stress spectrum to compute damage via zero-crossing frequency and Rayleigh assumptions, yielding damage, damage_with_design_factor, and fatigue_life.
- Provides a mooring chain fatigue workflow that combines tension time series, chain properties, rainflow, SN curves for chain class F3, and Miner’s rule with a design factor to produce fatigue damage and life metrics.
- Offers a complete example pipeline that reads tension data, runs rainflow counting, computes chain fatigue with DNV curves, and outputs results.
When to use it
- Mooring line fatigue analysis
- Riser fatigue analysis (flexible and rigid)
- Structural fatigue of hull joints and connections
- S-N curve analysis for various materials and weld types
- Rainflow counting of stress/time series to identify cycle counts
- Miner’s rule for cumulative fatigue damage and life estimation
- Fatigue design verification with design factors and life predictions
What it can touch
- Tools: claude-code
- Functions and code blocks named and described exactly as in the skill's content, including:
- get_dnv_sn_curve(curve_class: str, thickness: float = 25) -> dict
- calculate_cycles_to_failure(stress_range: float, sn_curve: dict) -> float
- rainflow_counting(time_series: np.ndarray, bin_width: float = None) -> tuple[np.ndarray, np.ndarray]
- calculate_fatigue_damage_miners_rule(stress_ranges: np.ndarray, cycle_counts: np.ndarray, sn_curve: dict, design_factor: float = 10.0) -> dict
- spectral_fatigue_narrow_band(spectrum: np.ndarray, frequencies: np.ndarray, sn_curve: dict, duration: float, design_factor: float = 10.0) -> dict
- mooring_chain_fatigue_analysis(tension_time_series: np.ndarray, chain_diameter: float, chain_grade: str = 'R4', design_life_years: float = 25, time_step: float = 0.1) -> dict
- complete_fatigue_assessment(tension_file: str, output_dir: str = 'reports/fatigue') -> dict
Caveats
- License: MIT
- Declared design-factor values (e.g., 10.0) and specific DNV curve mappings are explicit in the models; actual applicability depends on project compliance.
- Some code relies on external libraries (numpy, scipy) and assumes inputs in specific units (e.g., MPa for stress, kN for tension) as described in the examples.
- The examples show simplified conversions (e.g., stress from tension using an area) and may require adaptation for real-world materials and geometries.
# Fatigue Analysis SME Skill Comprehensive fatigue analysis expertise for offshore structures including mooring lines, risers, and structural components using industry-standard methods and DNV regulations. ## When to Use This Skill Use fatigue analysis when: - **Mooring line fatigue** - Calculate fatigue life of mooring components - **Riser fatigue** - Analyze fatigue damage in flexible and rigid risers - **Structural fatigue** - Assess fatigue in hull, joints, connections - **S-N curve analysis** - Apply appropriate fatigue curves - **Rainflow counting** - Process stress/load time series - **Miner's rule** - Cumulative damage calculation - **Fatigue design** - Size components for target life ## Core Knowledge Areas ### 1. S-N Curve Fundamentals **S-N Curve Equation:** ``` N = a / (Δσ)^m Where: - N = Number of cycles to failure - Δσ = Stress range - a = S-N curve constant - m = Slope of S-N curve (typically 3 for steel, 3-5 for welds) ``` **DNV S-N Curves:** ```python import numpy as np def get_dnv_sn_curve( curve_class: str, thickness: float = 25 ) -> dict: """ Get DNV S-N curve parameters. DNV-RP-C203 S-N curves: - B1: High strength welds, machined - C: Good quality welds - D: No
- When to Use This Skill
- Core Knowledge Areas
- 1. S-N Curve Fundamentals
- 2. Rainflow Counting
- 3. Miner's Rule (Cumulative Damage)
- 4. Spectral Fatigue Analysis
- 5. Mooring Line Fatigue
- Complete Examples
- Example 1: Complete Fatigue Assessment
- Resources
What does the fatigue-analysis skill do?
Fatigue analysis for offshore structures including S-N curves, rainflow counting, Miner's rule, and DNV standards
How do I install it?
Run `npx skills add majiayu000/claude-skill-registry --skill fatigue-analysis --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From majiayu000/claude-skill-registry, a repository with 534 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
