Skip to content

Enable viscous flux contribution at supersonic outlet boundary condition#2829

Open
yiluntam wants to merge 5 commits into
su2code:developfrom
yiluntam:fix/euler-outlet-bc
Open

Enable viscous flux contribution at supersonic outlet boundary condition#2829
yiluntam wants to merge 5 commits into
su2code:developfrom
yiluntam:fix/euler-outlet-bc

Conversation

@yiluntam

Copy link
Copy Markdown

Proposed Changes

The viscous flux contribution in BC_Supersonic_Outlet was previously commented out due to reported convergence issues. However, for viscous NS simulations this omission is physically incorrect and causes severe convergence problems at outlet boundary cells, which also prevents the use of second-order MUSCL reconstruction.

For supersonic flows, downstream disturbances cannot propagate upstream, so the outlet state can be safely extrapolated from the domain interior. Using SetPrimitive(V_domain, V_domain) instead of (V_domain, V_outlet) resolves the convergence problems that motivated the original commenting.

PR Checklist

  • [ x ] I am submitting my contribution to the develop branch.
  • [ x ] 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 used the pre-commit hook to prevent dirty commits and used pre-commit run --all to format old commits.
  • 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.

pcarruscag and others added 2 commits April 28, 2026 08:05
The viscous flux contribution in BC_Supersonic_Outlet was previously
commented out due to reported convergence issues. However, for viscous
NS simulations this omission is physically incorrect and causes severe
convergence problems at outlet boundary cells, which also prevents the
use of second-order MUSCL reconstruction.

For supersonic flows, downstream disturbances cannot propagate upstream,
so the outlet state can be safely extrapolated from the domain interior.
Using SetPrimitive(V_domain, V_domain) instead of (V_domain, V_outlet)
resolves the convergence problems that motivated the original commenting.
@yiluntam

Copy link
Copy Markdown
Author

@pcarruscag Could you take a look at this when you have time? Thanks!

@yiluntam yiluntam force-pushed the fix/euler-outlet-bc branch from f6a58b3 to 092f23a Compare June 10, 2026 13:03
@yiluntam

yiluntam commented Jun 10, 2026

Copy link
Copy Markdown
Author
image

Validation: Ma = 4, Tw/T∞ = 1, laminar flat plate boundary layer. Cf distribution agrees well with Anderson's hypersonic reference ("Hypersonic and High Temperature Gas Dynamics").

As can be seen, the new code aligns more closely with the theoretical solution. The distribution of physical quantities at the outlet is also more reasonable. Furthermore, the convergence time required during the calculation has been reduced.

@yiluntam yiluntam force-pushed the fix/euler-outlet-bc branch from 798b746 to cd4bb21 Compare June 12, 2026 12:44
@yiluntam

Copy link
Copy Markdown
Author

It looks like I left out a line of code, since I had been using version 8.0.1 all along. The code has now compiled successfully. Sorry for uploading the incorrect code earlier. @bigfooted @pcarruscag

Comment thread SU2_CFD/src/solvers/CEulerSolver.cpp
Comment thread SU2_CFD/src/solvers/CEulerSolver.cpp
@bigfooted

Copy link
Copy Markdown
Contributor

Hi, can you add a figure of the residual plot of before and after here, and can you add your testcase to the PR? It looks like none of the existing testcases are using this.
You can add the .cfg file to this repository inside of the Testcases subdirectory.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@yiluntam yiluntam force-pushed the fix/euler-outlet-bc branch from 04f04f6 to 82d8e59 Compare June 13, 2026 09:15
@yiluntam

Copy link
Copy Markdown
Author
residual_history Here is a comparison of the convergence residual history before and after the code modification. It seems there was a slight inaccuracy in my previous description. It would be more accurate to say that the convergence does not diverge, rather than that it converges faster. Additionally, the .cfg and .cgns files have been placed in the Testcases subdirectory.

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