xiaohongshu
xiaohongshu
cathodic-protection
Expert Electrical Engineer specializing in cathodic protection (CP) systems
Full skill instructions
Expert guidance on cathodic protection (CP) systems for offshore platforms, subsea pipelines, storage tanks, and onshore oil and gas facilities.
version: 1.0.0
python_min_version: '3.10'
compatibility:
tested_python:
- '3.10'
- '3.11'
- '3.12'
- '3.13'
os:
- Windows
- Linux
- macOS
Added:
Changed:
| 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 |
| 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 |
| 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 |
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")
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']}")
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}%")
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}%")
# 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")
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']}")
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)")
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']}")
# 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")
// 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" }
// 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"]
})
}
Environment Assessment
Current Requirement
System Selection
Component Design
Interference Analysis
Monitoring Design
agents/cathodic-protection-engineer.mdxiaohongshu
technical spec
product ux expert
database patterns
Conduct multi-agent task orchestration and workflow coordination.
Initialize project with Conductor artifacts (product definition,
Expert in web animations, transitions, and motion design using Framer Motion and CSS
Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...
PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.
Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...
Display project status, active tracks, and next actions
Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience