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

Additional features for the new SeaState module and HydroDyn #1008

Merged
merged 435 commits into from
May 31, 2023
Merged
Changes from 5 commits
Commits
Show all changes
435 commits
Select commit Hold shift + click to select a range
5eeccbf
SeaState: Make warnings about clamping boundary shown only once
bjonkman May 31, 2022
3752930
HydroDyn: removed unused WAMIT2 data types
bjonkman Jun 3, 2022
fbef3cf
Glue: combined code for structure transfer to option1 inputs
bjonkman Jun 3, 2022
79acf5b
Linearization: reduce amount of duplicated code in offshore cases
bjonkman Jun 3, 2022
cea079d
Merge remote-tracking branch 'NREL/dev' into LuWang_hydro
bjonkman Jun 3, 2022
60ceac0
update some comments
bjonkman Jun 6, 2022
0e234f0
Update orientation differences in linear trim solution
bjonkman Jun 14, 2022
78aaf92
update r-test
bjonkman Jun 21, 2022
d6c5390
Merge remote-tracking branch 'NREL/dev' into LuWang_hydro
bjonkman Jun 21, 2022
d99a3c3
update r-test
bjonkman Jun 22, 2022
26f4880
Merge remote-tracking branch 'NREL/dev' into LuWang_hydro
bjonkman Jun 22, 2022
6de2289
HD/WAMIT2: allocate moment field in output mesh
bjonkman Jun 22, 2022
d656ebe
Expanded the SubDyn output to allow NMOutputs up to 99.
luwang00 Jun 22, 2022
178bcff
VTK output: add wave visualization back
bjonkman Jun 24, 2022
0ecbc10
SeaState: Cleanup comment for read of WaveSeed(2)
bjonkman Jun 24, 2022
44930c0
fix for double-precision seastate build
bjonkman Jun 27, 2022
02aaccd
reg_tests python: add variable missing for error plotting
bjonkman Jun 27, 2022
4ade328
reg_tests python: link to log file / screen output in html output
bjonkman Jun 27, 2022
5e24b94
reg_tests: attempt to remove errors running pass_fail in GitHub actions
bjonkman Jun 27, 2022
1965c9b
reg_tests: more updates to attempt to remove warnings in GitHub actions
bjonkman Jun 27, 2022
46c526d
HydroDyn/SeaState cleanup
bjonkman Jun 28, 2022
3c18f4a
reg_test: print returnCode in html summary;
bjonkman Jun 28, 2022
05e670f
Move SeaSt checks from HydroDyn into SeaState
bjonkman Jun 29, 2022
11cd19c
Merge remote-tracking branch 'luwang00/dev' into LuWang_hydro2
bjonkman Jun 30, 2022
cc1bbcc
Merge remote-tracking branch 'NREL/dev' into LuWang_hydro2
bjonkman Jun 30, 2022
b6fc713
SeaState: Add size to error message about allocation size
bjonkman Jun 30, 2022
a93e13e
work in progress: OutList Parameters for SD
bjonkman Jul 1, 2022
011a121
Merge pull request #3 from bjonkman/LuWang_hydro
luwang00 Jul 1, 2022
3f8b14d
Added #include <stdexcept> to FastLibAPI.cpp.
luwang00 Jul 1, 2022
ed6f6e7
Bug Fix: rotation matrix perturbation with small angles was wrong (#1…
ebranlard Jul 7, 2022
6ec9ab6
HDdvr: Implemented linearization
ebranlard Jul 7, 2022
c5ff7a5
Merge branch 'f/fix-perturb-orient' into f/hd-driver-lin
ebranlard Jul 7, 2022
70a375b
HDdvr: linearization at EDRefP and fixed 0,0,0
ebranlard Jul 7, 2022
d5256f2
Mesh: mapping of loads only if allocated in dest
ebranlard Jul 7, 2022
f6c1754
update r-test
bjonkman Jul 11, 2022
a43e451
Merge branch 'dev' into LuWang_hydro2
bjonkman Jul 11, 2022
1452337
bug fix: SS_Excitation wave elevation was not set properly for nBody > 1
bjonkman Jul 11, 2022
e1889fe
HD C binding: removed `HasIce`; should be updated for use with SeaState
bjonkman Jul 11, 2022
7c8fb6a
Added #include <stdexcept> to FastLibAPI.cpp.
luwang00 Jul 1, 2022
0ff7438
Merge remote-tracking branch 'NREL/dev' into LuWang_hydro
bjonkman Jul 12, 2022
8b579f9
SD: split up WriteOutput vars to reduce number of continuation lines
bjonkman Jul 12, 2022
6682afe
OutList: update formatting on SD sheet
bjonkman Jul 12, 2022
400c35c
Merge remote-tracking branch 'NREL/dev' into LuWang_hydro
bjonkman Jul 13, 2022
c9b4118
SD: make new channel names backward compatible
bjonkman Jul 14, 2022
b53d5aa
SeaState: updates to WriteOutput
bjonkman Jul 18, 2022
a641b97
Update module description in summary file
bjonkman Jul 19, 2022
f51f673
HD-SeaSt coupling: fix error check for SSExctn inputs
bjonkman Jul 20, 2022
ae91162
Merge remote-tracking branch 'NREL/dev' into LuWang_hydro
bjonkman Jul 20, 2022
31bb8fe
update HD driver with change for f51f67
bjonkman Jul 20, 2022
9f3233c
glue: Replace IF statements for solve options with single logical
bjonkman Jul 20, 2022
746adcd
python regression test scripts
bjonkman Jul 29, 2022
b1a83c6
HD driver: split main code into two source files
bjonkman Jul 29, 2022
ff1a4fa
update r-test
bjonkman Jul 29, 2022
9d8a6ca
Merge branch 'dev' into LuWang_hydro
bjonkman Aug 1, 2022
d2fd2e9
update r-test
bjonkman Aug 1, 2022
a393f0e
fix typo in 1452337e + destroy memory that was allocated
bjonkman Aug 1, 2022
2f568df
Bug Fix: Adding WaveMod = 7 to the subroutine WAMIT_Init.
luwang00 Aug 1, 2022
70517c8
Merge remote-tracking branch 'luwang00/dev' into LuWang_hydro
bjonkman Aug 2, 2022
56097fe
Merge remote-tracking branch 'NREL/dev' into LuWang_hydro
bjonkman Aug 2, 2022
7e43136
Initial implementation of motion filter for ExctnDisp = 2.
luwang00 Aug 2, 2022
5e9d591
Motion filter for ExctnDisp = 2: Avoided the use of Misc. variables.
luwang00 Aug 2, 2022
1f3056e
Axial drag force: Avoided updating the states of the high-pass normal…
luwang00 Aug 3, 2022
30d1f97
Merge branch 'feature/ExctnCutOff' into dev
luwang00 Aug 3, 2022
8aac668
HD driver: add output-to-file capability
bjonkman Aug 3, 2022
b20cbb2
Glue: remove unused variable
bjonkman Aug 3, 2022
3f3ee0a
python regression-test scripts: update for HD driver changes
bjonkman Aug 3, 2022
d74fad3
Merge remote-tracking branch 'luwang00/dev' into LuWang_hydro
bjonkman Aug 3, 2022
af3e768
update types files
bjonkman Aug 3, 2022
8c2b643
update more types files
bjonkman Aug 4, 2022
917320a
manual reg test scripts:print completion code as int
bjonkman Aug 8, 2022
9c3912e
Merge remote-tracking branch 'ebranlard/f/hd-driver-lin' into LuWang_…
bjonkman Aug 8, 2022
373d63b
HD driver: cleanup + reorg
bjonkman Aug 8, 2022
a3c2cf8
HD driver reorg
bjonkman Aug 11, 2022
486fa7b
HD: fix assumption that update states has 2 input times
bjonkman Aug 11, 2022
0c68597
Update r-test with new HD driver input files
bjonkman Aug 11, 2022
01f857c
update r-test
bjonkman Aug 11, 2022
7a989af
python scripts: don't print blank lines on .out files
bjonkman Aug 11, 2022
14134a7
GH actions: use bokeh 1.4 (revert merge from dev)
bjonkman Aug 11, 2022
63e627d
HD driver: cleanup error messages
bjonkman Aug 15, 2022
ddfbd99
Merge remote-tracking branch 'NREL/dev' into LuWang_hydro
bjonkman Aug 15, 2022
63265e3
Bug Fix: Corrected the white-noise wave spectrum in SeaState.
luwang00 Aug 15, 2022
57520e7
HD driver: linearization cleanup
bjonkman Aug 15, 2022
b9fda82
Merge remote-tracking branch 'luwang00/dev' into LuWang_hydro
bjonkman Aug 15, 2022
41c8de3
Reverting the change made in the previous commit (63265e3fc4544507f78…
luwang00 Aug 15, 2022
ae58d1c
Merge remote-tracking branch 'luwang00/dev' into LuWang_hydro
bjonkman Aug 16, 2022
0aee614
HD/SeaSt: clarify outputs to module level output file
bjonkman Aug 16, 2022
dcb5b33
HD driver: fix perturbations on WAMIT and Morison meshes
bjonkman Aug 16, 2022
ba12ea8
HD driver: replace repeated PRP-to-HD mesh calls with subroutine
bjonkman Aug 16, 2022
3c7524f
HD/SeaSt cleanup
bjonkman Aug 17, 2022
1645147
SeaSt cleanup: rename some submodule variables
bjonkman Aug 17, 2022
1f4bf9a
SeaSt: remove unnecessary arrays
bjonkman Aug 17, 2022
f30b1ea
Merge pull request #4 from bjonkman/LuWang_hydro
luwang00 Aug 18, 2022
95f98d7
Updated the white-noise wave again.
luwang00 Aug 18, 2022
1910374
Merge OpenFAST/dev into LuWang_hydro
bjonkman Aug 22, 2022
c8b2477
Fix broken manual regression test
bjonkman Aug 22, 2022
edea770
cleanup seastate output file close routine
bjonkman Aug 23, 2022
be4c884
python scripts: avoid plotting errors with different numbers of outpu…
bjonkman Aug 23, 2022
6eb4920
update r-test
bjonkman Aug 23, 2022
4fc9d81
update minor text in documentation; HD documentation is OUT OF DATE
bjonkman Aug 23, 2022
de3a9c2
merge OpenFAST/dev into LuWang_hydro
bjonkman Aug 25, 2022
7ae3388
Merge remote-tracking branch 'NREL/dev' into LuWang_hydro
bjonkman Aug 25, 2022
5b0823a
Cleanup size of lines read from file
bjonkman Aug 25, 2022
4708737
NWTC_IO: update GetWords to return the number actually read
bjonkman Aug 25, 2022
0076b03
HD: increase max length of line read from kinematics files
bjonkman Aug 29, 2022
dd123af
HD: replace unnecessary array with scalar
bjonkman Aug 29, 2022
d7b57ef
HD/SeaSt: update error handling + code cleanup
bjonkman Aug 29, 2022
f088391
NWTC_IO: cleanup some error handling
bjonkman Aug 29, 2022
4dae42a
Merge remote-tracking branch 'luwang00/dev' into LuWang_hydro
bjonkman Aug 29, 2022
43cc15b
update r-test
bjonkman Aug 30, 2022
5210163
Merge pull request #5 from bjonkman/LuWang_hydro
luwang00 Aug 30, 2022
e9fba16
Merge remote-tracking branch 'NREL/dev' into LuWang_hydro
bjonkman Aug 31, 2022
d7ed2a4
HD/Morison: fix numerical issues with acos
bjonkman Sep 1, 2022
c6abf07
SeaSt: fix potential numerical issues with acos
bjonkman Sep 1, 2022
659309b
Bug Fix: Morison_CalcOutput
luwang00 Sep 1, 2022
acb70c4
Bug Fix: Morison_CalcOutput
luwang00 Sep 2, 2022
70d9d78
Merge remote-tracking branch 'luwang00/dev' into LuWang_hydro
bjonkman Sep 6, 2022
a7f6de7
Merge pull request #6 from bjonkman/LuWang_hydro
luwang00 Sep 7, 2022
98c2452
Morison WriteOutput cleanup (plus bug fixes)
bjonkman Sep 7, 2022
2072943
VersionInfo: add compile time to version info stored in file
bjonkman Sep 7, 2022
ea6dfa9
SeaState WriteOutput: minor cleanup
bjonkman Sep 7, 2022
875550b
NWTC Lib: add `OutStrLenM1` and `FindValidChannelIndx`
bjonkman Sep 7, 2022
6caad82
HD: cleanup/standardize WriteOutput/Outlist code
bjonkman Sep 7, 2022
63a303e
Merge remote-tracking branch 'NREL/dev' into LuWang_hydro
bjonkman Sep 8, 2022
ef1620c
Merge remote-tracking branch 'NREL/dev' into LuWang_hydro
bjonkman Sep 8, 2022
94ed2e8
merge OpenFAST/dev into LuWang_hydro
bjonkman Sep 8, 2022
2638ae3
HD: remove environment conditions from input file; use values from SeaSt
bjonkman Sep 8, 2022
d0385dc
Glue: Send SeaSt environment conditions to mooring modules + SubDyn
bjonkman Sep 8, 2022
46fe43d
SD: fix units on M??N?MKxe channels
bjonkman Sep 12, 2022
587416a
HD C binding: update variable names - THIS MUST BE MODIFIED FOR SEASTATE
bjonkman Sep 12, 2022
991e5b5
SD: fix units on M??N?MKxe channels
bjonkman Sep 12, 2022
1e311b9
Merge remote-tracking branch 'NREL/dev' into LuWang_hydro
bjonkman Sep 13, 2022
8a02893
MD: remove unused variables
bjonkman Sep 13, 2022
c1079be
Fix conflicts from MD2 merge
bjonkman Sep 13, 2022
4ecf83a
fix merge issue with FASTlib.vfproj
bjonkman Oct 13, 2022
5ed3a16
MD: remove unused variables
bjonkman Oct 13, 2022
5ef3664
Merge remote-tracking branch 'luwang00/dev' into f/Hydro_SeaState_PR1008
bjonkman Oct 13, 2022
e2252ed
Merge remote-tracking branch 'origin/dev' into f/Hydro_SeaState_PR1008
bjonkman Oct 17, 2022
1a06ab4
MD: remove unused wave variables
bjonkman Oct 18, 2022
3633616
HD: fix uninitialized variable
bjonkman Oct 19, 2022
1b60c40
MD driver: remove unused variables
bjonkman Oct 19, 2022
1ebd80e
MD driver cleanup
bjonkman Oct 19, 2022
b307423
DEBUG: add text for debugging on GitHub Actions
bjonkman Oct 20, 2022
c9a6153
HD: fix uninitialized NumOuts when no outputs listed
bjonkman Oct 20, 2022
d941fca
Merge branch 'LuWang_hydro' into f/Hydro_SeaState_PR1008
bjonkman Oct 20, 2022
533180a
Merge remote-tracking branch 'NREL/dev' into f/Hydro_SeaState_PR1008
bjonkman Oct 26, 2022
2364e41
Merge remote-tracking branch 'NREL/dev' into f/Hydro_SeaState_PR1008
bjonkman Oct 26, 2022
8b383ee
Merge remote-tracking branch 'NREL/dev' into f/Hydro_SeaState_PR1008
bjonkman Oct 26, 2022
3dfc608
Modified the strip-theory buoyancy calculation to accommodate partial…
luwang00 Oct 27, 2022
0f6ea02
AD: allow "Aero" as well as "Fld" for channel names
bjonkman Oct 27, 2022
a63cf4d
Added an approximate expression for the wave spreading normalization …
luwang00 Oct 28, 2022
71184b2
Extended the smoothing of strip-theory hydrodynamic loads to cover th…
luwang00 Oct 31, 2022
80edd5b
Update AD example file in docs
bjonkman Oct 31, 2022
5fc8c75
update r-test
bjonkman Oct 31, 2022
96f0716
Merge remote-tracking branch 'NREL/dev' into f/Hydro_SeaState_PR1008
bjonkman Oct 31, 2022
06cee6d
Merge remote-tracking branch 'luwang00/dev' into f/Hydro_SeaState_PR1008
bjonkman Oct 31, 2022
7d18eec
HD: remove `CreatePointMesh` routine that was duplicated in 533180a6b271
bjonkman Nov 1, 2022
0158a99
Merge remote-tracking branch 'NREL/dev' into f/Hydro_SeaState_PR1008
bjonkman Nov 7, 2022
24dc180
update r-test
bjonkman Nov 7, 2022
64ec8dd
Merge remote-tracking branch 'NREL/dev' into f/Hydro_SeaState_PR1008
bjonkman Nov 9, 2022
3028570
Comment out the check for partially wetted lowest strip-theory elemen…
luwang00 Nov 9, 2022
a572884
update r-test
bjonkman Nov 10, 2022
afa6a1c
Merge remote-tracking branch 'luwang00/dev' into f/Hydro_SeaState_PR1008
bjonkman Nov 10, 2022
5c8efb4
Merge remote-tracking branch 'NREL/dev' into f/Hydro_SeaState_PR1008
bjonkman Nov 10, 2022
2fb855b
Waves: avoid resetting index inside loop
bjonkman Nov 10, 2022
1b60a41
FAST Subs: fix error handling on call
bjonkman Nov 10, 2022
c98e493
SeaState/Waves: remove additional initialization of RNG
bjonkman Nov 14, 2022
fe6a7ff
SeaSt/Waves: remove unnecessary InitOut variables
bjonkman Nov 14, 2022
6c6a5a8
HD/SeaSt: update some error handling
bjonkman Nov 15, 2022
5a008bf
SeaSt: remove unused variables; fix error message
bjonkman Nov 16, 2022
c8b8330
SeaSt BugFix: still water waves was not correctly initializing
bjonkman Nov 16, 2022
41cd3a0
Updated the subroutine WrVTK_AllMeshes to output the SubDyn y3Mesh wi…
luwang00 Nov 17, 2022
68111ac
SeaSt: sort out wave initialization
bjonkman Nov 17, 2022
18e24b3
Waves: update initializations
bjonkman Nov 28, 2022
22b41dd
HD/SeaSt: remove unused (redundant) NodeInWater
bjonkman Nov 28, 2022
c80177a
Waves: allocate WaveDirArr consistently
bjonkman Nov 29, 2022
ed497a2
Waves: more cleanup in `VariousWaves_Init`
bjonkman Dec 1, 2022
016901c
Bug Fix: SetMemberProperties (Morison.f90)
luwang00 Dec 2, 2022
9e84a4e
Merge remote-tracking branch 'NREL/dev' into f/Hydro_SeaState_PR1008
bjonkman Dec 1, 2022
baecc39
SeaSt: cleanup
bjonkman Dec 13, 2022
91c2d06
Waves: move some initializations into subroutines
bjonkman Dec 13, 2022
74c0979
waves bug fix: index starts from 0
bjonkman Dec 13, 2022
0a190f6
SeaState: move Constrained New Waves to new subroutine
bjonkman Jan 9, 2023
a9b81d1
Morison: remove unused variable
bjonkman Jan 9, 2023
657f838
update r-test pointer
bjonkman Jan 9, 2023
c549784
waves bug fix: update for multi-direction
bjonkman Jan 10, 2023
916f45e
Bug fix: Corrected the expression for distributed axial drag force in…
luwang00 Feb 17, 2023
324134f
Streamline the logic for strip-theory loads in Morison.f90 to better …
luwang00 Feb 18, 2023
d82f0d0
Bug Fix: Added back the coefficient of 0.5 for distributed axial drag…
luwang00 Feb 18, 2023
58777da
Cover some corner cases when integrating the strip-theory loads in Mo…
luwang00 Feb 20, 2023
fc1806a
Bug fix and improvement to the strip-theory hydrodynamic loads with w…
luwang00 Feb 20, 2023
8ecc789
Merge remote-tracking branch 'luwang00/dev' into f/Hydro_SeaState_PR1008
bjonkman Feb 20, 2023
90203e5
Bug Fix: Fixed the assumption that WAMIT_UpdateStates has 2 input tim…
luwang00 Feb 28, 2023
ea180ff
Quick fix to prevent segfault when ExctnMod=2 and ExctnDisp=2
luwang00 Feb 28, 2023
c3c0a58
Initial implementation of ExctnDisp=2 for state-space wave-excitation…
luwang00 Mar 1, 2023
17a0f51
Corrections to comments
luwang00 Mar 1, 2023
39a4058
Bug Fix: Prevent HydroDyn from crashing when PotMod=1, ExctnMod=0, an…
luwang00 Mar 1, 2023
6d40517
Bug Fix: Fixed the problem causing SeaState to function incorrectly w…
luwang00 Mar 1, 2023
3dc9b5a
Bug Fix: Problem similar to 6d40517 on the HydroDyn side
luwang00 Mar 1, 2023
5faaa99
fix spelling error in comment
bjonkman Mar 2, 2023
5415893
Merge remote-tracking branch 'luwang00/dev' into f/Hydro_SeaState_PR1008
bjonkman Mar 2, 2023
3a2d128
hd: fix NBody>1 & NBodyMod=1 WAMIT2 bug
andrew-platt Mar 7, 2023
092648d
Bug Fix: Corrected an issue in FAST_Lin.f90 which led to incorrect li…
luwang00 Mar 17, 2023
f22f15d
Bug Fix: Wrong ErrStat preventing wave elev VTK outputs
ebranlard Mar 18, 2023
1af49d1
Merge pull request #7 from ebranlard/f/fix-vtk-wave
luwang00 Mar 21, 2023
d6fba0a
Merge remote-tracking branch 'luwang00/dev' into f/Hydro_SeaState_PR1008
bjonkman Mar 23, 2023
fe357b8
Bug Fix: Problem similar to 6d40517 with second-order waves in SeaState
luwang00 Apr 19, 2023
a8dee01
Merge remote-tracking branch 'luwang00/dev' into f/Hydro_SeaState_PR1008
bjonkman Apr 25, 2023
0173f0b
merge remote-tracking branch 'NREL/dev' into h/Hydro_SeaState_PR1008
bjonkman Apr 25, 2023
163919f
TurbSim bug fix: fix index into Z array for text grid files
bjonkman Apr 27, 2023
ba9a424
Merge branch 'dev' into f/Hydro_SeaState_PR1008
bjonkman Apr 27, 2023
dae7e1d
AD: remove non-standard tab formatting
bjonkman Apr 27, 2023
e4ea833
Streamline the logic when integrating the strip-theory loads in Moris…
luwang00 Apr 28, 2023
129491e
Merge branch 'lu-dev' into f/Hydro_SeaState_PR1008
bjonkman Apr 28, 2023
75e2e0a
Update constants for DP builds
bjonkman May 2, 2023
8c6205b
HD Driver Visual Studio build: add double precision
bjonkman May 2, 2023
91c79dd
MoorDyn: fix extra variables in driver
bjonkman May 2, 2023
ecfe0ef
HD: Cleanup initialization
bjonkman May 2, 2023
e695cf4
AD14: fix type for double-precision build
bjonkman May 2, 2023
fb0e81f
HD: replace string `WAMIT_Init` with parameter
bjonkman May 3, 2023
ffd8a2d
HD: added back check on DT that was done previously
bjonkman May 3, 2023
bba4cf1
MD driver: Variable not declared
luwang00 May 3, 2023
886ef97
HD VS build: rename DP executable; add more checks in Debug builds
bjonkman May 3, 2023
72f4b70
Bug Fix: HD Driver incorrectly assumed the number of lines in the PRP…
luwang00 May 3, 2023
3b3a092
Error handling
luwang00 May 3, 2023
48672c2
Merge pull request #21 from luwang00/f/Hydro_SeaState_PR1008
bjonkman May 4, 2023
4ea2ef0
update pointer to r-test
bjonkman May 8, 2023
e836226
Merge remote-tracking branch 'NREL/dev' into f/Hydro_SeaState_PR1008
bjonkman May 8, 2023
9787e50
vs-build: define `OPENFAST_DOUBLE_PRECISION` instead of `DOUBLE_PRECI…
bjonkman May 8, 2023
98ea7e4
update r-test
bjonkman May 9, 2023
d5ee7d5
Merge remote-tracking branch 'deslaughter/b/def_dp' into f/Hydro_SeaS…
bjonkman May 9, 2023
be08721
Merge pull request #8 from bjonkman/f/Hydro_SeaState_PR1008
luwang00 May 9, 2023
3acc13c
AD vs-build: fix file list
bjonkman May 9, 2023
773bc33
update r-test
bjonkman May 10, 2023
4786b33
Merge remote-tracking branch 'NREL/dev' into f/Hydro_SeaState_PR1008
bjonkman May 10, 2023
0d9e76d
Merge pull request #9 from bjonkman/f/Hydro_SeaState_PR1008
luwang00 May 10, 2023
3376ddd
update precision of some constants
bjonkman May 12, 2023
ddf5006
Merge remote-tracking branch 'NREL/dev' into f/Hydro_SeaState_PR1008
bjonkman May 12, 2023
a953aae
update r-test
bjonkman May 16, 2023
b4380fd
Merge remote-tracking branch 'NREL/dev' into f/Hydro_SeaState_PR1008
bjonkman May 16, 2023
7880713
Merge pull request #10 from bjonkman/f/Hydro_SeaState_PR1008
luwang00 May 17, 2023
71ef4be
update python module tests to use absolute paths
andrew-platt May 19, 2023
b3c27e9
HD: add check in HD_Init that SeaState data exists
andrew-platt May 22, 2023
c2ce211
hd_c_bindings: update to use SeaState module
andrew-platt May 23, 2023
a6efeb3
Merge pull request #11 from andrew-platt/f/SeaState_C_Bindings_update
luwang00 May 23, 2023
5d95537
Add SeaState module regression tests
andrew-platt May 31, 2023
7884f59
Merge branch 'dev' into luwang/dev
andrew-platt May 31, 2023
09b5a09
Add SeaState tests to GH actions
andrew-platt May 31, 2023
42c9900
Reconfigure seastate testing, add seastate_driver to module_drivers t…
andrew-platt May 31, 2023
179e5bf
Testing: reduce number of parrallel hydrodyn module cases
andrew-platt May 31, 2023
a94caf6
Testing: reduce number of parrallel hydrodyn module cases even further
andrew-platt May 31, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 43 additions & 9 deletions modules/hydrodyn/src/WAMIT2.f90
Original file line number Diff line number Diff line change
@@ -680,11 +680,13 @@ SUBROUTINE WAMIT2_Init( InitInp, p, y, m, ErrStat, ErrMsg )

!----------------------------------------------------------------------
!> 6. Set zero values for unused outputs. This is mostly so that the
!! compiler does not complain.
!! compiler does not complain. Also set misc vars
!----------------------------------------------------------------------
CALL AllocAry( m%LastIndWave, p%NBody, 'm%LastIndWave', ErrStatTmp, ErrMsgTmp)
CALL SetErrStat( ErrStatTmp, ErrMsgTmp, ErrStat, ErrMsg, RoutineName)
m%LastIndWave = 1_IntKi
call AllocAry(m%F_Waves2, 6*p%NBody, 'm%F_Waves2', ErrStatTmp, ErrMsgTmp)
CALL SetErrStat( ErrStatTmp, ErrMsgTmp, ErrStat, ErrMsg, RoutineName)

! Cleanup remaining stuff
CALL CleanUp()
@@ -3873,12 +3875,12 @@ SUBROUTINE Read_DataFile3D( InitInp, Filename3D, Data3D, ErrStat, Errmsg )

! Now that we know how many frequencies and wave directions there are, we can allocate the array
! for saving the sorted data.
ALLOCATE( Data3D%DataSet( Data3D%NumWvFreq1, Data3D%NumWvDir1, Data3D%NumWvDir2, 6 ), STAT=ErrStatTmp )
ALLOCATE( Data3D%DataSet( Data3D%NumWvFreq1, Data3D%NumWvDir1, Data3D%NumWvDir2, 6*Data3D%NumBodies ), STAT=ErrStatTmp )
IF (ErrStatTmp /= 0) CALL SetErrStat(ErrID_Fatal,'Cannot allocate array Data3D%DataSet to store '// &
'the sorted 3D 2nd order WAMIT data.', ErrStat,ErrMsg,RoutineName)

! Allocate the logical array for storing the mask for which points are valid. Set to .FALSE.
ALLOCATE( Data3D%DataMask( Data3D%NumWvFreq1, Data3D%NumWvDir1, Data3D%NumWvDir2, 6 ), STAT=ErrStatTmp )
ALLOCATE( Data3D%DataMask( Data3D%NumWvFreq1, Data3D%NumWvDir1, Data3D%NumWvDir2, 6*Data3D%NumBodies ), STAT=ErrStatTmp )
IF (ErrStatTmp /= 0) CALL SetErrStat(ErrID_Fatal,'Cannot allocate array Data3D%DataMask to store '// &
'the sorted 3D 2nd order WAMIT data.', ErrStat,ErrMsg,RoutineName)
IF ( ErrStat >= AbortErrLev ) THEN
@@ -3950,6 +3952,21 @@ SUBROUTINE Read_DataFile3D( InitInp, Filename3D, Data3D, ErrStat, Errmsg )

! Find which force component this belongs to
TmpCoord(4) = NINT(RawData3D(I,4))
! Check that it is a valid force component
if (TmpCoord(4) < 1 .or. TmpCoord(4) > 6*Data3D%NumBodies) then
CALL SetErrStat( ErrID_Fatal, ' Line '//TRIM(Num2Lstr(NumHeaderLines+I))//' of '//TRIM(Filename3D)// &
' contains force component '//TRIM(Num2LStr(TmpCoord(4)))//' which is outside the expected force '// &
' range of 1 to '//TRIM(Num2Lstr(6*Data3D%NumBodies))//' for a '//TRIM(Num2LStr(Data3D%NumBodies))// &
' body system.', ErrStat, ErrMsg, RoutineName)
IF (ALLOCATED(RawData3D)) DEALLOCATE(RawData3D,STAT=ErrStatTmp)
IF (ALLOCATED(RawData3DTmp)) DEALLOCATE(RawData3DTmp,STAT=ErrStatTmp)
IF (ALLOCATED(TmpRealArr)) DEALLOCATE(TmpRealArr,STAT=ErrStatTmp)
IF (ALLOCATED(TmpDataRow)) DEALLOCATE(TmpDataRow,STAT=ErrStatTmp)
IF (ALLOCATED(TmpWvFreq1)) DEALLOCATE(TmpWvFreq1,STAT=ErrStatTmp)
CALL CleanUp
RETURN
endif



!> The data from the WAMIT file is non-dimensional, so we need to dimensionalize it here. This
@@ -3984,7 +4001,8 @@ SUBROUTINE Read_DataFile3D( InitInp, Filename3D, Data3D, ErrStat, Errmsg )
REAL(InitInp%RhoXg * InitInp%WAMITULEN**K * RawData3D(I,8) ,SiKi)) ) THEN
CALL SetErrStat( ErrID_Fatal, ' Line '//TRIM(Num2Lstr(NumHeaderLines+I))//' of '//TRIM(Filename3D)// &
' contains different values for the real and imaginary part (columns 7 and 8) than was '// &
'given earlier in the file for the same values of wave frequency and wave direction.', &
'given earlier in the file for the same values of wave frequency and wave direction '// &
'(force dimension = '//TRIM(Num2LStr(TmpCoord(4)))//').', &
ErrStat, ErrMsg, RoutineName )
CALL CleanUp()
RETURN
@@ -4591,7 +4609,7 @@ SUBROUTINE Read_DataFile4D( InitInp, Filename4D, Data4D, ErrStat, Errmsg )

! Now that we know how many frequencies and wave directions there are, we can allocate the array
! for saving the sorted data.
ALLOCATE( Data4D%DataSet( Data4D%NumWvFreq1, Data4D%NumWvFreq2, Data4D%NumWvDir1, Data4D%NumWvDir2, 6 ), STAT=ErrStatTmp )
ALLOCATE( Data4D%DataSet( Data4D%NumWvFreq1, Data4D%NumWvFreq2, Data4D%NumWvDir1, Data4D%NumWvDir2, 6*Data4D%NumBodies ), STAT=ErrStatTmp )
IF (ErrStatTmp /= 0) CALL SetErrStat(ErrID_Fatal,'Cannot allocate array Data4D%DataSet to store '// &
'the sorted 4D 2nd order WAMIT data.', ErrStat,ErrMsg,RoutineName)
IF ( ErrStat >= AbortErrLev ) THEN
@@ -4600,7 +4618,7 @@ SUBROUTINE Read_DataFile4D( InitInp, Filename4D, Data4D, ErrStat, Errmsg )
ENDIF

! Allocate the logical array for storing the mask for which points are valid. Set to .FALSE.
ALLOCATE( Data4D%DataMask( Data4D%NumWvFreq1, Data4D%NumWvFreq2, Data4D%NumWvDir1, Data4D%NumWvDir2, 6 ), STAT=ErrStatTmp )
ALLOCATE( Data4D%DataMask( Data4D%NumWvFreq1, Data4D%NumWvFreq2, Data4D%NumWvDir1, Data4D%NumWvDir2, 6*Data4D%NumBodies ), STAT=ErrStatTmp )
IF (ErrStatTmp /= 0) CALL SetErrStat(ErrID_Fatal,'Cannot allocate array Data4D%DataMask to store '// &
'the sorted 4D 2nd order WAMIT data.', ErrStat,ErrMsg,RoutineName)
IF ( ErrStat >= AbortErrLev ) THEN
@@ -4683,6 +4701,21 @@ SUBROUTINE Read_DataFile4D( InitInp, Filename4D, Data4D, ErrStat, Errmsg )

! Find which force component this belongs to
TmpCoord(5) = NINT(RawData4D(I,5))
! Check that it is a valid force component
if (TmpCoord(5) < 1 .or. TmpCoord(5) > 6*Data4D%NumBodies) then
CALL SetErrStat( ErrID_Fatal, ' Line '//TRIM(Num2Lstr(NumHeaderLines+I))//' of '//TRIM(Filename4D)// &
' contains force component '//TRIM(Num2LStr(TmpCoord(5)))//' which is outside the expected force '// &
' range of 1 to '//TRIM(Num2Lstr(6*Data4D%NumBodies))//' for a '//TRIM(Num2LStr(Data4D%NumBodies))// &
' body system.', ErrStat, ErrMsg, RoutineName)
IF (ALLOCATED(RawData4D)) DEALLOCATE(RawData4D,STAT=ErrStatTmp)
IF (ALLOCATED(RawData4DTmp)) DEALLOCATE(RawData4DTmp,STAT=ErrStatTmp)
IF (ALLOCATED(TmpRealArr)) DEALLOCATE(TmpRealArr,STAT=ErrStatTmp)
IF (ALLOCATED(TmpDataRow)) DEALLOCATE(TmpDataRow,STAT=ErrStatTmp)
IF (ALLOCATED(TmpWvFreq1)) DEALLOCATE(TmpWvFreq1,STAT=ErrStatTmp)
IF (ALLOCATED(TmpWvFreq2)) DEALLOCATE(TmpWvFreq2,STAT=ErrStatTmp)
CALL CleanUp
RETURN
endif


!> The data from the WAMIT file is non-dimensional, so we need to dimensionalize it here. This
@@ -4717,7 +4750,8 @@ SUBROUTINE Read_DataFile4D( InitInp, Filename4D, Data4D, ErrStat, Errmsg )
REAL(InitInp%RhoXg * InitInp%WAMITULEN**K * RawData4D(I,9) ,SiKi))) THEN
CALL SetErrStat( ErrID_Fatal, ' Line '//TRIM(Num2Lstr(NumHeaderLines+I))//' of '//TRIM(Filename4D)// &
' contains different values for the real and imaginary part (columns 8 and 9) than was '// &
'given earlier in the file for the same values of wave frequency and wave direction.', &
'given earlier in the file for the same values of wave frequency and wave direction '// &
'(force dimension = '//TRIM(Num2LStr(TmpCoord(5)))//').', &
ErrStat, ErrMsg, RoutineName )
CALL CleanUp()
RETURN
@@ -5482,10 +5516,10 @@ SUBROUTINE Copy_InitData4Dto3D( Data4D, Data3D, ErrStat, ErrMsg )


! Now allocate the storage arrays
ALLOCATE( Data3D%DataSet( Data3D%NumWvFreq1, Data3D%NumWvDir1, Data3D%NumWvDir2, 6 ), STAT=ErrStatTmp )
ALLOCATE( Data3D%DataSet( Data3D%NumWvFreq1, Data3D%NumWvDir1, Data3D%NumWvDir2, 6*Data3D%NumBodies ), STAT=ErrStatTmp )
IF (ErrStatTmp /= 0) CALL SetErrStat(ErrID_Fatal,'Cannot allocate array Data3D%DataSet to store '// &
'the 3D 2nd order WAMIT data.', ErrStat,ErrMsg,RoutineName)
ALLOCATE( Data3D%DataMask( Data3D%NumWvFreq1, Data3D%NumWvDir1, Data3D%NumWvDir2, 6 ), STAT=ErrStatTmp )
ALLOCATE( Data3D%DataMask( Data3D%NumWvFreq1, Data3D%NumWvDir1, Data3D%NumWvDir2, 6*Data3D%NumBodies ), STAT=ErrStatTmp )
IF (ErrStatTmp /= 0) CALL SetErrStat(ErrID_Fatal,'Cannot allocate array Data3D%DataMask to store '// &
'the information on the 3D 2nd order WAMIT data.', ErrStat,ErrMsg,RoutineName)
CALL AllocAry( Data3D%WvFreq1, Data3D%NumWvFreq1, 'Data3D WvFreq array', ErrStatTmp, ErrMsgTmp )
2 changes: 1 addition & 1 deletion modules/hydrodyn/src/WAMIT2.txt
Original file line number Diff line number Diff line change
@@ -67,7 +67,7 @@ typedef ^ ^ ReKi WvHiCOffS
# Define any data that are used only for efficiency purposes (these variables are not associated with time):
# e.g. indices for searching in an array, large arrays that are local variables in any routine called multiple times, etc.
typedef ^ MiscVarType INTEGER LastIndWave : - - "Index for last interpolation step of 2nd order forces" -
typedef ^ ^ ReKi F_Waves2 {6} - - "2nd order force from this timestep" -
typedef ^ ^ ReKi F_Waves2 {:} - - "2nd order force from this timestep" -



63 changes: 52 additions & 11 deletions modules/hydrodyn/src/WAMIT2_Types.f90
Original file line number Diff line number Diff line change
@@ -78,7 +78,7 @@ MODULE WAMIT2_Types
! ========= WAMIT2_MiscVarType =======
TYPE, PUBLIC :: WAMIT2_MiscVarType
INTEGER(IntKi) , DIMENSION(:), ALLOCATABLE :: LastIndWave !< Index for last interpolation step of 2nd order forces [-]
REAL(ReKi) , DIMENSION(1:6) :: F_Waves2 !< 2nd order force from this timestep [-]
REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: F_Waves2 !< 2nd order force from this timestep [-]
END TYPE WAMIT2_MiscVarType
! =======================
! ========= WAMIT2_ParameterType =======
@@ -789,7 +789,18 @@ SUBROUTINE WAMIT2_CopyMisc( SrcMiscData, DstMiscData, CtrlCode, ErrStat, ErrMsg
END IF
DstMiscData%LastIndWave = SrcMiscData%LastIndWave
ENDIF
IF (ALLOCATED(SrcMiscData%F_Waves2)) THEN
i1_l = LBOUND(SrcMiscData%F_Waves2,1)
i1_u = UBOUND(SrcMiscData%F_Waves2,1)
IF (.NOT. ALLOCATED(DstMiscData%F_Waves2)) THEN
ALLOCATE(DstMiscData%F_Waves2(i1_l:i1_u),STAT=ErrStat2)
IF (ErrStat2 /= 0) THEN
CALL SetErrStat(ErrID_Fatal, 'Error allocating DstMiscData%F_Waves2.', ErrStat, ErrMsg,RoutineName)
RETURN
END IF
END IF
DstMiscData%F_Waves2 = SrcMiscData%F_Waves2
ENDIF
END SUBROUTINE WAMIT2_CopyMisc

SUBROUTINE WAMIT2_DestroyMisc( MiscData, ErrStat, ErrMsg, DEALLOCATEpointers )
@@ -815,6 +826,9 @@ SUBROUTINE WAMIT2_DestroyMisc( MiscData, ErrStat, ErrMsg, DEALLOCATEpointers )

IF (ALLOCATED(MiscData%LastIndWave)) THEN
DEALLOCATE(MiscData%LastIndWave)
ENDIF
IF (ALLOCATED(MiscData%F_Waves2)) THEN
DEALLOCATE(MiscData%F_Waves2)
ENDIF
END SUBROUTINE WAMIT2_DestroyMisc

@@ -858,7 +872,11 @@ SUBROUTINE WAMIT2_PackMisc( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, ErrMsg,
Int_BufSz = Int_BufSz + 2*1 ! LastIndWave upper/lower bounds for each dimension
Int_BufSz = Int_BufSz + SIZE(InData%LastIndWave) ! LastIndWave
END IF
Int_BufSz = Int_BufSz + 1 ! F_Waves2 allocated yes/no
IF ( ALLOCATED(InData%F_Waves2) ) THEN
Int_BufSz = Int_BufSz + 2*1 ! F_Waves2 upper/lower bounds for each dimension
Re_BufSz = Re_BufSz + SIZE(InData%F_Waves2) ! F_Waves2
END IF
IF ( Re_BufSz .GT. 0 ) THEN
ALLOCATE( ReKiBuf( Re_BufSz ), STAT=ErrStat2 )
IF (ErrStat2 /= 0) THEN
@@ -901,10 +919,21 @@ SUBROUTINE WAMIT2_PackMisc( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, ErrMsg,
Int_Xferred = Int_Xferred + 1
END DO
END IF
DO i1 = LBOUND(InData%F_Waves2,1), UBOUND(InData%F_Waves2,1)
ReKiBuf(Re_Xferred) = InData%F_Waves2(i1)
Re_Xferred = Re_Xferred + 1
END DO
IF ( .NOT. ALLOCATED(InData%F_Waves2) ) THEN
IntKiBuf( Int_Xferred ) = 0
Int_Xferred = Int_Xferred + 1
ELSE
IntKiBuf( Int_Xferred ) = 1
Int_Xferred = Int_Xferred + 1
IntKiBuf( Int_Xferred ) = LBOUND(InData%F_Waves2,1)
IntKiBuf( Int_Xferred + 1) = UBOUND(InData%F_Waves2,1)
Int_Xferred = Int_Xferred + 2

DO i1 = LBOUND(InData%F_Waves2,1), UBOUND(InData%F_Waves2,1)
ReKiBuf(Re_Xferred) = InData%F_Waves2(i1)
Re_Xferred = Re_Xferred + 1
END DO
END IF
END SUBROUTINE WAMIT2_PackMisc

SUBROUTINE WAMIT2_UnPackMisc( ReKiBuf, DbKiBuf, IntKiBuf, Outdata, ErrStat, ErrMsg )
@@ -952,12 +981,24 @@ SUBROUTINE WAMIT2_UnPackMisc( ReKiBuf, DbKiBuf, IntKiBuf, Outdata, ErrStat, ErrM
Int_Xferred = Int_Xferred + 1
END DO
END IF
i1_l = LBOUND(OutData%F_Waves2,1)
i1_u = UBOUND(OutData%F_Waves2,1)
DO i1 = LBOUND(OutData%F_Waves2,1), UBOUND(OutData%F_Waves2,1)
OutData%F_Waves2(i1) = ReKiBuf(Re_Xferred)
Re_Xferred = Re_Xferred + 1
END DO
IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! F_Waves2 not allocated
Int_Xferred = Int_Xferred + 1
ELSE
Int_Xferred = Int_Xferred + 1
i1_l = IntKiBuf( Int_Xferred )
i1_u = IntKiBuf( Int_Xferred + 1)
Int_Xferred = Int_Xferred + 2
IF (ALLOCATED(OutData%F_Waves2)) DEALLOCATE(OutData%F_Waves2)
ALLOCATE(OutData%F_Waves2(i1_l:i1_u),STAT=ErrStat2)
IF (ErrStat2 /= 0) THEN
CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%F_Waves2.', ErrStat, ErrMsg,RoutineName)
RETURN
END IF
DO i1 = LBOUND(OutData%F_Waves2,1), UBOUND(OutData%F_Waves2,1)
OutData%F_Waves2(i1) = ReKiBuf(Re_Xferred)
Re_Xferred = Re_Xferred + 1
END DO
END IF
END SUBROUTINE WAMIT2_UnPackMisc

SUBROUTINE WAMIT2_CopyParam( SrcParamData, DstParamData, CtrlCode, ErrStat, ErrMsg )
2 changes: 1 addition & 1 deletion modules/openfast-library/src/FAST_Lin.f90
Original file line number Diff line number Diff line change
@@ -3340,7 +3340,7 @@ SUBROUTINE Linear_ED_InputSolve_dy( p_FAST, y_FAST, SrvD, u_ED, y_ED, y_AD, u_AD

END IF

if ( p_FAST%CompSub /= Module_None ) then !This also occurs with ExtPtfm (though that's not linearized, yet)
if ( p_FAST%CompSub == Module_None ) then !This also occurs with ExtPtfm (though that's not linearized, yet)
! HD
! parts of dU^{ED}/dy^{HD} and dU^{ED}/dy^{ED}:
if ( p_FAST%CompHydro == Module_HD ) then ! HydroDyn-{ElastoDyn or SubDyn}
2 changes: 1 addition & 1 deletion modules/seastate/src/SeaState.f90
Original file line number Diff line number Diff line change
@@ -576,7 +576,7 @@ SUBROUTINE SeaSt_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, Init
IF (ALLOCATED(InitInp%WaveElevXY)) THEN
! maybe instead of getting these requested points, we just output the grid that SeaState is generated on?
ALLOCATE(InitOut%WaveElevSeries( 0:InitOut%NStepWave, 1:SIZE(InitInp%WaveElevXY, DIM=2)),STAT=ErrStat2)
if (ErrStat /= 0) then
if (ErrStat2 /= 0) then
CALL SetErrStat(ErrID_Fatal,"Error allocating InitOut%WaveElevSeries.",ErrStat,ErrMsg,RoutineName)
CALL CleanUp()
RETURN