Sub-skill of marine-offshore-engineering: 1. Platform Types (+3).
Fixed Platforms:
Floating Platforms:
Selection Criteria:
def select_platform_type(water_depth: float, field_life: float) -> str:
"""
Platform type selection based on water depth.
Args:
water_depth: Water depth in meters
field_life: Expected field life in years
Returns:
Recommended platform type
"""
if water_depth < 150:
return "Fixed platform (Jacket)"
elif water_depth < 500:
if field_life < 5:
return "Jack-up (temporary)"
else:
return "Semi-submersible or FPSO"
elif water_depth < 2000:
return "Semi-submersible, SPAR, or FPSO"
else: # Ultra-deep water
return "SPAR or FPSO"
Wind Loading:
Wave Loading:
Current Loading:
import numpy as np
def calculate_current_force(
velocity: float, # m/s
diameter: float, # m
length: float, # m
cd: float = 1.2 # Drag coefficient
) -> float:
"""
Calculate current force on cylinder.
Morison equation: F = 0.5 * ρ * V² * Cd * D * L
Args:
velocity: Current velocity
diameter: Member diameter
length: Member length
cd: Drag coefficient
Returns:
Force in kN
"""
rho = 1025 # kg/m³ (seawater)
F = 0.5 * rho * velocity**2 * cd * diameter * length
return F / 1000 # Convert to kN
Types:
Design Standards:
Safety Factors:
mooring_safety_factors:
intact:
uls: 1.67 # Ultimate Limit State
als: 1.25 # Accidental Limit State
damaged:
uls: 1.25
als: 1.05
fatigue_design_factor: 10.0
Components:
Pipeline Design:
def pipeline_wall_thickness(
diameter: float, # mm
pressure: float, # MPa
yield_stress: float, # MPa
design_factor: float = 0.72 # API 5L
) -> float:
"""
Calculate required pipeline wall thickness.
Barlow's formula: t = P*D / (2*σ*F)
Args:
diameter: Outer diameter
pressure: Design pressure
yield_stress: Material yield stress
design_factor: Design factor
Returns:
Wall thickness in mm
"""
t = (pressure * diameter) / (2 * yield_stress * design_factor)
# Add corrosion allowance
corrosion_allowance = 3.0 # mm
t_total = t + corrosion_allowance
return t_total