Skip to content

Commit ff33ca1

Browse files
authored
Merge pull request #542 from OpenFAST/dev
Release v2.4.0
2 parents f2419c5 + 103130b commit ff33ca1

344 files changed

Lines changed: 136689 additions & 56148 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
2-
**Complete this sentence**
3-
THIS PULL REQUEST __ [IS/IS NOT] __ READY TO MERGE
1+
<!-- Is this pull request ready to be merged? -->
2+
<!-- i.e. tests pass or are expected to fail; all development is finished; appropriate documentation is included. -->
3+
<!-- If not but opening the pull request will facilitate development, make it a "draft" pull request -->
44

55
**Feature or improvement description**
6-
<A clear and concise description of the new code.>
6+
<!-- A clear and concise description of the new code. -->
77

88
**Related issue, if one exists**
9-
<Link to a related GitHub Issue.>
9+
<!-- Link to a related GitHub Issue. -->
1010

1111
**Impacted areas of the software**
12-
<List any modules or other areas which should be impacted by this pull request. This helps to determine the verification tests.>
12+
<!-- List any modules or other areas which should be impacted by this pull request. This helps to determine the verification tests. -->
1313

1414
**Additional supporting information**
15-
<Add any other context about the problem here.>
15+
<!-- Add any other context about the problem here. -->
1616

1717
**Test results, if applicable**
18-
<Add the results from unit tests and regression tests here along with justification for any failing test cases.>
18+
<!-- Add the results from unit tests and regression tests here along with justification for any failing test cases. -->
Lines changed: 52 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,69 @@
11
#!/bin/bash
22

3-
git fetch origin ${GITHUB_REF}:CI
4-
git checkout CI
5-
git submodule update
6-
7-
# Print the current git info
8-
echo `git status`
9-
echo `git log -1`
10-
cd /openfast/reg_tests/r-test
11-
echo `git status`
12-
echo `git log -1`
13-
cd /openfast
3+
verbosecommand() { echo ">>> $1" && eval $1 && echo "<<<"; }
4+
5+
# Configure Bash to exit if any command returns an error
6+
set -e
7+
8+
verbosecommand "cd /openfast"
9+
10+
repo="OpenFAST"
11+
echo "GITHUB_EVENT_NAME: ${GITHUB_EVENT_NAME}"
12+
if [[ "${GITHUB_EVENT_NAME}" != "pull_request" ]]; then
13+
repo=${GITHUB_ACTOR}
14+
fi
15+
# Create a branch "CI" at the current commit from the GH Actor's fork.
16+
verbosecommand "git fetch https://github.com/${repo}/openfast ${GITHUB_REF}:CI"
17+
verbosecommand "git checkout CI"
18+
verbosecommand "git submodule update"
19+
20+
# Display the current git info
21+
echo "*** git-status from openfast:"
22+
verbosecommand "git status"
23+
24+
echo "*** git-log from openfast:"
25+
verbosecommand "git log -1"
26+
27+
verbosecommand "cd /openfast/reg_tests/r-test"
28+
echo "*** git-status from r-test:"
29+
verbosecommand "git status"
30+
31+
echo "*** git-log from r-test:"
32+
verbosecommand "git log -1"
33+
34+
verbosecommand "cd /openfast"
35+
36+
# Display the differences between this commit and `dev`
37+
echo "*** git-diff from ${GITHUB_REF} to dev:"
38+
verbosecommand "git diff dev --numstat"
1439

1540
# Move into the "build" directory, remove the old reg tests, and compile
16-
cd /openfast/build
17-
rm -rf reg_tests
18-
cmake ..
19-
make -j4 install
41+
verbosecommand "cd /openfast/build"
42+
verbosecommand "rm -rf reg_tests"
43+
verbosecommand "cmake .."
44+
verbosecommand "make -j4 install"
2045

2146
# Run the tests
2247

2348
# NWTC Library tests
24-
ctest -VV -R nwtc_library_utest
49+
verbosecommand "ctest -VV -R nwtc_library_utest"
2550

2651
# BeamDyn-specific tests
27-
ctest -VV -j7 -R bd_
28-
ctest -VV -R beamdyn_utest
52+
verbosecommand "ctest -VV -j7 -R bd_"
53+
verbosecommand "ctest -VV -R beamdyn_utest"
54+
55+
# OLAF free vortex wake tests
56+
ctest -VV -R fvw_utest
2957

3058
# OpenFAST linearization tests
3159
# Dont run these in parallel, copying the case files can fail in a race condition
32-
ctest -VV -L linear
60+
# Exclude the Ideal_Beam test cases
61+
# - They fail consistently in the Docker container when run on GitHub,
62+
# but pass everywhere else including running the same Docker image locally
63+
verbosecommand "ctest -VV -L linear -E Ideal"
3364

3465
# Subset of OpenFAST regression tests; do not run
3566
## - 9, 16 because they're very sensitive
3667
## - 19, 20 because theyre too long
37-
## - 17, 22, 23 becuase we dont know why they fail :(
38-
ctest -VV -j8 -I 1,1,1,2,3,4,5,6,7,8,10,11,12,13,14,15,18,21,24,25
68+
## - 17, 22, 23 because we dont know why they fail :(
69+
verbosecommand "ctest -VV -j8 -I 1,1,1,2,3,4,5,6,7,8,10,11,12,13,14,15,18,21,24,25,26,27,28,29"

.github/workflows/continuous-integration-workflow.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ jobs:
1515
name: OpenFAST tests on Ubuntu
1616
steps:
1717
- name: Checkout
18-
uses: actions/checkout@master
18+
uses: actions/checkout@main
1919
with:
20-
submodule: recursive
20+
submodules: recursive
2121
- name: Build and test step
2222
uses: ./.github/actions/compile-and-test

.gitignore

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ vs-build/
4141
.vscode
4242
.atom
4343
.fortls
44-
4544
# backup files
4645
*.asv
46+
~$*.xlsx
47+
48+
# LaTeX compiling files
49+
*.aux
50+
*.nlo
51+
*.log

.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[submodule "reg_tests/r-test"]
22
path = reg_tests/r-test
3-
url = https://github.com/openfast/r-test.git
3+
url = https://github.com/OpenFAST/r-test.git
44
[submodule "unit_tests/pfunit"]
55
path = unit_tests/pfunit
66
url = https://github.com/Goddard-Fortran-Ecosystem/pFUnit.git

.readthedocs.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@
55
# Required
66
version: 2
77

8-
sphinx:
9-
configuration: docs/conf.py
10-
118
formats:
129
- htmlzip
1310
- pdf

.travis.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ script:
5757
# beamdyn regression tests
5858
- if [[ "$DOUBLE_PRECISION" == "ON" ]]; then ctest -j4 -VV -R bd_; fi
5959

60+
# linearization cases
61+
- if [[ "$DOUBLE_PRECISION" == "ON" ]]; then ctest -L linear; fi
62+
6063
# subset of openfast regression tests
6164
# do not run
6265
# - 3, 4, 7, 15, 16, 17 since the free yaw is not well trusted

CMakeLists.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,9 @@ option(BUILD_SHARED_LIBS "Enable building shared libraries" off)
3333
option(DOUBLE_PRECISION "Treat REAL as double precision" on)
3434
option(USE_DLL_INTERFACE "Enable runtime loading of dynamic libraries" on)
3535
option(FPE_TRAP_ENABLED "Enable FPE trap in compiler options" off)
36-
option(ORCA_DLL_LOAD "Enable OrcaFlex Library Load" off)
36+
option(ORCA_DLL_LOAD "Enable OrcaFlex Library Load" on)
3737
option(BUILD_OPENFAST_CPP_API "Enable building OpenFAST - C++ API" off)
38+
option(OPENMP "Enable OpenMP support" off)
3839

3940
# Precompiler/preprocessor flag configuration
4041
# Do this before configuring modules so that the flags are included
@@ -169,4 +170,4 @@ endif()
169170
option(BUILD_DOCUMENTATION "Build documentation." OFF)
170171
if(BUILD_DOCUMENTATION)
171172
add_subdirectory(docs)
172-
endif()
173+
endif()

README.rst

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ FAST v8 - OpenFAST v0.1.0
2929
The transition from FAST v8 to OpenFAST v0.1.0 represents the effort to better
3030
support an open-source developer community around FAST-based aero-hydro-servo-
3131
elastic engineering models of wind-turbines and wind-plants. OpenFAST is the
32-
next generation of FAST analysis tools. More inforation is available in the
32+
next generation of FAST analysis tools. More information is available in the
3333
`transition notes <http://openfast.readthedocs.io/en/latest/source/user/fast_to_openfast.html>`_.
3434

3535
FAST v8 is a computer-aided engineering tool for simulating the coupled dynamic
@@ -114,15 +114,9 @@ Details for compiling
114114
`developing <http://openfast.readthedocs.io/en/latest/source/dev/index.html>`_
115115
OpenFAST on Unix-based and Windows machines are available at `readthedocs <http://openfast.readthedocs.io>`_.
116116

117-
Nightly Testing
118-
---------------
119-
The ``dev`` branch is automatically compiled and run through the test suite
120-
nightly. The results are publicly available through the
121-
`CDash Dashboard <http://my.cdash.org/index.php?project=OpenFAST&date=>`_.
122-
123117
Help
124118
----
125-
Please use `github issues <https://github.com/OpenFAST/OpenFAST/issues>`_ to:
119+
Please use `GitHub Issues <https://github.com/OpenFAST/OpenFAST/issues>`_ to:
126120

127121
* ask usage questions
128122
* report bugs

cmake/OpenfastFortranOptions.cmake

Lines changed: 49 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,27 @@ macro(set_fast_fortran)
7373
endif()
7474
endmacro(set_fast_fortran)
7575

76+
#
77+
# CHECK_F2008_FEATURES - Check if Fortran2008 features are available
78+
#
79+
macro(check_f2008_features)
80+
include(CheckFortranSourceCompiles)
81+
check_fortran_source_compiles(
82+
"program test
83+
use iso_fortran_env, only: compiler_version, real32, real64, real128
84+
integer, parameter :: quki = real128
85+
integer, parameter :: dbki = real64
86+
integer, parameter :: reki = real32
87+
88+
end program test"
89+
HAS_FORTRAN2008
90+
SRC_EXT F90)
91+
if (HAS_FORTRAN2008)
92+
message(STATUS "Enabling Fortran 2008 features")
93+
add_definitions(-DHAS_FORTRAN2008_FEATURES)
94+
endif()
95+
endmacro(check_f2008_features)
96+
7697
#
7798
# SET_FAST_GFORTRAN - Customizations for GNU Fortran compiler
7899
#
@@ -83,17 +104,18 @@ macro(set_fast_gfortran)
83104
endif(NOT WIN32)
84105

85106
# Fix free-form compilation for OpenFAST
107+
#set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -ffree-line-length-none -cpp -fopenmp")
86108
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -ffree-line-length-none -cpp")
87109

88110
# Deal with Double/Single precision
89111
if (DOUBLE_PRECISION)
90-
add_definitions(-DDOUBLE_PRECISION)
112+
add_definitions(-DOPENFAST_DOUBLE_PRECISION)
91113
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fdefault-real-8")
92114
endif (DOUBLE_PRECISION)
93115

94116
# debug flags
95117
if(CMAKE_BUILD_TYPE MATCHES Debug)
96-
set( CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG} -fcheck=all -pedantic -fbacktrace" )
118+
set( CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG} -fcheck=all -pedantic -fbacktrace " )
97119
endif()
98120

99121
if(CYGWIN)
@@ -102,6 +124,13 @@ macro(set_fast_gfortran)
102124
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS},--stack,${stack_size}")
103125
endif()
104126

127+
# OPENMP
128+
if (OPENMP)
129+
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fopenmp")
130+
set(CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG} -fopenmp" )
131+
endif()
132+
133+
check_f2008_features()
105134
endmacro(set_fast_gfortran)
106135

107136
#
@@ -123,14 +152,22 @@ macro(set_fast_intel_fortran_posix)
123152
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fpic -fpp")
124153
# Deal with Double/Single precision
125154
if (DOUBLE_PRECISION)
126-
add_definitions(-DDOUBLE_PRECISION)
155+
add_definitions(-DOPENFAST_DOUBLE_PRECISION)
127156
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -r8 -double_size 128")
128157
endif (DOUBLE_PRECISION)
129158

130159
# debug flags
131160
if(CMAKE_BUILD_TYPE MATCHES Debug)
132161
set( CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG} -check all -traceback" )
133162
endif()
163+
164+
# OPENMP
165+
if (OPENMP)
166+
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -qopenmp")
167+
set(CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG} -qopenmp" )
168+
endif()
169+
170+
check_f2008_features()
134171
endmacro(set_fast_intel_fortran_posix)
135172

136173
#
@@ -145,7 +182,7 @@ macro(set_fast_intel_fortran_windows)
145182

146183
# Deal with Double/Single precision
147184
if (DOUBLE_PRECISION)
148-
add_definitions(-DDOUBLE_PRECISION)
185+
add_definitions(-DOPENFAST_DOUBLE_PRECISION)
149186
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} /real_size:64 /double_size:128")
150187
endif (DOUBLE_PRECISION)
151188

@@ -157,4 +194,12 @@ macro(set_fast_intel_fortran_windows)
157194
if(CMAKE_BUILD_TYPE MATCHES Debug)
158195
set( CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG} /check:all /traceback" )
159196
endif()
197+
198+
# OPENMP
199+
if (OPENMP)
200+
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} /qopenmp")
201+
set(CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG} /qopenmp" )
202+
endif()
203+
204+
check_f2008_features()
160205
endmacro(set_fast_intel_fortran_windows)

0 commit comments

Comments
 (0)