op3.anchors.SuctionAnchor

class op3.anchors.SuctionAnchor(diameter_m: float, skirt_length_m: float, wall_thickness_mm: float = 30.0, padeye_depth_m: float | None = None, padeye_offset_m: float = 0.0, lid_thickness_mm: float = 40.0, submerged_weight_kN: float = 0.0, steel_grade: str = 'S355')[source]

Bases: object

Suction-anchor geometry and steel properties.

All dimensions in SI units (m, mm for wall thickness, kN for weight).

Parameters:
  • diameter_m (float) – Outer diameter D. Practical range 3-8 m.

  • skirt_length_m (float) – Embedded skirt length L. Typical range 10-30 m in deep-water clay; aspect ratio L/D usually between 1 and 6.

  • wall_thickness_mm (float, default 30.0) – Skirt wall thickness. Typical range 20-50 mm.

  • padeye_depth_m (Optional[float]) – Depth of the mooring attachment point below the mudline. If None, the caller must set it (optimal_padeye_* helpers in op3.anchors.padeye return a recommendation).

  • padeye_offset_m (float, default 0.0) – Lateral offset of the padeye from the anchor centreline. A non-zero value introduces an installation-phase torque in some models but is ignored by the capacity methods implemented here (they assume plane of symmetry).

  • lid_thickness_mm (float, default 40.0) – Top-cap plate thickness.

  • submerged_weight_kN (float, default 0.0) – Total submerged weight of the anchor (steel minus buoyancy of displaced water). Used in self-weight penetration and vertical capacity. 0.0 is the conservative default for design-stage capacity checks.

  • steel_grade (str, default "S355") – Informational only; not used by any calculation.

Notes

The “outer” diameter is used throughout for shaft friction and lid area. The inner diameter is derived as D - 2 * wall_thickness. Wall thickness enters only via inner-shaft and annulus areas and is a second-order effect for typical offshore anchors.

__init__(diameter_m: float, skirt_length_m: float, wall_thickness_mm: float = 30.0, padeye_depth_m: float | None = None, padeye_offset_m: float = 0.0, lid_thickness_mm: float = 40.0, submerged_weight_kN: float = 0.0, steel_grade: str = 'S355') None

Methods

__init__(diameter_m, skirt_length_m[, ...])

Attributes

annulus_area_m2

Steel annulus area at skirt tip, pi/4 * (D^2 - D_i^2).

aspect_ratio

L/D ratio (dimensionless).

inner_diameter_m

Inner diameter D - 2*t_w.

inner_skirt_area_m2

Inner shaft surface area in contact with soil plug, pi * D_i * L.

lid_area_m2

Full plan area of the top cap, pi/4 * D**2.

lid_inner_area_m2

Interior plan area (soil-plug face area), pi/4 * D_i**2.

lid_thickness_mm

outer_skirt_area_m2

Outer shaft surface area in contact with soil, pi * D * L.

padeye_depth_m

padeye_offset_m

steel_grade

submerged_weight_kN

wall_thickness_mm

diameter_m

skirt_length_m

property annulus_area_m2: float

Steel annulus area at skirt tip, pi/4 * (D^2 - D_i^2).

property aspect_ratio: float

L/D ratio (dimensionless).

diameter_m: float
property inner_diameter_m: float

Inner diameter D - 2*t_w.

property inner_skirt_area_m2: float

Inner shaft surface area in contact with soil plug, pi * D_i * L.

property lid_area_m2: float

Full plan area of the top cap, pi/4 * D**2.

property lid_inner_area_m2: float

Interior plan area (soil-plug face area), pi/4 * D_i**2.

lid_thickness_mm: float = 40.0
property outer_skirt_area_m2: float

Outer shaft surface area in contact with soil, pi * D * L.

padeye_depth_m: float | None = None
padeye_offset_m: float = 0.0
skirt_length_m: float
steel_grade: str = 'S355'
submerged_weight_kN: float = 0.0
wall_thickness_mm: float = 30.0