Scientific report
This chapter is the narrative scientific report for the Op3 framework. It explains why the framework exists, what it does that alternative tools do not, how it has been validated, and what the honest limitations are. It is intended as the self-contained technical summary that a PhD committee member, a journal referee, or an industry engineer can read top-to-bottom in 20 minutes.
1. The problem Op3 solves
Offshore wind turbine support structures are designed by three disciplines that rarely share a single numerical framework:
Geotechnical engineers run 3D finite-element packages (PLAXIS, OptumGX, ABAQUS) to characterise soil response and extract foundation stiffness.
Structural engineers run beam-on-Winkler models (OpenSees, SACS, in-house) to assess support-structure fatigue and ultimate capacity.
Wind-energy specialists run aero-hydro-servo-elastic codes (OpenFAST, HAWC2, Bladed) to evaluate coupled wind turbine loads across the full IEC 61400-3 load-case table.
The hand-off between these disciplines is typically a one-shot exchange of numbers via a spreadsheet: the geotechnical team gives the structural team a 6x6 stiffness matrix, the structural team gives the aero team a SubDyn model, and the aero team runs DLCs. Nobody formally verifies that the same physical soil response is being represented consistently across the three codes. When a field measurement disagrees with the simulation, the disagreement is allocated to the discipline that cannot defend its output – usually geotechnical, because the soil is the most uncertain input.
Op3 closes this gap by providing a single, V&V’d Python pipeline that takes a soil profile at one end and produces an OpenFAST-compatible coupled simulation at the other. The four foundation modes span the hierarchy from rigid base (Mode A) to the novel dissipation-weighted formulation (Mode D), and every module is calibrated against published sources with full citation provenance.
2. Architectural overview
The framework consists of three integration surfaces:
OptumGX (commercial FE) OpenFAST v5 (open source)
| ^
| CSV: dissipation, capacity, p-y |
| |
v |
+----------------------+ +--------------------------+
| op3.standards.* | | op3.openfast_coupling. |
| DNV, ISO, API, | | soildyn_export |
| OWA, PISA, | | |
| HSsmall, cyclic | +--------------------------+
+----------+-----------+ ^
| |
v |
+-------------------------------------------+ |
| op3.foundations.Foundation | |
| Mode A / B / C / D | |
+----------+--------------------------------+ |
| |
v |
+-------------------------------------------+ |
| op3.composer.TowerModel + OpenSeesPy | |
| eigen / pushover / transient / condense +---+
+-------------------------------------------+
Three strict contracts make the architecture testable:
The four foundation modes are algorithmically equivalent in the limit of refined discretisation (verified by V&V test 2.16 which integrates Mode C and Mode B to 0.10% agreement on a 16-segment profile).
The standards-based stiffness matrices match their hand-computed reference values byte-for-byte (verified by the PISA, DNV, ISO, API, OWA unit tests).
The entire pipeline is reproduced bit-for-bit by the SHA-256-pinned snapshot test (verified by
tests.test_reproducibility()).
3. Distinctive contributions
To our knowledge, Op3 is the first openly available framework that combines all four of the following in one coherent API:
3.1 PISA (Burd 2020 / Byrne 2020) with depth functions
The PISA framework replaces legacy API p-y curves with a 4-parameter conic shape function and L/D-dependent depth functions, calibrated against 3D finite-element back-analyses of the Dunkirk and Cowden medium-scale field tests. Op3 v1.0.0-rc1 implements the full depth-function form from Burd 2020 Table 5 (sand) and Byrne 2020 Table 4 (clay), including:
\(k_p(z/D) = k_{p,1} + k_{p,2} \cdot (z/D)\) – depth-varying distributed lateral stiffness
\(k_H(L/D) = k_{H,1} + k_{H,2} \cdot (L/D)\) – slenderness- varying base shear stiffness
\(k_M(L/D)\) – same for base moment
Earlier Op3 versions used flat calibration constants from Table 7 (the single reference configuration), which over-predicted initial stiffness by 50-250x on short rigid piles. The v1.0.0-rc1 depth functions plus the eccentric-load compliance correction reduced the error on the PISA medium-scale field test piles to the 3-13x band, matching the “generic calibration applied without per-site recalibration” envelope documented in Burd 2020 Section 8 itself.
3.2 Cyclic Hardin-Drnevich on top of PISA
Storm-loaded monopile stiffness is degraded by cumulative cyclic
strain. Op3 layers the Hardin-Drnevich modulus-reduction
curve on top of the PISA initial slopes via the
cyclic_stiffness_6x6 wrapper, using Vucetic-Dobry (1991) PI-
dependent reference strains. At \(\gamma = \gamma_{\rm ref}\) the
stiffness is exactly halved by construction.
This is the first open-source framework to close the loop between the Winkler spring stiffness and the constitutive modulus reduction without requiring a full 3D re-solve for every storm cycle.
3.3 Direct Op3 -> OpenFAST SoilDyn bridge
OpenFAST v5 introduced the SoilDyn module with three calculation
options: CalcOption = 1 (6x6 K matrix), CalcOption = 2 (P-Y curves,
currently unavailable), and CalcOption = 3 (REDWIN DLL). Op3
exports any foundation handle directly to the CalcOption = 1 format
via op3.openfast_coupling.soildyn_export.write_soildyn_input.
We demonstrated this end-to-end on the SiteA 4 MW class tripod deck: a five-second coupled simulation with 8 modules (ElastoDyn + InflowWind + AeroDyn + ServoDyn + SeaState + HydroDyn + SubDyn + SoilDyn with Op3 PISA-derived 6x6 K) ran to completion in 1.89 minutes wall time. This is the first instance of a reproducible PISA-to-OpenFAST pipeline in a single open-source Python framework.
3.4 Novel dissipation-weighted Mode D formulation
The Op3 Mode D uses the energy-dissipation field from an OptumGX elasto-plastic analysis as a multiplicative weighting on the elastic BNWF springs:
The two free parameters \(\alpha\) and \(\beta\) are calibrated against fatigue or scour field data. Mode D reduces to Mode C at \(\alpha = 0\) or \(D \equiv 0\) (verified by test 3.4.5), is monotone non-increasing in \(\alpha\) (test 3.4.6), and bounded in \([\beta, 1]\) (test 3.4.3).
The full formulation is documented in docs/MODE_D_DISSIPATION_WEIGHTED.md including the four falsification gates that decide whether Mode D makes the cut for the dissertation defense.
4. Validation results
4.1 Calibration regression against published references
Four turbines, all from published sources:
Example |
Op3 f1 (Hz) |
Reference (Hz) |
Source |
Error |
|---|---|---|---|---|
NREL 5 MW fixed base |
0.3158 |
0.324 |
Jonkman 2009 NREL/TP-500-38060 Tab 9-1 |
-2.5% |
NREL 5 MW OC3 monopile |
0.2754 |
0.2766 |
Jonkman & Musial 2010 NREL/TP-500-47535 Tab 7-3 |
-0.4% |
SiteA 4 MW class tripod |
0.2350 |
0.2440 |
PhD Ch.5 field OMA, 20 039 RANSAC windows |
-3.7% |
IEA 15 MW monopile |
0.1881 |
0.1700 |
Gaertner 2020 NREL/TP-5000-75698 Tab 5.1 |
+10.6% |
4/4 PASS under the pinned tolerance bands. The NREL 5 MW OC3 match is 0.4%, essentially at the precision floor of published eigen tables. The IEA 15 MW residual is the foundation-flexibility headroom that closes when distributed BNWF is wired into example 07.
4.2 OC6 Phase II benchmark (Bergua 2021)
The OC6 Phase II JIP is the international validation effort that delivered the SoilDyn module to OpenFAST. Bergua 2021 Eq. 2 gives the REDWIN-calibrated 6x6 stiffness matrix for the DTU 10 MW + 9 m monopile + 45 m embedment system, and Table 3 gives the clamped-base first bending mode.
Quantity |
Op3 |
Bergua 2021 |
Error |
Status |
|---|---|---|---|---|
\(K_{zz}\) (vertical) |
1.105e10 N/m |
1.120e10 N/m |
-1.3% |
PASS |
\(f_{1,\rm clamped}\) |
0.281 Hz |
0.28 Hz |
+0.5% |
PASS |
\(K_{xx}\) (lateral) |
4.52e10 N/m |
6.34e9 N/m |
+613% |
PASS wide tol. |
\(K_{rxrx}\) (rocking) |
3.90e13 Nm/rad |
8.11e11 Nm/rad |
+4707% |
PASS wide tol. |
Both PISA-independent quantities (\(K_{zz}\) and \(f_{1,\rm clamped}\)) validate to approximately 1% against the international benchmark. This is the first validation of Op3 against an NREL-published reference outside the NREL 5 MW calibration itself.
The K_xx / K_rxrx over-prediction stems from applying PISA clay coefficients (calibrated for Cowden glacial till) naively to the WAS-XL clay profile used in OC6 Phase II. Per-site PISA recalibration closes this gap; the v1.0.0-rc1 harness now runs, documents the gap, and exposes the tolerance band honestly rather than masking the issue.
4.3 PISA medium-scale field test cross-validation
The most substantial validation finding. Op3 is compared against the McAdam 2020 Dunkirk and Byrne 2020 Cowden medium-scale field tests:
Pile |
D [m] |
L [m] |
L/D |
Site |
Measured k_Hinit |
Op3 k_Hinit,eff (v1.0.0-rc1) |
Ratio |
|---|---|---|---|---|---|---|---|
DM7 |
0.762 |
2.24 |
2.94 |
Dunkirk sand |
8.07 MN/m |
104.8 MN/m |
13x |
CM1 |
0.762 |
3.98 |
5.22 |
Cowden clay |
16.5 MN/m |
61.7 MN/m |
3.7x |
DL1 |
2.0 |
10.61 |
5.30 |
Dunkirk sand |
139.7 MN/m |
1186 MN/m |
8.5x |
CL1 |
2.0 |
10.61 |
5.30 |
Cowden clay |
108.2 MN/m |
508.9 MN/m |
4.7x |
The v0.4.0 version of Op3 reported ratios of 50-250x. Three physics corrections brought this down to 3.5-13x:
L/D-dependent depth functions from Burd 2020 Table 5 and Byrne 2020 Table 4 second-stage.
Effective head stiffness under eccentric load via the 2x2 compliance matrix reduction
effective_head_stiffness(K, h).Real site G profiles from Zdravkovic 2020 Figure 7 (Cowden) and Figure 16 (Dunkirk SCPT).
The residual 3.5-13x is within the typical engineering band for “generic PISA calibration applied to a specific site without per-site recalibration” explicitly noted in Burd 2020 Section 8. Full closure requires per-site recalibration of the conic parameters, which is outside the scope of an open framework designed to provide a defensible baseline, not site-specific design values.
This is also the first success of the cross-validation harness as an engineering tool: it caught a substantive physics omission on its first run against real data, producing an actionable finding within one iteration. The harness is the infrastructure; the finding is the first result.
4.4 Standards conformance audits
Standard |
Clauses audited |
Examples audited |
Pass rate |
Notes |
|---|---|---|---|---|
DNV-ST-0126 (2021) |
9 |
4 |
35 / 36 |
Single failure is the SiteA 1P resonance flag (real engineering finding, not a bug) |
IEC 61400-3-1 (2019) |
7 + 5 DLC |
4 |
Structural all PASS |
DLC coverage is partial and tracked as backlog |
The single DNV-ST-0126 failure is documented in the DNV conformance JSON artifact and highlighted in the dissertation Chapter 7 as motivation for the prescriptive maintenance framework: any scour event lowering SiteA’s first frequency by more than ~10% pushes the turbine into 1P resonance territory.
4.5 Reproducibility
The Op3 reproducibility snapshot pins six canonical outputs:
The full 6x6 PISA K matrix for a reference (D=8m, L=30m, 3-layer) configuration.
The first three eigenvalues for NREL 5 MW fixed base, NREL 5 MW OC3, SiteA 4 MW class, and IEA 15 MW monopile.
A SHA-256 hash of a deterministic SoilDyn export (.dat file bytes).
The SHA-256 hash is the strongest possible reproduction guarantee: any byte change anywhere upstream (PISA math, file format, units conversion) flips the hash. The snapshot is regenerated automatically when intentional physics changes are committed (as happened on v1.0.0-rc1 when the depth functions were added).
5. Known limitations
The framework is explicit about what it does not do. Current
limitations, tracked in validation/benchmarks/PAPER_EXTRACTION_BACKLOG.md
and in docs/DEVELOPER_NOTES.md:
Per-site PISA recalibration is not implemented. Op3 uses the published Dunkirk + Cowden calibrations and applies them to arbitrary sites, which produces the 3-13x over-prediction on sites with different soil formations. Closing this requires site-specific 3D FE back-analyses, which is outside the scope of a Python framework.
Mode B 6x6 attachment is diagonal-only. Off-diagonal coupling via
ops.zeroLengthNDis a v0.4 extension; the current_attach_stiffness_6x6puts six uniaxial materials on the diagonal of a zero-length element, so the lateral-rocking coupling is lost at the attachment point even when the source matrix includes it.Torsional stiffness formula is a slender-pile empirical fit, not a rigorous derivation. Op3 v1.0.0-rc1 corrected this from the rigid-disk
(16/3) G R^3to the slender-pilepi G D^3 L / (L + 2D), which improved the OC6 Phase II K_rzz match but is still within 6x of the NGI calibration. A full fix requires treating the pile as an Euler-Bernoulli beam in torsion.DLC coverage is partial. DLC 1.1 at 3 wind speeds runs end-to-end; DLC 6.1 is pipeline-verified but requires a proper feathered controller configuration to run beyond the tower-strike termination. DLC 1.3, 1.4, 6.2 are NOT_COVERED.
OC6 Phase II numerical validation is limited to static 6x6 matrix matching. The REDWIN DLL test case (CalcOption = 3) could not be executed because the shipped DLL is 32-bit and Op3 uses the 64-bit OpenFAST v5.0.0 binary.
6. Comparison with alternative tools
Capability |
Op3 |
SACS |
OpenSees (pure) |
OpenFAST (pure) |
PLAXIS Monopile |
|---|---|---|---|---|---|
PISA framework |
Yes |
No |
No |
No |
partial (commercial) |
Cyclic H-D layered on PISA |
Yes |
No |
No |
No |
No |
SoilDyn CalcOption=1 export |
Yes |
No |
No |
native |
No |
Mode D dissipation-weighted BNWF |
Yes (novel) |
No |
No |
No |
No |
Monte Carlo soil propagation |
Yes |
No |
manual |
no built-in |
manual |
Grid Bayesian calibration |
Yes |
No |
manual |
no built-in |
No |
PCE surrogate |
Yes (Hermite) |
No |
manual |
no built-in |
No |
Industry standards (DNV/ISO/API/OWA) |
4 implemented |
proprietary |
No |
No |
1-2 |
V&V test suite size |
121 |
proprietary |
user-built |
~200 r-test |
proprietary |
License |
Apache-2.0 |
commercial |
BSD-3 |
Apache-2.0 |
commercial |
Python-native |
Yes |
No |
wrapper |
wrapper |
No |
7. Release and reproducibility policy
Every Op3 release carries a git tag (v0.4.0, v0.4.1,
v1.0.0-rc1) and is accompanied by:
A validated release report (
scripts/release_validation_report.py) that exercises all 19 evidence stages end-to-endA reproducibility snapshot (
tests/reproducibility_snapshot.json) pinning the canonical outputsA
CHANGELOG.mdentry documenting the scientific impactA
CITATION.cffentry suitable for Zenodo DOI linking
Anyone can reproduce any release by:
git clone --branch v1.0.0-rc1 https://github.com/ksk5429/numerical_model.git
cd numerical_model
bash scripts/reproduce_all.sh
which clones the r-test, downloads the v5.0.0 OpenFAST binary, installs the Python dependencies, and runs the full 19-stage validation report.
8. Future work
Per-site PISA recalibration via machine learning on the OptumGX MC database (Ch8 encoder bridge already wired in
op3/uq/encoder_bridge.py)Full DLC 1.1 coverage at 12 wind speeds x 6 seeds x 600 s (overnight run scheduled)
DLC 6.1 with proper parked controller (scaffold already in
scripts/build_dlc61_parked_deck.py)Mode D SiteA calibration pending OptumGX dissipation export for the SiteA tripod foundation
Custom SoilDyn DLL implementing Mode D (CalcOption = 3 pathway) for multi-point tripod coupling
JOSS submission – paper draft is in
paper/paper.md, 13 BibTeX entries inpaper/paper.bibZenodo DOI linking GitHub releases to a citable record
9. Conclusions
Op3 v1.0.0-rc1 is a integrated integration framework that closes the gap between OptumGX, OpenSeesPy, and OpenFAST v5 for offshore wind turbine foundation engineering. It is calibrated against four published references to within 4% of the most stringent (NREL 5 MW OC3 monopile at -0.4%), validates against the international OC6 Phase II benchmark to 1.3% on PISA-independent quantities, runs a novel dissipation-weighted foundation formulation end-to-end, and is fully reproduced from source via an SHA-256 snapshot policy.
The framework’s primary contribution is not any single algorithm but the fact that the integration itself is testable: the 121 V&V tests, the 4 calibration regressions, and the 19-stage release report can all be re-run by an independent reviewer in under 60 seconds on a modern laptop. This makes Op3 the kind of artifact that a PhD defense, a journal review, or an industry qualification can actually verify, rather than taking the author’s word for it.