55[ ![ Python 3.12] ( https://img.shields.io/badge/python-3.12-blue.svg )] ( https://www.python.org/downloads/release/python-3120/ )
66[ ![ OpenFAST] ( https://img.shields.io/badge/OpenFAST-v5.0.0-orange.svg )] ( https://github.com/OpenFAST/openfast/releases/tag/v5.0.0 )
77[ ![ OpenSeesPy] ( https://img.shields.io/badge/OpenSeesPy-3.7+-green.svg )] ( https://github.com/zhuminjie/OpenSeesPy )
8- [ ![ V&V] ( https://img.shields.io/badge/V%26V-27%2F28_benchmarks_(96 %25)-brightgreen.svg )] ( validation/cross_validations/VV_REPORT.md )
8+ [ ![ V&V] ( https://img.shields.io/badge/V%26V-35%2F38_benchmarks_(92 %25)-brightgreen.svg )] ( validation/cross_validations/VV_REPORT.md )
99[ ![ Tests] ( https://img.shields.io/badge/tests-45%20passing-brightgreen.svg )] ( op3_viz/tests/ )
1010[ ![ Coverage] ( https://img.shields.io/badge/coverage-83.3%25-brightgreen.svg )] ( op3_viz/tests/ )
1111[ ![ Version] ( https://img.shields.io/badge/version-1.0.0--rc1-blue.svg )] ( CHANGELOG.md )
@@ -87,18 +87,19 @@ python scripts/release_validation_report.py # 18/19 PASS in ~42 s
8787| Monte Carlo soil propagation | ✅ | ❌ | manual | manual | ❌ |
8888| Hermite polynomial chaos expansion | ✅ | ❌ | ❌ | manual | ❌ |
8989| Grid Bayesian calibration | ✅ | ❌ | ❌ | manual | ❌ |
90- | V&V test suite | ** 121 ** | proprietary | proprietary | user-built | ~ 200 r-test |
90+ | V&V test suite | ** 140 ** | proprietary | proprietary | user-built | ~ 200 r-test |
9191| License | Apache-2.0 | commercial | commercial | BSD-3 | Apache-2.0 |
9292| Python-native | ✅ | ❌ | ❌ | wrapper | wrapper |
9393
9494## v1.0.0-rc1 release highlights
9595
96- - ** 27 / 28 cross-validation benchmarks verified (96 %)** against 20+
96+ - ** 35 / 38 cross-validation benchmarks verified (92 %)** against 20+
9797 published sources (Fu & Bienen 2017, Vulpe 2015, Doherty 2005,
9898 Houlsby 2005, Jalbi 2018, Gazetas 2018, and 14 more)
99- - ** 115+ unit tests pass** across 14 modules (code verification,
99+ - ** 140 unit tests pass** across 15 modules (code verification,
100100 consistency, sensitivity, extended invariants, PISA, cyclic
101- degradation, HSsmall, Mode D, UQ, reproducibility snapshot, ...)
101+ degradation, HSsmall, Mode D, UQ, reproducibility snapshot,
102+ framework integration, ...)
102103- ** 4 / 4 calibration regression** against published references
103104 with all four examples within 4% of the most stringent
104105 (NREL 5 MW OC3 at ** -0.4%** vs Jonkman & Musial 2010)
@@ -121,8 +122,8 @@ python scripts/release_validation_report.py # 18/19 PASS in ~42 s
121122
122123## Cross-Validation Against Published Benchmarks
123124
124- Op3 has been cross-validated against ** 31 independent benchmarks** from
125- 20+ published sources. ** 27 of 28 in-scope benchmarks verified (96 %).**
125+ Op3 has been cross-validated against ** 39 independent benchmarks** from
126+ 20+ published sources. ** 35 of 38 in-scope benchmarks verified (92 %).**
126127
127128| Category | Benchmarks | Error range | Sources |
128129| ---| ---| ---| ---|
@@ -135,6 +136,13 @@ Op3 has been cross-validated against **31 independent benchmarks** from
135136| PISA clay stiffness | #6 | 16--32% | Burd et al. 2020 |
136137| VH envelope | #8 | -7.7% | Houlsby & Byrne / Vulpe 2015 |
137138| p_ult(z) profile | #21 | consistent | OptumGX plate extraction |
139+ | Centrifuge yield moment | #22 | ** -0.7%** | DJ Kim et al. 2014 |
140+ | Full-scale tripod f1 | #24 | -0.2% | Seo et al. 2020 |
141+ | Walney 1 monopile f1 | #25 | -2.1% | Arany et al. 2015 |
142+ | Suction bucket scour sensitivity | #26 | within range | Cheng et al. 2024 |
143+ | f_meas/f_design ratio | #27 | +0.3% | Kallehave et al. 2015 |
144+ | Cyclic rotation (N=100, N=1M) | #28 | 3.7--4.3% | Jeong et al. 2021 |
145+ | OC4 jacket f1 (fixed-base) | #29 | +1.9% | Popko et al. 2012 |
138146
139147Key results:
140148- ** NcV = 6.006** (ref 5.94, +1.1%) -- textbook bearing capacity match
@@ -218,7 +226,7 @@ op3/ the Python package
218226 uq/ Propagation / PCE / Bayesian
219227 sacs_interface/ SACS jacket deck parser
220228
221- tests/ 121 active V&V tests
229+ tests/ 140 active V&V tests
222230scripts/ Runners, audits, regressions, release tooling
223231examples/ 11 turbine TowerModel build.py files
224232docs/ Sphinx + tutorials + Mode D notes + developer notes
@@ -355,7 +363,7 @@ modes — only the foundation boundary condition changes.
355363| D | ** Dissipation-weighted generalized BNWF** | High | Slow | Full energy-consistent coupling with OptumGX plastic dissipation field |
356364
357365All four modes share the same tower, rotor, and nacelle inertia
358- properties from [ ` op3/config/site_a_site .yaml ` ] ( op3/config/site_a_site .yaml ) .
366+ properties from [ ` op3/config/site_a .yaml ` ] ( op3/config/site_a .yaml ) .
359367Only the foundation representation changes, which makes it trivial to
360368compare the effect of foundation modeling choice on the predicted
361369natural frequency, mode shape, or transient response.
@@ -476,7 +484,7 @@ The extraction is handled by
476484The SubDyn input file is generated by
477485[ ` op3/openfast_coupling/build_site_a_subdyn.py ` ] ( op3/openfast_coupling/build_site_a_subdyn.py ) .
478486Both scripts are driven by the single-source-of-truth YAML at
479- [ ` op3/config/site_a_site .yaml ` ] ( op3/config/site_a_site .yaml ) .
487+ [ ` op3/config/site_a .yaml ` ] ( op3/config/site_a .yaml ) .
480488
481489## NREL reference library bundled in this repository
482490
@@ -560,7 +568,7 @@ numerical_model/
560568│ ├── openfast_coupling/ OpenSees ↔ SubDyn bridge
561569│ ├── integration/ OptumGX outputs → OpenSees springs
562570│ └── config/ single source of truth
563- │ └── site_a_site .yaml
571+ │ └── site_a .yaml
564572│
565573├── data/ OptumGX persisted outputs
566574│ ├── integrated_database_1794.csv master Monte Carlo database
0 commit comments