mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: Turbulence IDDES models - added option to switch fe term in dTilda calc
Default is fe = true, yielding the original form given be Shur (2008)
This commit is contained in:
@ -108,24 +108,28 @@ tmp<volScalarField> SpalartAllmarasIDDES<BasicTurbulenceModel>::dTilda
|
|||||||
const volScalarField expTerm(exp(sqr(alpha)));
|
const volScalarField expTerm(exp(sqr(alpha)));
|
||||||
|
|
||||||
tmp<volScalarField> fB = min(2*pow(expTerm, -9.0), scalar(1));
|
tmp<volScalarField> fB = min(2*pow(expTerm, -9.0), scalar(1));
|
||||||
tmp<volScalarField> fe1 =
|
|
||||||
2*(pos0(alpha)*pow(expTerm, -11.09) + neg(alpha)*pow(expTerm, -9.0));
|
|
||||||
tmp<volScalarField> fe2 = 1 - max(ft(magGradU), fl(magGradU));
|
|
||||||
tmp<volScalarField> fe = max(fe1 - 1, scalar(0))*psi*fe2;
|
|
||||||
|
|
||||||
const volScalarField fdTilda(max(1 - fdt(magGradU), fB));
|
const volScalarField fdTilda(max(1 - fdt(magGradU), fB));
|
||||||
|
|
||||||
// Simplified formulation from Gritskevich et al. paper (2011) where fe = 0
|
if (fe_)
|
||||||
// return max
|
{
|
||||||
// (
|
tmp<volScalarField> fe1 =
|
||||||
// fdTilda*lRAS + (1 - fdTilda)*lLES,
|
2*(pos0(alpha)*pow(expTerm, -11.09) + neg(alpha)*pow(expTerm, -9.));
|
||||||
// dimensionedScalar("SMALL", dimLength, SMALL)
|
tmp<volScalarField> fe2 = 1 - max(ft(magGradU), fl(magGradU));
|
||||||
// );
|
tmp<volScalarField> fe = max(fe1 - 1, scalar(0))*psi*fe2;
|
||||||
|
|
||||||
// Original formulation from Shur et al. paper (2008)
|
// Original formulation from Shur et al. paper (2008)
|
||||||
|
return max
|
||||||
|
(
|
||||||
|
fdTilda*(1 + fe)*lRAS + (1 - fdTilda)*lLES,
|
||||||
|
dimensionedScalar("SMALL", dimLength, SMALL)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Simplified formulation from Gritskevich et al. paper (2011) where fe = 0
|
||||||
return max
|
return max
|
||||||
(
|
(
|
||||||
fdTilda*(1 + fe)*lRAS + (1 - fdTilda)*lLES,
|
fdTilda*lRAS + (1 - fdTilda)*lLES,
|
||||||
dimensionedScalar("SMALL", dimLength, SMALL)
|
dimensionedScalar("SMALL", dimLength, SMALL)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -194,6 +198,16 @@ SpalartAllmarasIDDES<BasicTurbulenceModel>::SpalartAllmarasIDDES
|
|||||||
1.63
|
1.63
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
fe_
|
||||||
|
(
|
||||||
|
Switch::getOrAddToDict
|
||||||
|
(
|
||||||
|
"fe",
|
||||||
|
this->coeffDict_,
|
||||||
|
true
|
||||||
|
)
|
||||||
|
),
|
||||||
|
|
||||||
IDDESDelta_(setDelta())
|
IDDESDelta_(setDelta())
|
||||||
{
|
{
|
||||||
if (type == typeName)
|
if (type == typeName)
|
||||||
|
|||||||
@ -100,6 +100,7 @@ protected:
|
|||||||
dimensionedScalar Cdt2_;
|
dimensionedScalar Cdt2_;
|
||||||
dimensionedScalar Cl_;
|
dimensionedScalar Cl_;
|
||||||
dimensionedScalar Ct_;
|
dimensionedScalar Ct_;
|
||||||
|
Switch fe_;
|
||||||
|
|
||||||
|
|
||||||
//- IDDES delta
|
//- IDDES delta
|
||||||
|
|||||||
@ -104,24 +104,27 @@ tmp<volScalarField> kOmegaSSTIDDES<BasicTurbulenceModel>::dTilda
|
|||||||
const volScalarField expTerm(exp(sqr(alpha)));
|
const volScalarField expTerm(exp(sqr(alpha)));
|
||||||
|
|
||||||
tmp<volScalarField> fB = min(2*pow(expTerm, -9.0), scalar(1));
|
tmp<volScalarField> fB = min(2*pow(expTerm, -9.0), scalar(1));
|
||||||
tmp<volScalarField> fe1 =
|
|
||||||
2*(pos0(alpha)*pow(expTerm, -11.09) + neg(alpha)*pow(expTerm, -9.0));
|
|
||||||
tmp<volScalarField> fe2 = 1 - max(ft(magGradU), fl(magGradU));
|
|
||||||
tmp<volScalarField> fe = max(fe1 - 1, scalar(0))*fe2;
|
|
||||||
|
|
||||||
const volScalarField fdTilda(max(1 - fdt(magGradU), fB));
|
const volScalarField fdTilda(max(1 - fdt(magGradU), fB));
|
||||||
|
|
||||||
// Simplified formulation from Gritskevich et al. paper (2011) where fe = 0
|
if (fe_)
|
||||||
// return max
|
{
|
||||||
// (
|
tmp<volScalarField> fe1 =
|
||||||
// fdTilda*lRAS + (1 - fdTilda)*lLES,
|
2*(pos0(alpha)*pow(expTerm, -11.09) + neg(alpha)*pow(expTerm, -9.));
|
||||||
// dimensionedScalar("SMALL", dimLength, SMALL)
|
tmp<volScalarField> fe2 = 1 - max(ft(magGradU), fl(magGradU));
|
||||||
// );
|
tmp<volScalarField> fe = max(fe1 - 1, scalar(0))*fe2;
|
||||||
|
|
||||||
// Original formulation from Shur et al. paper (2008)
|
// Original formulation from Shur et al. paper (2008)
|
||||||
|
return max
|
||||||
|
(
|
||||||
|
fdTilda*(1 + fe)*lRAS + (1 - fdTilda)*lLES,
|
||||||
|
dimensionedScalar("SMALL", dimLength, SMALL)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Simplified formulation from Gritskevich et al. paper (2011) where fe = 0
|
||||||
return max
|
return max
|
||||||
(
|
(
|
||||||
fdTilda*(1 + fe)*lRAS + (1 - fdTilda)*lLES,
|
fdTilda*lRAS + (1 - fdTilda)*lLES,
|
||||||
dimensionedScalar("SMALL", dimLength, SMALL)
|
dimensionedScalar("SMALL", dimLength, SMALL)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -190,6 +193,16 @@ kOmegaSSTIDDES<BasicTurbulenceModel>::kOmegaSSTIDDES
|
|||||||
1.87
|
1.87
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
fe_
|
||||||
|
(
|
||||||
|
Switch::getOrAddToDict
|
||||||
|
(
|
||||||
|
"fe",
|
||||||
|
this->coeffDict_,
|
||||||
|
true
|
||||||
|
)
|
||||||
|
),
|
||||||
|
|
||||||
IDDESDelta_(setDelta())
|
IDDESDelta_(setDelta())
|
||||||
{
|
{
|
||||||
if (type == typeName)
|
if (type == typeName)
|
||||||
|
|||||||
@ -97,6 +97,7 @@ protected:
|
|||||||
dimensionedScalar Cdt2_;
|
dimensionedScalar Cdt2_;
|
||||||
dimensionedScalar Cl_;
|
dimensionedScalar Cl_;
|
||||||
dimensionedScalar Ct_;
|
dimensionedScalar Ct_;
|
||||||
|
Switch fe_;
|
||||||
|
|
||||||
|
|
||||||
//- IDDES delta
|
//- IDDES delta
|
||||||
|
|||||||
Reference in New Issue
Block a user