From 8f63fd5230282c7c70369c0b0081e3bffcac185a Mon Sep 17 00:00:00 2001
From: Andrew Heather <>
Date: Wed, 7 Dec 2022 14:06:42 +0000
Subject: [PATCH] INT: refactored kOmegaSST sigma extensions to restore
 previous v2206 behaviour

---
 .../Base/kOmegaSST/kOmegaSSTBase.C            | 20 +++++++++----------
 .../Base/kOmegaSST/kOmegaSSTBase.H            |  2 --
 .../DES/kOmegaSSTDDES/kOmegaSSTDDES.C         | 17 ++++++++++++----
 .../DES/kOmegaSSTDDES/kOmegaSSTDDES.H         |  2 --
 .../DES/kOmegaSSTDES/kOmegaSSTDES.C           | 17 ++++++++++++----
 .../DES/kOmegaSSTDES/kOmegaSSTDES.H           |  2 --
 6 files changed, 35 insertions(+), 25 deletions(-)

diff --git a/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.C b/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.C
index 0f4b7756f66..ea031c67690 100644
--- a/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.C
+++ b/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.C
@@ -136,7 +136,6 @@ void kOmegaSSTBase<BasicEddyViscosityModel>::correctNut()
 template<class BasicEddyViscosityModel>
 Foam::tmp<Foam::volScalarField> kOmegaSSTBase<BasicEddyViscosityModel>::S2
 (
-    const volScalarField& F1,
     const volTensorField& gradU
 ) const
 {
@@ -169,8 +168,7 @@ template<class BasicEddyViscosityModel>
 tmp<volScalarField::Internal> kOmegaSSTBase<BasicEddyViscosityModel>::GbyNu0
 (
     const volTensorField& gradU,
-    const volScalarField& F1,
-    const volScalarField& S2
+    const volScalarField& /* S2 not used */
 ) const
 {
     return tmp<volScalarField::Internal>::New
@@ -521,6 +519,14 @@ void kOmegaSSTBase<BasicEddyViscosityModel>::correct()
         fvc::div(fvc::absolute(this->phi(), U))
     );
 
+    tmp<volTensorField> tgradU = fvc::grad(U);
+    const volScalarField S2(this->S2(tgradU()));
+    volScalarField::Internal GbyNu0(this->GbyNu0(tgradU(), S2));
+    volScalarField::Internal G(this->GName(), nut*GbyNu0);
+
+    // Update omega and G at the wall
+    omega_.boundaryFieldRef().updateCoeffs();
+
     const volScalarField CDkOmega
     (
         (2*alphaOmega2_)*(fvc::grad(k_) & fvc::grad(omega_))/omega_
@@ -529,14 +535,6 @@ void kOmegaSSTBase<BasicEddyViscosityModel>::correct()
     const volScalarField F1(this->F1(CDkOmega));
     const volScalarField F23(this->F23());
 
-    tmp<volTensorField> tgradU = fvc::grad(U);
-    const volScalarField S2(this->S2(F1, tgradU()));
-    volScalarField::Internal GbyNu0(this->GbyNu0(tgradU(), F1, S2));
-    volScalarField::Internal G(this->GName(), nut*GbyNu0);
-
-    // Update omega and G at the wall
-    omega_.boundaryFieldRef().updateCoeffs();
-
     {
         const volScalarField::Internal gamma(this->gamma(F1));
         const volScalarField::Internal beta(this->beta(F1));
diff --git a/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.H b/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.H
index 96b333ea736..05d32cffe55 100644
--- a/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.H
+++ b/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.H
@@ -263,7 +263,6 @@ protected:
         //- Return square of strain rate
         virtual tmp<volScalarField> S2
         (
-            const volScalarField& F1,
             const volTensorField& gradU
         ) const;
 
@@ -284,7 +283,6 @@ protected:
         virtual tmp<volScalarField::Internal> GbyNu0
         (
             const volTensorField& gradU,
-            const volScalarField& F1,
             const volScalarField& S2
         ) const;
 
diff --git a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDDES/kOmegaSSTDDES.C b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDDES/kOmegaSSTDDES.C
index 6645e172881..333d3f2f098 100644
--- a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDDES/kOmegaSSTDDES.C
+++ b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDDES/kOmegaSSTDDES.C
@@ -53,16 +53,26 @@ tmp<volScalarField> kOmegaSSTDDES<BasicTurbulenceModel>::fd
 template<class BasicTurbulenceModel>
 tmp<volScalarField> kOmegaSSTDDES<BasicTurbulenceModel>::S2
 (
-    const volScalarField& F1,
     const volTensorField& gradU
 ) const
 {
     tmp<volScalarField> tS2 =
-        kOmegaSSTBase<DESModel<BasicTurbulenceModel>>::S2(F1, gradU);
+        kOmegaSSTBase<DESModel<BasicTurbulenceModel>>::S2(gradU);
 
     if (this->useSigma_)
     {
         volScalarField& S2 = tS2.ref();
+
+        const volScalarField& k = this->k_;
+        const volScalarField& omega = this->omega_;
+
+        const volScalarField CDkOmega
+        (
+            (2*this->alphaOmega2_)*(fvc::grad(k) & fvc::grad(omega))/omega
+        );
+
+        const volScalarField F1(this->F1(CDkOmega));
+
         const volScalarField CDES(this->CDES(F1));
         const volScalarField Ssigma(this->Ssigma(gradU));
 
@@ -98,7 +108,6 @@ template<class BasicTurbulenceModel>
 tmp<volScalarField::Internal> kOmegaSSTDDES<BasicTurbulenceModel>::GbyNu0
 (
     const volTensorField& gradU,
-    const volScalarField& F1,
     const volScalarField& S2
 ) const
 {
@@ -108,7 +117,7 @@ tmp<volScalarField::Internal> kOmegaSSTDDES<BasicTurbulenceModel>::GbyNu0
     }
 
     return
-        kOmegaSSTBase<DESModel<BasicTurbulenceModel>>::GbyNu0(gradU, F1, S2);
+        kOmegaSSTBase<DESModel<BasicTurbulenceModel>>::GbyNu0(gradU, S2);
 }
 
 
diff --git a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDDES/kOmegaSSTDDES.H b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDDES/kOmegaSSTDDES.H
index 4b4f41b40e8..08943a3651c 100644
--- a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDDES/kOmegaSSTDDES.H
+++ b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDDES/kOmegaSSTDDES.H
@@ -97,7 +97,6 @@ protected:
         //- Return square of strain rate
         virtual tmp<volScalarField> S2
         (
-            const volScalarField& F1,
             const volTensorField& gradU
         ) const;
 
@@ -112,7 +111,6 @@ protected:
         virtual tmp<volScalarField::Internal> GbyNu0
         (
             const volTensorField& gradU,
-            const volScalarField& F1,
             const volScalarField& S2
         ) const;
 
diff --git a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDES/kOmegaSSTDES.C b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDES/kOmegaSSTDES.C
index bf3d8b1f4e8..7811de5b59d 100644
--- a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDES/kOmegaSSTDES.C
+++ b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDES/kOmegaSSTDES.C
@@ -77,16 +77,26 @@ tmp<volScalarField> kOmegaSSTDES<BasicTurbulenceModel>::r
 template<class BasicTurbulenceModel>
 tmp<volScalarField> kOmegaSSTDES<BasicTurbulenceModel>::S2
 (
-    const volScalarField& F1,
     const volTensorField& gradU
 ) const
 {
     tmp<volScalarField> tS2 =
-        kOmegaSSTBase<DESModel<BasicTurbulenceModel>>::S2(F1, gradU);
+        kOmegaSSTBase<DESModel<BasicTurbulenceModel>>::S2(gradU);
 
     if (this->useSigma_)
     {
         volScalarField& S2 = tS2.ref();
+
+        const volScalarField& k = this->k_;
+        const volScalarField& omega = this->omega_;
+
+        const volScalarField CDkOmega
+        (
+            (2*this->alphaOmega2_)*(fvc::grad(k) & fvc::grad(omega))/omega
+        );
+
+        const volScalarField F1(this->F1(CDkOmega));
+
         const volScalarField CDES(this->CDES(F1));
         const volScalarField dTilda(this->dTilda(mag(gradU), CDES));
         const volScalarField lengthScaleRAS(this->lengthScaleRAS());
@@ -128,7 +138,6 @@ template<class BasicTurbulenceModel>
 tmp<volScalarField::Internal> kOmegaSSTDES<BasicTurbulenceModel>::GbyNu0
 (
     const volTensorField& gradU,
-    const volScalarField& F1,
     const volScalarField& S2
 ) const
 {
@@ -138,7 +147,7 @@ tmp<volScalarField::Internal> kOmegaSSTDES<BasicTurbulenceModel>::GbyNu0
     }
 
     return
-        kOmegaSSTBase<DESModel<BasicTurbulenceModel>>::GbyNu0(gradU, F1, S2);
+        kOmegaSSTBase<DESModel<BasicTurbulenceModel>>::GbyNu0(gradU, S2);
 }
 
 
diff --git a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDES/kOmegaSSTDES.H b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDES/kOmegaSSTDES.H
index dfdf077c5b9..e9afbd15091 100644
--- a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDES/kOmegaSSTDES.H
+++ b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDES/kOmegaSSTDES.H
@@ -118,7 +118,6 @@ protected:
         //- Return square of strain rate
         virtual tmp<volScalarField> S2
         (
-            const volScalarField& F1,
             const volTensorField& gradU
         ) const;
 
@@ -140,7 +139,6 @@ protected:
         virtual tmp<volScalarField::Internal> GbyNu0
         (
             const volTensorField& gradU,
-            const volScalarField& F1,
             const volScalarField& S2
         ) const;
 
-- 
GitLab