Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 4 additions & 2 deletions docs/changelogs/ReleaseProcess.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
3. Update the versions in docs/source/user/api_change.rst
4. Verify readthedocs builds correctly
5. Update `openfast_io/pyproject.toml`
6. Update `glue-codes/python/pyproject.toml` (for `pyOpenFAST`)

****

Expand Down Expand Up @@ -45,7 +46,7 @@ After posting and tagging release
git update-index --assume-unchanged vs-build/MAPlib/MAP_dll.vcxproj vs-uild/Registry/FAST_Registry.vcxproj
```

4. Compile executables for Windows builds
4. Compile executables for Windows builds (manual process - use GH actions `deploy` if possible)
* Run one of the executables and check the version info. Muck about with VS if there is an issue.
* Also run `dumpbin.exe /dependents <exe>.exe` to check static linking
* NOTE: build the simulink last -- it messes up some things otherwise
Expand All @@ -71,6 +72,7 @@ After posting and tagging release
- [ ] `OpenFAST-Simulink_x64.dll` -- change `additional dependencies` in the `OpenFAST-Simulink` project in `FAST` to point to correct install of MATLAB
- [ ] `openfast_x64.exe`
- [ ] `SeaStateDriver_x64.exe`
- [ ] `SeaState_c_binding_x64.dll`
- [ ] `SimpleElastoDyn_x64.exe`
- [ ] `SubDyn_x64.exe`
- [ ] `Turbsim_x64.exe`
Expand All @@ -82,6 +84,6 @@ After posting and tagging release
```
## Post-release
### Docker Image push to ghcr.io
1. Build latest `OpenFAST/main` image locally.
1. Build latest `OpenFAST/main` image locally (GH actions fails due to memory usage)
2. Push image to ghcr.io/openfast/openfast using tags `latest` and `<version>`

213 changes: 213 additions & 0 deletions docs/changelogs/v4.1.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,213 @@
**Feature or improvement description**
Pull request to merge `rc-4.1.0` into `main` and create a tagged release for v4.1.0

See the milestone and project pages for additional information

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

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
- [ ] Update version info in openfast\_io/pyproject.toml (`openfast_io` package)
- [ ] Update version info in glue-codes/python/pyproject.toml (`pyOpenFAST` package for testing)
- [ ] Verify readthedocs builds correctly
- [ ] Create an annotated tag in OpenFAST during merge (mark as most recent if necessary)
- [ ] Create a merge commit in r-test and add a corresponding annotated tag
- [ ] Upload Docker image
- [ ] Compile executables for Windows builds
- [ ] `AeroDisk_Driver_x64.exe`
- [ ] `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`
- [ ] `IinflowWind_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`
- [ ] `SeaStateDriver_x64.exe`
- [ ] `SeaState_c_binding_x64.dll`
- [ ] `SimpleElastoDyn_x64.exe`
- [ ] `SubDyn_x64.exe`
- [ ] `Turbsim_x64.exe`
- [ ] `UnsteadyAero_x64.exe`

# Changelog (from 4.0.5)

## Overview

This release removes the SuperController from _FAST.Farm_ and adds several important new features including direct coupling of _MoorDyn_ to _SeaState_, rectangular members in _HydroDyn_ and _SubDyn_, and a new _pyOpenFAST_ module for calling c-binding libraries directly from Python.
This release also includes several bug fixes and improvements for _AeroDyn_, _BeamDyn_, _MoorDyn_, _OpenFAST_, several various c-binding libary interfaces, and GitHub actions.


## General

### CMake build system

#2632 Reduce optimization level for `FAST*_Types.f90` with gcc (@andrew-platt)

### GitHub actions

#2636 Add job to build Windows executables to deploy.yml (@deslaughter)

#2771 Update GH conda-deploy action to use Ubuntu 24.04 (@andrew-platt)


### Visual Studio build system

#2866 VS build: fix MD, add `SeaStateS_c_binding` and update GH `deploy` action (@andrew-platt)



## Python packages

### openfast_io

#2658 `openfast_IO` MoorDyn compatibility (@RyanDavies19)


### pyOpenFAST
This is a new python package that interfaces the c-bindings library versions of _OpenFAST_ with Python. Users who want to call standalone _OpenFAST_ modules from Python will want to look into using this package. Note that the documentation is limited at this time.

This package is also used in testing (see [documentation on testing environments]([https://openfast.readthedocs.io/en/main/source/testing/regression_test.html#testing-environment))

#2680 Refactor the Aerodyn/Inflowwind Python interface to the C-bindings interface (@faisal-bhuiyan)

#2719 Python infrastructure improvements (new pyOpenFAST package) (@rafmudaf)



## Solvers

### FAST.Farm

#2729 Remove supercontroller from FAST.Farm (@abhineet-gupta)


### OpenFAST

#2671 Avoid ending program when called as a shared library (@bjonkman)

#2705 MoorDyn-SeaState Coupling (OpenFAST and FAST.Farm) (@RyanDavies19)

#2760 bug fix: Adjust steady-state solver small angle assumptions (@bjonkman)


## Interfaces

### cpp interface



## Module changes

### multiple modules

#2770 Bug fix for Failed0 error checking functions (@rafmudaf)


### AeroDyn

#2848 Bug fix: remove spaces in OLAF's UA summary file name (@bjonkman)


### BeamDyn

#2642 [BugFix] BD: variable passing in `Calc_RR0mEta_rho` (@bjonkman, @andrew-platt)


### HydroDyn

#2646 Implementation of rectangular members in HD and SD (@luwang00)

#2663 HydroDyn C-binding: Added mass matrix (@luwang00)

#2787 HD-cbind: Add HydroDyn input files handle (@wenchaoyu, @andrew-platt)

#2865 Reduce memory requirement in HydroDyn initialization (@bjonkman)


### IceFlow


### MoorDyn

#2746 MoorDyn bugfixes (@RyanDavies19)

#2791 MD cbind: correction to description of mesh point mapping (@andrew-platt)

#2794 MoorDyn wave directional spreading and custom current profile if no SeaState current (@RyanDavies19)


### SeaState

#2720 Adds first pass SeaState C Binding interface (@rafmudaf)


### ServoDyn

#2798 Docs: correct Bladed Interface channel 63 description (@andrew-platt)


### SubDyn

#2646 (see above in HydroDyn)

### TurbSim

#2808 [BugFix] TurbSim calculating grid bottom location (@ptrbortolotti)


## Documentation

#2867 Docs: update info on testing (with `pyOpenFAST` module) (@andrew-platt)

#2850 Docs Update for the New Rectangular Members in HydroDyn and SubDyn (@luwang00)


## Typo fixes in code comments
There have been several "fluff" pull requests with only typo fixes and no code changes.

#2858 Fix Typos in Comments and Log Messages for Flexural and Crushing Ice Failure Initialization (@kilavvy)


## Regression Testing

#2765 MHK RM1: reduce HD resolution (@andrew-platt)


## Input file changes
This release brings several input file changes including the FAST.Farm (removal of supercontroller sections), HydroDyn (new sections for rectangular members, revised members table), SubDyn (new rectangular cross-section table, and additional columns in other tables).
A list of changes can be found here: https://openfast.readthedocs.io/en/main/source/user/api_change.html. However, we recommend that if you start by comparing to the complete set of input files found in the regression tests: https://github.com/OpenFAST/r-test/tree/v4.1.0 (example input files from the regression testing)


## Known issues
There are several issues that have not been addressed in this release due to time constraints, but will be addressed in future releases. These include:

- No visualization of rectangular members from _HydroDyn_ or _SubDyn_ through the VTK output options
- Missing and broken features from several c-binding library interfaces:
- the _AeroDyn\_Inflow\_c-binding_ library interface does not allow for coupling to the tower. This will require an interface update.
- the _HydroDyn\_c-binding_ library interface does not currently support vizualization. This will require an interface update.
- the `InitNodePositions` input to _HydroDyn\_c-binding_ library interface does not currently work with any non-zero `x` or `y` coordinates (non-zero `z` is ok)
- the _MoorDyn\_c-binding_ library interface does not currently support vizualization. This will require an interface update.
- error messages from c-binding library interfaces will get truncated to 1024 characters. A fix is nearly ready, but will have to wait until the next release.
- There are leftover unused and incomplete files from development in the `glue-codes/python` directory. These will be removed later.
- A `glue-codes/labview/src/WaveTank.f90` file is included in this release, but it is incomplete and untested. This is a placeholder for internal development work that may be released in complete form at a later date.
- The GitHub `deploy` action to build Windows executables does not currently catch failed builds. This might be addressed at a later date. We are manually checking these builds for now.
- Documentation on the new _pyOpenFAST_ module is incomplete. Partial documentation exists on how to use it in regression testing, but no documentation or examples exist on using it to call c-bindings modules from Python.
- Documentation is incomplete for _HydroDyn_, _SubDyn_, and a few other modules.
4 changes: 2 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,9 +136,9 @@ def runDoxygen(sourcfile, doxyfileIn, doxyfileOut):
# built documents.
#
# The short X.Y version.
version = u'4.0'
version = u'4.1'
# The full version, including alpha/beta/rc tags.
release = u'v4.0.5'
release = u'v4.1.0'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
2 changes: 1 addition & 1 deletion docs/source/user/api_change.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ The changes are tabulated according to the module input file, line number, and f
The line number corresponds to the resulting line number after all changes are implemented.
Thus, be sure to implement each in order so that subsequent line numbers are correct.

OpenFAST v4.0.3 to OpenFAST v4.1.0
OpenFAST v4.0.5 to OpenFAST v4.1.0
----------------------------------
Supercontroller module has been removed from FAST.Farm.

Expand Down
2 changes: 1 addition & 1 deletion glue-codes/python/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "pyOpenFAST"
version = "0.1"
version = "4.1.0"
description = "Python interface to OpenFAST FAST Library and physics modules."
readme = "README.md"
requires-python = ">=3.9"
Expand Down
2 changes: 1 addition & 1 deletion openfast_io/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ build-backend = "hatchling.build"
[project]
name = "openfast_io"
# dynamic = ["version"]
version = "4.0.5"
version = "4.1.0"
description = "Readers and writers for OpenFAST files."
license = {file = "../LICENSE"}
authors = [
Expand Down