Skip to content

ElastoDyn: Allow one-blade turbine model#589

Merged
andrew-platt merged 3 commits intoOpenFAST:devfrom
ebranlard:f/oneblade
Mar 19, 2021
Merged

ElastoDyn: Allow one-blade turbine model#589
andrew-platt merged 3 commits intoOpenFAST:devfrom
ebranlard:f/oneblade

Conversation

@ebranlard
Copy link
Contributor

Ready to be merged.

Feature or improvement description
Allows NumBld=1 in ElastoDyn

Impacted areas of the software
ElastoDyn

Additional supporting information
The only changes needed from what I could see were about disactivating some output channels. The total number of DOF being reduced, if statements that relied on the Teeter DOF being at position 22 needed to be changed since this index is out of bounds for a 1 bladed rotor (max number of DOF being 18).

Extending to more blades (>3) would require a rework of the outputs and the DOF indexing.

@jjonkman
Copy link
Collaborator

Thanks, @ebranlard. These ElastoDyn changes all make sense to me. I'm a bit concerned that there are likely necessary changes outside of ElastoDyn that require changes as well (given that NumBl is an initialization output of ElastoDyn for use by AeroDyn, ServoDyn, and the C++ interface). Did you check these modules for any necessary changes as well?

@ebranlard
Copy link
Contributor Author

Thanks for the review.

I haven't seen any issue with AeroDyn, apart from hard coded number of blade inputs in the input file (3 blade files), but only then. The same is found for ServoDyn, where most of the InputFileData variables are hardcoded to 3 blades (TipManS, PitManRat, BlPitchF), but the rest of code loops through NumBl, or the min between 3 and NumBl. To be safe, I've added a bit more "array" bounds when I thought it would either be necessary, or to increase readability in ServoDyn.

I've tested this with AeroDyn and ServoDyn for 1,2 and 3 blades, and the results seemed to make sense. I wouldn't be surprised if there is a corner case that I've missed, but we can hopefully easily spot and fix such array bound. Hopefully the r-test will pass..

Copy link
Collaborator

@jjonkman jjonkman left a comment

Choose a reason for hiding this comment

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

Sounds good. I'll approve.

Copy link
Collaborator

@andrew-platt andrew-platt left a comment

Choose a reason for hiding this comment

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

Looks good to me as well. Thanks for adding all the notes in ServoDyn on p%NumBl. Those notes will be useful if we allow more than 3 blades at some point in the future.

@rafmudaf
Copy link
Collaborator

@ebranlard Do you have 1-blade test case?

@ebranlard
Copy link
Contributor Author

ebranlard commented Nov 19, 2020

I don't really have a test (I mostly did this to have only one blade for the elliptical wing of OLAF, which is "inelastic").

An easy and more or less relevant one would be to simply duplicate this one, and changing the number of blade to 1 in ElastoDyn input file (that will affect AeroDyn and ServoDyn):

@rafmudaf rafmudaf changed the title Allowing one blade in ElastoDyn ElastoDyn: Allow one-blade turbine model Jan 20, 2021
@ebranlard ebranlard mentioned this pull request Jan 26, 2021
5 tasks
@andrew-platt
Copy link
Collaborator

The test case for this will be added in PR #648.

@andrew-platt andrew-platt merged commit 9fbbb1b into OpenFAST:dev Mar 19, 2021
@rafmudaf rafmudaf mentioned this pull request May 12, 2021
11 tasks
@ebranlard ebranlard deleted the f/oneblade branch May 26, 2021 23:33
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.

4 participants

Comments