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

Compressor Map Table Interpolation v1 #92

Open
wants to merge 29 commits into
base: main
Choose a base branch
from

Conversation

WyattGiroux
Copy link

Added the NcTblMap and ecTblMap functions for table interpolation of speed and efficiency (+ derivatives). Also added the bilinearBounded.jl file to perform the bilinear interpolation and the tftbl.jl file to generate the const map data structs.

Ran unit tests in test/runtests.jl and got all either passing or broken:

image (3)

Copy link

codecov bot commented Oct 15, 2024

Codecov Report

Attention: Patch coverage is 18.50000% with 163 lines in your changes missing coverage. Please review.

Project coverage is 72.19%. Comparing base (430cfd8) to head (be84947).
Report is 46 commits behind head on main.

Files with missing lines Patch % Lines
src/utils/bilinearBounded.jl 0.00% 108 Missing ⚠️
src/engine/tftbl.jl 55.22% 30 Missing ⚠️
src/engine/tfmap.jl 0.00% 25 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #92      +/-   ##
==========================================
- Coverage   73.41%   72.19%   -1.22%     
==========================================
  Files          77       82       +5     
  Lines       13908    13697     -211     
==========================================
- Hits        10211     9889     -322     
- Misses       3697     3808     +111     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.


🚨 Try these New Features:

@ngomezve
Copy link
Contributor

ngomezve commented Nov 8, 2024

@WyattGiroux This looks promising! Are you planning to implement the new compressor maps into tfsize() and tfoper(), the turbofan functions? It looks like right now they are still using the old maps, which explains why all tests are passed (the new functions are not being run).

@WyattGiroux
Copy link
Author

@ngomezve, I am planning on integrating them with oper and size, but need to make some unit tests for the new functions before that.

In general, I've now swapped over to the NaturalNeighbours.jl library to do direct interpolation in julia. Now instead of using the bilinear functions I made, the TblMap functions are now calling interpolator functions from this package. The timing is slower (80 microseconds) but the maps are being very closely matched (max[RMSE] = 0.01-ish) using very few gridding sample points (~50^2). The package precompile time is around 1 minute.

Unit tests to come next, but good progress is being made

Wyatt Giroux added 2 commits November 20, 2024 12:53
@WyattGiroux
Copy link
Author

WyattGiroux commented Nov 26, 2024

We're now faster than the original drela method and have hashing implemented such that the gridded map files only have to generate for 30 minutes once. Derivatives are a bit noisy; will try various samplings and gridding fineness later tonight. If all goes well, I'll add docstrings, unit tests, and TASOPT implementation tonight.

(Original drela version on top; new table interpolation version on bottom)

image (5)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants