From 4c3bdf42c1822aeffda14c0f98ae7e53b4567983 Mon Sep 17 00:00:00 2001 From: dzalkind Date: Wed, 24 Jun 2026 13:00:20 -0600 Subject: [PATCH] Shift hub position from MSL frame to seabed for MHKs/InflowWind --- modules/openfast-library/src/FAST_Mapping.f90 | 10 ++++++++++ modules/openfast-library/src/FAST_Subs.f90 | 5 +++++ 2 files changed, 15 insertions(+) diff --git a/modules/openfast-library/src/FAST_Mapping.f90 b/modules/openfast-library/src/FAST_Mapping.f90 index a150e6f066..0f4444c139 100644 --- a/modules/openfast-library/src/FAST_Mapping.f90 +++ b/modules/openfast-library/src/FAST_Mapping.f90 @@ -3474,6 +3474,11 @@ subroutine Custom_InputSolve(Mapping, ModSrc, ModDst, iInput, T, ErrStat, ErrMsg T%ED%y(ModSrc%Ins)%HubPtMotion%TranslationDisp(:, 1) T%IfW%Input(iInput)%HubOrientation = T%ED%y(ModSrc%Ins)%HubPtMotion%Orientation(:, :, 1) + ! MHK: shift hub position from MSL frame to seabed frame for InflowWind + if (T%p_FAST%MHK /= MHK_None) then + T%IfW%Input(iInput)%HubPosition(3) = T%IfW%Input(iInput)%HubPosition(3) + T%p_FAST%WtrDpth + end if + ! Set Lidar position directly from hub motion mesh T%IfW%Input(iInput)%lidar%HubDisplacementX = T%ED%y(ModSrc%Ins)%HubPtMotion%TranslationDisp(1, 1) T%IfW%Input(iInput)%lidar%HubDisplacementY = T%ED%y(ModSrc%Ins)%HubPtMotion%TranslationDisp(2, 1) @@ -3486,6 +3491,11 @@ subroutine Custom_InputSolve(Mapping, ModSrc, ModDst, iInput, T, ErrStat, ErrMsg T%SED%y%HubPtMotion%TranslationDisp(:, 1) T%IfW%Input(iInput)%HubOrientation = T%SED%y%HubPtMotion%Orientation(:, :, 1) + ! MHK: shift hub position from MSL frame to seabed frame for InflowWind + if (T%p_FAST%MHK /= MHK_None) then + T%IfW%Input(iInput)%HubPosition(3) = T%IfW%Input(iInput)%HubPosition(3) + T%p_FAST%WtrDpth + end if + ! Set Lidar position directly from hub motion mesh T%IfW%Input(iInput)%lidar%HubDisplacementX = T%SED%y%HubPtMotion%TranslationDisp(1, 1) T%IfW%Input(iInput)%lidar%HubDisplacementY = T%SED%y%HubPtMotion%TranslationDisp(2, 1) diff --git a/modules/openfast-library/src/FAST_Subs.f90 b/modules/openfast-library/src/FAST_Subs.f90 index 6ed98bcc8d..a93532e4bc 100644 --- a/modules/openfast-library/src/FAST_Subs.f90 +++ b/modules/openfast-library/src/FAST_Subs.f90 @@ -519,6 +519,11 @@ SUBROUTINE FAST_InitializeAll( t_initial, m_Glue, p_FAST, y_FAST, m_FAST, ED, SE Init%InData_IfW%RadAvg = Init%InData_IfW%RadAvg / p_FAST%NumBD end select + ! MHK: shift hub position from MSL frame to seabed frame for InflowWind + if (p_FAST%MHK /= MHK_None) then + Init%InData_IfW%HubPosition(3) = Init%InData_IfW%HubPosition(3) + p_FAST%WtrDpth + end if + IF (PRESENT(ExternInitData)) THEN Init%InData_IfW%Use4Dext = ExternInitData%FarmIntegration