Skip to content

Nishikawa Rp limiters (AIAA 2022-1473)#2006

Merged
pcarruscag merged 26 commits intosu2code:developfrom
aeroamit:Rp_Limiter
Apr 9, 2023
Merged

Nishikawa Rp limiters (AIAA 2022-1473)#2006
pcarruscag merged 26 commits intosu2code:developfrom
aeroamit:Rp_Limiter

Conversation

@aeroamit
Copy link
Contributor

@aeroamit aeroamit commented Apr 6, 2023

Proposed Changes

Implementation of NISHIKAWA Rp Limiters (R3, R4, R5)
Reference - "New Unstructured-Grid Limiter Functions", Hiroaki Nishikawa, AIAA 2022-1473

Related Work

1- Less dissipative in comparison to Venkatakrishnan limiter
2- Can preserve higher order accuracy (3rd, 4th and 5th with R3, R4 and R5 limiters, probably future proof)
3- May help in better convergence for certain cases with different K.

PR Checklist

Put an X by all that apply. You can fill this out after submitting the PR. If you have any questions, don't hesitate to ask! We want to help. These are a guide for you to know what the reviewers will be looking for in your contribution.

  • I am submitting my contribution to the develop branch.
  • My contribution generates no new compiler warnings (try with --warnlevel=3 when using meson).
  • My contribution is commented and consistent with SU2 style (https://su2code.github.io/docs_v7/Style-Guide/).
  • I have added a test case that demonstrates my contribution, if necessary.
  • I have updated appropriate documentation (Tutorials, Docs Page, config_template.cpp), if necessary.

@aeroamit
Copy link
Contributor Author

aeroamit commented Apr 6, 2023

Rp_limiter_ramp.pdf
Above is a M=2.0 flow past a ramp in a channel case, comparing Venkat and Rp limiters. Have tried viscous (2D and 3D cases) as well.

@bigfooted
Copy link
Contributor

The results look very convincing, also nice to see such an improvement in convergence. Could you add the ramp case as a regression test to this PR (you could add them to parallel_regression.py)

@bigfooted
Copy link
Contributor

And can you also update the section on slope limiters in the documentation:
https://su2code.github.io/docs_v7/Slope-Limiters-and-Shock-Resolution/

@aeroamit
Copy link
Contributor Author

aeroamit commented Apr 7, 2023

Sure @bigfooted , This is a recent work by Dr. Nishikawa. Actually there are very few unstructured grid limiters in practice, Barth-Jespersen, Venkatakrishnan and its modifications, Michalek-Gooch (most of them are already implemented in SU2). I just saw the details and thought of implementing it. Also to note, it is tailored for vertex centered schemes not cell centered scheme, hence is apt for SU2. In original paper he showed tests with few inviscid cases. Recently He has revealed that it has been implemented in NASA CFD codes.
Few things - 1- It is certainly less dissipative in comparison to VK 2- Convergence are similar. Rp limiters may take moderate number of more iterations (being less dissipative). 3- Convergence attributes also depends on many other settings - starting CFL, CFL ramping, convective schemes used etc. Sometimes all will stall.
Overall it's encouraging to try and make use of it in more and more cases. I tried it on multiple cases and got converged results (and yes Rp is comparitively less dissipative to Venkat limiter).
I will update the theory part and add the ramp case....

@tbellosta
Copy link
Contributor

Hi, I was about to open a pull request with the same exact implementation. I can help with the review and validation cases.
I am running test for an inviscid supersonic flow past a diamond airfoil and I am about to run some test on the RANS ONERA M6 wing.

@tbellosta tbellosta self-assigned this Apr 7, 2023
Copy link
Contributor

@tbellosta tbellosta left a comment

Choose a reason for hiding this comment

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

Implementation LGTM.
Personally I would make const all that can be made const in the LimiterHelpers inlines, but I see you kept the style of the functions that were already there, so good for me.

@tbellosta
Copy link
Contributor

The first case I was running with the new limiters (Mach 2 invisccid flow around symmetrc diamond), showed similar convergence properties as the Venkatakrishnan limiter and slightly less dissipation as @aeroamit mentioned. The mesh I run was already quite fine, so no huge differences can be noticed but they are there.
mach

These are the convergence history and a slice of the solution (at k=0.05):
conv0p05
time0p05
full0p05

@aeroamit
Copy link
Contributor Author

aeroamit commented Apr 7, 2023

Hi @tbellosta, Nice to see you. I have run many cases including ONEAR M6 RANS on a fine solve to wall mesh. Here are results -
Onera_M6_runs.pdf
Your run also confirms the observation I am reading from my cases.

@aeroamit
Copy link
Contributor Author

aeroamit commented Apr 7, 2023

ONEAR-M6 results -

M6
M6_conv
M6_Cp

Space instead of Tab
@aeroamit
Copy link
Contributor Author

aeroamit commented Apr 7, 2023

Hi @pcarruscag , I have done the changes you suggested, please have a look.
Coming to https://su2code.github.io/vandv/home/ - The ONERA M6 grid that I have used is somewhat big (still not what it can be), around 3 million mesh and 260 MB .su2 file. In V&V (I checked the cases), we have to put successively finer mesh and show grid independence, I don't have many such finer/coarse mesh (created suitably for grid independence).
Probably I can take up any case from https://www.grc.nasa.gov/www/wind/valid/archive.html and try. For example Sajben transonic diffuser or anything else. What's your opinion?

@pcarruscag
Copy link
Member

In that case maybe add the ramp case as a regression test, or maybe @tbellosta can contribute the diamond test as a regression.

As a separate effort, it would still be very nice to write up the M6 results for the V&V page, we can host large files in the SU2 foundations google drive. Having some reference results and settings known to work in that case would be very helpful for new folks.

Copy link
Member

@pcarruscag pcarruscag left a comment

Choose a reason for hiding this comment

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

Implementation-wise all LGTM, thanks. Please add the regression test and then we can merge.
Also please don't forget the user guide page https://su2code.github.io/docs_v7/Slope-Limiters-and-Shock-Resolution/

@aeroamit
Copy link
Contributor Author

aeroamit commented Apr 8, 2023

Sure, I will add the ramp case and update the documentation...

@aeroamit
Copy link
Contributor Author

aeroamit commented Apr 8, 2023

I have added pull requests for ramp Test Case and documentation update (limiter portion) at respective places for review. When I should update the parallel_regression.py? Probably after addition of ramp case into develop? I have added one case few years back but not not able to recall the procedure...

@pcarruscag pcarruscag changed the title Rp limiter Nishikawa Rp limiters (AIAA 2022-1473) Apr 8, 2023
@pcarruscag
Copy link
Member

The PR branch for the testcase is from your personal repo, so indeed we need to merge that first.

For branches in our repo you can change line 131 in the file .github/workflows/regression.yml to point to a different branch then develop

aeroamit added 3 commits April 8, 2023 23:01
Added euler/ramp case details
Removed space (CodeFactor pointed issue)
@aeroamit
Copy link
Contributor Author

aeroamit commented Apr 9, 2023

@pcarruscag , kindly change the name of restart_flow.dat to solution_flow.dat for Inviscid supersonic flow past a ramp in a channel #122 pull request (merged) case. That's why regression failed this time (could not find restart file solution_flow.dat).

@aeroamit
Copy link
Contributor Author

aeroamit commented Apr 9, 2023

@pcarruscag , kindly change the name of restart_flow.dat to solution_flow.dat for Inviscid supersonic flow past a ramp in a channel #122 pull request (merged) case. That's why regression failed this time (could not find restart file solution_flow.dat).

Or perhaps I can change the restart file name to restart_flow.dat itself for passing the regression test (may not be a good practice)?

@pcarruscag
Copy link
Member

Its fine to change the name in the config file

Changed SOLUTION_FILENAME= restart_flow.dat
@pcarruscag pcarruscag merged commit 9fb797a into su2code:develop Apr 9, 2023
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