From e1577b37b82781519d6c39db2b27bd76364d813d Mon Sep 17 00:00:00 2001 From: Lu Wang Date: Mon, 12 Feb 2024 15:10:40 -0700 Subject: [PATCH 1/9] Update CTestList.cmake with new r-tests added through https://github.com/OpenFAST/r-test/pull/120 --- reg_tests/CTestList.cmake | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/reg_tests/CTestList.cmake b/reg_tests/CTestList.cmake index 84117dc328..098698969c 100644 --- a/reg_tests/CTestList.cmake +++ b/reg_tests/CTestList.cmake @@ -394,16 +394,20 @@ bd_regression("bd_static_twisted_with_k1" "beamdyn;static") # HydroDyn regression tests hd_regression("hd_OC3tripod_offshore_fixedbottom_wavesirr" "hydrodyn;offshore") -#hd_regression("hd_5MW_ITIBarge_DLL_WTurb_WavesIrr" "hydrodyn;offshore") +#hd_regression("hd_5MW_ITIBarge_DLL_WTurb_WavesIrr" "hydrodyn;offshore") hd_regression("hd_5MW_OC3Spar_DLL_WTurb_WavesIrr" "hydrodyn;offshore") -#hd_regression("hd_5MW_OC4Jckt_DLL_WTurb_WavesIrr_MGrowth" "hydrodyn;offshore") +#hd_regression("hd_5MW_OC4Jckt_DLL_WTurb_WavesIrr_MGrowth" "hydrodyn;offshore") hd_regression("hd_5MW_OC4Semi_WSt_WavesWN" "hydrodyn;offshore") hd_regression("hd_5MW_TLP_DLL_WTurb_WavesIrr_WavesMulti" "hydrodyn;offshore") hd_regression("hd_TaperCylinderPitchMoment" "hydrodyn;offshore") hd_regression("hd_NBodyMod1" "hydrodyn;offshore") hd_regression("hd_NBodyMod2" "hydrodyn;offshore") hd_regression("hd_NBodyMod3" "hydrodyn;offshore") - +hd_regression("hd_MHstLMod2" "hydrodyn;offshore") +hd_regression("hd_MCF_WaveStMod0" "hydrodyn;offshore") +hd_regression("hd_MCF_WaveStMod1" "hydrodyn;offshore") +hd_regression("hd_MCF_WaveStMod2" "hydrodyn;offshore") +hd_regression("hd_MCF_WaveStMod3" "hydrodyn;offshore") # Py-HydroDyn regression tests py_hd_regression("py_hd_5MW_OC4Semi_WSt_WavesWN" "hydrodyn;offshore;python") @@ -441,7 +445,13 @@ py_ifw_regression("py_ifw_turbsimff" "inflowwind;python # SeaState regression tests seast_regression("seastate_1" "seastate") seast_regression("seastate_wavemod5" "seastate") +seast_regression("seastate_wavemod7" "seastate") seast_regression("seastate_wr_kin1" "seastate") +seast_regression("seastate_CNW1" "seastate") +seast_regression("seastate_CNW2" "seastate") +seast_regression("seastate_WaveStMod1" "seastate") +seast_regression("seastate_WaveStMod2" "seastate") +seast_regression("seastate_WaveStMod3" "seastate") # MoorDyn regression tests md_regression("md_5MW_OC4Semi" "moordyn") From 2da016d8042ee7bb671f4b0d872013a35655c16c Mon Sep 17 00:00:00 2001 From: Lu Wang Date: Tue, 13 Feb 2024 12:54:02 -0700 Subject: [PATCH 2/9] Updated CTestList.cmake again --- reg_tests/CTestList.cmake | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/reg_tests/CTestList.cmake b/reg_tests/CTestList.cmake index 098698969c..f00d1e67bb 100644 --- a/reg_tests/CTestList.cmake +++ b/reg_tests/CTestList.cmake @@ -445,13 +445,12 @@ py_ifw_regression("py_ifw_turbsimff" "inflowwind;python # SeaState regression tests seast_regression("seastate_1" "seastate") seast_regression("seastate_wavemod5" "seastate") -seast_regression("seastate_wavemod7" "seastate") seast_regression("seastate_wr_kin1" "seastate") seast_regression("seastate_CNW1" "seastate") seast_regression("seastate_CNW2" "seastate") -seast_regression("seastate_WaveStMod1" "seastate") -seast_regression("seastate_WaveStMod2" "seastate") -seast_regression("seastate_WaveStMod3" "seastate") +seast_regression("seastate_WaveMod7_WaveStMod1" "seastate") +seast_regression("seastate_WaveMod7_WaveStMod2" "seastate") +seast_regression("seastate_WaveMod7_WaveStMod3" "seastate") # MoorDyn regression tests md_regression("md_5MW_OC4Semi" "moordyn") From 75eff1d17be47daf588da81cf77243a02d0e21e4 Mon Sep 17 00:00:00 2001 From: Lu Wang Date: Tue, 13 Feb 2024 17:20:36 -0700 Subject: [PATCH 3/9] Updated CTestList.cmake again --- reg_tests/CTestList.cmake | 3 +++ 1 file changed, 3 insertions(+) diff --git a/reg_tests/CTestList.cmake b/reg_tests/CTestList.cmake index f00d1e67bb..cb6e46cefb 100644 --- a/reg_tests/CTestList.cmake +++ b/reg_tests/CTestList.cmake @@ -403,6 +403,9 @@ hd_regression("hd_TaperCylinderPitchMoment" "hydrodyn;offshore") hd_regression("hd_NBodyMod1" "hydrodyn;offshore") hd_regression("hd_NBodyMod2" "hydrodyn;offshore") hd_regression("hd_NBodyMod3" "hydrodyn;offshore") +hd_regression("hd_WaveStMod1" "hydrodyn;offshore") +hd_regression("hd_WaveStMod2" "hydrodyn;offshore") +hd_regression("hd_WaveStMod3" "hydrodyn;offshore") hd_regression("hd_MHstLMod2" "hydrodyn;offshore") hd_regression("hd_MCF_WaveStMod0" "hydrodyn;offshore") hd_regression("hd_MCF_WaveStMod1" "hydrodyn;offshore") From dffb1aa6c4807ada48ee66d31ce8954775f5cc8d Mon Sep 17 00:00:00 2001 From: Lu Wang Date: Tue, 13 Feb 2024 18:05:13 -0700 Subject: [PATCH 4/9] Updated CTestList.cmake again --- reg_tests/CTestList.cmake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/reg_tests/CTestList.cmake b/reg_tests/CTestList.cmake index cb6e46cefb..9d7cb9abaf 100644 --- a/reg_tests/CTestList.cmake +++ b/reg_tests/CTestList.cmake @@ -407,6 +407,8 @@ hd_regression("hd_WaveStMod1" "hydrodyn;offshore") hd_regression("hd_WaveStMod2" "hydrodyn;offshore") hd_regression("hd_WaveStMod3" "hydrodyn;offshore") hd_regression("hd_MHstLMod2" "hydrodyn;offshore") +hd_regression("hd_MHstLMod1_compare" "hydrodyn;offshore") +hd_regression("hd_MHstLMod2_compare" "hydrodyn;offshore") hd_regression("hd_MCF_WaveStMod0" "hydrodyn;offshore") hd_regression("hd_MCF_WaveStMod1" "hydrodyn;offshore") hd_regression("hd_MCF_WaveStMod2" "hydrodyn;offshore") From e59b016433f88f091c4bfe921cfa8fcf1ad7fc67 Mon Sep 17 00:00:00 2001 From: Lu Wang Date: Mon, 19 Feb 2024 13:14:12 -0700 Subject: [PATCH 5/9] HD Bug Fix associated with ExctnDisp=2 Fixed the following problems: * HD driver seg fault when ExctnDisp=2 * Filtered WAMIT body position used in WAMIT_CalcOutput lags by one time step --- modules/hydrodyn/src/WAMIT.f90 | 29 +++++------------------------ 1 file changed, 5 insertions(+), 24 deletions(-) diff --git a/modules/hydrodyn/src/WAMIT.f90 b/modules/hydrodyn/src/WAMIT.f90 index d73dd5c2c3..e256247382 100644 --- a/modules/hydrodyn/src/WAMIT.f90 +++ b/modules/hydrodyn/src/WAMIT.f90 @@ -1565,7 +1565,7 @@ SUBROUTINE WAMIT_UpdateStates( t, n, Inputs, InputTimes, p, x, xd, z, OtherState REAL(DbKi), INTENT(IN ) :: t !< Current simulation time in seconds INTEGER(IntKi), INTENT(IN ) :: n !< Current step of the simulation: t = n*Interval - TYPE(WAMIT_InputType), INTENT(IN ) :: Inputs(:) !< Inputs at InputTimes + TYPE(WAMIT_InputType), INTENT(INOUT) :: Inputs(:) !< Inputs at InputTimes REAL(DbKi), INTENT(IN ) :: InputTimes(:) !< Times in seconds associated with Inputs TYPE(WAMIT_ParameterType), INTENT(IN ) :: p !< Parameters TYPE(WAMIT_ContinuousStateType), INTENT(INOUT) :: x !< Input: Continuous states at t; @@ -1598,7 +1598,6 @@ SUBROUTINE WAMIT_UpdateStates( t, n, Inputs, InputTimes, p, x, xd, z, OtherState TYPE(SS_Rad_InputType), ALLOCATABLE :: SS_Rdtn_u(:) ! Inputs TYPE(SS_Exc_InputType), ALLOCATABLE :: SS_Exctn_u(:) ! Inputs - TYPE(WAMIT_InputType), ALLOCATABLE :: WAMIT_u(:) ! Inputs TYPE(WAMIT_InputType) :: WAMIT_u_t @@ -1669,23 +1668,9 @@ SUBROUTINE WAMIT_UpdateStates( t, n, Inputs, InputTimes, p, x, xd, z, OtherState END IF IF ( (p%ExctnMod>0).AND.(p%ExctnDisp==2) ) THEN - ALLOCATE( WAMIT_u(nTime), STAT = ErrStat ) - IF (ErrStat /=0) THEN - ErrMsg = ' Failed to allocate array WAMIT_u.' - RETURN - END IF - DO I=1,nTime - ALLOCATE( WAMIT_u(I)%Mesh%TranslationDisp(3,p%NBody), STAT = ErrStat ) - IF (ErrStat /=0) THEN - ErrMsg = ' Failed to allocate array WAMIT_u(I)%Mesh%TranslationDisp.' - RETURN - END IF - DO iBody=1,p%NBody - WAMIT_u(I)%Mesh%TranslationDisp(:,iBody) = Inputs(I)%Mesh%TranslationDisp(:,iBody) - END DO - END DO ! Interpolate WAMIT input at time t+dt - CALL WAMIT_Input_ExtrapInterp(WAMIT_u, InputTimes, WAMIT_u_t, t+p%dt, ErrStat, ErrMsg) + CALL WAMIT_CopyInput(Inputs(1), WAMIT_u_t, MESH_NEWCOPY, ErrStat, ErrMsg) + CALL WAMIT_Input_ExtrapInterp(Inputs, InputTimes, WAMIT_u_t, t+p%dt, ErrStat, ErrMsg) DO iBody = 1,p%NBody ! Current unfiltered body position at time t+dt bodyPosition(1) = WAMIT_u_t%Mesh%TranslationDisp(1,iBody) @@ -1697,10 +1682,6 @@ SUBROUTINE WAMIT_UpdateStates( t, n, Inputs, InputTimes, p, x, xd, z, OtherState xd%BdyPosFilt(2,iBody,1) = p%ExctnFiltConst * xd%BdyPosFilt(2,iBody,1) + (1.0_ReKi - p%ExctnFiltConst) * bodyPosition(2) END DO CALL WAMIT_DestroyInput( WAMIT_u_t, ErrStat, ErrMsg) - DO I=1,nTime - CALL WAMIT_DestroyInput( WAMIT_u(I), ErrStat, ErrMsg) - END DO - DEALLOCATE(WAMIT_u) END IF IF ( p%ExctnMod == 2 ) THEN ! Update the state-space wave excitation sub-module's states @@ -1835,8 +1816,8 @@ SUBROUTINE WAMIT_CalcOutput( Time, u, p, x, xd, z, OtherState, y, m, ErrStat, Er bodyPosition(2) = u%Mesh%TranslationDisp(2,iBody) ELSE IF ( p%ExctnDisp == 2 ) THEN ! Use filtered body position - bodyPosition(1) = xd%BdyPosFilt(1,iBody,1) - bodyPosition(2) = xd%BdyPosFilt(2,iBody,1) + bodyPosition(1) = p%ExctnFiltConst * xd%BdyPosFilt(1,iBody,1) + (1.0_ReKi - p%ExctnFiltConst) * u%Mesh%TranslationDisp(1,iBody) + bodyPosition(2) = p%ExctnFiltConst * xd%BdyPosFilt(2,iBody,1) + (1.0_ReKi - p%ExctnFiltConst) * u%Mesh%TranslationDisp(2,iBody) END IF iStart = (iBody-1)*6+1 ! WaveExctnGrid dimensions are: 1st: wavetime, 2nd: X, 3rd: Y, 4th: Force component for each WAMIT Body From fe87ebfcf6abb5599745010bbf85c94dc3b2c2d0 Mon Sep 17 00:00:00 2001 From: Lu Wang Date: Mon, 19 Feb 2024 13:17:50 -0700 Subject: [PATCH 6/9] Updated CTestList.cmake again with additional regression tests for ExctnDisp=1 and ExctnDisp=2 with ExctnMod=1 --- reg_tests/CTestList.cmake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/reg_tests/CTestList.cmake b/reg_tests/CTestList.cmake index 9d7cb9abaf..de1d33f7ed 100644 --- a/reg_tests/CTestList.cmake +++ b/reg_tests/CTestList.cmake @@ -413,6 +413,8 @@ hd_regression("hd_MCF_WaveStMod0" "hydrodyn;offshore") hd_regression("hd_MCF_WaveStMod1" "hydrodyn;offshore") hd_regression("hd_MCF_WaveStMod2" "hydrodyn;offshore") hd_regression("hd_MCF_WaveStMod3" "hydrodyn;offshore") +hd_regression("hd_ExctnMod1_ExctnDisp1" "hydrodyn;offshore") +hd_regression("hd_ExctnMod1_ExctnDisp2" "hydrodyn;offshore") # Py-HydroDyn regression tests py_hd_regression("py_hd_5MW_OC4Semi_WSt_WavesWN" "hydrodyn;offshore;python") From 26515842501302b299621afe4eb75f859da6084d Mon Sep 17 00:00:00 2001 From: andrew-platt Date: Mon, 19 Feb 2024 21:29:40 -0700 Subject: [PATCH 7/9] Add r-test pointer --- reg_tests/r-test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reg_tests/r-test b/reg_tests/r-test index ae1afd59f3..81529c446d 160000 --- a/reg_tests/r-test +++ b/reg_tests/r-test @@ -1 +1 @@ -Subproject commit ae1afd59f3d82971c5e53bbe9960a8c588d64fb1 +Subproject commit 81529c446d9b494ee64a3d8f78317b2ee48f59de From 7b94ca26ee035ea8fddbe927ae22f0c1d78b7f0c Mon Sep 17 00:00:00 2001 From: andrew-platt Date: Thu, 7 Mar 2024 10:14:08 -0700 Subject: [PATCH 8/9] r-test: reduce SeaState memory usage --- reg_tests/r-test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reg_tests/r-test b/reg_tests/r-test index 0fce74e2da..78db425f5e 160000 --- a/reg_tests/r-test +++ b/reg_tests/r-test @@ -1 +1 @@ -Subproject commit 0fce74e2da3fc385439e0ed00ad517eeb8e9e9ee +Subproject commit 78db425f5e224d7977ed90b898a249056a9fe6b0 From 163b20fdcf80d58ea9ed752d295099ee3d136396 Mon Sep 17 00:00:00 2001 From: andrew-platt Date: Thu, 7 Mar 2024 11:03:45 -0700 Subject: [PATCH 9/9] r-test: reduce SeaState memory usage --- reg_tests/r-test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reg_tests/r-test b/reg_tests/r-test index 78db425f5e..7e3ed6d74c 160000 --- a/reg_tests/r-test +++ b/reg_tests/r-test @@ -1 +1 @@ -Subproject commit 78db425f5e224d7977ed90b898a249056a9fe6b0 +Subproject commit 7e3ed6d74c793360a3e147bbf1df2a7423384f59