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.