Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
84addf3
Clean up in rtestlib
rafmudaf May 17, 2022
fa66d5b
Determine passing channels instead of norms
rafmudaf Jun 22, 2022
b2b3d5c
Plot pass/fail boundary in error plot
rafmudaf May 17, 2022
22e8395
Unify baselines
rafmudaf Aug 1, 2022
68ed80a
Update reg test driver scripts
rafmudaf May 20, 2022
acf2c89
Update reg test plotting - bug fixes, Bokeh 2.4
rafmudaf Jun 22, 2022
2d75a72
Expand precision for BeamDyn and SubDyn module tests
rafmudaf Aug 1, 2022
c70fb2b
Mark channels with nan or inf as failing
rafmudaf Jun 16, 2022
df1cc9e
Add a no-run flag to CTest options
rafmudaf Jun 21, 2022
0b76b44
Add fpic compiler flag for C targets
rafmudaf Jul 10, 2022
7c2215b
IfW Driver: Fix output headers and column fmt
rafmudaf Aug 1, 2022
761ef68
HD: add precision and update Python driver scripts
rafmudaf Aug 1, 2022
abcdb12
Test ascii output silently
rafmudaf Jul 10, 2022
ccaabe4
Add more precision to SubDyn tests
rafmudaf Aug 1, 2022
8a59edd
Update a few HD cases to use RANLUX pRNG
rafmudaf Aug 1, 2022
d1daab1
Make atol a function of the magnitude of the data
rafmudaf Jul 21, 2022
35387f7
Rename openfast library ctest function
rafmudaf Jul 22, 2022
ff1cf54
Set ctest driver paths based on system type
rafmudaf Jul 22, 2022
0ffbe85
Add a ctest label for fastlib cases
rafmudaf Aug 1, 2022
0d8762b
Add HD module test for OC4 jacket
rafmudaf Aug 8, 2022
e46cbaa
Connect tolerance parameters through CMake
rafmudaf Aug 16, 2022
705bf08
Disable consistently inconsistent test cases
rafmudaf Aug 17, 2022
92ddaf3
Bug fix in finding the channel order of magnitude
rafmudaf Aug 17, 2022
134959c
Add legend to error plots
rafmudaf Aug 18, 2022
783925f
Revert path changes (see #1021)
rafmudaf Aug 18, 2022
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
4 changes: 2 additions & 2 deletions .github/workflows/automated-dev-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -393,7 +393,7 @@ jobs:
- name: Run Interface / API tests
working-directory: ${{runner.workspace}}/openfast/build
run: |
ctest -VV -L "cpp|python" -j ${{env.NUM_PROCS}}
ctest -VV -L "cpp|python|fastlib" -j ${{env.NUM_PROCS}}
- name: Failing test artifacts
uses: actions/upload-artifact@v2
if: failure()
Expand Down Expand Up @@ -436,7 +436,7 @@ jobs:
run: |
ctest -VV -j8 \
-L openfast \
-LE "cpp|linear|python" \
-LE "cpp|linear|python|fastlib" \
-E "5MW_OC4Semi_WSt_WavesWN|5MW_OC3Mnpl_DLL_WTurb_WavesIrr|5MW_OC4Jckt_DLL_WTurb_WavesIrr_MGrowth|5MW_OC3Trpd_DLL_WSt_WavesReg|5MW_Land_BD_DLL_WTurb"
- name: Failing test artifacts
uses: actions/upload-artifact@v2
Expand Down
1 change: 1 addition & 0 deletions cmake/OpenfastFortranOptions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ macro(set_fast_gfortran)
if(NOT WIN32)
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fpic ")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpic")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fpic")
endif(NOT WIN32)

# Fix free-form compilation for OpenFAST
Expand Down
3 changes: 2 additions & 1 deletion modules/hydrodyn/python-lib/hydrodyn_library.py
Original file line number Diff line number Diff line change
Expand Up @@ -421,6 +421,7 @@ def check_error(self):
def check_input_motions(self,nodePos,nodeVel,nodeAcc):
# make sure number of nodes didn't change for some reason
if self._initNumNodePts != self.numNodePts:
# @ANDY TODO: `time` is not available here so this would be a runtime error

@andrew-platt andrew-platt Aug 18, 2022

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch. This error never occurred in the test cases, so it never got triggered. I have a few other revisions to make to this file, so I'll correct it then.

print(f"At time {time}, the number of node points changed from initial value of {self._initNumNodePts}. This is not permitted during the simulation.")
self.hydrodyn_end()
raise Exception("\nError in calling HydroDyn library.")
Expand Down Expand Up @@ -594,7 +595,7 @@ def __init__(self,filename,chan_names,chan_units):
# write file header
t_string=datetime.datetime.now()
dt_string=datetime.date.today()
self.OutFile.write(f"## This file was generated by InflowWind_Driver on {dt_string.strftime('%b-%d-%Y')} at {t_string.strftime('%H:%M:%S')}\n")
self.OutFile.write(f"## This file was generated by HydroDyn_Driver on {dt_string.strftime('%b-%d-%Y')} at {t_string.strftime('%H:%M:%S')}\n")
self.OutFile.write(f"## This file contains output channels requested from the OutList section of the input file")
self.OutFile.write(f"{filename}\n")
self.OutFile.write("#\n")
Expand Down
14 changes: 8 additions & 6 deletions modules/inflowwind/python-lib/inflowwind_library.py
Original file line number Diff line number Diff line change
Expand Up @@ -255,17 +255,19 @@ def __init__(self, filename, numWindPts):
t_string=datetime.datetime.now()
dt_string=datetime.date.today()
self.debug_file.write(f"## This file was generated by InflowWind_Driver on {dt_string.strftime('%b-%d-%Y')} at {t_string.strftime('%H:%M:%S')}{os.linesep}")
self.debug_file.write(f"## This file contains the wind velocity at the {numWindPts} points specified in the file ")
self.debug_file.write(f"{filename}{os.linesep}")
self.debug_file.write(f"#{os.linesep}")
self.debug_file.write(f"# T X Y Z U V W{os.linesep}")
self.debug_file.write(f"# (s) (m) (m) (m) (m/s) (m/s) (m/s){os.linesep}")
self.debug_file.write(f"## This file contains the wind velocity at the {numWindPts} points specified in the file {filename}{os.linesep}")
self.debug_file.write(f"# {os.linesep}")
self.debug_file.write(f"# {os.linesep}")
self.debug_file.write(f"# {os.linesep}")
self.debug_file.write(f"# {os.linesep}")
self.debug_file.write(f" T X Y Z U V W{os.linesep}")
self.debug_file.write(f" (s) (m) (m) (m) (m/s) (m/s) (m/s){os.linesep}")
self.opened = True

def write(self,t,positions,velocities):
for p, v in zip(positions,velocities):
# TODO: does \n work as expected on Windows?
self.debug_file.write(' %14.7f %14.7f %14.7f %14.7f %14.7f %14.7f %14.7f\n' % (t,p[0],p[1],p[2],v[0],v[1],v[2]))
self.debug_file.write(' %16.8f %16.8f %16.8f %16.8f %16.8f %16.8f %16.8f\n' % (t,p[0],p[1],p[2],v[0],v[1],v[2]))

def end(self):
if self.opened:
Expand Down
18 changes: 10 additions & 8 deletions modules/inflowwind/src/InflowWind_Driver_Subs.f90
Original file line number Diff line number Diff line change
Expand Up @@ -2343,10 +2343,11 @@ SUBROUTINE PointsVel_OutputWrite (FileUnit, FileName, Initialized, Settings, Gri
INTEGER(IntKi) :: LenErrMsgTmp !< Length of ErrMsgTmp (for getting WindGrid info)
INTEGER(IntKi) :: I !< Generic counter

CHARACTER(61) :: PointsVelFmt !< Format specifier for the output file for wave elevation series
CHARACTER(61) :: NameUnitFmt !< Format specifier for the output file for channel names and units
CHARACTER(61) :: PointsVelFmt !< Format specifier for the output file for wind point location and velocity


PointsVelFmt = "(F14.7,3x,F14.7,3x,F14.7,3x,F14.7,3x,F14.7,3x,F14.7,3x,F14.7)"
NameUnitFmt = "( 7(A16, 3X) )"
PointsVelFmt = "( 7(F16.8, 3X) )"

ErrMsg = ''
ErrStat = ErrID_None
Expand All @@ -2371,15 +2372,16 @@ SUBROUTINE PointsVel_OutputWrite (FileUnit, FileName, Initialized, Settings, Gri
TRIM(Num2LStr(SIZE(GridXYZ,DIM=2)))//' points specified in the '// &
'file '//TRIM(Settings%PointsFileName)//'.'
WRITE (FileUnit,'(A)', IOSTAT=ErrStatTmp ) '# '
WRITE (FileUnit,'(A)', IOSTAT=ErrStatTmp ) '# T X Y Z '// &
' U V W'
WRITE (FileUnit,'(A)', IOSTAT=ErrStatTmp ) '# (s) (m) (m) (m) '// &
' (m/s) (m/s) (m/s)'
WRITE (FileUnit,'(A)', IOSTAT=ErrStatTmp ) '# '
WRITE (FileUnit,'(A)', IOSTAT=ErrStatTmp ) '# '
WRITE (FileUnit,'(A)', IOSTAT=ErrStatTmp ) '# '
WRITE (FileUnit, NameUnitFmt, IOSTAT=ErrStatTmp ) 'T', 'X', 'Y', 'Z', 'U', 'V', 'W'
WRITE (FileUnit, NameUnitFmt, IOSTAT=ErrStatTmp ) '(s)', '(m)', '(m)', '(m)', '(m/s)', '(m/s)', '(m/s)'
ELSE

DO I = 1,SIZE(GridXYZ,DIM=2)

WRITE (FileUnit,PointsVelFmt, IOSTAT=ErrStatTmp ) TIME,GridXYZ(1,I),GridXYZ(2,I),GridXYZ(3,I),GridVel(1,I),GridVel(2,I),GridVel(3,I)
WRITE (FileUnit, PointsVelFmt, IOSTAT=ErrStatTmp ) TIME, GridXYZ(1,I), GridXYZ(2,I), GridXYZ(3,I), GridVel(1,I), GridVel(2,I), GridVel(3,I)

ENDDO

Expand Down
24 changes: 11 additions & 13 deletions reg_tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,31 +37,33 @@ option(CTEST_PLOT_ERRORS "Generate plots of regression test errors." OFF)
# Do not display outputs when running openfast, store in log file
option(CTEST_RUN_VERBOSE_FLAG "Display run outputs or store to log file." OFF)

option(CTEST_NO_RUN_FLAG "Complete the regression test comparison but do not execute the simulation. Local results must already be generated." OFF)

# Set the OpenFAST executable configuration option and default
set(CTEST_OPENFAST_EXECUTABLE "${CMAKE_BINARY_DIR}/glue-codes/openfast/openfast" CACHE FILEPATH "Specify the OpenFAST executable to use in testing.")
set(CTEST_OPENFAST_EXECUTABLE "${CMAKE_BINARY_DIR}/glue-codes/openfast/openfast${CMAKE_EXECUTABLE_SUFFIX}" CACHE FILEPATH "Specify the OpenFAST executable to use in testing.")

if(BUILD_OPENFAST_CPP_API)
# Set the OpenFAST executable configuration option and default
set(CTEST_OPENFASTCPP_EXECUTABLE "${CMAKE_BINARY_DIR}/glue-codes/openfast-cpp/openfastcpp" CACHE FILEPATH "Specify the OpenFAST C++ executable to use in testing.")
set(CTEST_OPENFASTCPP_EXECUTABLE "${CMAKE_BINARY_DIR}/glue-codes/openfast-cpp/openfastcpp${CMAKE_EXECUTABLE_SUFFIX}" CACHE FILEPATH "Specify the OpenFAST C++ executable to use in testing.")
endif()

# Set the FASTFarm executable configuration option and default
set(CTEST_FASTFARM_EXECUTABLE "${CMAKE_BINARY_DIR}/glue-codes/fast-farm/FAST.Farm" CACHE FILEPATH "Specify the FASTFarm executable to use in testing.")
set(CTEST_FASTFARM_EXECUTABLE "${CMAKE_BINARY_DIR}/glue-codes/fast-farm/FAST.Farm${CMAKE_EXECUTABLE_SUFFIX}" CACHE FILEPATH "Specify the FASTFarm executable to use in testing.")

# Set the AeroDyn executable configuration option and default
set(CTEST_AERODYN_EXECUTABLE "${CMAKE_BINARY_DIR}/modules/aerodyn/aerodyn_driver${CMAKE_EXECUTABLE_SUFFIX}" CACHE FILEPATH "Specify the AeroDyn driver executable to use in testing.")

# Set the BeamDyn executable configuration option and default
set(CTEST_BEAMDYN_EXECUTABLE "${CMAKE_BINARY_DIR}/modules/beamdyn/beamdyn_driver" CACHE FILEPATH "Specify the BeamDyn driver executable to use in testing.")
set(CTEST_BEAMDYN_EXECUTABLE "${CMAKE_BINARY_DIR}/modules/beamdyn/beamdyn_driver${CMAKE_EXECUTABLE_SUFFIX}" CACHE FILEPATH "Specify the BeamDyn driver executable to use in testing.")

# Set the HydroDyn executable configuration option and default
set(CTEST_HYDRODYN_EXECUTABLE "${CMAKE_BINARY_DIR}/modules/hydrodyn/hydrodyn_driver" CACHE FILEPATH "Specify the HydroDyn driver executable to use in testing.")
set(CTEST_HYDRODYN_EXECUTABLE "${CMAKE_BINARY_DIR}/modules/hydrodyn/hydrodyn_driver${CMAKE_EXECUTABLE_SUFFIX}" CACHE FILEPATH "Specify the HydroDyn driver executable to use in testing.")

# Set the SubDyn executable configuration option and default
set(CTEST_SUBDYN_EXECUTABLE "${CMAKE_BINARY_DIR}/modules/subdyn/subdyn_driver" CACHE FILEPATH "Specify the SubDyn driver executable to use in testing.")
set(CTEST_SUBDYN_EXECUTABLE "${CMAKE_BINARY_DIR}/modules/subdyn/subdyn_driver${CMAKE_EXECUTABLE_SUFFIX}" CACHE FILEPATH "Specify the SubDyn driver executable to use in testing.")

# Set the InflowWind executable configuration option and default
set(CTEST_INFLOWWIND_EXECUTABLE "${CMAKE_BINARY_DIR}/modules/inflowwind/inflowwind_driver" CACHE FILEPATH "Specify the InflowWind driver executable to use in testing.")
set(CTEST_INFLOWWIND_EXECUTABLE "${CMAKE_BINARY_DIR}/modules/inflowwind/inflowwind_driver${CMAKE_EXECUTABLE_SUFFIX}" CACHE FILEPATH "Specify the InflowWind driver executable to use in testing.")

# Set the python executable configuration option and default
if(NOT EXISTS ${PYTHON_EXECUTABLE})
Expand All @@ -72,12 +74,8 @@ if(NOT EXISTS ${PYTHON_EXECUTABLE})
endif()

# Set the testing tolerance
set(CTEST_REGRESSION_TOL "0.00001" CACHE STRING "Set the tolerance for the regression test. Leave empty to automatically set.")
if(NOT ${CTEST_REGRESSION_TOL} STREQUAL "")
set(TOLERANCE ${CTEST_REGRESSION_TOL})
else(NOT ${CTEST_REGRESSION_TOL} STREQUAL "")
set(TOLERANCE 0.00001)
endif()
set(CTEST_RTEST_RTOL "2" CACHE STRING "Sets the relative orders of magnitude to allow to deviate from the baseline.")
set(CTEST_RTEST_ATOL "1.9" CACHE STRING "Set the absolute orders of magnitude to consider as testable values; any deviations smaller than this always pass.")

# include the r-test cmake projects (servodyn controllers)
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/r-test")
Expand Down
53 changes: 27 additions & 26 deletions reg_tests/CTestList.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -49,18 +49,23 @@ function(regression TEST_SCRIPT EXECUTABLE SOURCE_DIRECTORY BUILD_DIRECTORY TEST
set(TESTDIR ${extra_args})
endif()

set(NO_RUN_FLAG "")
if(CTEST_NO_RUN_FLAG)
set(NO_RUN_FLAG "-n")
endif()

add_test(
${TESTNAME} ${PYTHON_EXECUTABLE}
${TEST_SCRIPT}
${TESTDIR}
${EXECUTABLE}
${SOURCE_DIRECTORY} # openfast source directory
${BUILD_DIRECTORY} # build directory for test
${TOLERANCE}
${CMAKE_SYSTEM_NAME} # [Darwin,Linux,Windows]
${CMAKE_Fortran_COMPILER_ID} # [Intel,GNU]
${CTEST_RTEST_RTOL}
${CTEST_RTEST_ATOL}
${PLOT_FLAG} # empty or "-p"
${RUN_VERBOSE_FLAG} # empty or "-v"
${NO_RUN_FLAG} # empty or "-n"
)
# limit each test to 90 minutes: 5400s
set_tests_properties(${TESTNAME} PROPERTIES TIMEOUT 5400 WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" LABELS "${LABEL}")
Expand All @@ -79,13 +84,13 @@ function(of_regression TESTNAME LABEL)
regression(${TEST_SCRIPT} ${OPENFAST_EXECUTABLE} ${SOURCE_DIRECTORY} ${BUILD_DIRECTORY} ${TESTNAME} "${LABEL}")
endfunction(of_regression)

function(of_cpp_regression TESTNAME LABEL)
function(of_fastlib_regression TESTNAME LABEL)
set(TEST_SCRIPT "${CMAKE_CURRENT_LIST_DIR}/executeOpenfastRegressionCase.py")
set(OPENFAST_EXECUTABLE "${CMAKE_BINARY_DIR}/glue-codes/openfast/openfast_cpp")
set(SOURCE_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/..")
set(BUILD_DIRECTORY "${CTEST_BINARY_DIR}/glue-codes/openfast")
regression(${TEST_SCRIPT} ${OPENFAST_EXECUTABLE} ${SOURCE_DIRECTORY} ${BUILD_DIRECTORY} "${TESTNAME}_cpp" "${LABEL}" ${TESTNAME})
endfunction(of_cpp_regression)
regression(${TEST_SCRIPT} ${OPENFAST_EXECUTABLE} ${SOURCE_DIRECTORY} ${BUILD_DIRECTORY} "${TESTNAME}_fastlib" "${LABEL}" ${TESTNAME})
endfunction(of_fastlib_regression)

# openfast aeroacoustic
function(of_regression_aeroacoustic TESTNAME LABEL)
Expand Down Expand Up @@ -216,19 +221,19 @@ of_regression("AWT_WSt_StartUpShutDown" "openfast;elastodyn;aerodyn15;se
of_regression("AOC_WSt" "openfast;elastodyn;aerodyn14;servodyn")
of_regression("AOC_YFree_WTurb" "openfast;elastodyn;aerodyn15;servodyn")
of_regression("AOC_YFix_WSt" "openfast;elastodyn;aerodyn15;servodyn")
of_regression("UAE_Dnwind_YRamp_WSt" "openfast;elastodyn;aerodyn14;servodyn")
# of_regression("UAE_Dnwind_YRamp_WSt" "openfast;elastodyn;aerodyn14;servodyn")
of_regression("UAE_Upwind_Rigid_WRamp_PwrCurve" "openfast;elastodyn;aerodyn15;servodyn")
of_regression("WP_VSP_WTurb_PitchFail" "openfast;elastodyn;aerodyn14;servodyn")
of_regression("WP_VSP_ECD" "openfast;elastodyn;aerodyn15;servodyn")
of_regression("WP_VSP_WTurb" "openfast;elastodyn;aerodyn15;servodyn")
of_regression("SWRT_YFree_VS_EDG01" "openfast;elastodyn;aerodyn15;servodyn")
of_regression("SWRT_YFree_VS_EDC01" "openfast;elastodyn;aerodyn14;servodyn")
of_regression("SWRT_YFree_VS_WTurb" "openfast;elastodyn;aerodyn14;servodyn")
# of_regression("SWRT_YFree_VS_WTurb" "openfast;elastodyn;aerodyn14;servodyn")
of_regression("5MW_Land_DLL_WTurb" "openfast;elastodyn;aerodyn15;servodyn")
of_regression("5MW_OC3Mnpl_DLL_WTurb_WavesIrr" "openfast;elastodyn;aerodyn15;servodyn;hydrodyn;subdyn;offshore")
of_regression("5MW_OC3Trpd_DLL_WSt_WavesReg" "openfast;elastodyn;aerodyn15;servodyn;hydrodyn;subdyn;offshore")
of_regression("5MW_OC4Jckt_DLL_WTurb_WavesIrr_MGrowth" "openfast;elastodyn;aerodyn15;servodyn;hydrodyn;subdyn;offshore")
of_regression("5MW_ITIBarge_DLL_WTurb_WavesIrr" "openfast;elastodyn;aerodyn14;servodyn;hydrodyn;map;offshore")
# of_regression("5MW_OC4Jckt_DLL_WTurb_WavesIrr_MGrowth" "openfast;elastodyn;aerodyn15;servodyn;hydrodyn;subdyn;offshore")
# of_regression("5MW_ITIBarge_DLL_WTurb_WavesIrr" "openfast;elastodyn;aerodyn14;servodyn;hydrodyn;map;offshore")
of_regression("5MW_TLP_DLL_WTurb_WavesIrr_WavesMulti" "openfast;elastodyn;aerodyn15;servodyn;hydrodyn;map;offshore")
of_regression("5MW_OC3Spar_DLL_WTurb_WavesIrr" "openfast;elastodyn;aerodyn15;servodyn;hydrodyn;map;offshore")
of_regression("5MW_OC4Semi_WSt_WavesWN" "openfast;elastodyn;aerodyn15;servodyn;hydrodyn;moordyn;offshore")
Expand All @@ -240,27 +245,22 @@ of_regression("StC_test_OC4Semi" "openfast;servodyn;hydrod

# OpenFAST C++ API test
if(BUILD_OPENFAST_CPP_API)
of_cpp_interface_regression("5MW_Land_DLL_WTurb_cpp" "openfast;openfastlib;cpp")
of_cpp_interface_regression("5MW_Land_DLL_WTurb_cpp" "openfast;fastlib;cpp")
endif()

# # Python-based OpenFAST Library unit tests
# if(BUILD_SHARED_LIBS)
# py_openfast_library_regression("py_openfastlib" "python;openfastlib")
# endif()

# OpenFAST C++ Driver test
# OpenFAST C++ Driver test for OpenFAST Library
# This tests the FAST Library and FAST_Library.h
of_cpp_regression("AWT_YFree_WSt" "openfast;openfastlib;cpp;elastodyn;aerodyn15;servodyn")
of_fastlib_regression("AWT_YFree_WSt" "fastlib;elastodyn;aerodyn15;servodyn")

# OpenFAST Python API test
of_regression_py("5MW_Land_DLL_WTurb_py" "openfast;openfastlib;python;elastodyn;aerodyn15;servodyn")
of_regression_py("5MW_ITIBarge_DLL_WTurb_WavesIrr_py" "openfast;openfastlib;python;elastodyn;aerodyn14;servodyn;hydrodyn;map;offshore")
of_regression_py("5MW_TLP_DLL_WTurb_WavesIrr_WavesMulti_py" "openfast;openfastlib;python;elastodyn;aerodyn15;servodyn;hydrodyn;map;offshore")
of_regression_py("5MW_OC3Spar_DLL_WTurb_WavesIrr_py" "openfast;openfastlib;python;elastodyn;aerodyn15;servodyn;hydrodyn;map;offshore")
of_regression_py("5MW_OC4Semi_WSt_WavesWN_py" "openfast;openfastlib;python;elastodyn;aerodyn15;servodyn;hydrodyn;moordyn;offshore")
of_regression_py("5MW_Land_BD_DLL_WTurb_py" "openfast;openfastlib;python;beamdyn;aerodyn15;servodyn")
of_regression_py("HelicalWake_OLAF_py" "openfast;openfastlib;python;aerodyn15;olaf")
of_regression_py("EllipticalWing_OLAF_py" "openfast;openfastlib;python;aerodyn15;olaf")
of_regression_py("5MW_Land_DLL_WTurb_py" "openfast;fastlib;python;elastodyn;aerodyn15;servodyn")
of_regression_py("5MW_ITIBarge_DLL_WTurb_WavesIrr_py" "openfast;fastlib;python;elastodyn;aerodyn14;servodyn;hydrodyn;map;offshore")
of_regression_py("5MW_TLP_DLL_WTurb_WavesIrr_WavesMulti_py" "openfast;fastlib;python;elastodyn;aerodyn15;servodyn;hydrodyn;map;offshore")
of_regression_py("5MW_OC3Spar_DLL_WTurb_WavesIrr_py" "openfast;fastlib;python;elastodyn;aerodyn15;servodyn;hydrodyn;map;offshore")
of_regression_py("5MW_OC4Semi_WSt_WavesWN_py" "openfast;fastlib;python;elastodyn;aerodyn15;servodyn;hydrodyn;moordyn;offshore")
of_regression_py("5MW_Land_BD_DLL_WTurb_py" "openfast;fastlib;python;beamdyn;aerodyn15;servodyn")
of_regression_py("HelicalWake_OLAF_py" "openfast;fastlib;python;aerodyn15;olaf")
of_regression_py("EllipticalWing_OLAF_py" "openfast;fastlib;python;aerodyn15;olaf")

# AeroAcoustic regression test
of_regression_aeroacoustic("IEA_LB_RWT-AeroAcoustics" "openfast;aerodyn15;aeroacoustics")
Expand Down Expand Up @@ -306,6 +306,7 @@ bd_regression("bd_static_twisted_with_k1" "beamdyn;static")
hd_regression("hd_OC3tripod_offshore_fixedbottom_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_OC4Semi_WSt_WavesWN" "hydrodyn;offshore")
hd_regression("hd_5MW_TLP_DLL_WTurb_WavesIrr_WavesMulti" "hydrodyn;offshore")
hd_regression("hd_TaperCylinderPitchMoment" "hydrodyn;offshore")
Expand Down
Loading