ENH: turbulenceFields FO - added turbulence intensity to list of available fields

This commit is contained in:
Andrew Heather
2018-05-17 11:08:00 +01:00
parent 1dbed00345
commit e2c6985ea5
3 changed files with 54 additions and 22 deletions

View File

@ -61,7 +61,8 @@ Foam::functionObjects::turbulenceFields::compressibleFieldNames_
{ compressibleField::cfAlphaEff, "alphaEff" },
{ compressibleField::cfR, "R" },
{ compressibleField::cfDevRhoReff, "devRhoReff" },
{ compressibleField::cfL, "L" }
{ compressibleField::cfL, "L" },
{ compressibleField::cfI, "I" }
};
@ -80,6 +81,7 @@ Foam::functionObjects::turbulenceFields::incompressibleFieldNames_
{ incompressibleField::ifR, "R" },
{ incompressibleField::ifDevReff, "devReff" },
{ incompressibleField::ifL, "L" },
{ incompressibleField::ifI, "I" }
};
@ -236,6 +238,11 @@ bool Foam::functionObjects::turbulenceFields::execute()
processField<scalar>(f, L(model));
break;
}
case cfI:
{
processField<scalar>(f, I(model));
break;
}
default:
{
FatalErrorInFunction
@ -298,6 +305,11 @@ bool Foam::functionObjects::turbulenceFields::execute()
processField<scalar>(f, L(model));
break;
}
case ifI:
{
processField<scalar>(f, I(model));
break;
}
default:
{
FatalErrorInFunction

View File

@ -76,6 +76,7 @@ Usage
devReff | Deviatoric part of the effective Reynolds stress
devRhoReff | Divergence of the Reynolds stress
L | turbulence length scale
I | turbulence intensity
\endplaintable
See also
@ -125,7 +126,8 @@ public:
cfAlphaEff,
cfR,
cfDevRhoReff,
cfL
cfL,
cfI
};
static const Enum<compressibleField> compressibleFieldNames_;
@ -139,7 +141,8 @@ public:
ifNuEff,
ifR,
ifDevReff,
ifL
ifL,
ifI
};
static const Enum<incompressibleField> incompressibleFieldNames_;
@ -179,6 +182,10 @@ protected:
template<class Model>
tmp<volScalarField> L(const Model& model) const;
//- Return I calculated from k and U
template<class Model>
tmp<volScalarField> I(const Model& model) const;
private:

View File

@ -85,9 +85,7 @@ Foam::functionObjects::turbulenceFields::omega
const volScalarField k(model.k());
const volScalarField epsilon(model.epsilon());
return tmp<volScalarField>
(
new volScalarField
return tmp<volScalarField>::New
(
IOobject
(
@ -97,7 +95,6 @@ Foam::functionObjects::turbulenceFields::omega
),
epsilon/(Cmu*k),
epsilon.boundaryField().types()
)
);
}
@ -109,9 +106,10 @@ Foam::functionObjects::turbulenceFields::nuTilda
const Model& model
) const
{
return tmp<volScalarField>
return tmp<volScalarField>::New
(
new volScalarField("nuTilda.tmp", model.k()/omega(model))
"nuTilda.tmp",
model.k()/omega(model)
);
}
@ -130,15 +128,30 @@ Foam::functionObjects::turbulenceFields::L
const volScalarField epsilon(model.epsilon());
const dimensionedScalar eps0("eps0", epsilon.dimensions(), SMALL);
return tmp<volScalarField>
(
new volScalarField
return tmp<volScalarField>::New
(
"L.tmp",
pow(Cmu, 0.75)*pow(k, 1.5)/(epsilon + eps0)
)
);
}
template<class Model>
Foam::tmp<Foam::volScalarField>
Foam::functionObjects::turbulenceFields::I
(
const Model& model
) const
{
// Assume k is available
const volScalarField uPrime(sqrt((2.0/3.0)*model.k()));
const dimensionedScalar U0("U0", dimVelocity, SMALL);
return tmp<volScalarField>::New
(
"I.tmp",
uPrime/max(max(uPrime, mag(model.U())), U0)
);
}
// ************************************************************************* //