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

Tight-Coupling Algorithm for OpenFAST 5.0 #2439

Draft
wants to merge 269 commits into
base: dev
Choose a base branch
from

Conversation

deslaughter
Copy link
Collaborator

This PR will be merged once OpenFAST 4.0 is released.

TODO:

  • Update Visual Studio Projects
  • Clean up unused files in openfast-library

Feature or improvement description

Tight coupling introduces a shared solver around structural modules, based on generalized alpha method, while leaving the remaining modules loosely coupled. The goal of the tight coupling algorithm is to improve computational performance by allowing significantly larger time steps while resolving the time domain structural dynamics

Related issue, if one exists

Impacted areas of the software

The majority of the code in openfast-library has been reworked to support the tight-coupling algorithm and streamline the process of linearization. The concept of module variables was introduced and a new function and associated data structures were added to each module to specify the global variables and Jacobian matrices contributed.

Two existing features are incompatible with this version: Yaw Friction and HSS brake. This will be remedied in a future PR and an issue has been created to track their progress.

Additional supporting information

Test results, if applicable

Due to significant changes in the solution algorithm, all of the regression test results were sufficiently different to require creating new baseline files. However, the results from each test were manually evaluated against prior baselines and found to be acceptable.

This functionality will need to be migrated to the new FAST_ModLin module
Previously these functions required the whole Turbine structure to be passed in, which was a holdover from the original mesh getting functions
This adds the appropriate mappings between ServoDyn and ElastoDyn which were previously missing and applies values in linearization
@deslaughter deslaughter added this to the v5.0.0 milestone Sep 26, 2024
@deslaughter deslaughter self-assigned this Sep 26, 2024
@jjonkman jjonkman mentioned this pull request Oct 8, 2024
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.

1 participant