Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 3.5.4 #2474

Merged
merged 39 commits into from
Oct 29, 2024
Merged
Show file tree
Hide file tree
Changes from 37 commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
c52e117
Fix crash at exit when using new Intel icx compiler
deslaughter Apr 23, 2024
0f08226
Disable cache in setup-python GH action
deslaughter Apr 23, 2024
2510bc2
Merge pull request #2173 from deslaughter/b/MAP_free_outlist_crash
andrew-platt Apr 24, 2024
d46719a
Update GHCR doc, remove old Dockerfile
mayankchetan May 2, 2024
51b122e
Updates to build instructions example
mayankchetan May 6, 2024
c867e1a
Merge pull request #2183 from mayankchetan/dockerDocs
andrew-platt May 6, 2024
397d1b9
Add WEIS file readers and writers (#2188)
cortadocodes May 21, 2024
cef1e0b
Always build openfastcpplib as shared. Use BUILD_OPENFAST_CPP_DRIVER …
deslaughter Jul 9, 2024
d0f6154
Merge pull request #2311 from deslaughter/f/cpp_api_driver_option
andrew-platt Jul 9, 2024
62b273e
Fix a couple of bugs in NWTC_IO.f90 which cause out of bounds array a…
deslaughter Jul 11, 2024
5f7b3c9
ED: set all values in RtHS to zero during allocation
andrew-platt Jul 11, 2024
517640d
NWTC_IO: initialize all arrays created by AllocAry calls to zero
andrew-platt Jul 12, 2024
6680158
Merge pull request #2321 from andrew-platt/b/backport_2317partial
andrew-platt Jul 15, 2024
75f1e32
Fix docs -- fails on rtd
andrew-platt Jul 19, 2024
0e7774a
Add !$ OMP critical around file opening for VTK
andrew-platt Jul 19, 2024
44ff26d
Merge pull request #2340 from andrew-platt/b/OpenMP_FF_vtk_read_Opt2
andrew-platt Jul 19, 2024
ff67ad4
FileInfoType: increase line length allowed
andrew-platt Aug 23, 2024
d6e3148
Merge pull request #2389 from andrew-platt/f/WideLinesFileInfoType
andrew-platt Aug 23, 2024
d97ee66
HD bug fix: prevent array index out-of-bound error in HDOut_MapOutput…
luwang00 Aug 28, 2024
cca59dc
Merge pull request #2397 from luwang00/b/HD_PFBdy_Output
andrew-platt Aug 29, 2024
6253e3e
BeamDyn, ModMesh, NWTC_Num performance improvements
deslaughter Aug 16, 2024
c8b9848
Fix bug in BeamDyn performance commit
deslaughter Aug 19, 2024
1d313c9
Fix beamdyn_utest incorrect size of m%qp%upp
deslaughter Aug 20, 2024
48a9e87
Fix more bugs in BeamDyn performance improvements
deslaughter Aug 22, 2024
f93ef05
Modfy executeOpenfastLinearRegressionCase.py to skip comparison of nu…
deslaughter Aug 29, 2024
63c9d3b
Revert "Modfy executeOpenfastLinearRegressionCase.py to skip comparis…
deslaughter Sep 18, 2024
56a97f6
Perturb BD rotation states in WM parameters
deslaughter Sep 18, 2024
68423c3
BeamDyn: fix formatting in test_tools.F90
deslaughter Sep 20, 2024
11f1cd3
Update r-test pointer
deslaughter Sep 20, 2024
e1d3cdb
BD: change to LAPACK_GEMM, add note on ignored error handling
andrew-platt Sep 20, 2024
e28e1a0
Merge pull request #2399 from deslaughter/f/bd-perf
andrew-platt Sep 20, 2024
dde75b8
Intel builds: add /heap-arrays:1000 compile flag
andrew-platt Oct 8, 2024
31d281e
Add /heap-arrays:1000 to cmake intel builds
andrew-platt Oct 8, 2024
69f8dff
Merge pull request #2452 from andrew-platt/b/FF_stackOverflow
andrew-platt Oct 21, 2024
a2e0381
Add changelog for 3.5.4
andrew-platt Oct 21, 2024
05a16b2
Update version info in conf.py
andrew-platt Oct 21, 2024
ea16750
Correction to changelog v3.5.4.md
andrew-platt Oct 21, 2024
efad7a3
Missing PRs and Typo in v3.5.4.md
andrew-platt Oct 24, 2024
8136967
Update r-test pointer for 3.5.4
andrew-platt Oct 28, 2024
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
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/install-poetry@v1.3.4

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

- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@v1.8.14
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
92 changes: 92 additions & 0 deletions docs/changelogs/v3.5.4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
**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 inluded as outlined below.

Anyone using BeamDyn will want to update to this version.


## General
andrew-platt marked this conversation as resolved.
Show resolved Hide resolved

### 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)




## 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
32 changes: 28 additions & 4 deletions docs/source/install/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ code,** refer to the table in the :ref:`download_binaries` or :ref:`use_docker`
sections and read the corresponding documentation for specific instructions.
For instructions on compiling, see :ref:`compile_from_source`.

To manipulate OpenFAST files using python, see :ref:`python_wrapper`.


.. _download_binaries:

Download binaries
Expand Down Expand Up @@ -193,19 +196,40 @@ To pull and run with local files:

.. code-block:: shell

docker run --rm -it --volume=/path/to/files:/files ghcr.io/OpenFAST/openfast:latest openfast /files/main.fst
docker run --rm -it --volume=/path/to/files:/files ghcr.io/openfast/openfast:latest openfast /files/main.fst

For running the container interactively:

.. code-block:: shell

docker run --rm -it --volume=/path/to/files:/files ghcr.io/OpenFAST/openfast:latest /bin/bash
docker run --rm -it --volume=/path/to/files:/files ghcr.io/openfast/openfast:latest /bin/bash

To pull a specific release, substitute the version number in place of `latest` in the above commands (i.e. `ghcr.io/openfast/openfast:3.5.3`).

Build your own images
---------------------
You can also build your own custom images using our `Dockerfile` or base your images on ours. See
`here <https://github.com/OpenFAST/openfast/blob/main/share/docker/README.md>`_ for more information on this.
You can also build your own custom images using our `Dockerfile` or base your images on ours. See the
`Docker readme <https://github.com/OpenFAST/openfast/blob/main/share/docker/README.md>`_ for more information on this.


.. _python_wrapper:

Install the ``openfast_io`` python wrapper
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The ``openfast_io`` python package is a wrapper comprising readers and writers for converting OpenFAST files to/from
python objects. You can install it with:

.. code-block::

pip install openfast_io

or

.. code-block::

poetry add openfast_io

For more information and installation options, see the `OpenFAST Python readme <https://github.com/OpenFAST/openfast/blob/main/openfast_python/README.md>`_.


.. _compile_from_source:
Expand Down
Loading