openfast
openfast copied to clipboard
Updates of Unsteady Aero (UAMod=4) and DBEMT (DBEMT_Mod=3) for linearization
This pull request is not ready to be merged.
Feature or improvement description
- New formulation of continuous DBEMT. Results will now match discrete DBEMT
- Update of UAMod=4 with new dynamic drag (consistent with HAWC2 formulation)
- The two modules are now allowed to be used for linearization
Impacted areas of the software AeroDyn, UA and DBEMT
Additional supporting information Theory, and verification results are given in the following reference: E. Branlard, B. Jonkman, G.R. Pirrung, K. Dixon, J. Jonkman (2022) Dynamic inflow and unsteady aerodynamics models for modal and stability analyses in OpenFAST, Journal of Physics: conference series 2265 032044
Test results, if applicable
Comparison of DBEMT_Mod=1 and DBEMT_Mod=3
Examples using UAMod=4, comparison with HAWC2
Results from new r-test:
- In the legend, we use "DBEMT0" to indicate "WakeMod=1". We use "UAMod0" to indicate "AFAeroMod=1"
- As expected, DBEMT1 gives the same results as DBEMT3 (discrete and continuous formulations match)
- The r-test results are the ones corresponding to DBEMT3 and UAMod4.
- The UAMod and DBEMT features clearly changes the results, indicating that the features are well tested by this r-test.
Checklist
- [x] Update the documentation Live version available here
- [x] Add r-test (
BAR_SineMotion_UA4_DBEMT3
) - [x] Publication
Maybe will fix #983 ?
This pull request is ready to be merged. The commits can potentially be squashed. A r-test pull request accompanies this pull-request.
Thank you @jjonkman for the review, I've now addressed your comments.
A couple of changes were needed to activate the linearization with UA_Mod=6. Currently UA_Mod=6 is using 4 states, where only the 4th one is used. This is to reduce code duplications since the 4th state is the same for UA_Mod=4,5,6.
To reduce the burden of mode identification, I've added if statements to only linearize the "4th" state when UA_Mod=6 is used.
In the future we could consider handling the Oye model separately and storing only the relevant info in x(1). Then the variable UA_NumLinStates introduced by bjonkman could be used. I've chosen to keep the current UnsteadyAeroDynamics for now since we already have a lot of pull requests and conflicts for AeroDyn. @bjonkman and @jjonkman let me know if that's ok.
Seems like a reasonable shortcut to me for now. Hopefully the implementation of UAMod
= 6 would be simplified in the future.
Thanks,
@ebranlard could you merge dev
into here and resolve the merge conflicts? If its ready to merge after that, I'll hit the button.
Thanks, that's done. Note that it requires an updated r-test branch, (ua-dbemt) with an extra test case for this feature and updated input file descriptions.
Is the r-test branch for this pull request, ua-dbemt, also ready to be merged into that repository's dev or is there more that needs to be updated there? Sorry, I don't fully follow your comment.
I just wanted to note that this branch of openfast is pointing to the r-test branch ua-dbemt (I'm not sure if that's relevant or not). The r-test branch ua-dbemt has been merged with r-test dev (but not into dev). So it should all be ready to go.
Ah I see now https://github.com/OpenFAST/r-test/pull/62, and I've merged that one, as well.