Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
911e533
ADI multirotor: temporary commit
andrew-platt Jul 18, 2023
9691f13
AD dvr: set NumTurbines to default to 0
andrew-platt Jul 19, 2023
5dbc8f5
ADI multirotor: add PreInit and SetupTurb routines
andrew-platt Jul 19, 2023
c618b44
ADImulti: Init mostly working now. Doesn't exactly match yet
andrew-platt Jul 21, 2023
a86b69a
Merge remote-tracking branch 'OpenFAST/dev-unstable-pointers' into f/…
andrew-platt Jul 24, 2023
43e6632
ADImulti: split AeroDyn_C_SetRotorMotion from calcoutput routine
andrew-platt Jul 24, 2023
4edd0bb
ADImulti: split out AeroDyn_C_GetRotorLoads from calcoutput, update i…
andrew-platt Jul 24, 2023
1f84feb
ADImulti: simplify routine names in ADI_C_Binding.f90
andrew-platt Jul 25, 2023
b9c849d
ADImulti: update python interface and test case
andrew-platt Jul 25, 2023
e2097a1
ADImulti: fix handling of orientations
andrew-platt Jul 28, 2023
9903c6c
ADI: add debuglevel as setting passed into library
andrew-platt Aug 4, 2023
03bf81d
ADI: fix double counting of turbine origin and hub position
andrew-platt Aug 10, 2023
536451a
AD15: add originInit as initialization input for each rotor
andrew-platt Aug 10, 2023
5d5fd92
ADI: add single blade regression test for ADI with python
andrew-platt Aug 26, 2023
db5632f
ADI: fix UpdateStates getting incorrect previous time inputs
andrew-platt Sep 25, 2023
10d561a
ADI: update py_ad_ regression test results
andrew-platt Sep 26, 2023
2a03dd2
Merge remote-tracking branch 'OpenFAST/dev-unstable-pointers' into f/…
andrew-platt Sep 26, 2023
5868f14
ADI c-bindings: remove AeroProjMod, add isHAWT option
andrew-platt Oct 10, 2023
af651dc
FVW: turn off "Reevaluation" info after first occurance
andrew-platt Oct 10, 2023
24c05a7
Merge branch 'dev-unstable-pointers' into f/ADI_c_binding_multiRotor
andrew-platt Oct 10, 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
467 changes: 242 additions & 225 deletions modules/aerodyn/python-lib/aerodyn_inflow_library.py

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion modules/aerodyn/src/AeroDyn.f90
Original file line number Diff line number Diff line change
Expand Up @@ -1120,7 +1120,7 @@ subroutine Init_u( u, p, p_AD, InputFileData, MHK, WtrDpth, InitInp, errStat, er
if (errStat >= AbortErrLev) return

! set node initial position/orientation
position = 0.0_ReKi
position = InitInp%originInit
do j=1,p%NumTwrNds
IF ( MHK == MHK_FixedBottom ) THEN
position(3) = InputFileData%TwrElev(j) - WtrDpth
Expand Down
2 changes: 1 addition & 1 deletion modules/aerodyn/src/AeroDyn_Driver_Registry.txt
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ typedef ^ ^ ReKi Patm
typedef ^ ^ ReKi Pvap - - - "Vapour pressure of working fluid" "Pa"
typedef ^ ^ ReKi WtrDpth - - - "Water depth" "m"
typedef ^ ^ ReKi MSL2SWL - - - "Offset between still-water level and mean sea level" "m"
typedef ^ ^ IntKi numTurbines - - - "number of blades on turbine" "-"
typedef ^ ^ IntKi numTurbines - -9999 - "number of turbine rotors" "-"
typedef ^ ^ WTData WT : - - "Wind turbine data for driver" "-"
typedef ^ ^ DbKi dT - - - "time increment" "s"
typedef ^ ^ DbKi tMax - - - "time increment" "s"
Expand Down
2 changes: 1 addition & 1 deletion modules/aerodyn/src/AeroDyn_Driver_Types.f90
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ MODULE AeroDyn_Driver_Types
REAL(ReKi) :: Pvap = 0.0_ReKi !< Vapour pressure of working fluid [Pa]
REAL(ReKi) :: WtrDpth = 0.0_ReKi !< Water depth [m]
REAL(ReKi) :: MSL2SWL = 0.0_ReKi !< Offset between still-water level and mean sea level [m]
INTEGER(IntKi) :: numTurbines = 0_IntKi !< number of blades on turbine [-]
INTEGER(IntKi) :: numTurbines = -9999 !< number of turbine rotors [-]
TYPE(WTData) , DIMENSION(:), ALLOCATABLE :: WT !< Wind turbine data for driver [-]
REAL(DbKi) :: dT = 0.0_R8Ki !< time increment [s]
REAL(DbKi) :: tMax = 0.0_R8Ki !< time increment [s]
Expand Down
1,615 changes: 1,061 additions & 554 deletions modules/aerodyn/src/AeroDyn_Inflow_C_Binding.f90

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions modules/aerodyn/src/AeroDyn_Registry.txt
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ typedef ^ ^ SiKi TowerRad
# ..... Initialization data .......................................................................................................
# Define inputs that the initialization routine may need here:
typedef AeroDyn/AD RotInitInputType IntKi NumBlades - - - "Number of blades on the turbine" -
typedef ^ RotInitInputType ReKi originInit {3} - 0 "X-Y-Z reference position for the turbine" m
typedef ^ RotInitInputType ReKi HubPosition {3} - - "X-Y-Z reference position of hub" m
typedef ^ RotInitInputType R8Ki HubOrientation {3}{3} - - "DCM reference orientation of hub" -
typedef ^ RotInitInputType ReKi BladeRootPosition {:}{:} - - "X-Y-Z reference position of each blade root (3 x NumBlades)" m
Expand Down
5 changes: 5 additions & 0 deletions modules/aerodyn/src/AeroDyn_Types.f90
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ MODULE AeroDyn_Types
! ========= RotInitInputType =======
TYPE, PUBLIC :: RotInitInputType
INTEGER(IntKi) :: NumBlades = 0_IntKi !< Number of blades on the turbine [-]
REAL(ReKi) , DIMENSION(1:3) :: originInit = 0.0_ReKi !< X-Y-Z reference position for the turbine [m]
REAL(ReKi) , DIMENSION(1:3) :: HubPosition = 0.0_ReKi !< X-Y-Z reference position of hub [m]
REAL(R8Ki) , DIMENSION(1:3,1:3) :: HubOrientation = 0.0_R8Ki !< DCM reference orientation of hub [-]
REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: BladeRootPosition !< X-Y-Z reference position of each blade root (3 x NumBlades) [m]
Expand Down Expand Up @@ -834,6 +835,7 @@ subroutine AD_CopyRotInitInputType(SrcRotInitInputTypeData, DstRotInitInputTypeD
ErrStat = ErrID_None
ErrMsg = ''
DstRotInitInputTypeData%NumBlades = SrcRotInitInputTypeData%NumBlades
DstRotInitInputTypeData%originInit = SrcRotInitInputTypeData%originInit
DstRotInitInputTypeData%HubPosition = SrcRotInitInputTypeData%HubPosition
DstRotInitInputTypeData%HubOrientation = SrcRotInitInputTypeData%HubOrientation
if (allocated(SrcRotInitInputTypeData%BladeRootPosition)) then
Expand Down Expand Up @@ -888,6 +890,7 @@ subroutine AD_PackRotInitInputType(Buf, Indata)
character(*), parameter :: RoutineName = 'AD_PackRotInitInputType'
if (Buf%ErrStat >= AbortErrLev) return
call RegPack(Buf, InData%NumBlades)
call RegPack(Buf, InData%originInit)
call RegPack(Buf, InData%HubPosition)
call RegPack(Buf, InData%HubOrientation)
call RegPack(Buf, allocated(InData%BladeRootPosition))
Expand Down Expand Up @@ -918,6 +921,8 @@ subroutine AD_UnPackRotInitInputType(Buf, OutData)
if (Buf%ErrStat /= ErrID_None) return
call RegUnpack(Buf, OutData%NumBlades)
if (RegCheckErr(Buf, RoutineName)) return
call RegUnpack(Buf, OutData%originInit)
if (RegCheckErr(Buf, RoutineName)) return
call RegUnpack(Buf, OutData%HubPosition)
if (RegCheckErr(Buf, RoutineName)) return
call RegUnpack(Buf, OutData%HubOrientation)
Expand Down
5 changes: 4 additions & 1 deletion modules/aerodyn/src/FVW.f90
Original file line number Diff line number Diff line change
Expand Up @@ -584,7 +584,10 @@ subroutine FVW_UpdateStates( t, n, u, utimes, p, x, xd, z, OtherState, AFInfo, m
m%ComputeWakeInduced = .FALSE.
endif
if (bReevaluation) then
call WrScr('[INFO] FVW: Update States: reevaluation at the same starting time')
if (m%InfoReEval) then
call WrScr('[INFO] FVW: Update States: reevaluation at the same starting time. This will not print on subsequent occurences.')
m%InfoReEval = .false.
endif
call RollBackPreviousTimeStep() ! Cancel wake emission done in previous call
m%ComputeWakeInduced = .TRUE.
endif
Expand Down
1 change: 1 addition & 0 deletions modules/aerodyn/src/FVW_Registry.txt
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,7 @@ typedef ^ ^ ReKi
typedef ^ ^ ReKi Uind :: - - "Induced velocities obtained at control points" -
# Outputs
typedef ^ ^ GridOutType GridOutputs {:} - - "Number of VTK grid to output" -
typedef ^ ^ Logical InfoReeval - .true. - "Give info about Reevaluation: gets set to false after first info statement" -

# ........ Input ............
# Rotors
Expand Down
5 changes: 5 additions & 0 deletions modules/aerodyn/src/FVW_Types.f90
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,7 @@ MODULE FVW_Types
REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: CPs !< Control points used for wake rollup computation [-]
REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: Uind !< Induced velocities obtained at control points [-]
TYPE(GridOutType) , DIMENSION(:), ALLOCATABLE :: GridOutputs !< Number of VTK grid to output [-]
LOGICAL :: InfoReeval = .true. !< Give info about Reevaluation: gets set to false after first info statement [-]
END TYPE FVW_MiscVarType
! =======================
! ========= Rot_InputType =======
Expand Down Expand Up @@ -3531,6 +3532,7 @@ subroutine FVW_CopyMisc(SrcMiscData, DstMiscData, CtrlCode, ErrStat, ErrMsg)
if (ErrStat >= AbortErrLev) return
end do
end if
DstMiscData%InfoReeval = SrcMiscData%InfoReeval
end subroutine

subroutine FVW_DestroyMisc(MiscData, ErrStat, ErrMsg)
Expand Down Expand Up @@ -3639,6 +3641,7 @@ subroutine FVW_PackMisc(Buf, Indata)
call FVW_PackGridOutType(Buf, InData%GridOutputs(i1))
end do
end if
call RegPack(Buf, InData%InfoReeval)
if (RegCheckErr(Buf, RoutineName)) return
end subroutine

Expand Down Expand Up @@ -3750,6 +3753,8 @@ subroutine FVW_UnPackMisc(Buf, OutData)
call FVW_UnpackGridOutType(Buf, OutData%GridOutputs(i1)) ! GridOutputs
end do
end if
call RegUnpack(Buf, OutData%InfoReeval)
if (RegCheckErr(Buf, RoutineName)) return
end subroutine

subroutine FVW_CopyRot_InputType(SrcRot_InputTypeData, DstRot_InputTypeData, CtrlCode, ErrStat, ErrMsg)
Expand Down
2 changes: 2 additions & 0 deletions reg_tests/CTestList.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -367,7 +367,9 @@ ad_regression("ad_BAR_OLAF" "aerodyn;bem")
ad_regression("ad_BAR_SineMotion" "aerodyn;bem")
ad_regression("ad_BAR_SineMotion_UA4_DBEMT3" "aerodyn;bem")
ad_regression("ad_BAR_RNAMotion" "aerodyn;bem")
ad_regression("ad_B1n2_OLAF" "aerodyn;OLAF")
py_ad_regression("py_ad_5MW_OC4Semi_WSt_WavesWN" "aerodyn;bem;python")
py_ad_regression("py_ad_B1n2_OLAF" "aerodyn;OLAF;python")

# UnsteadyAero
ua_regression("ua_redfreq" "unsteadyaero")
Expand Down
2 changes: 1 addition & 1 deletion reg_tests/r-test
Submodule r-test updated 263 files