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

Open
wants to merge 285 commits into
base: dev-tc
Choose a base branch
from

Conversation

deslaughter
Copy link
Collaborator

@deslaughter deslaughter commented Sep 26, 2024

This PR is ready to merge into the dev-tc branch. Which will go into dev once further testing and development has been done.

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

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.

In addition, testing of VTK output from modal analysis has not been verified to work. V

A new Visual Studio solution has been created based on the IFX compiler in vs-build-ifx.

Further development will occur to add an option for continuing to use a version of the loose coupling solve.

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 adds the appropriate mappings between ServoDyn and ElastoDyn which were previously missing and applies values in linearization
@deslaughter deslaughter changed the base branch from dev to dev-tc January 22, 2025 15:41
@deslaughter deslaughter marked this pull request as ready for review February 3, 2025 20:27
@@ -0,0 +1,1368 @@
!**********************************************************************************************************************************
! LICENSING
! Copyright (C) 2023 National Renewable Energy Laboratory
Copy link
Collaborator

Choose a reason for hiding this comment

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

Do we want the copyright date to correspond to the year we add it?

@@ -0,0 +1,121 @@
digraph UML_Class_diagram {
Copy link
Collaborator

@andrew-platt andrew-platt Feb 17, 2025

Choose a reason for hiding this comment

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

do you want to keep a .png or .svg version of this here as well? The risk is it could get out of date, but there's nothing enforcing this stays up to date either.

@@ -3,6 +3,7 @@
# Copyright (C) 2021 National Renewable Energy Laboratory
#
# This file is part of AeroDyn.
# This file is part of AeroDyn.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Duplicate line

@@ -48,6 +48,7 @@ MODULE AeroDyn_Inflow_C_BINDING

!------------------------------------------------------------------------------------
! Debugging: DebugLevel -- passed at PreInit
! Debugging: DebugLevel -- passed at PreInit
Copy link
Collaborator

Choose a reason for hiding this comment

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

duplicated line

Suggested change
! Debugging: DebugLevel -- passed at PreInit

@@ -3,6 +3,7 @@
# Copyright (C) 2021 National Renewable Energy Laboratory
#
# This file is part of AeroDyn.
# This file is part of AeroDyn.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
# This file is part of AeroDyn.

@@ -52,6 +52,9 @@ param ^ - IntKi APM_LiftingLine - 3 - "Use the bl
# if more than AD_MaxBl_Out blades are used in the simulation, not all channels will have output information for the "extra" blades.
# Also, the AD input file will require more lines for the additional blades.
param ^ - IntKi AD_MaxBl_Out - 3 - "Maximum number of blades for information output (or linearization)" -
param ^ - IntKi AD_u_HWindSpeed - -1 - "DatLoc number for HWindSpeed extended input" -
Copy link
Collaborator

@andrew-platt andrew-platt Feb 17, 2025

Choose a reason for hiding this comment

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

Suggested change
param ^ - IntKi AD_u_HWindSpeed - -1 - "DatLoc number for HWindSpeed extended input" -
# For extended inputs used in linearization, number with a unique negative number. This is for programming convenience so it doesn't conflict with Registry autogenerated values.
param ^ - IntKi AD_u_HWindSpeed - -1 - "DatLoc number for HWindSpeed extended input" -

@@ -76,7 +76,7 @@
<TargetName>MAP_$(PlatformName)</TargetName>
<LinkIncremental>true</LinkIncremental>
<OutDir>..\..\build\bin\</OutDir>
<IntDir>$(PlatformName)\$(ConfigurationName)</IntDir>
<IntDir>$(PlatformName)\$(ConfigurationName)</IntDir>
Copy link
Collaborator

Choose a reason for hiding this comment

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

Indenting change seems odd

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.

2 participants