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

Updates to openfast_io to match current dev branch API #2361

Open
wants to merge 65 commits into
base: dev
Choose a base branch
from

Conversation

mayankchetan
Copy link
Contributor

@mayankchetan mayankchetan commented Aug 7, 2024

This PR is NOT ready to merge until TODOs below are cleared.

Feature or improvement description

Updates to the openfast_io library to match the current dev branch API. Once merged, will provide OpenFAST users with an up-to-date library that they can import to read/write OpenFAST files. This follows the fst_vt nested dictionary structure developed under WEIS and heavily borrows code from there.

This library is currently limited to OpenFAST and does not work with FAST.Farm or any of the module drivers.

Related PRs: #2333, #2188

Related issue, if one exists

#2233, #2261, #1851

Impacted areas of the software

openfast_io

Additional supporting information

Test results, if applicable

pytest added to span most OpenFAST input files (drivers not included). Based on @andrew-platt comments in #2233, need to introduce automated testing.

TODO:

  • Add test automations & GH actions
  • Create an OpenFAST PyPI account so the openfast_io python package can be installed with pip
  • Set up a trusted publisher to securely upload the python package to PyPI
  • Setup conga-forge for openfast_io since most NREL tools like WEIS and WISDEM prefer it.
  • Check if we can eliminate the Poetry file We will continue using Poetry
  • Add additional tests based on recommendations in this PR if any
  • Address old API warning thrown by AD15
  • Add simple documentation to help users get started
  • Add badges for PyPi and conda-forge

APIs to upgrade before merge:

@mayankchetan mayankchetan changed the title Updates to opencast_io to match current dev branch API Updates to openfast_io to match current dev branch API Aug 7, 2024
@andrew-platt
Copy link
Collaborator

I haven't checked through the code, but just noticed there is a new input in the AeroDyn input file that wasn't included in any of the regression tests yet (adding that line to all AD input files in PR #1295).

  • 3 IntegrationMethod - Switch to indicate which integration method UA uses (1=RK4, 2=AB4, 3=ABM4, 4=BDF2)

if self.fst_vt['AeroDyn15']['UAMod'] == 2:
raise Exception('OLAF is called with unsteady airfoil aerodynamics, but OLAF currently only supports UAMod == 1') #TODO: need to check if this holds true now
if self.fst_vt['AeroDyn15']['UA_Mod'] == 2:
raise Exception('OLAF is called with unsteady airfoil aerodynamics, but OLAF currently only supports UA_Mod == 1') #TODO: need to check if this holds true now
Copy link
Contributor

Choose a reason for hiding this comment

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

I haven't read much of this code, but I don't understand this comment. The UnsteadyAero module doesn't allow UA_Mod to be 1, including when it is called from OLAF.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thank for catching that! I think I missed that with new AD15 API updates.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

AeroDyn*

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants