Skip to content

Mesh-based nonlinear Froude-Krylov and hydrostatic load calculation in HydroDyn#3336

Open
luwang00 wants to merge 10 commits into
OpenFAST:devfrom
luwang00:f/NLFKHst
Open

Mesh-based nonlinear Froude-Krylov and hydrostatic load calculation in HydroDyn#3336
luwang00 wants to merge 10 commits into
OpenFAST:devfrom
luwang00:f/NLFKHst

Conversation

@luwang00
Copy link
Copy Markdown
Contributor

@luwang00 luwang00 commented May 16, 2026

This PR is ready to be merged.

Feature or improvement description
This PR adds mesh-based nonlinear Froude-Krylov and hydrostatic load calculation in HydroDyn for the potential-flow bodies. This is still a work in progress with only basic functionality implemented. More information to come.

Initially, the implementation will only support ASCII STL files. The algorithm only supports triangular patches. Clipping of the triangular patches at the instantaneous waterline is included for fast convergence on coarse mesh.

For potential-flow bodies with nonlinear FK and hydrostatics enabled. HydroDyn requires the *.3sc file from WAMIT, which only contains the linear scattering loads to avoid double-counting the Froude-Krylov part. It also automatically zeros out the hydrostatic loads from PtfmVol0 and the hydrostatic stiffness matrix. Any second-order potential-flow loads are also zeroed out. Note that for NBodyMod=1 (coupled potential-flow bodies), nonlinear Froude-Krylov and hydrostatics must be enabled or disabled for all bodies together. For decoupled bodies (NBodyMod=2 or NBodyMod=3), nonlinear FK and hydrostatics can be selectively enabled for some bodies. The new features are currently incompatible with generalized degrees of freedom with NAddDOF>0.

HydroDyn Inputs

This PR introduces two new input lines at the very end of the FLOATING PLATFORM section of the HydroDyn input file.

                1   FKMod   - Nonlinear Froude-Krylov and hydrostatic load model {0: none, 1: nonlinear F-K and hydrostatics} (switch) [1 to NBody if NBodyMod>1; only used when PotMod=1; must provide GeoFile if FKMod=1]
  "ASCII_STL.stl"   GeoFile - Full name(s) of geometry file (ASCII STL format) for nonlinear Froude-Krylov and hydrostatic load integration (quoted strings) [1 to NBody; only used when PotMod=1 and when the corresponding FKMod=1]

Output Channels

Added new output channels B1NFKFxi, B1NFKFyi, B1NFKFzi, B1NFKMxi, B1NFKMyi, B1NFKMzi, ..., B9NFKMzi. These outputs provide the combined nonlinear Froude-Krylov and hydrostatic forces and moments on the first 9 potential-flow bodies. The forces and moments are in the earth-fixed xi, yi, and zi directions and the moments are about the instantaneous body reference point, same as other similar output channels. For performance reasons, HydroDyn does not compute separate nonlinear Froude-Krylov excitation and hydrostatic forces and moments; only the combined loading is available.

Note that if nonlinear Froude-Krylov and hydrostatic calculation is enabled (FKMod=1), the regular wave excitation output channels, e.g., B1WvsFxi and B1WvsF1xi, will only give the linear scattering part of the wave excitation computed from the .3sc file. The linearized hydrostatic loads, e.g., B1HdsFzi, will also be zeroed. The sum of B1WvsFxi and B1NFKFxi, for example, gives the total (Froude-Krylov and scattering) wave excitation and hydrostatic loads on B1.

Still requires

  • New output channels
  • HydroDyn summary file update
  • Update openfast_io
  • Documentation update (HD user docs and api_change.rst)
  • r-test input file update
  • Optional/future work: HD Jacobian performance optimization

Impacted areas of the software
HydroDyn, openfast_io, docs, r-test

Generative AI usage
Co-authored-by: Google Gemini gemini@google.com

Test results, if applicable
Requires input file changes, but should not affect r-test results if the new features are not used. All existing r-test passed.

  • r-test branch merging required

@luwang00 luwang00 added this to the v5.1.0 milestone May 19, 2026
luwang00 added 7 commits May 20, 2026 09:06
…Krylov and hydrostatic load model

Also fixed a potential bug when NBodyMod=1 and NBody>1. In this case, PotFile and WAMITULEN only have one entry each for all bodies instead of NBody entries. Updated r-test pointer.
@luwang00 luwang00 marked this pull request as ready for review May 21, 2026 19:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant