From 8e140b97e5eb18669f30459caac573c9b726e4b8 Mon Sep 17 00:00:00 2001 From: andrew-platt Date: Wed, 28 Feb 2024 11:01:18 -0700 Subject: [PATCH 1/3] Lin: incorrect BD index in dUdy for AD motion The motions in dUdy from BD were starting at the incorrect index. Instead of starting at the motion, the index started at the root load output. This resulted in a shift of all the dUdy terms coupling y_BD motion to u_AD blade motion. This error has existed since at least commit 315bb29 on April 13, 2018 Co-authored-by: Derek Slaughter --- modules/openfast-library/src/FAST_Lin.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/openfast-library/src/FAST_Lin.f90 b/modules/openfast-library/src/FAST_Lin.f90 index c412b5f1f3..de24bd1b19 100644 --- a/modules/openfast-library/src/FAST_Lin.f90 +++ b/modules/openfast-library/src/FAST_Lin.f90 @@ -3733,8 +3733,8 @@ SUBROUTINE Linear_AD_InputSolve_NoIfW_dy( p_FAST, y_FAST, u_AD, y_ED, BD, MeshMa DO k=1,p_FAST%nBeams AD_Start = Indx_u_AD_Blade_Start(u_AD, y_FAST, k) ! start of u_AD%BladeMotion(k)%TranslationDisp field - BD_Out_Start = y_FAST%Lin%Modules(Module_BD)%Instance(k)%LinStartIndx(LIN_OUTPUT_COL) - + BD_Out_Start = y_FAST%Lin%Modules(Module_BD)%Instance(k)%LinStartIndx(LIN_OUTPUT_COL) + 6 ! skip the reaction forces + CALL Assemble_dUdy_Motions(BD%y(k)%BldMotion, u_AD%rotors(1)%BladeMotion(k), MeshMapData%BDED_L_2_AD_L_B(k), AD_Start, BD_Out_Start, dUdy, skipRotAcc=.true.) END DO From db8d7951c88cad39d85d87a6d57c0cfc8f881358 Mon Sep 17 00:00:00 2001 From: andrew-platt Date: Wed, 28 Feb 2024 13:20:06 -0700 Subject: [PATCH 2/3] Lin: sum BD blade root motion to hub moment m_ud term (consistent with documentation) This results in some differences in the dUdy, A, and C matrices, but basically the same frequencies Co-authored-by: Derek Slaughter --- modules/openfast-library/src/FAST_Lin.f90 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/openfast-library/src/FAST_Lin.f90 b/modules/openfast-library/src/FAST_Lin.f90 index de24bd1b19..f8414a36df 100644 --- a/modules/openfast-library/src/FAST_Lin.f90 +++ b/modules/openfast-library/src/FAST_Lin.f90 @@ -3331,8 +3331,8 @@ SUBROUTINE Linear_ED_InputSolve_dy( p_FAST, y_FAST, SrvD, u_ED, y_ED, y_AD, u_AD ! ED translation displacement-to-ED moment transfer (dU^{ED}/dy^{ED}) from BD root-to-ED hub load transfer: ED_Start = Indx_u_ED_Hub_Start(u_ED, y_FAST) + u_ED%HubPtLoad%NNodes*3 ! start of u_ED%HubPtLoad%Moment field (skip forces) + ED_Out_Start = Indx_y_ED_Hub_Start(y_ED, y_FAST) ! start of y_ED%HubMotion%TranslationDisp field DO k=1,p_FAST%nBeams - ED_Out_Start = Indx_y_ED_BladeRoot_Start(y_ED, y_FAST, k) ! start of y_ED%BladeRootMotion(k)%TranslationDisp field call SumBlockMatrix( dUdy, MeshMapData%BD_P_2_ED_P(k)%dM%m_ud, ED_Start, ED_Out_Start) END DO @@ -3733,7 +3733,8 @@ SUBROUTINE Linear_AD_InputSolve_NoIfW_dy( p_FAST, y_FAST, u_AD, y_ED, BD, MeshMa DO k=1,p_FAST%nBeams AD_Start = Indx_u_AD_Blade_Start(u_AD, y_FAST, k) ! start of u_AD%BladeMotion(k)%TranslationDisp field - BD_Out_Start = y_FAST%Lin%Modules(Module_BD)%Instance(k)%LinStartIndx(LIN_OUTPUT_COL) + 6 ! skip the reaction forces + BD_Out_Start = y_FAST%Lin%Modules(MODULE_BD)%Instance(k)%LinStartIndx(LIN_OUTPUT_COL) & ! start of BD%y(k)%BldMotion%TranslationDisp field + + BD%y(k)%ReactionForce%NNodes * 6 ! 2 fields with 3 components CALL Assemble_dUdy_Motions(BD%y(k)%BldMotion, u_AD%rotors(1)%BladeMotion(k), MeshMapData%BDED_L_2_AD_L_B(k), AD_Start, BD_Out_Start, dUdy, skipRotAcc=.true.) END DO From 8269984a73f357138fcf60a81367caed9c1c79eb Mon Sep 17 00:00:00 2001 From: andrew-platt Date: Wed, 28 Feb 2024 16:00:30 -0700 Subject: [PATCH 3/3] Update reg test 5MW_Land_BD_Linear_Aero --- 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 39123bd8b5..6c4df34a19 160000 --- a/reg_tests/r-test +++ b/reg_tests/r-test @@ -1 +1 @@ -Subproject commit 39123bd8b52e37de3392da51b53fb888e316c275 +Subproject commit 6c4df34a19ceaeecc901e886aa56c27bbf914285