Foundation Modes

Op^3 provides four foundation-mode abstractions through a uniform op3.foundations API. Each mode trades off fidelity, cost, and downstream simulator compatibility.

Mode A - Fixed base

  • API: build_foundation(mode="fixed")

  • Use case: upper-bound reference; what the tower looks like if the foundation were infinitely stiff

  • Cost: trivial (no soil computation)

Mode B - 6x6 stiffness matrix

  • API: build_foundation(mode="stiffness_6x6")

  • Use case: compact SSI representation for OpenFAST SoilDyn coupling

  • Cost: O(1) per stiffness query

Mode C - Distributed BNWF

  • API: build_foundation(mode="distributed_bnwf", spring_profile=...)

  • Use case: full non-linear Winkler model with depth-resolved p-y / t-z / base / lid springs

  • Cost: moderate; scales with number of springs

Mode D - Dissipation-weighted

  • API: build_foundation(mode="dissipation_weighted", mode_d_alpha=..., mode_d_beta=...)

  • Use case: the new formulation introduced by this thesis

  • Weight function: w(z) = beta + (1 - beta) * (1 - D(z)/D_max)^alpha

Choosing a mode

All four modes expose the same .eigen(), .pushover(), and .transient() methods, so switching modes in an existing analysis is a one-line change.