Skip to content

Commit 587a85f

Browse files
authored
Merge pull request OpenFAST#3167 from OpenFAST/dev
Release 4.2.0
2 parents 0284731 + 7e7c3c2 commit 587a85f

File tree

185 files changed

+15518
-6586
lines changed

Some content is hidden

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

185 files changed

+15518
-6586
lines changed

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,16 @@
1414
**Additional supporting information**
1515
<!-- Add any other context about the problem here. -->
1616

17+
**Generative AI usage**
18+
<!-- describe any generative AI used
19+
If substantial portions are generated with AI, include a reference like one of the following:
20+
Co-authored-by: Google Gemini <gemini@google.com>
21+
Co-authored-by: OpenAI ChatGPT <chatgpt@openai.com>
22+
Co-authored-by: Microsoft Copilot <copilot@microsoft.com>
23+
Co-authored-by: Anthropic Claude <claude@anthropic.com>
24+
Assisted by: GitHub Copilot <support@github.com>
25+
-->
26+
1727
**Test results, if applicable**
1828
<!-- Add the results from unit tests and regression tests here along with justification for any failing test cases. -->
19-
20-
<!-- Release checklist:
21-
- [ ] Update the documentation version in docs/conf.py
22-
- [ ] Update the versions in docs/source/user/api_change.rst
23-
- [ ] Verify readthedocs builds correctly
24-
- [ ] Create a tag in OpenFAST
25-
- [ ] Create a merge commit in r-test and add a corresponding tag
26-
- [ ] Compile executables for Windows builds
27-
- [ ] FAST_SFunc.mexw64
28-
- [ ] OpenFAST-Simulink_x64.dll
29-
- [ ] openfast_x64.exe
30-
- [ ] DISCON.dll
31-
-->
29+
- [ ] r-test branch merging required

.github/scripts/build_windows_executables.bat

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ devenv vs-build/TurbSim/TurbSim.vfproj /Build "Release|x64"
3535
devenv vs-build/UnsteadyAero/UnsteadyAero.sln /Build "Release|x64"
3636

3737
@REM Build MATLAB solution last
38+
rd /s /q .\build\lib
3839
devenv vs-build/FAST/FAST.sln /Build "Release_Matlab|x64"
3940

4041
@REM Copy controllers to bin directory

.github/workflows/automated-dev-tests.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,10 +368,12 @@ jobs:
368368
path: |
369369
${{github.workspace}}/build/reg_tests/glue-codes/openfast-cpp
370370
${{github.workspace}}/build/reg_tests/glue-codes/python
371+
${{github.workspace}}/build/reg_tests/glue-codes/other
371372
${{github.workspace}}/build/reg_tests/modules/aerodyn
372373
${{github.workspace}}/build/reg_tests/modules/moordyn
373374
${{github.workspace}}/build/reg_tests/modules/inflowwind
374375
${{github.workspace}}/build/reg_tests/modules/hydrodyn
376+
${{github.workspace}}/build/reg_tests/modules/seastate
375377
!${{github.workspace}}/build/reg_tests/glue-codes/openfast-cpp/5MW_Baseline
376378
377379

.github/workflows/deploy.yml

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -149,30 +149,15 @@ jobs:
149149
shell: cmd
150150
run: .github/scripts/windows_devenv_test.bat
151151

152-
- name: Install Intel oneAPI BaseKit (Windows)
152+
- name: Install Intel oneAPI Fortran Essentials (Windows)
153153
shell: cmd
154154
env:
155-
URL: https://registrationcenter-download.intel.com/akdlm/IRC_NAS/7dff44ba-e3af-4448-841c-0d616c8da6e7/w_BaseKit_p_2024.1.0.595_offline.exe
156-
COMPONENTS: intel.oneapi.win.mkl.devel
155+
URL: https://registrationcenter-download.intel.com/akdlm/IRC_NAS/b626b5cf-8a15-40a4-be9a-9edabbb7cf17/intel-fortran-essentials-2025.3.0.333_offline.exe
157156
run: |
158157
curl.exe --output %TEMP%\webimage.exe --url %URL% --retry 5 --retry-delay 5
159158
start /b /wait %TEMP%\webimage.exe -s -x -f webimage_extracted --log extract.log
160159
del %TEMP%\webimage.exe
161-
webimage_extracted\bootstrapper.exe -s --action install --components=%COMPONENTS% --eula=accept -p=NEED_VS2017_INTEGRATION=0 -p=NEED_VS2019_INTEGRATION=0 -p=NEED_VS2022_INTEGRATION=1 --log-dir=.
162-
set installer_exit_code=%ERRORLEVEL%
163-
rd /s/q "webimage_extracted"
164-
exit /b %installer_exit_code%
165-
166-
- name: Install Intel oneAPI HPCKit (Windows)
167-
shell: cmd
168-
env:
169-
URL: https://registrationcenter-download.intel.com/akdlm/IRC_NAS/c95a3b26-fc45-496c-833b-df08b10297b9/w_HPCKit_p_2024.1.0.561_offline.exe
170-
COMPONENTS: intel.oneapi.win.ifort-compiler
171-
run: |
172-
curl.exe --output %TEMP%\webimage.exe --url %URL% --retry 5 --retry-delay 5
173-
start /b /wait %TEMP%\webimage.exe -s -x -f webimage_extracted --log extract.log
174-
del %TEMP%\webimage.exe
175-
webimage_extracted\bootstrapper.exe -s --action install --components=%COMPONENTS% --eula=accept -p=NEED_VS2017_INTEGRATION=0 -p=NEED_VS2019_INTEGRATION=0 -p=NEED_VS2022_INTEGRATION=1 --log-dir=.
160+
webimage_extracted\bootstrapper.exe -s --action install --eula=accept -p=NEED_VS2017_INTEGRATION=0 -p=NEED_VS2019_INTEGRATION=0 -p=NEED_VS2022_INTEGRATION=1 --log-dir=.
176161
set installer_exit_code=%ERRORLEVEL%
177162
rd /s/q "webimage_extracted"
178163
exit /b %installer_exit_code%

CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,11 @@ if (OPENMP)
125125
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
126126
link_libraries("${OpenMP_CXX_LIBRARIES}")
127127
endif()
128+
elseif (NOT BLA_VENDOR)
129+
# If we're not using OpenMP, and a specific BLAS vendor has not been set,
130+
# set MKL threading to sequential to avoid potential issues with
131+
# small calculations taking longer due to threading overhead (turbsim).
132+
set(MKL_THREADING "sequential")
128133
endif()
129134

130135
#-------------------------------------------------------------------------------

README.rst

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ OpenFAST is a wind turbine simulation tool which builds on FAST v8. FAST.Farm
1616
extends the capability of OpenFAST to simulate multi-turbine wind farms. They were
1717
created with the goal of being community models developed and used by research
1818
laboratories, academia, and industry. They are managed by a dedicated team at the
19-
National Renewable Energy Lab. Our objective is to ensure that OpenFAST and FAST.Farm
19+
National Laboratory of the Rockies. Our objective is to ensure that OpenFAST and FAST.Farm
2020
are sustainable software that are well tested and well documented. If you'd like
2121
to contribute, see the `Developer Documentation <https://openfast.readthedocs.io/en/dev/source/dev/index.html>`_
2222
and any open GitHub issues with the
@@ -30,11 +30,11 @@ tag.
3030
Part of the WETO Stack
3131
----------------------
3232

33-
OpenFAST is primarily developed with the support of the U.S. Department of Energy and is part of the `WETO Software Stack <https://nrel.github.io/WETOStack>`_. For more information and other integrated modeling software, see:
33+
OpenFAST is primarily developed with the support of the U.S. Department of Energy and is part of the `WETO Software Stack <https://NatLabRockies.github.io/WETOStack>`_. For more information and other integrated modeling software, see:
3434

35-
* `Portfolio Overview <https://nrel.github.io/WETOStack/portfolio_analysis/overview.html>`_
36-
* `Entry Guide <https://nrel.github.io/WETOStack/_static/entry_guide/index.html>`_
37-
* `OpenFAST Workshop <https://nrel.github.io/WETOStack/workshops/user_workshops_2024.html#openfast-ecosystem>`_
35+
* `Portfolio Overview <https://NatLabRockies.github.io/WETOStack/portfolio_analysis/overview.html>`_
36+
* `Entry Guide <https://NatLabRockies.github.io/WETOStack/_static/entry_guide/index.html>`_
37+
* `OpenFAST Workshop <https://NatLabRockies.github.io/WETOStack/workshops/user_workshops_2024.html#openfast-ecosystem>`_
3838

3939

4040
FAST v8 - OpenFAST
@@ -155,18 +155,18 @@ Please use `GitHub Issues <https://github.com/OpenFAST/OpenFAST/issues>`_ to:
155155
* report bugs
156156
* request code enhancements
157157

158-
Users and developers may also be interested in the NREL National Wind
159-
Technology Center (NWTC) `phpBB Forum <https://wind.nrel.gov/forum/wind/>`_,
158+
Users and developers may also be interested in the NLR National Wind
159+
Technology Center (NWTC) `Forum <https://forums.nrel.gov/>`_,
160160
which is still maintained and has a long history of FAST-related questions
161161
and answers.
162162

163163
Acknowledgments
164164
---------------
165165

166166
OpenFAST and FAST.Farm are maintained and developed by researchers and software
167-
engineers at the `National Renewable Energy Laboratory <http://www.nrel.gov/>`_
168-
(NREL), with support from the US Department of Energy's Wind Energy Technology
169-
Office. NREL gratefully acknowledges development contributions from the following
167+
engineers at the `National Laboratory of the Rockies <http://www.nlr.gov/>`_
168+
(NLR), with support from the US Department of Energy's Wind Energy Technology
169+
Office. NLR gratefully acknowledges development contributions from the following
170170
organizations:
171171

172172
* Envision Energy USA, Ltd

docs/changelogs/ReleaseProcess.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
3. delete `rc-` branch if merging from one
3434

3535
### Windows executables build and upload
36+
NOTE: if available, use the `deploy` action on GitHub to build all the executables and upload those instead of this process. This manual process is for when the GH action doesn't work.
37+
3638
After posting and tagging release
3739
1. Pull main and tags
3840
* `git fetch --tags OpenFAST`

docs/changelogs/template.md

Lines changed: 188 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,188 @@
1+
**Feature or improvement description**
2+
Pull request to merge `dev` into `main` for release version X.Y.Z
3+
4+
See the milestone and project pages for additional information
5+
6+
https://github.com/OpenFAST/openfast/milestone/XYZ
7+
8+
Test results, if applicable
9+
See GitHub Actions
10+
11+
### Release checklist:
12+
- [ ] Update the documentation version in docs/conf.py
13+
- [ ] Update the versions in docs/source/user/api\_change.rst
14+
- [ ] Update version info in openfast\_io/pyproject.toml (`openfast_io` package)
15+
- [ ] Update version info in glue-codes/python/pyproject.toml (`pyOpenFAST` package for testing)
16+
- [ ] Verify readthedocs builds correctly
17+
- [ ] Create an annotated tag in OpenFAST during merge (mark as most recent if necessary)
18+
- [ ] Create a merge commit in r-test and add a corresponding annotated tag
19+
- [ ] Upload Docker image
20+
- [ ] Compile executables for Windows builds
21+
- [ ] `AeroDisk_Driver_x64.exe`
22+
- [ ] `AeroDyn_Driver_x64.exe`
23+
- [ ] `AeroDyn_Driver_x64_OpenMP.exe`
24+
- [ ] `AeroDyn_Inflow_c_binding_x64.dll`
25+
- [ ] `AeroDyn_Inflow_c_binding_x64_OpenMP.dll`
26+
- [ ] `BeamDyn_Driver_x64.exe`
27+
- [ ] `DISCON.dll (x64)`
28+
- [ ] `DISCON_ITIBarge.dll (x64)`
29+
- [ ] `DISCON_OC3Hywind.dll (x64)`
30+
- [ ] `FAST.Farm_x64.exe`
31+
- [ ] `FAST.Farm_x64_OMP.exe`
32+
- [ ] `FAST_SFunc.mexw64`
33+
- [ ] `HydroDynDriver_x64.exe`
34+
- [ ] `HydroDyn_C_Binding_x64.dll`
35+
- [ ] `IinflowWind_c_binding_x64.dll`
36+
- [ ] `InflowWind_Driver_x64.exe`
37+
- [ ] `InflowWind_Driver_x64_OpenMP.exe`
38+
- [ ] `MoorDyn_Driver_x64.exe`
39+
- [ ] `MoorDyn_c_binding_x64.dll`
40+
- [ ] `OpenFAST-Simulink_x64.dll`
41+
- [ ] `openfast_x64.exe`
42+
- [ ] `SeaStateDriver_x64.exe`
43+
- [ ] `SeaState_c_binding_x64.dll`
44+
- [ ] `SimpleElastoDyn_x64.exe`
45+
- [ ] `SubDyn_x64.exe`
46+
- [ ] `Turbsim_x64.exe`
47+
- [ ] `UnsteadyAero_x64.exe`
48+
49+
50+
51+
# Release Overview
52+
------
53+
54+
55+
56+
### Contribution Acknowledgements
57+
58+
### Statistics (since X.Y.Z)
59+
60+
61+
62+
# Changelog (from X.Y.Z)
63+
------
64+
65+
## General
66+
67+
### Build systems
68+
69+
#### CMake
70+
71+
72+
#### Visual Studio (Windows)
73+
74+
75+
76+
### Docker
77+
78+
79+
### Documentation
80+
81+
82+
83+
84+
## Solvers
85+
86+
### FAST.Farm
87+
88+
89+
### OpenFAST
90+
91+
92+
### OpenFAST interfaces
93+
94+
#### OpenFASTcpp
95+
96+
97+
#### Simulink
98+
99+
100+
101+
## Modules
102+
103+
### Multiple
104+
105+
106+
### AeroDisk
107+
108+
109+
### AeroDyn
110+
111+
#### Unsteady
112+
113+
114+
115+
#### OLAF
116+
117+
118+
#### AeroDyn Driver / AeroDyn\_Inflow\_C\_Bindings interface
119+
120+
121+
122+
### ElastoDyn
123+
124+
125+
### ExtInflow
126+
127+
128+
### ExtLoads
129+
130+
131+
### HydroDyn
132+
133+
134+
### InflowWind
135+
136+
137+
### MAP++
138+
139+
140+
### MoorDyn
141+
142+
143+
### NWTC-Library
144+
145+
146+
### Registry
147+
148+
149+
### SeaState
150+
151+
152+
### Simplified-ElastoDyn
153+
154+
155+
### SubDyn
156+
157+
158+
159+
## Testing and input file processing
160+
161+
### openfast_io
162+
163+
164+
### GitHub actions
165+
166+
167+
### Regression and Unit testing
168+
169+
170+
171+
172+
## Input file changes
173+
174+
175+
## Known issues
176+
177+
178+
179+
# Precompiled Windows Binaries
180+
The binary files in this release were built with the Visual Studio solution files distributed with OpenFAST (not using cmake), using
181+
182+
- Intel Fortran Essentials 2025.3.0.333
183+
- Microsoft Visual Studio 2022 Version 17.14.23.
184+
- MATLAB 2025.2.999 (R2025b)
185+
- Executables with `_OpenMP` or `_OMP` in the name are built with OpenMP libraries and linked with dynamic libraries.
186+
- You will need [this Intel Fortran redistributable package](https://registrationcenter-download.intel.com/akdlm/IRC_NAS/0dc56e76-d2c0-4bb8-9c83-c2ee3952b855/w_ifx_runtime_p_2025.2.1.1001.exe) installed to use these executables if you do not already have Intel Fortran OneAPI 2024 installed. See the installation instructions [here](https://software.intel.com/content/www/us/en/develop/articles/redistributable-libraries-for-intel-c-and-fortran-2022-compilers-for-windows.html).
187+
188+
**The other OpenFAST executables DO NOT require these redistributable libraries to be installed. Instead, they were built with static libraries.**

0 commit comments

Comments
 (0)