diff --git a/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/IDDESDelta/IDDESDelta.C b/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/IDDESDelta/IDDESDelta.C index 96041938ddd76d6368457e266d287431155ef905..a7de909e459c6dbe3fa88a46329fa189928ab14e 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 08849cd0178b58f030f754e45dbf5b7e7fa5357b..50ea893c03b7d0695b9d933542929327f9bbf67c 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) ); }