| name | fitness-for-service |
| description | Expert FFS engineer applying API 579-1/ASME FFS-1 methodology to corroded and damaged offshore equipment. Use for RSF calculations, MAWP re-rating, remaining life projection, UT grid inspection data, run-repair-replace decisions, and Level 1/2/3 assessment workflows. type: reference
|
| version | 1.0.0 |
| updated | "2026-02-19T00:00:00.000Z" |
| category | engineering |
| triggers | ["fitness for service","FFS assessment","API 579","ASME FFS-1","remaining strength factor","RSF calculation","MAWP re-rating","metal loss assessment","corrosion damage","run repair replace","remaining life","wall thickness grid","UT thickness measurement","general metal loss","local metal loss","pitting assessment","inspection data","corrosion allowance","CTP critical thickness"] |
| related_skills | ["cathodic-protection","risk-assessment","structural-analysis"] |
| capabilities | ["rsf-calculation","mawp-rereting","remaining-life-projection","ut-grid-ingestion","run-repair-replace-decision","level1-level2-assessment"] |
| requires | [] |
| tags | [] |
| scripts_exempt | true |
| type | reference |
When to Use
- Level 1 screening (conservative equations, minimal inspection data)
- Level 2 detailed assessment (refined analysis using thickness profiles)
- RSF and MAWP calculation from UT thickness data
- Remaining life projection with linear and power-law corrosion models
- Processing UT grid CSV data to CTP (Critical Thickness Profile) maps
- Run-repair-replace decision framework
Assessment Levels (API 579-1/ASME FFS-1)
| Level | Approach | Input Required |
|---|
| Level 1 | Screening — conservative, tabulated equations | Nominal thickness, design pressure, corrosion rate |
| Level 2 | Detailed — refined with actual thickness profiles | UT grid measurements, material properties |
| Level 3 | Advanced — FEA/fracture mechanics | Full material data, specialist analysis |
Core Calculations
Remaining Strength Factor (RSF)
from digitalmodel.asset_integrity.rsf_calculations import calculate_rsf, check_ffs_level1
result = calculate_rsf(
t_measured=0.280,
t_required=0.150,
t_nominal=0.375,
)
print(f"RSF: {result['rsf']:.4f}")
print(f"FFS: {result['ffs_acceptable']}")
print(f"MAWP ratio: {result['mawp_ratio']:.4f}")
check = check_ffs_level1(
t_measured=,
t_required=,
t_nominal=,
design_pressure_psi=,
smys_psi=,
outer_diameter_in=,
)
()
()