Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

F/sea state+ #970

Closed
wants to merge 39 commits into from
Closed

Conversation

HaymanConsulting
Copy link
Contributor

@HaymanConsulting HaymanConsulting commented Jan 19, 2022

This Pull request is NOT ready for merging

r-test files need to be updated for new input files and input file changes

Limited testing has been performed and looks good.
Testing database is here: https://github.com/HaymanConsulting/seast-test

Feature or improvement description

  • The registry system has been augmented to support Fortran pointers. This allows for sharing of pointers to large data arrays across OpenFAST modules.
  • The wave kinematics functionality of HydroDyn has been separated out into its own module: SeaState. This module is initialized by the glue-code and resulting data is passed via the glue-code to individual modules (i.e., HydroDyn).
  • Wave kinematics are now generated on a 3D grid, which is user-specified in the SeaState input file.
  • Strip-theory Hydrodynamic load calculations can now be performed at the displaced location of the substructure.
  • Potential flow (wave excitation loads) can now be computed at the WAMIT body's displaced location.

Related issue, if one exists

#847
#844
#842

Impacted areas of the software

  • FAST Registry => Fortran Pointer support NOTE: This breaks restart functionality
  • HydroDyn
  • New SeaState module
  • FAST glue-code => support for new SeaState module

Additional supporting information

Test results, if applicable

  • Regression tests need updating. Show plots here of differences

Task list

  • Merge C-bindings interface for HydroDyn #806
  • Update input files for regression tests
  • Verify regression test results are similar (differences expected)
  • Update the hd_c_lib interface module
    • Add SeaState into module
    • Update python interface (if needed)
    • regenerate regression tests

HaymanConsulting and others added 28 commits September 21, 2021 10:34
Move location of files which used in the new SeaState module
Added SeaState Module.  This includes a new SeaState input file and a stand alone SeasState driver program.  SeaState encompasses the Current, Waves,  UserWaves, and Waves2 modules, and a new interpolation module.  The wave kinematics are now defined on a 3D grid and the physics modules obtain kinematics for any point by interpolating the grid data.
Added ExctnDisp support for WAMIT bodies
Added WaveDisp support for Morison members
Various bug fixes
Changed SeaState abbrv. to SeaSt in registry
This feature is currently unused.  It will be fully implemented when ExctnDisp = 2 is implemented.
Comments make clear that the time signal is wrapped back into the valid time range [0,WaveTmax]
Trying to resolve seastate references in hydrodyn
Needed to cast reals to correct types
Added SeaState_input.f90 to CmakeLists.txt
HD_Types       -- some registry file dependencies not used now
FAST_Types     -- some registry file dependencies not used now
SeaState_Types -- -noextrap flag
Waves_Types    -- -noextrap flag
Waves2_Types   -- -noextrap flag
Updates so it compiles on Ubuntu 20.04 in debug / single prec
WaveElev.out was not reporting the correct min/max values
HaymanConsulting and others added 5 commits January 24, 2022 09:25
The wrapping of the time signal back into the range [0,WaveTMax] had bugs
* Removed requirement for WaveMod = 6 to have WaveDT = Driver DT
* If WaveMod /= 6 and the WvKinFile is not the empty string, will cause SeaState module to write the kinematics files.
* Fixed generation of SeaState summary file when WaveMod = 6
* Fixed setting wave time data range to NStepWave+1 for the Interpolation algorithm
* Finished WaveMod = 6 implementation
This is more consistent with what is passed into HD and SeaState
HaymanConsulting and others added 6 commits February 2, 2022 15:51
* Added input setting in Stand-alone SeaState module driver: WrWvKinMod
     0: do not write kinematics
     1: write only the  (0,0) WaveElevation time series
     2: write all kinematics
* Changed kinematics writing to write the NStepWave increment (instead of stopping at NStepWave-1)
* Fixed kinematics reading to match above condition
* Remove completed TODO comments and removed other unnecessary commented out code
seastate: change WtrDpth to ReKi so double precision will compile
@rafmudaf rafmudaf added this to the v4.0.0 milestone Apr 7, 2022
@rafmudaf rafmudaf added this to To do in v4.0.0 Apr 7, 2022
real(ReKi) :: positionXY(2)

real(SiKi) :: GetWaveElevation(p%NBody)
TYPE(SS_Exc_InputType) :: u_out ! extra_interp result

Choose a reason for hiding this comment

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

Hi,

The 2-dimensional allocatable variable PtfmPos of u_out may need to be allocated here.

Best regards,
Chen

Copy link
Contributor

@bjonkman bjonkman Jul 11, 2022

Choose a reason for hiding this comment

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

See fix in bjonkman@1452337 (which also fixes a few other issues with this subroutine)

@andrew-platt
Copy link
Collaborator

Closing this as PR #1008 supercedes it.

v4.0.0 automation moved this from To do to Done Aug 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

None yet

5 participants