Foundation modes

Op3 supports four foundation idealisations forming a hierarchy from rigid to fully nonlinear:

Mode

Name

Representation

When to use

A

FIXED

Rigid body at the mudline

preliminary sizing, sanity checks

B

STIFFNESS_6X6

6x6 K at pile head (DNV / ISO / API / OWA / PISA)

code-compliant design

C

DISTRIBUTED_BNWF

Distributed Winkler springs along the embedded length

site-specific p-y / soil dynamics

D

DISSIPATION_WEIGHTED

Distributed Winkler with energy weighting

post-yield assessment, fatigue, scour-aware

Mode B factories

op3.foundations.foundation_from_pisa(*, diameter_m: float, embed_length_m: float, soil_profile: list, n_segments: int = 50) Foundation[source]

Construct a STIFFNESS_6X6 Foundation whose K matrix is derived from the PISA framework (Burd 2020 / Byrne 2020). This is the canonical Op^3 entry point for monopile foundations when site-specific p-y curves are not available.

Parameters:
  • diameter_m – Pile geometry.

  • embed_length_m – Pile geometry.

  • soil_profile (list[op3.standards.pisa.SoilState]) – Layered soil definition (depth, G, su or phi, soil_type).

  • n_segments – Vertical discretisation for the PISA integration (default 50).

op3.standards.pisa.pisa_pile_stiffness_6x6(diameter_m: float, embed_length_m: float, soil_profile: list[SoilState], n_segments: int = 50) ndarray[source]

Initial small-strain 6x6 K matrix at the pile head (mudline) by integrating the PISA distributed reactions along the embedded length and adding the base contributions.

The cross-coupling K_xrx (lateral-rocking) is computed via the second moment of the distributed lateral stiffness:

K_xx = int_0^L k_p(z) dz + K_b_shear K_xrx = int_0^L k_p(z) z dz (-) K_rxrx = int_0^L k_p(z) z^2 dz + int_0^L k_m(z) dz + K_b_moment

Vertical and torsional terms use elementary skin-friction estimates since PISA does not address them; this is consistent with how monopile designers extend PISA in DNV-ST-0126 commentary.

op3.standards.dnv_st_0126.dnv_monopile_stiffness(diameter_m: float, embedment_m: float, soil_type: str = 'dense_sand', G: float | None = None, nu: float | None = None) ndarray[source]

Equivalent linear 6x6 stiffness for a monopile per DNVGL-ST-0126 §5.5.

Uses the cylindrical pile in elastic half-space approximation (Randolph 1981, adopted by DNV) with depth-correction factor for embedment > 1 diameter.

Parameters:
  • diameter_m (float) – Pile outer diameter in meters.

  • embedment_m (float) – Embedded length in meters (mudline to pile tip).

  • soil_type (str, default 'dense_sand') – One of the keys in DEFAULT_SHEAR_MODULUS.

  • G (float, optional) – Soil shear modulus in Pa. Overrides soil_type default.

  • nu (float, optional) – Poisson’s ratio. Overrides soil_type default.

Returns:

  • numpy.ndarray – 6x6 diagonal stiffness matrix in SI units (N/m for translation, N*m/rad for rotation).

  • Reference

  • ———

  • DNVGL-ST-0126 (2021), Section 5.5.2 “Linear soil-pile stiffness”

  • Randolph, M.F. (1981). “The response of flexible piles to lateral – loading”. Geotechnique 31(2), 247-259.

op3.standards.iso_19901_4.iso_pile_stiffness(diameter_m: float, embedment_m: float, soil_type: str = 'dense_sand', G: float | None = None, nu: float | None = None, pile_type: str = 'flexible') ndarray[source]

6x6 stiffness for a single pile per ISO 19901-4 Annex E.

Distinguishes ‘rigid’ (slender, kinematic rotation) and ‘flexible’ (long, elastic bending) pile responses.

Reference

ISO 19901-4:2016 Annex E “Pile foundations”.

op3.standards.api_rp_2geo.api_pile_stiffness(diameter_m: float, embedment_m: float, soil_type: str = 'dense_sand', G: float | None = None, nu: float | None = None) ndarray[source]

6x6 pile stiffness per API RP 2GEO Section 8.3.

Reference

API RP 2GEO (2011) Section 8.3 “Linear soil stiffness for foundation

impedance analysis”.

op3.standards.owa_bearing.owa_suction_bucket_stiffness(diameter_m: float, skirt_length_m: float, n_buckets: int = 1, spacing_m: float | None = None, soil_type: str = 'soft_clay', G: float | None = None, nu: float | None = None) ndarray[source]

6x6 stiffness for a suction bucket per OWA Bearing Capacity Report.

The OWA expressions are based on the Houlsby & Byrne (2005) caisson impedance functions extended to multi-bucket configurations (tripod, quadrupod) by treating each bucket as an independent foundation and combining via parallel axis theorem.

Parameters:
  • diameter_m (float) – Bucket outer diameter.

  • skirt_length_m (float) – Skirt embedment depth.

  • n_buckets (int, default 1) – Number of buckets (1, 3, or 4).

  • spacing_m (float, optional) – Center-to-leg distance for multi-bucket configurations.

  • soil_type (as in dnv_st_0126.)

  • G (as in dnv_st_0126.)

  • nu (as in dnv_st_0126.)

  • Reference

  • ---------

  • (2019) (Carbon Trust OWA) – for design”

  • stiffness (Section 4.3 "Equivalent linear) – for design”

  • Houlsby

  • T. (G.)

  • Byrne (&)

  • (2005) (B. W.)

  • 5 (Section)

Mode D formulation

See Mode D dissipation-weighted formulation for the formal definition of the dissipation-weighted distributed BNWF.