-
Notifications
You must be signed in to change notification settings - Fork 458
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
AD: outputs of velocity in different coordinate systems and additional documentation in BEMTUncoupled #1679
Conversation
modules/aerodyn/src/BEMT.f90
Outdated
@@ -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) |
There was a problem hiding this comment.
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)
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
I might add a couple of small changes maybe even some more outputs, and potentially do some renaming in the coming days. |
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). |
b4f872a
to
2349867
Compare
There was a problem hiding this 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.
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:
With these coordinate systems, the following velocity outputs are added (For BEM but also OLAF):
Vind*i, Vind*p
(Previously calledUin, Uit, Uir
) ,Vind*l
,VInd*a
STV*i, STV*p, STV*l
,STV*a
VUnd*i
, etc.VDis*i
, etc.F*i
, etcF*i
, etcThe 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):
In addition, the following is done:
psi
is renamed aspsi_s
as this is the skew azimuthal position, to avoid confusion with the azimuthal angle of the blade.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: