Skip to content

Conversation

@andrew-platt
Copy link
Collaborator

@andrew-platt andrew-platt commented Jul 8, 2025

Feature or improvement description
Pull request to merge rc-4.1.1 into main and create a tagged release for v4.1.1

See the milestone and project pages for additional information

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

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.1.0)

Overview

This release includes several bug fixes and improvements for OpenFAST, GitHub actions, and the C++ interface.

General

GitHub actions

#2883 Gh actions debug (@deslaughter)

Conda deployment

#2891 Minor fixes for v4.1 for smoother conda deployment (@gbarter)

Python packages

pyOpenFAST

#2907 pyOpenFAST: remove unnecessary files, move examples (@andrew-platt)

Module changes

HydroDyn

#2880 HD bug fix: avoid division by zero with MHstLMod=2 (@luwang00)

ServoDyn

#2908 SrvD: add numbering to StC echo files (@andrew-platt)

Code API changes

CPP interface

#2881 Fix FAST_CreateCheckpoint in c++ interface (@marchdf)

HydroDyn c-binding library interface

#2894 Fix segfault when SeaState OutSwitch=2 and no output channels (@andrew-platt)

Testing

Updated driver_utilities.py to allow testing to run in current build directory which might not be build (included in #2894 above)

Input file changes

No input file changes since v4.1.0

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.
  • 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.

luwang00 and others added 30 commits March 11, 2025 12:19
FAST_CreateCheckpoint expects a fixed sized char buffer of size 1025:
`CHARACTER(KIND=C_CHAR), INTENT(IN ) ::
CheckpointRootName_c(IntfStrLen)`. However the c++ is taking a 1 char
string and sending a pointer to that data to the Fortran. The Fortran
`TRANSFER` function then throws a good old:

```
==2684227==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x5120002144e8 at pc 0x557e98358a61 bp 0x7ffc0f87ea90 sp 0x7ffc0f87e248
READ of size 1025 at 0x5120002144e8 thread T0
    #0 0x557e98358a60 in memcpy /mnt/vdb/home/jrood/goose/spack/var/spack/stage/spack-stage-llvm-17.0.6-fzo52dlnsdgyyb3wgxrrlxmnvepk6esa/spack-src/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors_memintrinsics.inc:115:5
    #1 0x7f0d5b25c311 in FAST_CreateCheckpoint /mnt/vdb/home/mhenryde/exawind/exawind-manager/environments/nalu-wind-dev/openfast/modules/openfast-library/src/FAST_Library.f90:445:76
    #2 0x7f0d5f5ea22e in fast::OpenFAST::step(bool)
    /mnt/vdb/home/mhenryde/exawind/exawind-manager/environments/nalu-wind-dev/openfast/glue-codes/openfast-cpp/src/OpenFAST.cpp:1436:17
```

This PR fixes this error.
HD bug fix: avoid division by zero with MHstLMod=2
Add space for clarity

Co-authored-by: Copilot <[email protected]>
GH actions - fix paths and change to artifacts instead of cache so `requirements.txt` is reliably found
Cross merge `dev` to rc-4.1.1
Fix FAST_CreateCheckpoint in c++ interface
…Switch2

B/hd cbind segfault ss out switch2
andrew-platt and others added 4 commits July 8, 2025 11:50
If multiple StCs were specified, the echo files would get overwritten
* pyOpenFAST: remove unnecessary files, keep some examples.

* .gitignore __init__.py files
@andrew-platt
Copy link
Collaborator Author

  • Merge r-test rc-4.1.1
  • update pointer to r-test

Copy link
Contributor

@mayankchetan mayankchetan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changelogs, version changes and of_io look good to me! thanks @andrew-platt!

@andrew-platt andrew-platt removed the request for review from jjonkman July 8, 2025 22:14
@andrew-platt andrew-platt merged commit 4350a49 into main Jul 8, 2025
29 checks passed
@andrew-platt andrew-platt deleted the rc-4.1.1 branch July 9, 2025 02:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants