Skip to content

Conversation

@raghava-davuluri
Copy link

@raghava-davuluri raghava-davuluri commented Jan 22, 2026

Proposed Changes

Give a brief overview of your contribution here in a few sentences.

  • Improve axisymmetric source-term behavior near the symmetry axis by smoothly transitioning between the standard v/r formulation and a L’Hôpital-consistent ∂v/∂r formulation as r→0.
  • Apply a L’Hôpital-consistent treatment for axisymmetric auxiliary gradient terms at the axis instead of zeroing them.

Related Work

Resolve any issues (bug fix or feature request), note any related PRs, or mention interactions with the work of others, if any.

  • Addresses nonphysical behavior observed in axisymmetric stagnation-region solutions where the 1/r terms become singular near the axis. This PR was prepared for review/discussion with SU2 developers.
  • The standard formulation is preserved away from the axis; the near-axis modification only affects the r→0 limit.

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

@bigfooted
Copy link
Contributor

Hi @raghava-davuluri, thanks for this fix! Does this case need additional regression tests or is it covered by the existing regression tests for axisymmetric flow?
At the moment we have these testcases with axisymmetry, not too much so maybe add an additional one that you've worked on:

axisymmetric_rans/air_nozzle/air_nozzle_restart.cfg:16:AXISYMMETRIC= YES
flamelet/05_laminar_premixed_ch4_flame_cfd_axi/lam_prem_ch4_cfd_axi.cfg:29:AXISYMMETRIC= YES
nonequilibrium/visc_cylinder/cyl_ion_gy.cfg:14:AXISYMMETRIC= YES
nonequilibrium/visc_wedge/axi_visccone.cfg:18:AXISYMMETRIC= YES
py_wrapper/turbulent_premixed_psi/psi.cfg:67:AXISYMMETRIC= YES
vandv/species_transport/sandia_jet/validation.cfg:58:AXISYMMETRIC= YES

/*--- Common calculations for both branches ---*/
su2double rho = U_i[0]; // density
su2double u = U_i[1]/U_i[0]; // u-velocity
su2double v = U_i[2]/U_i[0]; // v-velocity

Check notice

Code scanning / CodeQL

Unused local variable Note

Variable v is not used.
@Hanquist
Copy link

This is addressing #2438

It helps in most situations, but dips in axisymmetric heating cases can still be present for some meshes. So @raghava-davuluri is doing a pull request to help get more eyes on it.

@Hanquist
Copy link

@raghava-davuluri @bigfooted, reading up on this more, L'Hopital's rule may be more suitable for cell-centered and less so for vertex-centered codes. And that all the residuals should still be zero at the symmetry line. Here is an example of the axisymmetric sources along the surface. I would expect the energy and momentum-x to smoothly go to zero at theta=0 instead of a discontinuity

image

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