Skip to content

Conversation

@Bot-Enigma-0
Copy link
Contributor

Proposed Changes

Give a brief overview of your contribution here in a few sentences.
The results of #2508, showed good improvement in the convergence when discretising using the product rule and treating the cross-diffusion solely as a diffusion term instead of a source. Attempting a similar discretisation for the SST model's cross-diffusion term in $\omega$ equation, the evaluation of the blending function F1 will remain unchanged. An under-relaxation factor is also introduced, this helped stabilise the convergence in some testcases.

Related Work

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

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.

oleburghardt and others added 30 commits February 11, 2025 16:21
…l write restart files during runtime (there is a bug, potentially when clearing the tape).
…his is a temporary change to avoid false positives when a tag tape is used. They might be unnecessary anyway though.
…l write restart files during runtime (there is a bug, potentially when clearing the tape).
@YairMO
Copy link

YairMO commented Jun 27, 2025

Hi,

Thank you very much for sharing.
Your work is very important towards the ultimate stability of the SST model.
I would like to emphasize that the total sum of the diffusive coefficient positivity is very important, especially on highly distorted unstructured grids (which often happens for industrial 3D grids). A straightforward treatment can't guarantee positivity. But it may be achieved using a non-conforming discretization.

@YairMO
Copy link

YairMO commented Jun 27, 2025

I don't mind sharing my idea with you. Please send me your private email address

Comment on lines 635 to 640
su2double Relaxation_Factor_Adjoint; /*!< \brief Relaxation coefficient for variable updates of adjoint solvers. */
su2double Relaxation_Factor_CHT; /*!< \brief Relaxation coefficient for the update of conjugate heat variables. */
su2double EntropyFix_Coeff; /*!< \brief Entropy fix coefficient. */
su2double SST_UnderRelaxation_Factor; /*!< \brief UnderRelaxation Factor for SST Turbulent Variables*/
su2double SA_UnderRelaxation_Factor; /*!< \brief UnderRelaxation Factor for SST Turbulent Variables*/
su2double Flow_UnderRelaxation_Factor; /*!< \brief UnderRelaxation Factor for SST Turbulent Variables*/
Copy link
Member

Choose a reason for hiding this comment

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

Please try to be consistent with naming, as you see we already have other relaxation factors.

system for this nonlinear iteration. */

const su2double allowableRatio = 0.2;
const su2double allowableRatio = config->GetUnderRelax_Flow();
Copy link
Member

Choose a reason for hiding this comment

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

Allowable ratio and under relaxation are different things.

Comment on lines 331 to 333
if (implicit) {
auto* Block_ij = Jacobian.GetBlock(iPoint, jPoint);
auto* Block_ji = Jacobian.GetBlock(jPoint, iPoint);
Copy link
Member

Choose a reason for hiding this comment

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

Apply the same changes I put your SA PR please.

Comment on lines 233 to 234
const su2double diff_i_omega = Laminar_Viscosity_i + sigma_omega_i*Eddy_Viscosity_i + lambda_i * ScalarVar_i[0];
const su2double diff_j_omega = Laminar_Viscosity_j + sigma_omega_j*Eddy_Viscosity_j + lambda_j * ScalarVar_j[0];
Copy link
Member

Choose a reason for hiding this comment

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

Add some comments about the manipulation of the CD term that goes into this.

@rois1995
Copy link
Contributor

rois1995 commented Jul 3, 2025

Really nice contributions @Bot-Enigma-0! Have you compared the results with these approaches on some TMR cases with different grids? I can help with that if needed once the implementation part is over.

@Bot-Enigma-0
Copy link
Contributor Author

Thanks @rois1995, I have mainly been working with the ONERAM6 testcase so far and a small test with the Incompressible Species Transport tutorial. Given the influence on the accuracy in this case, I am planning a grid convergence study, probably on a small case.

@Bot-Enigma-0 Bot-Enigma-0 marked this pull request as ready for review July 10, 2025 14:38
@Bot-Enigma-0 Bot-Enigma-0 changed the title [WIP] Updating the cross-diffusion discretisation in SST Updating the cross-diffusion discretisation in SST Jul 10, 2025
@Bot-Enigma-0 Bot-Enigma-0 merged commit 922d55d into su2code:feature_SST_CD_discretisation Jul 10, 2025
3 checks passed
@Bot-Enigma-0
Copy link
Contributor Author

continued in #2533

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.

9 participants