Op3 – OptumGX-OpenSeesPy-OpenFAST integration framework
Op3 is an integrated numerical modelling framework for offshore wind turbine support structures. It bridges three open-source and commercial codes:
OptumGX – 3D finite-element limit analysis (commercial, proprietary)
OpenSeesPy – structural dynamics solver (BSD 3-Clause)
OpenFAST v5 – aero-hydro-servo-elastic coupled wind turbine simulation (Apache 2.0)
The framework was developed for the dissertation “Digital Twin Encoder for Prescriptive Maintenance of Offshore Wind Turbine Foundations” (Seoul National University, June 2026).
Getting started
Reference
- Foundation modes
- Suction anchors (floating OWT)
- Industry standards
- Uncertainty quantification (Phase 5)
- OpenFAST coupling
- Technical reference
- 1. Unit system
- 2. Coordinate system
- 3. Degree-of-freedom numbering
- 4. Foundation modes – mathematical definitions
- 5. PISA conic shape function
- 6. Effective head stiffness under eccentric load
- 7. Hardin-Drnevich modulus reduction
- 8. Tower bending frequency formulas (analytical references)
- 9. RNA mass and inertia convention
- 10. Hermite polynomial chaos
- 11. Grid Bayesian calibration
- 12. Key references
- API reference
- Public API
- Foundation modes
- Composer
- Industry standards (Mode B)
- PISA framework (Burd 2020 / Byrne 2020)
- Cyclic degradation (Hardin-Drnevich / Vucetic-Dobry)
- HSsmall constitutive wrapper
- OpenSees foundation builder
- OpenFAST coupling
- Fatigue
- Visualization
- Uncertainty quantification (Phase 5)
- Advanced UQ
Science and validation
Note
Tutorials are planned for the v1.1 release. In the meantime,
see the demo scripts in scripts/ (e.g., visualize_op3.py,
visualize_optumgx_openfast.py, test_three_analyses.py)
and the sample projects in sample_projects/.
Operations
- Troubleshooting and FAQ
- Contributing guide
- The V&V-or-it-didn’t-happen rule
- Never fabricate measured data
- Commit discipline
- Branching model
- Adding a new turbine to the calibration regression
- Adding a new foundation standard
- Adding a new V&V test
- Code style
- Running the tools locally
- Documentation contributions
- Review process
- Security
- Release process
- Contact
Getting started
from op3 import build_foundation, compose_tower_model
foundation = build_foundation(mode="fixed")
model = compose_tower_model(
rotor="nrel_5mw_baseline",
tower="nrel_5mw_oc3_tower",
foundation=foundation,
)
freqs = model.eigen(n_modes=3)
print(f"f1 = {freqs[0]:.4f} Hz")
Run the bundled examples
python scripts/test_three_analyses.py
python scripts/calibration_regression.py
python scripts/run_openfast.py site_a
python scripts/run_dlc11_partial.py
python scripts/dnv_st_0126_conformance.py --all
Verification & validation
The full V&V suite consists of 140 active tests across 15 modules plus 39 cross-validation benchmarks against 20+ published sources. See Verification & Validation for the unit-test falsification gates and Cross-Validation Against Published Benchmarks for the published-benchmark comparison (35/38 in-scope benchmarks verified, 92%).