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

Aero modifications #2283

Merged
merged 29 commits into from
Aug 16, 2024
Merged

Aero modifications #2283

merged 29 commits into from
Aug 16, 2024

Conversation

bjonkman
Copy link
Contributor

@bjonkman bjonkman commented Jun 26, 2024

Feature or improvement description
This pull request

  • makes some modifications to UAMod 5 for use in full 360-degree angles of attack.
  • uses a weighted-average of the axial induction for DBEMT input instead of just a uniform average of axial induction at all the nodes.
  • allows the user to change the IntegrationMethod used in UA (UA_Mod 4, 5, etc)
  • allows the user to have the code calculate CantAngle (if BlCrvAng is not specified in the input file). These calculated values are printed in the summary file.
  • caps the Ct, Cp, and Cq outputs if their denominators ever get too small
  • implements the code around BldNd_BlOutNd in AeroDyn, allowing the user to specify which nodes they would like to output.
  • fixes an issue where the AeroDyn echo file would not include data read from the blade property files.
  • reports an error if one exists in the BEMT initialization of states (likely rare)
  • updates some calculations of the UA parameters in AFI initialization
  • removes non-standard tabs from MoorDyn
  • changes TwrAero from a logical to integer internally (the input file still recognizes the logical value)
  • simplifies some logic around the buoyancy calculations

Related issue, if one exists

Impacted areas of the software
AeroDyn: DBEMT, UA (UA_Mod 4, 5, or 6)

Additional supporting information

Test results, if applicable

Failing cases:

  • rtest-module-drivers (1 failing test)

    • ad_BAR_SineMotion_UA4_DBEMT3
      • There are very small difference in the two failing channels (the Fx and Fy loads on a single node):
        image
        image
  • rtest-OF (1 failing test)

    • MHK_RM1_Fixed
      • The differences in the two failing channels are minor:
        image
        image

bjonkman added 8 commits June 19, 2024 11:30
previously would not be printed if calling routine didn't use optional argument to return the comment string
- change TwrAero in code to a switch (integer) instead of a flag (logical); input file can remaing the same
- simplify some logic around NumTwrNds and tower effects and bouyancy (seems like we shouldn't need to check `NumTwrNds` so much?)
- changed intent(INOUT) to intent(IN) in some init routines and removed later checks that the routine didn't change the variable
- update comments and spacing
- moved if statement for Bouyancy out of do loop and made new loops inside of if loop. This should run faster.

- Added some modifications for 0 blades (where you maybe just care about the tower).
- The average-induction input to DBEMT is now computed using a weighted average instead of just summing all of the inductions and dividing by the number of blade nodes.

- UnsteadyAero:
  - add `IntegrationMethod` parameter to allow changing integration methods
  - updated BDF2 solver because it wasn't always getting a solution
  - calculate sin(alpha) and cos(alpha) only once in routine to save computational time
  - fix spelling error on "Boeing-Vertol" again. Not sure why that PR didn't make it into this branch.
  - put alphaF calculations for HGM* and OYE models in a separate function; fixed calculations for HGMV model at larger angles of attack.
  - Added placeholder for a new UA model

- AirfoilInfo:
  - pass `UAMod` insted of `UA_f_cn` since we pre-calculate some values for UA parameters stored in AFI
  - added routines to write the AFI parameters that are calculated at initialization. Previously these were stored in UA.
  - renamed some parameters used for UAMod 5

- AD I/O:
  - New method for computing CantAngle (SetCantAngle instead of calcCantAngle) fixes an issue with previous code.
  - Each blade must now have 3 nodes if calculating `BlCrvAng`
  - Now we read the AD blade column headers to determine which column is in the file (this allows the buoyancy columns and BlCrvAng columns to be optional)
  - the AD summary file now contains the values used for blade definition, including possibly the calculated `BlCrvAng` values
  - the AD input file has an optional `IntegrationMethod` line before `UAStartRad`
  - set Cp,Cq,Ct outputs to 0 if the denominator is less than 0.04. These quantities sometimes blow up because it's really dividing by the denominator cubed. This number should be more of an average anyway, and large instantaneous numbers skew the values we care about.
  - Implemented option to specify nodes "ALL", "TIP", "ROOT", or a list of integers for `BldNd_BlOutNd`, the nodal blade outputs.
update AD
- move UA input file data to UA_Init data type
- rename `CreatePointMesh` to `CreateInputPointMesh` for clarity
- check error after BEMT_InitStates
- update calculation of UA AFI parameters
- fix some issues with UA mod 5 in periodic wraparound region (+/- 180 degrees)
- UA: add limit to Tu*omega term
- remove non-standard tabs from MoorDyn
there was an issue with how some a_s and WrSum were set, depending on if the input file had nodal outputs
- the header in the text file output contained non-printable characters because AD_ver was printed by not initialized.
- I added the git version data to the output file header
- The output file header listed InflowWind before AeroDyn rotor 1, but the columns printed AeroDyn rotor 1 before InflowWind, resulting in all of the AD and IfW columns being mislabeled if both modules had output
@andrew-platt
Copy link
Collaborator

Thanks for adding the BldNd_BlOutNd code updates! That will be very useful!

@andrew-platt
Copy link
Collaborator

To do (thinking about this because I'm dealing with AD15 input files for AD14 removal PR):

  • update AD15 input files with new nodal output comments
  • update AD15 input files with Solver and other new lines (I know these are optional, but want to get a fully consistent set of input files for the release) -- @andrew-platt

bjonkman added 2 commits July 31, 2024 15:29
- fix some issues with ParseVar(BldNd_BlOutNd_Str): Using a `READ` statement in `GetWords` instead of `SCAN` would be more intuitive and make reading this line easier to implement, but this works, too...
- add more UA info to AD summary file
- fix invalid index when alphaLower is entered in airfoils but other defaults are not
- fix alpha used in OYE and HWM
@bjonkman bjonkman marked this pull request as ready for review August 2, 2024 00:16
@ebranlard ebranlard self-requested a review August 10, 2024 15:33
Copy link
Contributor

@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.

Thanks a lot, these are great improvements!

modules/aerodyn/src/FVW.f90 Outdated Show resolved Hide resolved
modules/aerodyn/src/AeroDyn_IO.f90 Show resolved Hide resolved
modules/aerodyn/src/AeroDyn_IO.f90 Outdated Show resolved Hide resolved
modules/aerodyn/src/UnsteadyAero.f90 Show resolved Hide resolved
Compare with OpenFAST#2267

The summary file stated AeroDyn had unknown version and date instead of leaving that blank. I think the issue was that the original code on the AD14 removal had the `ELSEIF` indented improperly so the ELSE section was removed with the AD14 section.
@bjonkman
Copy link
Contributor Author

bjonkman commented Aug 16, 2024

To do (thinking about this because I'm dealing with AD15 input files for AD14 removal PR):

* [x]  update AD15 input files with new nodal output comments

* [ ]  update AD15 input files with Solver and other new lines (I know these are optional, but want to get a fully consistent set of input files for the release) -- @andrew-platt

@andrew-platt , As soon as you are okay with the AD15 input file changes you said you wanted to make, this should be good to merge... though the r-test branch this points to should also be merged into dev.

@andrew-platt
Copy link
Collaborator

I'm going to update the AD15 input files with the ROM pull request (#1295) and merge this one in first.

There are a couple of minor conflicts on r-test since I merged #2358 in first. I'll resolve those and merge this PR shortly.

@andrew-platt andrew-platt merged commit 74fe673 into OpenFAST:dev Aug 16, 2024
21 checks passed
@bjonkman bjonkman deleted the f/EnvisionAeroMerge branch August 16, 2024 22:18
@andrew-platt andrew-platt mentioned this pull request Dec 24, 2024
38 tasks
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.

3 participants