| name | cathodic-protection |
| description | Expert Electrical Engineer specializing in cathodic protection (CP) systems for oil and gas industry. Use for CP system design, corrosion prevention, sacrificial anode calculations, impressed current systems, pipeline integrity, coating defects, and NACE/ISO standards compliance. |
| version | 1.0.0 |
| updated | Thu Jan 02 2025 00:00:00 GMT+0000 (Coordinated Universal Time) |
| category | offshore-engineering |
| triggers | cathodic protection, corrosion prevention, sacrificial anode, impressed current, ICCP system, SACP system, pipeline CP, anode design, NACE standards, ISO 15589, DNV-RP-B401, coating breakdown, stray current |
Cathodic Protection Skill
Expert guidance on cathodic protection (CP) systems for offshore platforms, subsea pipelines, storage tanks, and onshore oil and gas facilities.
When to Use
- CP system design (SACP and ICCP)
- Anode calculation and spacing
- Transformer rectifier unit sizing
- Pipeline CP design
- Coating breakdown assessment
- AC/DC interference analysis
- CP monitoring system design
- NACE/ISO/DNV compliance
Domain Expertise
Cathodic Protection Systems
| System Type | Applications |
|---|---|
| SACP (Sacrificial Anode) | Offshore structures, pipelines, short-term protection |
| ICCP (Impressed Current) | Long pipelines, complex structures, retrofit |
| Hybrid | Combined systems for optimal protection |
Anode Materials
| Material | Application | Environment |
|---|---|---|
| Al-Zn-In | Marine, seawater | Offshore, subsea |
| Magnesium | Soil, freshwater | Onshore pipelines |
| MMO (Mixed Metal Oxide) | ICCP anodes | All environments |
| Graphite | Deep well anodes | Soil, groundbeds |
| High-silicon iron | Groundbeds | Soil |
Industry Standards
| Standard | Scope |
|---|---|
| NACE SP0169 | External corrosion control of pipelines |
| NACE SP0177 | Mitigation of AC and lightning effects |
| NACE SP0286 | Electrical isolation of CP systems |
| NACE RP0176 | Corrosion control of steel fixed offshore platforms |
| ISO 15589-1 | Pipelines - Onshore |
| ISO 15589-2 | Pipelines - Offshore |
| DNV-RP-B401 | Cathodic protection design |
| API RP 651 | Cathodic protection of aboveground tanks |
| API RP 1632 | Cathodic protection of underground tanks |
CP Design Calculations
Anode Mass Calculation
from digitalmodel.modules.cp import AnodeDesign
# Initialize anode designer
anode = AnodeDesign()
# Calculate required anode mass
result = anode.calculate_mass(
structure={
"surface_area": 5000, # m2
"coating_efficiency": 0.95, # 95% coating
"bare_area": 250 # m2 (5% of total)
},
environment={
"resistivity": 0.25, # ohm-m (seawater)
"temperature": 15, # Celsius
"water_depth": 100 # m
},
design={
"current_density": 0.03, # A/m2 (mean)
"design_life": 25, # years
"utilization_factor": 0.85,
"anode_material": "Al-Zn-In"
}
)
print(f"Total current required: {result['current_required']:.2f} A")
print(f"Total anode mass: {result['mass_required']:.0f} kg")
print(f"Number of anodes: {result['anode_count']}")
print(f"Anode spacing: {result['spacing']:.1f} m")
Pipeline Attenuation
from digitalmodel.modules.cp import PipelineCP
# Initialize pipeline CP designer
pipeline = PipelineCP()
# Calculate attenuation and CP spread
result = pipeline.calculate_attenuation(
pipeline={
"length": 50000, # m (50 km)
"diameter": 0.914, # m (36 inch)
"wall_thickness": 0.0254, # m (1 inch)
"coating_type": "FBE",
"coating_resistance": 10000 # ohm-m2
},
soil={
"resistivity": 50, # ohm-m
"type": "clay"
},
cp_stations={
"type": "ICCP",
"voltage": -1.1, # V vs Cu/CuSO4
"locations": [0, 25000, 50000] # m
}
)
print(f"Attenuation constant: {result['attenuation_constant']:.6f} 1/m")
print(f"Effective CP spread: {result['effective_spread']:.0f} m")
print(f"Minimum potential: {result['min_potential']:.3f} V")
print(f"Protection criteria met: {result['criteria_met']}")
Coating Breakdown Factor
from digitalmodel.modules.cp import CoatingAnalysis
coating = CoatingAnalysis()
# Calculate coating breakdown factor
cbf = coating.calculate_breakdown_factor(
coating_type="3LPE",
initial_quality=0.99, # 99% initial efficiency
design_life=25, # years
temperature=65, # Celsius (operating)
method="DNV-RP-F103" # or ISO 15589
)
print(f"Initial CBF: {cbf['initial']:.4f}")
print(f"Mean CBF: {cbf['mean']:.4f}")
print(f"Final CBF: {cbf['final']:.4f}")
print(f"Bare area at design life: {cbf['bare_area_percentage']:.1f}%")
ICCP System Design
Transformer Rectifier Sizing
from digitalmodel.modules.cp import ICCPDesign
iccp = ICCPDesign()
# Size transformer rectifier unit
tru = iccp.size_tru(
current_requirement={
"initial": 50, # A
"mean": 75, # A
"final": 100 # A
},
anode_string={
"resistance": 0.5, # ohm
"count": 10,
"type": "MMO"
},
cable={
"length": 500, # m
"type": "XLPE",
"size": 25 # mm2
},
safety_factor=1.25
)
print(f"TRU Rating: {tru['power_rating']:.1f} kW")
print(f"Output Voltage: {tru['voltage']:.1f} V DC")
print(f"Output Current: {tru['current']:.1f} A")
print(f"Efficiency: {tru['efficiency']:.1f}%")
Deep Well Anode Design
# Design deep well anode groundbed
groundbed = iccp.design_groundbed(
type="deep_well",
soil_resistivity=100, # ohm-m
current_output=50, # A
design_life=30, # years
anode_material="graphite"
)
print(f"Well depth: {groundbed['depth']:.1f} m")
print(f"Anode count: {groundbed['anode_count']}")
print(f"Anode length: {groundbed['anode_length']:.1f} m")
print(f"Groundbed resistance: {groundbed['resistance']:.3f} ohm")
Monitoring and Assessment
Remote Monitoring System
from digitalmodel.modules.cp import CPMonitoring
monitoring = CPMonitoring()
# Design monitoring system
system = monitoring.design_system(
structure_type="offshore_platform",
monitoring_points=25,
parameters=[
"potential",
"current",
"temperature",
"reference_electrode_check"
],
communication="satellite",
data_interval=3600 # seconds
)
print(f"Monitoring units: {system['unit_count']}")
print(f"Reference electrodes: {system['reference_electrodes']}")
print(f"Communication: {system['communication_type']}")
Survey Analysis
from digitalmodel.modules.cp import SurveyAnalysis
survey = SurveyAnalysis()
# Analyze CIPS/CIS survey data
analysis = survey.analyze_cips(
data_file="pipeline_survey.csv",
criteria={
"on_potential": -0.85, # V vs Cu/CuSO4
"off_potential": -0.85,
"100mV_shift": True
}
)
print(f"Protected length: {analysis['protected_percentage']:.1f}%")
print(f"Under-protected sections: {len(analysis['under_protected'])}")
print(f"Coating defects detected: {len(analysis['coating_defects'])}")
# Analyze DCVG survey
dcvg = survey.analyze_dcvg(
data_file="dcvg_survey.csv"
)
for defect in dcvg['defects']:
print(f"Defect at {defect['chainage']}m: {defect['severity']} ({defect['ir_drop']}mV)")
Interference Analysis
AC Interference
from digitalmodel.modules.cp import InterferenceAnalysis
interference = InterferenceAnalysis()
# Analyze AC interference from power line
ac_analysis = interference.analyze_ac(
pipeline={
"length": 10000, # m parallel exposure
"coating_resistance": 10000, # ohm-m2
"diameter": 0.6 # m
},
power_line={
"voltage": 400000, # V
"current": 500, # A
"separation": 50 # m
},
soil_resistivity=100 # ohm-m
)
print(f"Induced AC voltage: {ac_analysis['voltage']:.1f} V")
print(f"AC current density: {ac_analysis['current_density']:.2f} A/m2")
print(f"Mitigation required: {ac_analysis['mitigation_required']}")
Stray Current
# Analyze DC stray current
dc_analysis = interference.analyze_stray_current(
pipeline={
"coating_resistance": 10000, # ohm-m2
"length": 5000 # m affected
},
source={
"type": "railway",
"current": 1000, # A
"distance": 100 # m
}
)
print(f"Stray current pickup: {dc_analysis['pickup_current']:.2f} A")
print(f"Discharge current density: {dc_analysis['discharge_density']:.4f} A/m2")
print(f"Corrosion rate: {dc_analysis['corrosion_rate']:.2f} mm/year")
MCP Tool Integration
Swarm Coordination
// Initialize CP design swarm
mcp__claude-flow__swarm_init { topology: "hierarchical", maxAgents: 4 }
// Spawn specialized agents
mcp__claude-flow__agent_spawn { type: "analyst", name: "cp-calculator" }
mcp__claude-flow__agent_spawn { type: "reviewer", name: "standards-checker" }
Memory Coordination
// Store CP design parameters
mcp__claude-flow__memory_usage {
action: "store",
key: "cp/design/parameters",
namespace: "corrosion",
value: JSON.stringify({
structure: "offshore_platform",
system: "SACP",
design_life: 25,
standards: ["DNV-RP-B401", "NACE SP0176"]
})
}
Design Workflow
CP System Design Process
Environment Assessment
- Soil/water resistivity
- Temperature
- Oxygen content
- Biological activity
Current Requirement
- Surface area calculation
- Coating efficiency
- Current density selection
System Selection
- SACP vs ICCP decision
- Hybrid considerations
Component Design
- Anode sizing and distribution
- Cable sizing
- TRU specification (ICCP)
Interference Analysis
- AC/DC interference
- Stray current
- Galvanic interaction
Monitoring Design
- Reference electrode placement
- Test point locations
- Remote monitoring
Best Practices
- Conservatism: Apply appropriate safety factors
- Standards Compliance: Follow NACE/ISO requirements
- Design Life: Consider coating degradation over time
- Monitoring: Design for long-term performance tracking
- Documentation: Record all assumptions and calculations
Related Skills
- structural-analysis - Structural integrity
- mooring-design - Mooring system protection
- fatigue-analysis - Corrosion-fatigue interaction
References
- NACE International Standards
- ISO 15589-1/2: Cathodic Protection of Pipelines
- DNV-RP-B401: Cathodic Protection Design
- API RP 651/1632: Tank Cathodic Protection
- Agent Source:
agents/cathodic-protection-engineer.md
Version History
- 1.0.0 (2025-01-02): Initial release from agents/cathodic-protection-engineer.md