Skip to content

Implementation of generalized support structures in AeroDyn#3311

Draft
luwang00 wants to merge 4 commits intoOpenFAST:devfrom
luwang00:f/AD_GS
Draft

Implementation of generalized support structures in AeroDyn#3311
luwang00 wants to merge 4 commits intoOpenFAST:devfrom
luwang00:f/AD_GS

Conversation

@luwang00
Copy link
Copy Markdown
Contributor

@luwang00 luwang00 commented Apr 17, 2026

This PR is a work-in-progress and is NOT ready to merge.

Feature or improvement description
This PR adds generalized support structures in AeroDyn, allowing the flow-induced loads on the support structures and the influence on the rotors and OLAF wakes to be modeled. The motion and loads mapping for the generalized support structures is between AeroDyn and SubDyn (instead of ElastoDyn).

This PR is still a work-in-progress:

  • Update AeroDyn input file format and parsing with new sections for generalized support structures
  • Construct AeroDyn motion input and loads output meshes for general support structures (at the moment, these are point meshes instead of line meshes to match SubDyn)
  • Add mesh-mapping between AeroDyn and SubDyn in the glue-code
  • Update AeroDyn Jacobian subroutines to include the new general support structure mesh motion input (could use more checking and optimization)
  • Implement drag force on the general support structure in AeroDyn
  • Implement support structure influence on rotors and OLAF wake
  • Implement support structure wake effects on rotors and OLAF wake
  • Add new AeroDyn output channels
  • Add mesh and load VTK visualization for the AeroDyn generalized support structures
  • Update AeroDyn summary file
  • Update r-tests
  • Update documentation
  • Things missed in the list above

Two new input sections for the generalized support structures have been added to the AeroDyn input file just before the Outputs section. The first section allows the user to specify the coordinates of a list of NumGSJoints joints. The second section defines a list of NumGSMembers support members.

For each member in this second table, the user needs to specify the starting and ending joints of each member by referencing the GSJointID in the previous joint table. The user also needs to specify the diameter, drag coefficient, and turbulence intensity (for the Eames wake deficit model) at the starting and ending joints. If different values are provided, AeroDyn assumes a linear variation of each parameter along the member. Finally, the user needs to specify the maximum element length GSMDiv for the discretization of each member. AeroDyn will discretize each member into elements of equal length not greater than GSMDiv.

The format of the new input sections are provided below. Note that the generalized support structure affects all rotors and does not need to be defined for each rotor separately.

======  General support structure joints  ===========================================================
??                    NumGSJoints
GSJointID      GSJointxi      GSJointyi      GSJointzi
(-)            (m)            (m)            (m)
...            ...            ...            ...
======  General support structure members  ==========================================================
??                    NumGSMembers
GSMemberID  GSMJointID1  GSMJointID2     GSMDia1       GSMDia2     GSMCd1        GSMCd2        GSMTI1       GSMTI2       GSMDiv
(-)            (-)          (-)           (m)           (m)          (-)           (-)          (-)          (-)           (-)
...            ...          ...           ...           ...          ...           ...          ...          ...           ...

Impacted areas of the software
AeroDyn, Glue-code

Test results, if applicable
The changes made to the AeroDyn input file require updating the r-tests.

  • r-test branch merging required

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.

1 participant