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

AD: outputs of velocity in different coordinate systems and additional documentation in BEMTUncoupled #1679

Merged
merged 12 commits into from
Jul 19, 2023

Conversation

ebranlard
Copy link
Contributor

@ebranlard ebranlard commented Jul 11, 2023

This pull request is ready to be merged

Feature or improvement description
As we are preparing to update the BEMT model of AeroDyn 15, it is convenient to output variables in "well-defined" coordinates systems that are independent of the underlying coordinate system used for the momentum balance. This pull request also adds additional documentation in the functions used inBEMTUncoupled.

Impacted areas of the software
AeroDyn.

Previous Issue
#1004

Additional supporting information
This pull request introduces the following coordinate systems:

  • "i" inertial (already used)
  • "p": poalr coordinate system (same as hub but shifted by the azimuthal offset of each blade)
  • "l" local polar grid. Contains an additional azimuthal rotation compared to the rotating hub corresponding to the sweep at a given radial node.
  • "a": the airfoil section coordinate system with xa normal to the chord.

With these coordinate systems, the following velocity outputs are added (For BEM but also OLAF):

  • Induced velocitties: Vind*i, Vind*p (Previously called Uin, Uit, Uir) , Vind*l, VInd*a
  • Structural velocity: STV*i, STV*p, STV*l, STV*a
  • Undisturbed velocities: VUnd*i, etc.
  • Disturbed velocity: VDis*i, etc.
  • Forces: F*i, etc
  • Moments: F*i, etc
  • Buoyancy loads.

The following BEM specific outptus are added (to more easily debug these outputs are compare between the old and new BEM) (this required to add them as optional outputs to some BEM functions):

  • AxInd_qs: the axial induction factor as obtained by the quasi-steady BEM (before DBEMT and Skew)
  • TanInd_qs: the axial induction factor as obtained by the quasi-steady BEM (before DBEMT and Skew)
  • F: the tip/hub loss factor
  • k, kp: the dimensionless load coefficients that appear when manipulating the thrust and torque coefficients from the Blade Element Theory.
  • CT_qs: The quasi-steady thrust coefficient. This is important as this is the coefficient which is corrected for high-thrust. With these outputs, we can plot the a_qs-CT_qs relationship internally used by BEM for verification.

In addition, the following is done:

  • the variable psi is renamed as psi_s as this is the skew azimuthal position, to avoid confusion with the azimuthal angle of the blade.
  • Additional documentation is provided in BEMTUncoupled
  • A cleanup of the "future" BEM code is carried out.

Documentation

The coordinate systems are now documented (here).

Further focumentation will follow as part of the release of the new BEM code (v4.0?) accompanied with a paper.

Test results, if applicable
The test results should be unchanged.

Checklist:

  • Documentation of coordinate systems (here)
  • Adding outputs for Buoyancy
  • Rename Fix RtAeroFg to RtAeroFi
  • Final review

@@ -1452,9 +1475,12 @@ subroutine BEMT_CalcOutput_Inductions( InputIndex, t, CalculateDBEMTInputs, Appl
!............................................
! get BEMT inductions (axInduction and tanInduction):
!............................................
call calculate_Inductions_from_BEMT(p, phi, u, OtherState, AFInfo, axInduction, tanInduction, ErrStat2, ErrMsg2)
call calculate_Inductions_from_BEMT(p, phi, u, OtherState, AFInfo, axInduction, tanInduction, ErrStat2, ErrMsg2, k_out, kp_out, F_out)
Copy link
Collaborator

@andrew-platt andrew-platt Jul 12, 2023

Choose a reason for hiding this comment

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

Will we run into compatibility issues with older compilers passing optional arguments like this to another subroutine?

The Intel 18.0.5.274 apparently had issues with this, but 19.0.5.281 was ok (comment from https://stackoverflow.com/questions/69690287/pass-fortran-unlilmited-class-optional-argument-down-multiple-subroutines-in-a-m)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks. Yeah, I was feeling shaky while implementing this. Right now I don't really have another way of doing it.... So... fingers crossed?

Copy link
Collaborator

Choose a reason for hiding this comment

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

Since those arguments are optional in calculate_Inductions_from_BEMT, you could do something like:
If (present(k_out)) then call calculate_Inductions_from_BEMT(p, phi, u, OtherState, AFInfo, axInduction, tanInduction, ErrStat2, ErrMsg2, k_out, kp_out, F_out) else call calculate_Inductions_from_BEMT(p, phi, u, OtherState, AFInfo, axInduction, tanInduction, ErrStat2, ErrMsg2) endif

or something similar. From what I could tell, it looks like you have either none or all of those arguments in the parent routine.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That's a great suggestion, I've now updated the code.

@ebranlard
Copy link
Contributor Author

I might add a couple of small changes maybe even some more outputs, and potentially do some renaming in the coming days.
But I know rc3.5.1 is coming soon. The main thing I want to add is the loads along the blade in the inertial frame and potentially another coordinate system.

@andrew-platt
Copy link
Collaborator

Sounds good! We can keep this open until rc-3.5.1 is closer to ready (it's taking longer to get some pieces in that expected).

Copy link
Contributor Author

@ebranlard ebranlard left a comment

Choose a reason for hiding this comment

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

This is now ready.

@ebranlard ebranlard merged commit 22431f0 into OpenFAST:rc-3.5.1 Jul 19, 2023
@ebranlard ebranlard deleted the ad/moreout-newbemprep branch July 19, 2023 20:00
@ebranlard ebranlard mentioned this pull request Aug 24, 2023
4 tasks
@andrew-platt andrew-platt mentioned this pull request Oct 19, 2023
19 tasks
@jjonkman jjonkman mentioned this pull request Mar 15, 2024
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.

2 participants