From d54b31e2d6ada5713ec15c720a3c44a89e75131e Mon Sep 17 00:00:00 2001
From: sergio <s.ferraris@opencfd.co.uk>
Date: Mon, 6 Dec 2010 12:47:14 +0000
Subject: [PATCH] BUG: deltaMax correction and IDDED delta correction

---
 .../IDDESDelta/IDDESDelta.C                   | 55 +++++++------------
 .../SpalartAllmarasIDDES.C                    | 19 ++++++-
 2 files changed, 39 insertions(+), 35 deletions(-)

diff --git a/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/IDDESDelta/IDDESDelta.C b/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/IDDESDelta/IDDESDelta.C
index 96041938ddd..a7de909e459 100644
--- a/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/IDDESDelta/IDDESDelta.C
+++ b/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/IDDESDelta/IDDESDelta.C
@@ -42,47 +42,34 @@ void Foam::IDDESDelta::calcDelta()
 {
     label nD = mesh().nGeometricD();
 
+    volScalarField delta
+    (
+        IOobject
+        (
+            "delta",
+            mesh_.time().timeName(),
+            mesh_,
+            IOobject::NO_READ,
+            IOobject::NO_WRITE
+        ),
+        mesh_,
+        dimensionedScalar("zero", dimLength, SMALL),
+        calculatedFvPatchScalarField::typeName
+    );
+
+    delta.internalField() = pow(mesh_.V(), 1.0/3.0);
+
     // initialise hwn as wall distance
     volScalarField hwn = wallDist(mesh()).y();
 
-    scalar deltamaxTmp = 0.;
-
-    const cellList& cells = mesh().cells();
-
-    forAll(cells,cellI)
-    {
-        scalar deltaminTmp = 1.e10;
-        const labelList& cFaces = mesh().cells()[cellI];
-        const point& centrevector = mesh().cellCentres()[cellI];
-
-        forAll(cFaces, cFaceI)
-        {
-            label faceI = cFaces[cFaceI];
-            const point& facevector = mesh().faceCentres()[faceI];
-            scalar tmp = mag(facevector - centrevector);
-
-            if (tmp > deltamaxTmp)
-            {
-                deltamaxTmp = tmp;
-            }
-            if (tmp < deltaminTmp)
-            {
-                deltaminTmp = tmp;
-            }
-        }
-        hwn[cellI] = 2.0*deltaminTmp;
-    }
-
-    dimensionedScalar deltamax("deltamax",dimLength,2.0*deltamaxTmp);
-
     if (nD == 3)
     {
         delta_.internalField() =
             deltaCoeff_
            *min
             (
-                max(max(cw_*wallDist(mesh()).y(), cw_*deltamax), hwn),
-                deltamax
+                max(max(cw_*wallDist(mesh()).y(), cw_*delta), hwn),
+                delta
             );
     }
     else if (nD == 2)
@@ -95,8 +82,8 @@ void Foam::IDDESDelta::calcDelta()
             deltaCoeff_
            *min
             (
-                max(max(cw_*wallDist(mesh()).y(), cw_*deltamax), hwn),
-                deltamax
+                max(max(cw_*wallDist(mesh()).y(), cw_*delta), hwn),
+                delta
             );
     }
     else
diff --git a/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C b/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C
index 08849cd0178..50ea893c03b 100644
--- a/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C
+++ b/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C
@@ -44,9 +44,26 @@ addToRunTimeSelectionTable(LESModel, SpalartAllmarasIDDES, dictionary);
 
 tmp<volScalarField> SpalartAllmarasIDDES::alpha() const
 {
+    volScalarField delta
+    (
+        IOobject
+        (
+            "delta",
+            mesh_.time().timeName(),
+            mesh_,
+            IOobject::NO_READ,
+            IOobject::NO_WRITE
+        ),
+        mesh_,
+        dimensionedScalar("zero", dimLength, SMALL),
+        calculatedFvPatchScalarField::typeName
+    );
+
+    delta.internalField() = pow(mesh_.V(), 1.0/3.0);
+
     return max
     (
-        0.25 - y_/dimensionedScalar("hMax", dimLength, max(cmptMax(delta()))),
+        0.25 - y_/delta,
         scalar(-5)
     );
 }
-- 
GitLab