Skip to content

Commit

Permalink
Merge pull request #2474 from OpenFAST/rc-3.5.4
Browse files Browse the repository at this point in the history
Release 3.5.4
  • Loading branch information
andrew-platt authored Oct 29, 2024
2 parents 43d3d2c + 8136967 commit 6a63db7
Show file tree
Hide file tree
Showing 44 changed files with 23,553 additions and 1,022 deletions.
36 changes: 18 additions & 18 deletions .github/workflows/automated-dev-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
# cache: 'pip'
- name: Install dependencies
run: |
pip install -r requirements.txt
Expand Down Expand Up @@ -128,7 +128,7 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
# cache: 'pip'
- name: Install dependencies
run: |
pip install -r requirements.txt
Expand Down Expand Up @@ -173,7 +173,7 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
# cache: 'pip'
- name: Install dependencies
run: |
pip install -r requirements.txt
Expand Down Expand Up @@ -226,7 +226,7 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
# cache: 'pip'
- name: Install dependencies
run: |
pip install -r requirements.txt
Expand Down Expand Up @@ -263,7 +263,7 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
# cache: 'pip'
- name: Install dependencies
run: |
pip install -r requirements.txt
Expand Down Expand Up @@ -300,7 +300,7 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
# cache: 'pip'
- name: Install dependencies
run: |
pip install -r requirements.txt
Expand Down Expand Up @@ -339,7 +339,7 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
# cache: 'pip'
- name: Install dependencies
run: |
pip install -r requirements.txt
Expand Down Expand Up @@ -400,7 +400,7 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
# cache: 'pip'
- name: Install dependencies
run: |
pip install -r requirements.txt
Expand Down Expand Up @@ -455,7 +455,7 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
# cache: 'pip'
- name: Install dependencies
run: |
pip install -r requirements.txt
Expand Down Expand Up @@ -513,7 +513,7 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
# cache: 'pip'
- name: Install dependencies
run: |
pip install -r requirements.txt
Expand Down Expand Up @@ -560,7 +560,7 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
# cache: 'pip'
- name: Install dependencies
run: |
pip install -r requirements.txt
Expand Down Expand Up @@ -612,7 +612,7 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
# cache: 'pip'
- name: Install dependencies
run: |
pip install -r requirements.txt
Expand Down Expand Up @@ -661,7 +661,7 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
# cache: 'pip'
- name: Install dependencies
run: |
pip install -r requirements.txt
Expand Down Expand Up @@ -710,7 +710,7 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
# cache: 'pip'
- name: Install dependencies
run: |
pip install -r requirements.txt
Expand Down Expand Up @@ -759,7 +759,7 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
# cache: 'pip'
- name: Install dependencies
run: |
pip install -r requirements.txt
Expand Down Expand Up @@ -808,7 +808,7 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
# cache: 'pip'
- name: Install dependencies
run: |
pip install -r requirements.txt
Expand Down Expand Up @@ -857,7 +857,7 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
# cache: 'pip'
- name: Install dependencies
run: |
pip install -r requirements.txt
Expand Down Expand Up @@ -906,7 +906,7 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
# cache: 'pip'
- name: Install dependencies
run: |
pip install -r requirements.txt
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,41 @@
# This workflow builds an OpenFAST docker image for the linux/amd64 and linux/aarch64 architectures on merge into
# `main` from a release candidate branch. The image is tagged both with "latest" and the version extracted from the
# release candidate branch's name (e.g. "rc-3.5.3") before being pushed to the `nrel/openfast` repository. The build
# cache is stored in GitHub actions.
name: build-docker-image-automatic
# This workflow uploads the `openfast` python package to PyPI before building an OpenFAST docker image for the
# linux/amd64 and linux/aarch64 architectures on release. The image is tagged both with "latest" and the version
# extracted from the release candidate branch's name (e.g. "rc-3.5.3") before being pushed to the `nrel/openfast`
# repository. The build cache is stored in GitHub actions.
name: deploy

on:
workflow_dispatch:

release:
types:
- released

jobs:
build-and-push:
publish-to-pypi:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read

steps:
- name: Checkout Repository
uses: actions/checkout@v4

- name: Install Poetry
uses: snok/[email protected]

- name: Build a binary wheel and a source tarball
run: poetry build
working-directory: openfast_python

- name: Publish package distributions to PyPI
uses: pypa/[email protected]
with:
packages-dir: openfast_python/dist


docker-build-and-push:
runs-on: ubuntu-latest
timeout-minutes: 300
env:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ vs-build/
.fortls
.devcontainer
.idea
.env

# backup files
*.asv
Expand Down
8 changes: 6 additions & 2 deletions cmake/OpenfastFortranOptions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,9 @@ endmacro(set_fast_intel_fortran)
# arch
#
macro(set_fast_intel_fortran_posix)
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fpic -fpp")
# Set size where temporary are stored on heap instead of stack
# 1000: size in kB (1 MB)
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fpic -fpp -heap-arrays 1000")

# debug flags
if(CMAKE_BUILD_TYPE MATCHES Debug)
Expand Down Expand Up @@ -201,7 +203,9 @@ macro(set_fast_intel_fortran_windows)
# Turn off specific warnings
# - 5199: too many continuation lines
# - 5268: 132 column limit
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} /Qdiag-disable:5199,5268 /fpp")
# Set size where temporary are stored on heap instead of stack
# 1000: size in kB (1 MB)
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} /Qdiag-disable:5199,5268 /fpp /heap-arrays:1000")

# If double precision, make constants double precision
if (DOUBLE_PRECISION)
Expand Down
96 changes: 96 additions & 0 deletions docs/changelogs/v3.5.4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
**Feature or improvement description**
Pull request to merge `rc-3.5.4` into `main` and create a tagged release for v3.5.4.

See the milestone and project pages for additional information

https://github.com/OpenFAST/openfast/milestone/14

Test results, if applicable
See GitHub Actions

### Release checklist:
- [ ] Update the documentation version in docs/conf.py
- [ ] Update the versions in docs/source/user/api_change.rst
- [ ] Verify readthedocs builds correctly
- [ ] Create a tag in OpenFAST
- [ ] Create a merge commit in r-test and add a corresponding annotated tag
- [ ] Compile executables for Windows builds
- [ ] AeroDyn_Driver_x64.exe
- [ ] AeroDyn_Driver_x64_OpenMP.exe
- [ ] AeroDyn_Inflow_C_Binding_x64.dll
- [ ] AeroDyn_Inflow_C_Binding_x64_OpenMP.dll
- [ ] BeamDyn_Driver_x64.exe
- [ ] DISCON.dll (x64)
- [ ] DISCON_ITIBarge.dll (x64)
- [ ] DISCON_OC3Hywind.dll (x64)
- [ ] DISCON_SC.dll (x64)
- [ ] FAST.Farm_x64.exe
- [ ] FAST.Farm_x64_OMP.exe
- [ ] FAST_SFunc.mexw64
- [ ] HydroDynDriver_x64.exe
- [ ] HydroDyn_C_Binding_x64.dll
- [ ] IfW_C_Binding_x64.dll
- [ ] InflowWind_Driver_x64.exe
- [ ] InflowWind_Driver_x64_OpenMP.exe
- [ ] MoorDyn_Driver_x64.exe
- [ ] MoorDyn_C_Binding_x64.dll
- [ ] OpenFAST-Simulink_x64.dll
- [ ] openfast_x64.exe
- [ ] Turbsim_x64.exe

# Changelog

## Overview

This release includes performance improvements for BeamDyn (up to 30% speed increase), python file readers and writers from WEIS, and a fix for stack overflows with FAST.Farm (Intel compilation). A few other minor updates are included as outlined below.

Anyone using BeamDyn will want to update to this version.


## General

### Build systems

#2311 Always build `openfastcpplib` as shared. Use `BUILD_OPENFAST_CPP_DRIVER` to disable `openfastcpp` executable (@deslaughter)
#2173 Fix crash in `MAP_End` when using Intel's new icx compiler and disable caching in setup-python GH action (@deslaughter)


### Python file readers/writers

#2188 Add WEIS file readers and writers (@cortadocodes and @mayankchetan)


## Solvers

### FAST.Farm

#2452 Fix for some stack overflow issues with FAST.Farm when copying large amounts of wind data (closes #2053) (@andrew-platt)
#2340 Add `!$ OMP critical` around file opening for VTK to prevent file collision (@andrew-platt)


## Module changes

### BeamDyn

#2399 BeamDyn performance improvements (@deslaughter)


### ElastoDyn

#2321 Backport of #2317: Explicitly initialize `ED` `RtHS` to zero -- corrects issue with inccorect linearization results (@andrew-platt)


### HydroDyn
#2397 HD bug fix: prevent array index out-of-bound error in `HDOut_MapOutputs` when more than 9 potential-flow bodies are present (@luwang00)

### NWTC-Library
#2389 FileInfoType: increase line length allowed (@andrew-platt)

## Input file changes

No input files change with this release, as this only includes minor bugfixes.

Full list of changes: https://openfast.readthedocs.io/en/main/source/user/api_change.html

Full input file sets: https://github.com/OpenFAST/r-test/tree/v3.5.4 (example input files from the regression testing)

2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ def runDoxygen(sourcfile, doxyfileIn, doxyfileOut):
# The short X.Y version.
version = u'3.5'
# The full version, including alpha/beta/rc tags.
release = u'v3.5.3'
release = u'v3.5.4'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
Loading

0 comments on commit 6a63db7

Please sign in to comment.