Skip to content

Conversation

@RyanDavies19
Copy link
Contributor

Feature or improvement description
Enables wave spreading in MoorDyn in conjunction with the recently merged SeaState coupling. Wave directional spreading was previously only available when running MoorDy fully coupled with SeaState (waterkin = 3). Now wave directional spreading is enabled with the hybrid coupling (waterkin = 2), where input parameters are controlled by the SeaState input file but the grid size and discretization is controlled by MoorDyn. There's no input file changes, this just enables more SeaState features to be compatible with MoorDyn in the hybrid coupling.

This PR also enables a user defined current profile (CurrentMod 1) while using the hybrid coupling method if the SeaState currents are disabled. This allows users to calculate wave kinematics using SeaState but still provide their own current profile (which typically is based on buoy data).

Related issue, if one exists
#2748

Impacted areas of the software
MoorDyn

Additional supporting information
Final task from #2705

Test results, if applicable
To test wave directional spreading I ran MoorDyn fully coupled with SeaState with wave spreading enabled. I also ran MoorDyn with the hybrid SeaState coupling with SeaState wave spreading using an identical grid size as the SeaState grid in MoorDyn. For both of these, I checked submergence of a fixed surface piercing rod located at 5,5. Submergence matched exactly, which means the wave elevations pulled from the wave-field pointer match the wave elevations calculated by MoorDyn using the wave-field pointer frequency and direction information. Figure below shows the submergence results:

Screenshot 2025-05-02 at 2 45 08 PM

Copy link
Collaborator

@andrew-platt andrew-platt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

I'm surprised that the WaveDirArr is stored in degrees instead of radians. SeaState also has it stored in degrees.

@RyanDavies19
Copy link
Contributor Author

RyanDavies19 commented May 2, 2025

Looks good!

I'm surprised that the WaveDirArr is stored in degrees instead of radians. SeaState also has it stored in degrees.

I noticed, figured it was set up that way on purpose. Lines 897 and 898 in Wave.f90 has the same as what I added for calculating CosWaveDir and SinWaveDir:

https://github.com/OpenFAST/openfast/blob/dev-cbind/modules/seastate/src/Waves.f90#L897

@andrew-platt andrew-platt added this to the v4.1.0 milestone May 5, 2025
@andrew-platt andrew-platt merged commit c63dbfb into OpenFAST:dev-cbind May 5, 2025
22 checks passed
@RyanDavies19 RyanDavies19 deleted the MD_wave_spreading branch June 2, 2025 19:43
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.

2 participants