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

OLAF improvements for WEIS #648

Merged
merged 36 commits into from
Apr 28, 2021
Merged

OLAF improvements for WEIS #648

merged 36 commits into from
Apr 28, 2021

Conversation

ebranlard
Copy link
Contributor

@ebranlard ebranlard commented Jan 26, 2021

This pull request is not ready to be merged.

Feature or improvement description

The following features are included in this pull request:

  • Dynamic stall into OLAF
  • Core radius as a continuous state
  • Additional core radius options (based on chord, or section length)
  • Runge-Kutta 4 time integration scheme
  • Over-cycling improved and supported by Euler1 and RK4
  • Preliminary guidelines documented
  • Possibility to export velocity field on grid/planes/lines/points
  • Placement of vorticity and adjusting core size for tip and root vortex
  • Bug fixes for exports

The features have been documented in OLAF's documentation. The changes to the input file (gridOutputs) are optional.

Related
Requires #647 and #589

Impacted areas of the software
AeroDyn/OLAF

Additional supporting information

Test results, if applicable
Changes in EllipticalWing test case are negligible and down to numerics.

Checklist

ebranlard and others added 21 commits November 12, 2020 13:20
…n some functions

     NOTE: overcylcing will still introduce frequencies, even without rollup and prescribed gamma.
           results are worst at tip when rotating.
…ble at t, needs to call inflowwind within OLAF
Per discussion here: OpenFAST#595 (comment)

The single quote on the `-fstack-reuse='none'` flag was creating issues in windows builds with gfortran.
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.

This PR may be undoing PR #627.

modules/aerodyn/src/AirfoilInfo.f90 Outdated Show resolved Hide resolved


!> Flatten/ravel a 3D grid of vectors (each of size n)
subroutine FlattenValues(GridValues, FlatValues, iHeadP)
Copy link
Collaborator

Choose a reason for hiding this comment

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

Wouldn't it be possible to use the Fortran intrinsic reshape to do what FlattenValues and DeflateValues do?

FlatValues(:,:) = reshape( GridValues, (/ size(gridvalues,1), size(gridvalues,4)*size(gridvalues,3)*size(gridvalues,2) /) )

(or something along those lines -- I don't remember the exact syntax)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

From my teaching and experience I've avoided using intrinsic functions for large datasets, some of them are using the stack and fail without reporting errors. I've been told these simple loops are easy for the compiler to optimize. But
in that case you might be right, and I don't know which one would perform best!!! This function has a little "bonus" that allows me to flatten several grids into one array by calling this function several times for different arrays, changing iHeadP. I'm using this to pack all the control points from all the user-grids into one array that is then sent to the induced velocity function.

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.

I didn't check through the full logic of the over cycling, but I think I have a rough understanding of how it works.

I also noticed a few print* and save variables, but as far as I can tell, those are all debug related so they shouldn't pose issues in normal use.

@andrew-platt andrew-platt self-assigned this Apr 27, 2021
@andrew-platt
Copy link
Collaborator

andrew-platt commented Apr 27, 2021

We may need to merge r-test/dev into the r-test/f/weis_olaf branch to clear the conflicts there.

This also clears conflicts with r-test/f/weis_olaf
@andrew-platt andrew-platt changed the base branch from dev to main April 27, 2021 23:11
@andrew-platt andrew-platt changed the base branch from main to dev April 27, 2021 23:11
@ebranlard ebranlard removed the request for review from jjonkman April 28, 2021 01:44
@andrew-platt andrew-platt merged commit 4d598b2 into OpenFAST:dev Apr 28, 2021
@andrew-platt
Copy link
Collaborator

Oops. I didn't update the elliptical wing results before merging. :(

I'll setup a new PR for that update.

@ebranlard
Copy link
Contributor Author

I should have updated them in:
https://github.com/OpenFAST/r-test/tree/f/weis_olaf
For linux..

@andrew-platt
Copy link
Collaborator

I see the updates for the linux-gnu results there, but not for the other 3. Do you have some updates for the intel ones that didn't get pushed? I can handle the macos-gnu one.

@andrew-platt
Copy link
Collaborator

Issue #742 may be related to the missing updates for the Windows baselines for the EllipticalWing regression test.

@rafmudaf rafmudaf mentioned this pull request May 12, 2021
11 tasks
@ebranlard ebranlard deleted the f/weis_olaf branch May 26, 2021 23:32
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