MoorDyn v2 + shared moorings + wave propagation in FAST.Farm
This pull request can be merged once tests are finalized.
Feature or improvement description This pull request introduces MoorDyn v2 (a massive increase in mooring modeling capabilities) and updates to FAST.Farm to better model floating wind farms including with shared mooring systems.
MoorDyn improvements:
- New rigid-body Rod and Body object types (Connections renamed Points)
- Completed MoorDyn Driver
- Standardized input file format
- Active tensioning
- Linearization functions
- Nonlinear tension-strain relations for lines
- Viscoelastic capability for lines (for synthetic ropes)
- Line bending stiffness for power cables
- Built-in grid-based wave kinematics based on input wave elevation time series
- Built-in table-based steady current profile
- Water kinematics applied on Lines, Points, and Rods
- Rod free-surface hydrodynamics in all orientations (with wave stretching, fully nonlinear)
- Seabed bathymetry grid accounting for arbitrary seabed contours and effect of slope and change in depth
- Line-seabed friction modeling including static and kinetic friction coefficients
- Support for multiple input and output meshes for use with FAST.Farm
FAST.Farm improvements:
- "Mod_SharedMooring" - Alternate time stepping arrangement that allows array-level communication between FAST instances and an array-level MoorDyn instance that can be used for shared moorings and shared anchors as well as fully dynamic intra-array cables
- "Mod_WaveField" - Can account for individual turbine positions when computing incident waves and result loads so that phasing from wave propagation throughout the array is accurately modeled
Impacted areas of the software
- MoorDyn and how it is called within FAST (I/O meshes are now arrays)
- FAST.Farm (new alternative time stepping option) and FAST wrapper through to HydroDyn and MoorDyn (turbine reference positions in the array are passed down to the modules from FAST.Farm)
Additional supporting information This is an updated PR of postponed PRs https://github.com/OpenFAST/openfast/pull/750 and https://github.com/OpenFAST/openfast/pull/747 along with many improvements done for various NOWRDC and ATLANTIS projects since then.
Test results, if applicable TBD
ToDo
- [ ] update
api_change.rst - [ ] update baseline results
- [ ] link to MoorDyn C++ version documentation
I was reminded today that we don't really have documentation on the cable tension control option. It would be good to add something on this in the docs, and a note about the sign convention.
(putting this note here for now as I'm not sure where else to put it at the moment)
@jjonkman, I added some documentation viewable here:
- FAST.Farm input file changes: https://ap-openfast.readthedocs.io/en/mdv2-farm/source/user/fast.farm/InputFiles.html
- MoorDyn: https://ap-openfast.readthedocs.io/en/mdv2-farm/source/user/moordyn/index.html (NOTE: this is mostly a landing page with links to documentation that @mattEhall has on another rtd page -- for expedience we did not import it directly)
- api changelog: https://ap-openfast.readthedocs.io/en/mdv2-farm/source/user/api_change.html