Skip to content

Releases: OpenFAST/openfast

OpenFAST v3.1.0

02 Mar 22:20
3456a64
Compare
Choose a tag to compare

Release Notes

General

#707 Add environmental variables to driver input files
#734 OpenFAST Registry algorithm change: simplify USE statements
Others (#826, #835, #836, #911, #918, #971, #1019)

AeroDyn

#688 AeroDyn driver update for multiple wind turbines, with arbitrary motions and geometries
#729 New features for unsteady aerodynamics modeling
#834 Fix AD Driver unallocated variable error with GCC 11
#863 AeroDyn cleanup
#917 AD15: add nodal outputs for VUnd{xyz}i in global coords
#919 Segment treecode
#920 Update in Computing Default Unsteady Airfoil Coefficients
#922 [BugFix] Minor bugfix in AirfoilInfo
#982 [BugFix] AD15 nacelle reference position was set to hub position
#1001 Remove conditional statement for initialization of BEMT variable
#1009 [BugFix] Nacelle position set inconsistently by glue code and AeroDyn driver

BeamDyn

#996 [BugFix] BeamDyn nodal outputs occasionally segfaulted

FAST Farm

#839 Fix Bug in FAST.Farm Causing Wake Bounce-Back
#860 Fix some memory leaks in FAST.Farm
#895 [BugFix] incorrect init of aggregated output index arrays in FAST.Farm
#923 [BugFix] error handling in AWAE module

HydroDyn

#756 HydroDyn primary input file passing and parsing
#831 HydroDyn Input/Output meshes: change from SWL to MSL for consistency with OF glue code
#838 [BugFix] segmentation fault in HD linearization
#915 [BugFix] Incorrect reference frame used in HD for WAMIT/WAMIT2
#998 Fix HydroDyn summary file nodal data is incorrect when Member is flipped

InflowWind

#720 inflowWind C-bound interface and python wrapper
#769 Fix issue with interpolation that could cause a segmentation fault
#929 Fix issue with uninitialized variables in InflowWind's Direct Scaling method

NWTC Library

#1002 Increase line length in FileInfo parsing methods

OpenFAST Library

#716 [BugFix] Fix C++ API for restart, Error handling in FAST Library, and AeroDyn echo file lock
#958 Lin: CalcSteady, forcing linearization at end of simulation

ServoDyn

#664 Extended Bladed DLL interface, improved summary file including DLL channel usage, and cable controls for MD and SD
#902 Fixes for Intel in debug mode
#930 Stop OpenFAST for Simulink simulation when trim solution has been found

SubDyn

#859 Various improvements to SubDyn

Documentation

#740 Guidelines for performance considerations with Fortran
#753 Migrate the HydroDyn Manual to readthedocs
#805 Include legacy documentation in pdf and MS Word format - General & ElastoDyn
#828 Add instructions for adding new regression test cases
#858 Documentation for ExtPtfm
#951 Corrected the description of SkewModFactor in Documentation
#1020 Document AD outputs

Precompiled binaries

The binary files in this release were built with Visual Studio solution files in OpenFAST (not cmake), using

  • Intel Parallel Studio XE 2019 for Fortran (Update 5) with Microsoft Visual Studio 2017
  • Microsoft Visual C++ 2015 (C) (v1.40), for build without Simulink interface
  • Microsoft Visual C++ 2017 (C) (v1.41), for build in Matlab
  • MATLAB Version: 9.11.0.1837725 (R2021b) Update 2

NOTES

Unlike previous releases of OpenFAST, there is now NO NEED for a MAP++ DLL; this code has been statically linked into the executables.
FAST.Farm_x64_OMP.exe is built with OpenMP libraries and linked with dynamic libraries.
You will need this Intel Fortran redistributable package installed to run FAST.Farm_x64_OMP.exe if you do not already have Intel Fortran 2019 Update 5 installed. See the installation instructions here: https://software.intel.com/content/www/us/en/develop/articles/redistributable-libraries-for-intel-c-and-fortran-2019-compilers-for-windows.html.
You may also need a redistributable library for Visual Studio installed. See instructions here: https://support.microsoft.com/en-us/topic/the-latest-supported-visual-c-downloads-2647da03-1eea-4433-9aff-95f26a218cc0
The other OpenFAST executables DO NOT require these redistributable libraries to be installed. Instead, they were built with static libraries.

OpenFAST v3.0.0

24 Jun 00:25
42a5a81
Compare
Choose a tag to compare

This release includes the following major enhancements:

  • FAST.Farm (#584)
  • ServoDyn structural control submodule (#607)

AeroDyn

#597 AD/AA: Add new TE definition, improve airfoil thickness calculation, simplify input
#647 Add ability to turn unsteady aero back on during a simulation
#648 OLAF improvements for WEIS
#672 Preliminary support for multiple rotors in AeroDyn
#728 AllBldOuts more forgiving and support for 0

BeamDyn

#677 BD Driver bug fix and expand BeamDyn unit testing

ElastoDyn

#589 Allow one-blade turbine model
#653 Add YawBrTV[xyz]p output channels
#736 AllBldOuts more forgiving and support for 0

FAST.Farm

#584 Incorporate FAST.Farm to OpenFAST
#726 Build FAST.Farm when configured via BUILD_FASTFARM
#749 Add Missing Attribute for sc_end in the FAST.Farm Super Controller

HydroDyn

#687 [BugFix] incorrect pitch/roll moments on tapered elements crossing water line
#713 [BugFix] Uninitialized variables in HydroDyn::Morisson calculations

NWTC Library

#668 [BugFix] Sys files for MATLAB
#683 Big fix in NWTC Library unit tests

OpenFAST Library

#744 Avoid gfortran 11 error in FAST_Solver.f90

ServoDyn

#607 ServoDyn Structural control submodule (formerly TMD)
#690 [BugFix] Rename Structural Control driver program
#739 [BugFix] Logic error in glue code for StC loads on SD with no HD

Documentation

#678 Add documentation on input file parsing
#682 Update installation instructions
#696 Update the api_change for MoorDyn after PR #565

C++ Inteface

#703 [BugFix] unallocated AD%y%Rotors when AD14 is used with cpp interface
#709 Remove unused import to C++ driver code

Simulink interface

#702 [BugFix] Correct the expected format of the output channel names array

Build systems

#698 Configure runtime path linking when using shared libraries
#706 Automate incrementing the dev-label conda build
#725 Updated linking dependencies for newer version of Visual Studio
#727 Update rules for Intel OneAPI compiler detection

Testing

#670 Enable regression tests for the C++ API
#686 Bug fix for regression tests without C++ API enabled
#689 Enable types generation in CI
#691 Add SubDyn and AeroDyn drivers regression tests to github action
#717 GH Actions: run module tests with debug build
#718 [BugFix] Raise an error if reg test results contain NaN or infinity
#741 CTest: Add FF reg tests when FF build is enabled


Precompiled binaries

Files built with Visual Studio solution files in OpenFAST, using

  • Intel Parallel Studio XE 2019 for Fortran with Microsoft Visual Studio 2017
  • Microsoft Visual C++ 2015 (C) (v1.40), for build without Simulink interface
  • Microsoft Visual C++ 2017 (C) (v1.41), for build in Matlab
  • MATLAB Version: 9.7.0.1586710 (R2019b) Update 8

NOTES

  • The "-dirty" on the version number of OpenFAST-Simulink_x64.dll is due to updating the Matlab version number in the Visual Studio project file.
  • The executables and OpenFAST-Simulink_x64.dll all require MAP_x64.dll.
  • FAST.Farm_x64_OMP.exe is built with OpenMP libraries and linked with dynamic libraries. You will need this Intel Fortran redistributable package installed to run FAST.Farm_x64_OMP.exe if you do not already have Intel Fortran 2019 Update 5 installed. See the installation instructions here. You may also need a redistributable library for Visual Studio installed. See instructions here. The other OpenFAST executables DO NOT require these redistributable libraries to be installed. Instead, they were built with static libraries.

OpenFAST v2.6.0

12 May 00:02
bbbb1ca
Compare
Choose a tag to compare

This release includes the following major enhancements:

  • Support for flexible floating platforms and expansion of linearization capability (#537)

AeroDyn

#645 Add Eames tower shadow model to AD15
#643 Support primary input file parsing through strings

BeamDyn

#615 [BugFix] Initialized error variables
#636 Add unit tests for BD_ComputeIniNodalCrv

HydroDyn

#537 Flexible floating platforms
#615 Morison performance improvement
#634 Fix HydroDyn linearization matrix multiplication using unallocated arrays

InflowWind

#642 [BugFix] Reenable InflowWind echo file lost in #596

NWTC Library

#615 NWTC Lib bug fixes

Simulink Interface

#641 [BugFix] Simulink error message overwrite

Testing

#637 Use default runner and GFortran 10
#635 Use Intel 2021 Toolset for regression test


Precompiled binaries

These binaries contain the Intel libraries statically linked. Unlike prior releases, no additional software is required in order to use these.

MAP_x64.dll, FAST_SFunc.mexw64, and OpenFAST-Simulink_x64.dll are compiled with Visual Studio solution files in OpenFAST using

  • MATLAB Version: 9.7.0.1586710 (R2019b) Update 8
  • Microsoft Visual C++ 2017 (C),
  • Intel Parallel Studio XE 2019 for Fortran with Microsoft Visual Studio 2017

NOTE: OpenFAST 2.6.0 contains an issue in SysMatlabWindows.f90 that prevents the file from building. This was correct by removing the merge conflict text, so the files have version numbers labeled "-dirty".

OpenFAST v2.5.0

14 Jan 16:50
718d46f
Compare
Choose a tag to compare

General

In v2.5.0, the master branch will become main and this will serve as the "trunk" or primary branch for OpenFAST. This is in line with current best practices in naming conventions (see here).

AeroDyn

  • #538 Update AeroDyn to allow for linearized dynamic stall and dynamic inflow models
  • #538 Disable BEM if TSR <= 1, blend BEM and non-BEM when 1 < TSR < 2, output the proportion of BEM in GeomPhi output channel
  • #590 [BugFix] VTK folder location, Vx sign for OLAF
  • #594 [BugFix] Close a file that was opened but not closed
  • #623 [BugFix] Allocate array to size 0 before getting its size
  • #627 [BugFix] Fix logic for setting size of arrays for airfoil tables

BeamDyn

  • #560 Expand and improve BeamDyn unit tests
  • #564 Documentation updates: Add BD OpenFAST solve section
  • #576 Replace cubic spline with least squares fit
  • #619 [BugFix] Regenerate Types files after registry file changes

FAST Library

  • #550 Make channel length consistent between C and Fortran sides of interface
  • #616 Fix potential memory leak and expand error handling

HydroDyn

  • #582 Use RANLUX pRNG in offshore floating regression test cases
  • #586 Hd Driver - Add Morrison mesh and standalone driver test cases
  • #602 Vectorize a section of VariousWaves_Init (also #606)

InflowWind

  • #578 InflowWind Updates (vertical flow angle, Bladed support, negetive height)
  • #596 Add support for initializing InflowWind with string inputs

MoorDyn

  • #565 Add active tensioning capabilities in MoorDyn
  • #604 [BugFix] Fix position and tension node outputs
  • #619 [BugFix] Regenerate Types files after registry file changes

NWTC Library

  • #588 Add NWTC Library infrastructure for parsing inputs as strings
  • #603 [BugFix] Fix order of variables declaration

Simulink

  • #545 Support for GNU compiler on Linux systems
  • #577 Updated examples for OpenFAST-Simulink Interface
  • #616 Fix potential memory leak and add more error handling

Documentation

  • #558 Refer to conda for installation (docs)
  • #559 Update unit test guidance (docs)
  • #614 [BugFix] Fix api_change.rst (docs)

Build system

  • #547 [BugFix] cmake configuration for Linux + Intel + Debug
  • #583 CMake: set CMP0074 policy explicitly to avoid warnings
  • #595 Disable gfortran stack-reuse compiler option
  • #610 Prevent variable tracking in large Fortran modules

Testing

To use the Windows executables directly, either the Intel Fortran compiler or the Intel MKL redistributable libraries are required. The redistributables for the 2020 Intel Fortran compiler are available here.

OpenFAST v2.4.0

14 Sep 20:31
ff33ca1
Compare
Choose a tag to compare

General

  • #428 Improve CLI for OpenFAST (openfast -v and openfast -h)
  • #350 Add offshore linearization capability
  • #488 Improve Line2-to-Line2 or Line2-to-Point mapping
  • #508 Support RANLUX as an optional pRNG
  • #373 Support for channel names up to 20 characters
  • #373 Allow mode shape visualization - docs
  • #373 Find a periodic steady-state trim solution where linearization will be performed
  • Update documentation
  • Bug fixes

AeroDyn

  • #477 Add free vortex wake module - docs
  • #515 Add aeroacoustics module - docs
  • #373 Allow channel outputs at every blade node - docs

BeamDyn

  • #373 Allow channel outputs at every blade node - docs

ElastoDyn

  • #453 Bug fix: the rotational speed was doubled in the rotational velocity field of the blade output mesh
  • #461 Add output channel for translational displacements of tower top at yaw bearing relative to the reference position
  • #373 Allow channel outputs at every blade node - docs

ExtPtfm

  • #344 Use Craig-Bampton reduction of support structures for sequential load calculations

InflowWind

  • #437 Add new HAWC wind profile input type for reading wind conditions without mean wind speed
  • #437 Allow to shift the HAWC wind upstream or downstream

ServoDyn

  • #456 Properly support yaw rate command integration from controller
  • #460 Fix an issue in updating the states when a yaw maneuver is beginning

r-test

  • #456 Update 5MW BeamDyn blade damping models

To use the Windows executables directly, either the Intel fortran compiler or the Intel MKL redistributable libraries are required. The redistributables for the 2017 Intel Fortran compiler are available here.

OpenFAST v2.3.0

02 Apr 22:09
f2419c5
Compare
Choose a tag to compare

General

  • Documentation fixes and improvements

AeroDyn 15

  • Added option for 2D airfoil interpolation (#213)
  • Add the Gonzalez Model (#226)
  • Suppport node outputs using DBG_OUTS preprocessor directive (#359)
  • Fixed units for axial and tangential inductions

ElastoDyn

  • Add rotational velocity and translational acceleration to blade-node output mesh (#391)

MoorDyn

  • Fix crash when no outputs requested (#404)

ServoDyn

  • Added flap control (#395)

SubDyn

  • Major clean up and use Findloc (#356)
  • Fixed indexing bug SubDyn_Driver (#431)

C++ API

  • Fix memory memory leak during shutdown C++ API (#410)
  • Get rel velocity at actuator nodes (#360)

Testing

  • Improve and expand the GitHub Actions continuous integration system
  • Add interactive regression test plots (#330)

To use the Windows executables directly, either the Intel fortran compiler or the Intel MKL redistributable libraries are required. The redistributables for the 2017 Intel Fortran compiler are available here: https://software.intel.com/sites/default/files/managed/bb/e0/ww_ifort_redist_msi_2017.8.275.zip

OpenFAST v2.2.0

13 Nov 19:41
e4faf27
Compare
Choose a tag to compare

General

  • Simulink interface updated and improved
  • OpenFAST Registry made optional and all module-types files added to version control (#337)
  • Consolidated modules-ext and modules-local into modules and added module README's
  • Solve Option 2 Performance enhancements
    • Parts of the SolveOption2 algorithm have been moved to the the AdvanceStates routine so that BeamDyn, InflowWInd, AeroDyn, and ServoDyn use calculated inputs instead of extrapolations for inputs at t+dt. This change allows BeamDyn to use calculate rotations and AeroDyn/DBEMT to use calculated velocities, which otherwise would require a correction step. In DBEMT this was a problem with high turbulence and low wind speeds.

C++ API

  • Bug fix when building with MPI
  • Fix out-of-bounds memory access in C++ API

BeamDyn

  • Updated integration scheme for nodal load outputs (#265)
    --> NOTE: further improvements are in progress for this feature.

HydroDyn

  • WaveMode set to 0 instead of WaveDirMod (Fixes #246)
  • Allow number of Morison number to be 0 (see #79)
  • Add safety on number of lines and number of fields per line when WaveMode=6 (Should Fix #118)
  • Always initialize WaveElevSeries if WaveElevXY is set
  • Update array bounds in calculation in Morrison

VTK Visualization

  • Zero padding of VTK names, and log10 of zero (see #250)

Build system

  • Sync the git versions for windows and linux builds
  • Add a Version module to improve version handling
  • Improve support for CygWin builds

Documentation

  • Add API change log
  • Major structural changes, improvements, and additions to content

InflowWind

  • Fix InflowWind index for invalid channels

AeroDyn

  • Improve performance in BEMT error handling
  • Fix incorrect node number in linearization error messages

SubDyn

  • Major cleanup of source code

ElastDyn

  • Fix issue with OP if blade pitch isn't equal on all blades

The following modules have minor bug fixes not listed above:

  • AeroDyn
  • AeroDyn14
  • HydroDyn
  • InflowWind
  • SubDyn
  • Turbsim

To use the Windows executables directly, either the Intel fortran compiler or the Intel MKL redistributable libraries are required. The redistributables for the 2017 Intel Fortran compiler are available here: https://software.intel.com/sites/default/files/managed/bb/e0/ww_ifort_redist_msi_2017.8.275.zip

OpenFAST v2.1.0

27 Mar 18:14
f147b80
Compare
Choose a tag to compare

OpenFAST

  • Fix a stack overflow issue in vtk visualization for large wave fields
  • Add GitHub pull request and issue templates
  • Continuous integration expansion and improvements
  • Bug fixes and improvements for the Windows build systems

AeroDyn

  • Robustness improved in DBEMT
  • Bug fixes
    • Reynolds number calculation
    • Seg fault when tower loads are off

BeamDyn

  • Correct the damping coefficient reference frame
  • BeamDyn Driver: allow setting an initial azimuth

HydroDyn

  • Bug fixes
    • Fix a seg fault when Hdsum is off
    • Fixed the external buoyancy calculation

To use the Windows executables directly, either the Intel fortran compiler or the Intel MKL redistributable libraries are required. The redistributables for the 2017 Intel Fortran compiler are available here: https://software.intel.com/sites/default/files/managed/bb/e0/ww_ifort_redist_msi_2017.8.275.zip

OpenFAST v2.0.0

05 Dec 21:20
0769598
Compare
Choose a tag to compare

OpenFAST v2.0.0
Breaking changes to the BeamDyn API have been introduced. Please refer to the BeamDyn input file documentation for updates.

BeamDyn

  • Linearization
  • Quasi steady start up
  • Finite difference capability
  • Computation cleanup for improved performance
  • Expanded regression tests
  • Bug fixes

AeroDyn

  • DBEMT
  • Bug fixes

Build system updates

  • Parallel build enabled through CMake
  • Improved debug flags
  • Support for CMake-generated Visual Studio solution
  • Single precision bug fixes

TurbSim bug fixes

  • Documentation updates and improvements
  • Increased robustness for interpolation of tower properties in the OpenFOAM module
  • Added a nacelle model to the c++ glue code
  • Support Bladed style brake torque input by array
  • FAST renamed to OpenFAST in source

OpenFAST v1.0.0

30 Apr 20:48
Compare
Choose a tag to compare

OpenFAST v1.0.0
This is the first production release of the OpenFAST framework after transition from FAST v8.

Documentation
The documentation has been significantly restructured and includes installation, user, and development guides. All documentation is available at http://openfast.readthedocs.io/en/latest/

Build system
The Visual Studio build system has been significantly updated to compile all of OpenFAST through a single VS Solution.
See the installation documentation for more info: http://openfast.readthedocs.io/en/latest/source/install/index.html

Test infrastructure
This release of OpenFAST adds a testing framework for unit testing and regression testing at the OpenFAST and sub module level. Unit tests have been incorporated to BeamDyn. Regression tests have been added for the OpenFAST glue code and BeamDyn.
See the testing documentation for more info: http://openfast.readthedocs.io/en/latest/source/testing/index.html

C++ glue code API
A new API has been added which provides a high level API to run OpenFAST through a C++ glue code. The primary purpose of the C++ API is to help interface OpenFAST to external programs like CFD solvers that are typically written in C++.
See the C++ API documentation at http://openfast.readthedocs.io/en/latest/source/user/cppapi/index.html