Skip to content

Conversation

@andrew-platt
Copy link
Collaborator

@andrew-platt andrew-platt commented Jan 23, 2026

Feature or improvement description
Pull request to merge dev into main and create a tagged release for v4.2.0

See the milestone and project pages for additional information

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

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

Release Overview


Contribution Acknowledgements

Statistics (since X.Y.Z)

Changelog (from X.Y.Z)


#3133 [Bug Fix] Fix the element size calculation in AeroAcoustics module (@bjonkman)

#3144 [Bug Fix] Fix the element size calculation in AeroAcoustics module (@andrew-platt)

#3145 WD: Ct_avg was not set when polar wake used giving RtCtAvgT (@andrew-platt)

Issue #2947 Reenable use of MAP when using Checkpoint files. (@deslaughter)

Issue #2979 Docs: remove references to pfunit (@andrew-platt)

General

Build systems

CMake

#3163 AA driver: add driver compile to cmake (@andrew-platt)

Visual Studio (Windows)

#2922 Update Visual Studio compile settings for C Binding interfaces (@rafmudaf)

Documentation

#3015 Fix readthedocs copyright year, add link to docs when calling openfast help (@mayankchetan)

#3083 docs: update info on VS versions and IFX

#3109 Docs: updates to StC docs (@andrew-platt)

#3166 Update project description from NREL to NLR (@andrew-platt)

Solvers

FAST.Farm

#2952 FAST.Farm: skip writing invalid VTK slices (@andrew-platt)

#3031 FF: align initial wake grid with the blades (@andrew-platt)

#3104 FF WAT: change default WAT_Scalebox to True (@andrew-platt)

OpenFAST

#3009 Linearization: Fix pointer to dUdy block for SD inputs to MAP outputs (@bjonkman)

#3111 Add error message when using BeamDyn with AeroMap (@deslaughter)

#3146 Reenable writing check point files when using the MAP module (@deslaughter)

#3156 Linear Trim Solution: update range calculation when NLinTimes=1 (@bjonkman)

OpenFAST interfaces

OpenFAST library

#2965 FASTlib: missing error handling on FAST_CFD_WriteOutput (@andrew-platt)

#3064 FASTlib: fix typo in error message

c-bindings interfaces

#2974 Add registry file for AeroDyn_Inflow_C_Binding (@andrew-platt)

#2997 Updates to SeaState c-bindings library interface (@andrew-platt)

#3108 Updates to c-bindings (@andrew-platt)

Modules

Multiple

#2975 Minor numerical improvements (@bjonkman)

AeroDyn

AeroAcoustics

#2948 AeroAcoustics code cleanup (@bjonkman)

#3134 [BUG FIX] AeroAcoustics module angle range (@bjonkman)

#3149 AeroAcoustics cleanup + added driver code (@bjonkman)

AWAE

#3025 [BugFix] FF awae: set v_plane=0 when center of wake plane leaves domain (@andrew-platt)

ElastoDyn

#2953 ED: Implemented the ability to add concentrated masses to the tower (@luwang00)

#2981 Allow separate teeter inertia for 2-bladed turbines (@abhineet-gupta)

HydroDyn

#2895 HD: Additional transverse drag modeling options for rectangular members (@luwang00)

#3076 Miscellaneous bug fixes for HydroDyn (@luwang00)

#3141 HD: Fixed a bug with PtfmRefztRot (@luwang00)

InflowWind

#3099 ifw flowfield: add box corners to out of bounds message on 4D (@andrew-platt)

MoorDyn

#2946 Changed submergence calculation and added additional rod outputs for input file MoorDyn (@KylerF229)

#2977 Minor MoorDyn improvements (@ryandavies)

#3034 MoorDyn: increase number of attachment points possible for bodies/anchors/points

NWTC-Library

#3148 NWTC Library: update error message with IOSTAT return value (@bjonkman)

SeaState

#3007 Cubic interpolation for SeaState and HydroDyn (@luwang00)

ServoDyn

#3158 SrvD: updates to StC control from DLL (@andrew-platt)

TurbSim

#3020 TurbSim: OpenMP parallelization in factorization and FFT

Wavetank

#3065 New wavetank library for HIL simulations with AD+MD (@andrew-platt)

Testing and input file processing

openfast_io

#2957 More MoorDyn Output Channels in openfast-io chans (@dzalkind)

#3001 prepping for py314 and making requirements less restrictrive (@gbarter)

#3130 Fix FAST_Reader bug when ElastoDyn tower file path is absolute (@louis-papillon)

#3153 FAST_reader.py fix for ServoDyn.dat GenTrq_TLU read (@LKa505)

GitHub actions

#3162 Fix simulink build for Windows in GH Actions (@andrew-platt)

Regression and Unit testing

#3159 Add in yaw friction cases (@andrew-platt)

Input file changes

[TBD] -- there are changes, but not listed in the changelog for some reason. Will add shortly

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

andrew-platt and others added 30 commits September 9, 2025 03:28
- removed: output channel handling from interface (unnecessary as will pipe to file instead)
- make wavefield pointer setting private
- add a registry file for new data organization (not included in build process yet)
- remove ADI_HH_Vel from interface (may add later if needed)
- remove extra `IMPLICIT NONE` statements
- change name SeaSt_GetWaveFieldPointer_C to SeaSt_C_GetWaveFieldPointer (matches convention elsewehre)
- SeaSt_C_GetFluidVelAccDens
- SeaSt_C_GetSurfElev
…eVelAcc

- add acceleration output (similar to `dev-tc` usage)
- I don't see anything that directly uses this.
- SeaSt_C_GetWaveFieldPointer - convert to subroutine, add error handling, add DebugLevel
- SeaSt_C_SetWaveFieldPointer - new routine
- python lib: revisions to support above, and also to support a new regression test (in progress)
making sure to close file handle in ofio turbsim reader
the flag for node in or out of water is sufficient.  The density is constant throughout the water column.
- removed outdated SeaState.py example since it is no longer compatible
- remove WrVTK_inDxy from the interface
- fix some broken error handling
- clears out memory that is allocated within the c-bindings library that the _End routine doesn't catch
these are all subroutine calls, so no returns
Copy link
Collaborator

@jjonkman jjonkman left a comment

Choose a reason for hiding this comment

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

Thanks for getting this release out!

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.

10 participants