mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge commit 'origin/master' into olesenm
This commit is contained in:
@ -123,13 +123,13 @@ Foam::tmp<Foam::volScalarField> Foam::SchaefferFrictionalStress::muf
|
||||
)
|
||||
);
|
||||
|
||||
volScalarField& muf_ = tmuf();
|
||||
volScalarField& muff = tmuf();
|
||||
|
||||
forAll (D, celli)
|
||||
{
|
||||
if (alpha[celli] > alphaMax.value()-5e-2)
|
||||
{
|
||||
muf_[celli] =
|
||||
muff[celli] =
|
||||
0.5*pf[celli]*sin(phi.value())
|
||||
/(
|
||||
sqrt(1.0/6.0*(sqr(D[celli].xx() - D[celli].yy())
|
||||
@ -141,7 +141,7 @@ Foam::tmp<Foam::volScalarField> Foam::SchaefferFrictionalStress::muf
|
||||
}
|
||||
}
|
||||
|
||||
return muf_;
|
||||
return tmuf;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -30,12 +30,26 @@ Description
|
||||
|
||||
#include "Switch.H"
|
||||
#include "error.H"
|
||||
#include "dictionary.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
Switch Switch::lookupOrAddToDict
|
||||
(
|
||||
const word& name,
|
||||
dictionary& dict,
|
||||
const Switch& defaultValue
|
||||
)
|
||||
{
|
||||
return dict.lookupOrAddDefault<Switch>(name, defaultValue);
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
||||
|
||||
word Switch::wordValue(const bool l) const
|
||||
@ -74,6 +88,14 @@ bool Switch::boolValue(const word& w) const
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
bool Switch::readIfPresent(const word& name, const dictionary& dict)
|
||||
{
|
||||
return dict.readIfPresent(name, logicalSwitch_);
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
@ -53,6 +53,7 @@ class Switch;
|
||||
Istream& operator>>(Istream&, Switch&);
|
||||
Ostream& operator<<(Ostream&, const Switch&);
|
||||
|
||||
class dictionary;
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class Switch Declaration
|
||||
@ -92,6 +93,15 @@ public:
|
||||
//- Construct from Istream
|
||||
Switch(Istream& is);
|
||||
|
||||
//- Construct from dictionary, supplying default value so that if the
|
||||
// value is not found, it is added into the dictionary.
|
||||
static Switch lookupOrAddToDict
|
||||
(
|
||||
const word&,
|
||||
dictionary&,
|
||||
const Switch& defaultValue = false
|
||||
);
|
||||
|
||||
|
||||
// Member Operators
|
||||
|
||||
@ -114,6 +124,12 @@ public:
|
||||
}
|
||||
|
||||
|
||||
// Member fuctions
|
||||
|
||||
//- Update the value of the Switch if it is found in the dictionary
|
||||
bool readIfPresent(const word&, const dictionary&);
|
||||
|
||||
|
||||
// IOstream Operators
|
||||
|
||||
friend Istream& operator>>(Istream&, Switch&);
|
||||
|
||||
@ -26,13 +26,30 @@ License
|
||||
|
||||
#include "dimensionedType.H"
|
||||
#include "pTraits.H"
|
||||
#include "dictionary.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
template <class Type>
|
||||
dimensioned<Type> dimensioned<Type>::lookupOrAddToDict
|
||||
(
|
||||
const word& name,
|
||||
dictionary& dict,
|
||||
const Type& defaultValue,
|
||||
const dimensionSet& dims
|
||||
)
|
||||
{
|
||||
Type value = dict.lookupOrAddDefault<Type>(name, defaultValue);
|
||||
return dimensioned<Type>(name, dims, value);
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
template <class Type>
|
||||
dimensioned<Type>::dimensioned
|
||||
@ -168,6 +185,13 @@ void dimensioned<Type>::replace
|
||||
}
|
||||
|
||||
|
||||
template <class Type>
|
||||
bool dimensioned<Type>::readIfPresent(const dictionary& dict)
|
||||
{
|
||||
return dict.readIfPresent(name_, value_);
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
|
||||
|
||||
template <class Type>
|
||||
|
||||
@ -56,6 +56,7 @@ Istream& operator>>(Istream&, dimensioned<Type>&);
|
||||
template<class Type>
|
||||
Ostream& operator<<(Ostream&, const dimensioned<Type>&);
|
||||
|
||||
class dictionary;
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class dimensioned Declaration
|
||||
@ -107,6 +108,16 @@ public:
|
||||
//- Construct from an Istream with a given name and dimensions
|
||||
dimensioned(const word&, const dimensionSet&, Istream&);
|
||||
|
||||
//- Construct from dictionary, supplying default value so that if the
|
||||
// value is not found, it is added into the dictionary.
|
||||
static dimensioned<Type> lookupOrAddToDict
|
||||
(
|
||||
const word&,
|
||||
dictionary&,
|
||||
const Type& defaultValue = pTraits<Type>::zero,
|
||||
const dimensionSet& dims = dimless
|
||||
);
|
||||
|
||||
|
||||
// Member functions
|
||||
|
||||
@ -137,6 +148,10 @@ public:
|
||||
//- Return transpose.
|
||||
dimensioned<Type> T() const;
|
||||
|
||||
//- Update the value of the dimensioned<Type> if it is found in the
|
||||
// dictionary
|
||||
bool readIfPresent(const dictionary&);
|
||||
|
||||
|
||||
// Member operators
|
||||
|
||||
|
||||
0
src/transportModels/incompressible/viscosityModels/HerschelBulkley/HerschelBulkley.C
Executable file → Normal file
0
src/transportModels/incompressible/viscosityModels/HerschelBulkley/HerschelBulkley.C
Executable file → Normal file
0
src/transportModels/incompressible/viscosityModels/HerschelBulkley/HerschelBulkley.H
Executable file → Normal file
0
src/transportModels/incompressible/viscosityModels/HerschelBulkley/HerschelBulkley.H
Executable file → Normal file
28
src/transportModels/incompressible/viscosityModels/powerLaw/powerLaw.C
Executable file → Normal file
28
src/transportModels/incompressible/viscosityModels/powerLaw/powerLaw.C
Executable file → Normal file
@ -51,9 +51,23 @@ namespace viscosityModels
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::viscosityModels::powerLaw::calcNu() const
|
||||
{
|
||||
dimensionedScalar tone("tone", dimTime, 1.0);
|
||||
return (max(numin_, min(numax_, k_
|
||||
* pow(tone * strainRate(), n_.value()- scalar(1.0)))));
|
||||
return max
|
||||
(
|
||||
nuMin_,
|
||||
min
|
||||
(
|
||||
nuMax_,
|
||||
k_*pow
|
||||
(
|
||||
max
|
||||
(
|
||||
dimensionedScalar("one", dimTime, 1.0)*strainRate(),
|
||||
dimensionedScalar("VSMALL", dimless, VSMALL)
|
||||
),
|
||||
n_.value() - scalar(1.0)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -71,8 +85,8 @@ Foam::viscosityModels::powerLaw::powerLaw
|
||||
powerLawCoeffs_(viscosityProperties.subDict(typeName + "Coeffs")),
|
||||
k_(powerLawCoeffs_.lookup("k")),
|
||||
n_(powerLawCoeffs_.lookup("n")),
|
||||
numin_(powerLawCoeffs_.lookup("numin")),
|
||||
numax_(powerLawCoeffs_.lookup("numax")),
|
||||
nuMin_(powerLawCoeffs_.lookup("nuMin")),
|
||||
nuMax_(powerLawCoeffs_.lookup("nuMax")),
|
||||
nu_
|
||||
(
|
||||
IOobject
|
||||
@ -101,8 +115,8 @@ bool Foam::viscosityModels::powerLaw::read
|
||||
|
||||
powerLawCoeffs_.lookup("k") >> k_;
|
||||
powerLawCoeffs_.lookup("n") >> n_;
|
||||
powerLawCoeffs_.lookup("numin") >> numin_;
|
||||
powerLawCoeffs_.lookup("numax") >> numax_;
|
||||
powerLawCoeffs_.lookup("nuMin") >> nuMin_;
|
||||
powerLawCoeffs_.lookup("nuMax") >> nuMax_;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
4
src/transportModels/incompressible/viscosityModels/powerLaw/powerLaw.H
Executable file → Normal file
4
src/transportModels/incompressible/viscosityModels/powerLaw/powerLaw.H
Executable file → Normal file
@ -61,8 +61,8 @@ class powerLaw
|
||||
|
||||
dimensionedScalar k_;
|
||||
dimensionedScalar n_;
|
||||
dimensionedScalar numin_;
|
||||
dimensionedScalar numax_;
|
||||
dimensionedScalar nuMin_;
|
||||
dimensionedScalar nuMax_;
|
||||
|
||||
volScalarField nu_;
|
||||
|
||||
|
||||
@ -55,8 +55,24 @@ DeardorffDiffStress::DeardorffDiffStress
|
||||
LESmodel(typeName, rho, U, phi, thermoPhysicalModel),
|
||||
GenSGSStress(rho, U, phi, thermoPhysicalModel),
|
||||
|
||||
ck_(LESmodelProperties().lookupOrAddDefault<scalar>("ck", 0.094)),
|
||||
cm_(LESmodelProperties().lookupOrAddDefault<scalar>("cm", 4.13))
|
||||
ck_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"ck",
|
||||
LESmodelProperties(),
|
||||
0.094
|
||||
)
|
||||
),
|
||||
cm_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"cm",
|
||||
LESmodelProperties(),
|
||||
4.13
|
||||
)
|
||||
)
|
||||
{
|
||||
printCoeffs();
|
||||
}
|
||||
@ -113,8 +129,8 @@ bool DeardorffDiffStress::read()
|
||||
{
|
||||
if (GenSGSStress::read())
|
||||
{
|
||||
LESmodelProperties().readIfPresent<scalar>("ck", ck_);
|
||||
LESmodelProperties().readIfPresent<scalar>("cm", cm_);
|
||||
ck_.readIfPresent(LESmodelProperties());
|
||||
cm_.readIfPresent(LESmodelProperties());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -75,8 +75,8 @@ class DeardorffDiffStress
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar ck_;
|
||||
scalar cm_;
|
||||
dimensionedScalar ck_;
|
||||
dimensionedScalar cm_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
@ -51,7 +51,15 @@ GenEddyVisc::GenEddyVisc
|
||||
word("GenEddyVisc"), rho, U, phi, thermoPhysicalModel
|
||||
),
|
||||
|
||||
ce_(LESmodelProperties().lookupOrAddDefault<scalar>("ce", 1.048)),
|
||||
ce_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"ce",
|
||||
LESmodelProperties(),
|
||||
1.048
|
||||
)
|
||||
),
|
||||
|
||||
k_
|
||||
(
|
||||
@ -116,7 +124,7 @@ bool GenEddyVisc::read()
|
||||
{
|
||||
if (LESmodel::read())
|
||||
{
|
||||
LESmodelProperties().readIfPresent<scalar>("ce", ce_);
|
||||
ce_.readIfPresent(LESmodelProperties());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -68,7 +68,7 @@ class GenEddyVisc
|
||||
|
||||
protected:
|
||||
|
||||
scalar ce_;
|
||||
dimensionedScalar ce_;
|
||||
|
||||
volScalarField k_;
|
||||
volScalarField muSgs_;
|
||||
|
||||
@ -55,7 +55,15 @@ GenSGSStress::GenSGSStress
|
||||
thermoPhysicalModel
|
||||
),
|
||||
|
||||
ce_(LESmodelProperties().lookupOrAddDefault<scalar>("ce" ,1.048)),
|
||||
ce_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"ce",
|
||||
LESmodelProperties(),
|
||||
1.048
|
||||
)
|
||||
),
|
||||
|
||||
B_
|
||||
(
|
||||
@ -131,7 +139,7 @@ bool GenSGSStress::read()
|
||||
{
|
||||
if (LESmodel::read())
|
||||
{
|
||||
LESmodelProperties().readIfPresent<scalar>("ce", ce_);
|
||||
ce_.readIfPresent(LESmodelProperties());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -69,7 +69,7 @@ class GenSGSStress
|
||||
|
||||
protected:
|
||||
|
||||
scalar ce_;
|
||||
dimensionedScalar ce_;
|
||||
|
||||
volSymmTensorField B_;
|
||||
volScalarField muSgs_;
|
||||
|
||||
@ -55,7 +55,15 @@ Smagorinsky::Smagorinsky
|
||||
LESmodel(typeName, rho, U, phi, thermoPhysicalModel),
|
||||
GenEddyVisc(rho, U, phi, thermoPhysicalModel),
|
||||
|
||||
ck_(LESmodelProperties().lookupOrAddDefault<scalar>("ck", 0.02))
|
||||
ck_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"ck",
|
||||
LESmodelProperties(),
|
||||
0.02
|
||||
)
|
||||
)
|
||||
{
|
||||
printCoeffs();
|
||||
}
|
||||
@ -84,7 +92,7 @@ bool Smagorinsky::read()
|
||||
{
|
||||
if (GenEddyVisc::read())
|
||||
{
|
||||
LESmodelProperties().readIfPresent<scalar>("ck", ck_);
|
||||
ck_.readIfPresent(LESmodelProperties());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -71,7 +71,7 @@ class Smagorinsky
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar ck_;
|
||||
dimensionedScalar ck_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
@ -104,17 +104,98 @@ SpalartAllmaras::SpalartAllmaras
|
||||
:
|
||||
LESmodel(typeName, rho, U, phi, thermoPhysicalModel),
|
||||
|
||||
alphaNut_(LESmodelProperties().lookupOrAddDefault<scalar>("alphaNut", 1.5)),
|
||||
Cb1_(LESmodelProperties().lookupOrAddDefault<scalar>("Cb1", 0.1355)),
|
||||
Cb2_(LESmodelProperties().lookupOrAddDefault<scalar>("Cb2", 0.622)),
|
||||
Cv1_(LESmodelProperties().lookupOrAddDefault<scalar>("Cv1", 7.1)),
|
||||
Cv2_(LESmodelProperties().lookupOrAddDefault<scalar>("Cv2", 5.0)),
|
||||
CDES_(LESmodelProperties().lookupOrAddDefault<scalar>("CDES", 0.65)),
|
||||
ck_(LESmodelProperties().lookupOrAddDefault<scalar>("ck", 0.07)),
|
||||
kappa_(lookupOrAddDefault<scalar>("kappa", 0.4187)),
|
||||
alphaNut_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaNut",
|
||||
LESmodelProperties(),
|
||||
1.5
|
||||
)
|
||||
),
|
||||
|
||||
Cb1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cb1",
|
||||
LESmodelProperties(),
|
||||
0.1355
|
||||
)
|
||||
),
|
||||
Cb2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cb2",
|
||||
LESmodelProperties(),
|
||||
0.622
|
||||
)
|
||||
),
|
||||
Cv1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cv1",
|
||||
LESmodelProperties(),
|
||||
7.1
|
||||
)
|
||||
),
|
||||
Cv2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cv2",
|
||||
LESmodelProperties(),
|
||||
5.0
|
||||
)
|
||||
),
|
||||
CDES_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"CDES",
|
||||
LESmodelProperties(),
|
||||
0.65
|
||||
)
|
||||
),
|
||||
ck_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"ck",
|
||||
LESmodelProperties(),
|
||||
0.07
|
||||
)
|
||||
),
|
||||
kappa_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"kappa",
|
||||
*this,
|
||||
0.4187
|
||||
)
|
||||
),
|
||||
Cw1_(Cb1_/sqr(kappa_) + alphaNut_*(1.0 + Cb2_)),
|
||||
Cw2_(LESmodelProperties().lookupOrAddDefault<scalar>("Cw2", 0.3)),
|
||||
Cw3_(LESmodelProperties().lookupOrAddDefault<scalar>("Cw3", 2.0)),
|
||||
Cw2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cw2",
|
||||
LESmodelProperties(),
|
||||
0.3
|
||||
)
|
||||
),
|
||||
Cw3_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cw3",
|
||||
LESmodelProperties(),
|
||||
2.0
|
||||
)
|
||||
),
|
||||
|
||||
nuTilda_
|
||||
(
|
||||
@ -218,17 +299,17 @@ bool SpalartAllmaras::read()
|
||||
{
|
||||
if (LESmodel::read())
|
||||
{
|
||||
LESmodelProperties().readIfPresent<scalar>("alphaNut", alphaNut_);
|
||||
LESmodelProperties().readIfPresent<scalar>("Cb1", Cb1_);
|
||||
LESmodelProperties().readIfPresent<scalar>("Cb2", Cb2_);
|
||||
alphaNut_.readIfPresent(LESmodelProperties());
|
||||
Cb1_.readIfPresent(LESmodelProperties());
|
||||
Cb2_.readIfPresent(LESmodelProperties());
|
||||
Cw1_ = Cb1_/sqr(kappa_) + alphaNut_*(1.0 + Cb2_);
|
||||
LESmodelProperties().readIfPresent<scalar>("Cw2", Cw2_);
|
||||
LESmodelProperties().readIfPresent<scalar>("Cw3", Cw3_);
|
||||
LESmodelProperties().readIfPresent<scalar>("Cv1", Cv1_);
|
||||
LESmodelProperties().readIfPresent<scalar>("Cv2", Cv2_);
|
||||
LESmodelProperties().readIfPresent<scalar>("CDES", CDES_);
|
||||
LESmodelProperties().readIfPresent<scalar>("ck", ck_);
|
||||
readIfPresent<scalar>("kappa", kappa_);
|
||||
Cw2_.readIfPresent(LESmodelProperties());
|
||||
Cw3_.readIfPresent(LESmodelProperties());
|
||||
Cv1_.readIfPresent(LESmodelProperties());
|
||||
Cv2_.readIfPresent(LESmodelProperties());
|
||||
CDES_.readIfPresent(LESmodelProperties());
|
||||
ck_.readIfPresent(LESmodelProperties());
|
||||
kappa_.readIfPresent(*this);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -58,18 +58,18 @@ class SpalartAllmaras
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar alphaNut_;
|
||||
dimensionedScalar alphaNut_;
|
||||
|
||||
scalar Cb1_;
|
||||
scalar Cb2_;
|
||||
scalar Cv1_;
|
||||
scalar Cv2_;
|
||||
scalar CDES_;
|
||||
scalar ck_;
|
||||
scalar kappa_;
|
||||
scalar Cw1_;
|
||||
scalar Cw2_;
|
||||
scalar Cw3_;
|
||||
dimensionedScalar Cb1_;
|
||||
dimensionedScalar Cb2_;
|
||||
dimensionedScalar Cv1_;
|
||||
dimensionedScalar Cv2_;
|
||||
dimensionedScalar CDES_;
|
||||
dimensionedScalar ck_;
|
||||
dimensionedScalar kappa_;
|
||||
dimensionedScalar Cw1_;
|
||||
dimensionedScalar Cw2_;
|
||||
dimensionedScalar Cw3_;
|
||||
|
||||
|
||||
// Private member functions
|
||||
@ -87,6 +87,7 @@ class SpalartAllmaras
|
||||
volScalarField dTilda_;
|
||||
volScalarField muSgs_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
|
||||
@ -55,8 +55,24 @@ lowReOneEqEddy::lowReOneEqEddy
|
||||
LESmodel(typeName, rho, U, phi, thermoPhysicalModel),
|
||||
GenEddyVisc(rho, U, phi, thermoPhysicalModel),
|
||||
|
||||
ck_(LESmodelProperties().lookupOrAddDefault<scalar>("ck", ck_)),
|
||||
beta_(LESmodelProperties().lookupOrAddDefault("beta", beta_))
|
||||
ck_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"ck",
|
||||
LESmodelProperties(),
|
||||
0.07
|
||||
)
|
||||
),
|
||||
beta_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"beta",
|
||||
LESmodelProperties(),
|
||||
0.01
|
||||
)
|
||||
)
|
||||
{
|
||||
printCoeffs();
|
||||
}
|
||||
@ -100,8 +116,8 @@ bool lowReOneEqEddy::read()
|
||||
{
|
||||
if (GenEddyVisc::read())
|
||||
{
|
||||
LESmodelProperties().readIfPresent<scalar>("ck", ck_);
|
||||
LESmodelProperties().readIfPresent<scalar>("beta", beta_);
|
||||
ck_.readIfPresent(LESmodelProperties());
|
||||
beta_.readIfPresent(LESmodelProperties());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -72,8 +72,8 @@ class lowReOneEqEddy
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar ck_;
|
||||
scalar beta_;
|
||||
dimensionedScalar ck_;
|
||||
dimensionedScalar beta_;
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
|
||||
@ -54,7 +54,15 @@ oneEqEddy::oneEqEddy
|
||||
LESmodel(typeName, rho, U, phi, thermoPhysicalModel),
|
||||
GenEddyVisc(rho, U, phi, thermoPhysicalModel),
|
||||
|
||||
ck_(LESmodelProperties().lookupOrAddDefault("ck", 0.094))
|
||||
ck_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"ck",
|
||||
LESmodelProperties(),
|
||||
0.094
|
||||
)
|
||||
)
|
||||
{
|
||||
printCoeffs();
|
||||
}
|
||||
@ -96,7 +104,7 @@ bool oneEqEddy::read()
|
||||
{
|
||||
if (GenEddyVisc::read())
|
||||
{
|
||||
LESmodelProperties().readIfPresent("ck", ck_);
|
||||
ck_.readIfPresent(LESmodelProperties());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -75,7 +75,7 @@ class oneEqEddy
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar ck_;
|
||||
dimensionedScalar ck_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
@ -54,8 +54,24 @@ DeardorffDiffStress::DeardorffDiffStress
|
||||
LESmodel(typeName, U, phi, transport),
|
||||
GenSGSStress(U, phi, transport),
|
||||
|
||||
ck_(LESmodelProperties().lookupOrAddDefault<scalar>("ck", 0.094)),
|
||||
cm_(LESmodelProperties().lookupOrAddDefault<scalar>("cm", 4.13))
|
||||
ck_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"ck",
|
||||
LESmodelProperties(),
|
||||
0.094
|
||||
)
|
||||
),
|
||||
cm_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"cm",
|
||||
LESmodelProperties(),
|
||||
4.13
|
||||
)
|
||||
)
|
||||
{
|
||||
printCoeffs();
|
||||
}
|
||||
@ -113,8 +129,8 @@ bool DeardorffDiffStress::read()
|
||||
{
|
||||
if (GenSGSStress::read())
|
||||
{
|
||||
LESmodelProperties().readIfPresent<scalar>("ck", ck_);
|
||||
LESmodelProperties().readIfPresent<scalar>("cm", cm_);
|
||||
ck_.readIfPresent(LESmodelProperties());
|
||||
cm_.readIfPresent(LESmodelProperties());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -75,8 +75,8 @@ class DeardorffDiffStress
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar ck_;
|
||||
scalar cm_;
|
||||
dimensionedScalar ck_;
|
||||
dimensionedScalar cm_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
@ -46,7 +46,15 @@ GenEddyVisc::GenEddyVisc
|
||||
:
|
||||
LESmodel(word("GenEddyVisc"), U, phi, transport),
|
||||
|
||||
ce_(LESmodelProperties().lookupOrAddDefault<scalar>("ce", 1.048)),
|
||||
ce_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"ce",
|
||||
LESmodelProperties(),
|
||||
1.048
|
||||
)
|
||||
),
|
||||
|
||||
nuSgs_
|
||||
(
|
||||
@ -98,7 +106,7 @@ bool GenEddyVisc::read()
|
||||
{
|
||||
if (LESmodel::read())
|
||||
{
|
||||
LESmodelProperties().readIfPresent<scalar>("ce", ce_);
|
||||
ce_.readIfPresent(LESmodelProperties());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -68,7 +68,7 @@ class GenEddyVisc
|
||||
|
||||
protected:
|
||||
|
||||
scalar ce_;
|
||||
dimensionedScalar ce_;
|
||||
|
||||
volScalarField nuSgs_;
|
||||
|
||||
|
||||
@ -46,10 +46,24 @@ GenSGSStress::GenSGSStress
|
||||
:
|
||||
LESmodel(word("GenSGSStress"), U, phi, transport),
|
||||
|
||||
ce_(LESmodelProperties().lookupOrAddDefault<scalar>("ce", 1.048)),
|
||||
ce_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"ce",
|
||||
LESmodelProperties(),
|
||||
1.048
|
||||
)
|
||||
),
|
||||
|
||||
couplingFactor_
|
||||
(
|
||||
LESmodelProperties().lookupOrAddDefault<scalar>("couplingFactor", 0.0)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"couplingFactor",
|
||||
LESmodelProperties(),
|
||||
0.0
|
||||
)
|
||||
),
|
||||
|
||||
B_
|
||||
@ -79,7 +93,7 @@ GenSGSStress::GenSGSStress
|
||||
B_.boundaryField().types()
|
||||
)
|
||||
{
|
||||
if (couplingFactor_ < 0.0 || couplingFactor_ > 1.0)
|
||||
if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0)
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
@ -120,7 +134,7 @@ tmp<fvVectorMatrix> GenSGSStress::divDevBeff
|
||||
volVectorField& U
|
||||
) const
|
||||
{
|
||||
if (couplingFactor_ > 0.0)
|
||||
if (couplingFactor_.value() > 0.0)
|
||||
{
|
||||
return
|
||||
(
|
||||
@ -148,15 +162,11 @@ bool GenSGSStress::read()
|
||||
{
|
||||
if (LESmodel::read())
|
||||
{
|
||||
LESmodelProperties().readIfPresent<scalar>("ce", ce_);
|
||||
ce_.readIfPresent(LESmodelProperties());
|
||||
|
||||
LESmodelProperties().readIfPresent<scalar>
|
||||
(
|
||||
"couplingFactor",
|
||||
couplingFactor_
|
||||
);
|
||||
couplingFactor_.readIfPresent(LESmodelProperties());
|
||||
|
||||
if (couplingFactor_ < 0.0 || couplingFactor_ > 1.0)
|
||||
if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0)
|
||||
{
|
||||
FatalErrorIn("GenSGSStress::read()")
|
||||
<< "couplingFactor = " << couplingFactor_
|
||||
|
||||
@ -69,9 +69,9 @@ class GenSGSStress
|
||||
|
||||
protected:
|
||||
|
||||
scalar ce_;
|
||||
dimensionedScalar ce_;
|
||||
|
||||
scalar couplingFactor_;
|
||||
dimensionedScalar couplingFactor_;
|
||||
|
||||
volSymmTensorField B_;
|
||||
volScalarField nuSgs_;
|
||||
|
||||
@ -54,9 +54,33 @@ LRRDiffStress::LRRDiffStress
|
||||
LESmodel(typeName, U, phi, transport),
|
||||
GenSGSStress(U, phi, transport),
|
||||
|
||||
ck_(LESmodelProperties().lookupOrAddDefault<scalar>("ck", 0.09)),
|
||||
c1_(LESmodelProperties().lookupOrAddDefault<scalar>("c1", 1.8)),
|
||||
c2_(LESmodelProperties().lookupOrAddDefault<scalar>("c2", 0.6))
|
||||
ck_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"ck",
|
||||
LESmodelProperties(),
|
||||
0.09
|
||||
)
|
||||
),
|
||||
c1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"c1",
|
||||
LESmodelProperties(),
|
||||
1.8
|
||||
)
|
||||
),
|
||||
c2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"c2",
|
||||
LESmodelProperties(),
|
||||
0.6
|
||||
)
|
||||
)
|
||||
{
|
||||
printCoeffs();
|
||||
}
|
||||
@ -115,9 +139,9 @@ bool LRRDiffStress::read()
|
||||
{
|
||||
if (GenSGSStress::read())
|
||||
{
|
||||
LESmodelProperties().readIfPresent<scalar>("ck", ck_);
|
||||
LESmodelProperties().readIfPresent<scalar>("c1", c1_);
|
||||
LESmodelProperties().readIfPresent<scalar>("c2", c2_);
|
||||
ck_.readIfPresent(LESmodelProperties());
|
||||
c1_.readIfPresent(LESmodelProperties());
|
||||
c2_.readIfPresent(LESmodelProperties());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -73,9 +73,9 @@ class LRRDiffStress
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar ck_;
|
||||
scalar c1_;
|
||||
scalar c2_;
|
||||
dimensionedScalar ck_;
|
||||
dimensionedScalar c1_;
|
||||
dimensionedScalar c2_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
@ -53,7 +53,15 @@ Smagorinsky::Smagorinsky
|
||||
LESmodel(typeName, U, phi, transport),
|
||||
GenEddyVisc(U, phi, transport),
|
||||
|
||||
ck_(LESmodelProperties().lookupOrAddDefault<scalar>("ck", 0.094))
|
||||
ck_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"ck",
|
||||
LESmodelProperties(),
|
||||
0.094
|
||||
)
|
||||
)
|
||||
{}
|
||||
|
||||
|
||||
@ -72,7 +80,7 @@ bool Smagorinsky::read()
|
||||
{
|
||||
if (GenEddyVisc::read())
|
||||
{
|
||||
LESmodelProperties().readIfPresent<scalar>("ck", ck_);
|
||||
ck_.readIfPresent(LESmodelProperties());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -72,7 +72,7 @@ class Smagorinsky
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar ck_;
|
||||
dimensionedScalar ck_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
@ -53,7 +53,15 @@ Smagorinsky2::Smagorinsky2
|
||||
LESmodel(typeName, U, phi, transport),
|
||||
Smagorinsky(U, phi, transport),
|
||||
|
||||
cD2_(LESmodelProperties().lookupOrAddDefault<scalar>("cD2", 0.02))
|
||||
cD2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"cD2",
|
||||
LESmodelProperties(),
|
||||
0.02
|
||||
)
|
||||
)
|
||||
{
|
||||
printCoeffs();
|
||||
}
|
||||
@ -96,7 +104,7 @@ bool Smagorinsky2::read()
|
||||
{
|
||||
if (Smagorinsky::read())
|
||||
{
|
||||
LESmodelProperties().lookupOrDefault<scalar>("cD2", cD2_);
|
||||
cD2.readIfPresent(LESmodelProperties());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -71,7 +71,7 @@ class Smagorinsky2
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar cD2_;
|
||||
dimensionedScalar cD2_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
@ -103,17 +103,98 @@ SpalartAllmaras::SpalartAllmaras
|
||||
:
|
||||
LESmodel(typeName, U, phi, transport),
|
||||
|
||||
alphaNut_(LESmodelProperties().lookupOrAddDefault<scalar>("alphaNut", 1.5)),
|
||||
Cb1_(LESmodelProperties().lookupOrAddDefault<scalar>("Cb1", 0.1355)),
|
||||
Cb2_(LESmodelProperties().lookupOrAddDefault<scalar>("Cb2", 0.622)),
|
||||
Cv1_(LESmodelProperties().lookupOrAddDefault<scalar>("Cv1", 7.1)),
|
||||
Cv2_(LESmodelProperties().lookupOrAddDefault<scalar>("Cv2", 5.0)),
|
||||
CDES_(LESmodelProperties().lookupOrAddDefault<scalar>("CDES", 0.65)),
|
||||
ck_(LESmodelProperties().lookupOrAddDefault<scalar>("ck", 0.07)),
|
||||
kappa_(lookupOrAddDefault<scalar>("kappa", 0.4187)),
|
||||
|
||||
alphaNut_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaNut",
|
||||
LESmodelProperties(),
|
||||
1.5
|
||||
)
|
||||
),
|
||||
Cb1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cb1",
|
||||
LESmodelProperties(),
|
||||
0.1355
|
||||
)
|
||||
),
|
||||
Cb2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cb2",
|
||||
LESmodelProperties(),
|
||||
0.622
|
||||
)
|
||||
),
|
||||
Cv1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cv1",
|
||||
LESmodelProperties(),
|
||||
7.1
|
||||
)
|
||||
),
|
||||
Cv2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cv2",
|
||||
LESmodelProperties(),
|
||||
5.0
|
||||
)
|
||||
),
|
||||
CDES_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"CDES",
|
||||
LESmodelProperties(),
|
||||
0.65
|
||||
)
|
||||
),
|
||||
ck_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"ck",
|
||||
LESmodelProperties(),
|
||||
0.07
|
||||
)
|
||||
),
|
||||
kappa_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"kappa",
|
||||
*this,
|
||||
0.4187
|
||||
)
|
||||
),
|
||||
Cw1_(Cb1_/sqr(kappa_) + alphaNut_*(1.0 + Cb2_)),
|
||||
Cw2_(LESmodelProperties().lookupOrAddDefault<scalar>("Cw2", 0.3)),
|
||||
Cw3_(LESmodelProperties().lookupOrAddDefault<scalar>("Cw3", 2.0)),
|
||||
Cw2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cw2",
|
||||
LESmodelProperties(),
|
||||
0.3
|
||||
)
|
||||
),
|
||||
Cw3_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cw3",
|
||||
LESmodelProperties(),
|
||||
2.0
|
||||
)
|
||||
),
|
||||
|
||||
nuTilda_
|
||||
(
|
||||
@ -216,17 +297,17 @@ bool SpalartAllmaras::read()
|
||||
{
|
||||
if (LESmodel::read())
|
||||
{
|
||||
LESmodelProperties().readIfPresent<scalar>("alphaNut", alphaNut_);
|
||||
LESmodelProperties().readIfPresent<scalar>("Cb1", Cb1_);
|
||||
LESmodelProperties().readIfPresent<scalar>("Cb2", Cb2_);
|
||||
alphaNut_.readIfPresent(LESmodelProperties());
|
||||
Cb1_.readIfPresent(LESmodelProperties());
|
||||
Cb2_.readIfPresent(LESmodelProperties());
|
||||
Cw1_ = Cb1_/sqr(kappa_) + alphaNut_*(1.0 + Cb2_);
|
||||
LESmodelProperties().readIfPresent<scalar>("Cw2", Cw2_);
|
||||
LESmodelProperties().readIfPresent<scalar>("Cw3", Cw3_);
|
||||
LESmodelProperties().readIfPresent<scalar>("Cv1", Cv1_);
|
||||
LESmodelProperties().readIfPresent<scalar>("Cv2", Cv2_);
|
||||
LESmodelProperties().readIfPresent<scalar>("CDES", CDES_);
|
||||
LESmodelProperties().readIfPresent<scalar>("ck", ck_);
|
||||
readIfPresent<scalar>("kappa", kappa_);
|
||||
Cw2_.readIfPresent(LESmodelProperties());
|
||||
Cw3_.readIfPresent(LESmodelProperties());
|
||||
Cv1_.readIfPresent(LESmodelProperties());
|
||||
Cv2_.readIfPresent(LESmodelProperties());
|
||||
CDES_.readIfPresent(LESmodelProperties());
|
||||
ck_.readIfPresent(LESmodelProperties());
|
||||
kappa_.readIfPresent(*this);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -58,18 +58,18 @@ class SpalartAllmaras
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar alphaNut_;
|
||||
dimensionedScalar alphaNut_;
|
||||
|
||||
scalar Cb1_;
|
||||
scalar Cb2_;
|
||||
scalar Cv1_;
|
||||
scalar Cv2_;
|
||||
scalar CDES_;
|
||||
scalar ck_;
|
||||
scalar kappa_;
|
||||
scalar Cw1_;
|
||||
scalar Cw2_;
|
||||
scalar Cw3_;
|
||||
dimensionedScalar Cb1_;
|
||||
dimensionedScalar Cb2_;
|
||||
dimensionedScalar Cv1_;
|
||||
dimensionedScalar Cv2_;
|
||||
dimensionedScalar CDES_;
|
||||
dimensionedScalar ck_;
|
||||
dimensionedScalar kappa_;
|
||||
dimensionedScalar Cw1_;
|
||||
dimensionedScalar Cw2_;
|
||||
dimensionedScalar Cw3_;
|
||||
|
||||
|
||||
// Private member functions
|
||||
|
||||
@ -66,7 +66,15 @@ oneEqEddy::oneEqEddy
|
||||
mesh_
|
||||
),
|
||||
|
||||
ck_(LESmodelProperties().lookupOrAddDefault<scalar>("ck", 0.094))
|
||||
ck_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"ck",
|
||||
LESmodelProperties(),
|
||||
0.094
|
||||
)
|
||||
)
|
||||
{
|
||||
printCoeffs();
|
||||
}
|
||||
@ -101,7 +109,7 @@ bool oneEqEddy::read()
|
||||
{
|
||||
if (GenEddyVisc::read())
|
||||
{
|
||||
LESmodelProperties().readIfPresent<scalar>("ck", ck_);
|
||||
ck_.readIfPresent(LESmodelProperties());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -78,7 +78,7 @@ class oneEqEddy
|
||||
|
||||
volScalarField k_;
|
||||
|
||||
scalar ck_;
|
||||
dimensionedScalar ck_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
@ -54,11 +54,52 @@ spectEddyVisc::spectEddyVisc
|
||||
LESmodel(typeName, U, phi, transport),
|
||||
GenEddyVisc(U, phi, transport),
|
||||
|
||||
cB_(LESmodelProperties().lookupOrAddDefault<scalar>("cB", 8.22)),
|
||||
cK1_(LESmodelProperties().lookupOrAddDefault<scalar>("cK1", 0.83)),
|
||||
cK2_(LESmodelProperties().lookupOrAddDefault<scalar>("cK2", 1.03)),
|
||||
cK3_(LESmodelProperties().lookupOrAddDefault<scalar>("cK3", 4.75)),
|
||||
cK4_(LESmodelProperties().lookupOrAddDefault<scalar>("cK4", 2.55))
|
||||
|
||||
cB_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"cB",
|
||||
LESmodelProperties(),
|
||||
8.22
|
||||
)
|
||||
),
|
||||
cK1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"cK1",
|
||||
LESmodelProperties(),
|
||||
0.83
|
||||
)
|
||||
),
|
||||
cK2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"cK2",
|
||||
LESmodelProperties(),
|
||||
1.03
|
||||
)
|
||||
),
|
||||
cK3_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"cK3",
|
||||
LESmodelProperties(),
|
||||
4.75
|
||||
)
|
||||
),
|
||||
cK4_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"cK4",
|
||||
LESmodelProperties(),
|
||||
2.55
|
||||
)
|
||||
)
|
||||
{
|
||||
printCoeffs();
|
||||
}
|
||||
@ -102,11 +143,11 @@ bool spectEddyVisc::read()
|
||||
{
|
||||
if (GenEddyVisc::read())
|
||||
{
|
||||
LESmodelProperties().readIfPresent<scalar>("cB", cB_);
|
||||
LESmodelProperties().readIfPresent<scalar>("cK1", cK1_);
|
||||
LESmodelProperties().readIfPresent<scalar>("cK2", cK2_);
|
||||
LESmodelProperties().readIfPresent<scalar>("cK3", cK3_);
|
||||
LESmodelProperties().readIfPresent<scalar>("cK4", cK4_);
|
||||
cB_.readIfPresent(LESmodelProperties());
|
||||
cK1_.readIfPresent(LESmodelProperties());
|
||||
cK2_.readIfPresent(LESmodelProperties());
|
||||
cK3_.readIfPresent(LESmodelProperties());
|
||||
cK4_.readIfPresent(LESmodelProperties());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -76,11 +76,11 @@ class spectEddyVisc
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar cB_;
|
||||
scalar cK1_;
|
||||
scalar cK2_;
|
||||
scalar cK3_;
|
||||
scalar cK4_;
|
||||
dimensionedScalar cB_;
|
||||
dimensionedScalar cK1_;
|
||||
dimensionedScalar cK2_;
|
||||
dimensionedScalar cK3_;
|
||||
dimensionedScalar cK4_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
@ -55,23 +55,105 @@ LRR::LRR
|
||||
:
|
||||
RASmodel(typeName, rho, U, phi, thermophysicalModel),
|
||||
|
||||
Cmu(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cmu", 0.09)),
|
||||
Clrr1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Clrr1", 1.8)),
|
||||
Clrr2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Clrr2", 0.6)),
|
||||
C1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C1", 1.44)),
|
||||
C2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C2", 1.92)),
|
||||
Cs(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cs", 0.25)),
|
||||
Ceps(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Ceps", 0.15)),
|
||||
Cmu_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cmu",
|
||||
RASmodelCoeffs_,
|
||||
0.09
|
||||
)
|
||||
),
|
||||
Clrr1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Clrr1",
|
||||
RASmodelCoeffs_,
|
||||
1.8
|
||||
)
|
||||
),
|
||||
Clrr2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Clrr2",
|
||||
RASmodelCoeffs_,
|
||||
0.6
|
||||
)
|
||||
),
|
||||
C1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C1",
|
||||
RASmodelCoeffs_,
|
||||
1.44
|
||||
)
|
||||
),
|
||||
C2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C2",
|
||||
RASmodelCoeffs_,
|
||||
1.92
|
||||
)
|
||||
),
|
||||
Cs_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cs",
|
||||
RASmodelCoeffs_,
|
||||
0.25
|
||||
)
|
||||
),
|
||||
Ceps_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Ceps",
|
||||
RASmodelCoeffs_,
|
||||
0.15
|
||||
)
|
||||
),
|
||||
couplingFactor_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("couplingFactor", 0.0)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"couplingFactor",
|
||||
RASmodelCoeffs_,
|
||||
0.0
|
||||
)
|
||||
),
|
||||
alphaR(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaR", 1.22)),
|
||||
alphaEps
|
||||
alphaR_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaEps", 0.76923)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaR",
|
||||
RASmodelCoeffs_,
|
||||
1.22
|
||||
)
|
||||
),
|
||||
alphaEps_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaEps",
|
||||
RASmodelCoeffs_,
|
||||
0.76923
|
||||
)
|
||||
),
|
||||
alphah_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphah",
|
||||
RASmodelCoeffs_,
|
||||
1.0
|
||||
)
|
||||
),
|
||||
alphah(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphah", 1.0)),
|
||||
|
||||
R_
|
||||
(
|
||||
@ -122,12 +204,12 @@ LRR::LRR
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
Cmu*rho_*sqr(k_)/(epsilon_ + epsilonSmall_)
|
||||
Cmu_*rho_*sqr(k_)/(epsilon_ + epsilonSmall_)
|
||||
)
|
||||
{
|
||||
# include "wallViscosityI.H"
|
||||
|
||||
if (couplingFactor_ < 0.0 || couplingFactor_ > 1.0)
|
||||
if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0)
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
@ -167,7 +249,7 @@ tmp<volSymmTensorField> LRR::devRhoReff() const
|
||||
|
||||
tmp<fvVectorMatrix> LRR::divDevRhoReff(volVectorField& U) const
|
||||
{
|
||||
if (couplingFactor_ > 0.0)
|
||||
if (couplingFactor_.value() > 0.0)
|
||||
{
|
||||
return
|
||||
(
|
||||
@ -194,23 +276,19 @@ bool LRR::read()
|
||||
{
|
||||
if (RASmodel::read())
|
||||
{
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cmu", Cmu);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Clrr1", Clrr1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Clrr2", Clrr2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C1", C1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C2", C2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cs", Cs);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Ceps", Ceps);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaR", alphaR);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaEps", alphaEps);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphah", alphah);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>
|
||||
(
|
||||
"couplingFactor",
|
||||
couplingFactor_
|
||||
);
|
||||
Cmu_.readIfPresent(RASmodelCoeffs_);
|
||||
Clrr1_.readIfPresent(RASmodelCoeffs_);
|
||||
Clrr2_.readIfPresent(RASmodelCoeffs_);
|
||||
C1_.readIfPresent(RASmodelCoeffs_);
|
||||
C2_.readIfPresent(RASmodelCoeffs_);
|
||||
Cs_.readIfPresent(RASmodelCoeffs_);
|
||||
Ceps_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaR_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaEps_.readIfPresent(RASmodelCoeffs_);
|
||||
alphah_.readIfPresent(RASmodelCoeffs_);
|
||||
couplingFactor_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
if (couplingFactor_ < 0.0 || couplingFactor_ > 1.0)
|
||||
if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0)
|
||||
{
|
||||
FatalErrorIn("LRR::read()")
|
||||
<< "couplingFactor = " << couplingFactor_
|
||||
@ -232,7 +310,7 @@ void LRR::correct()
|
||||
if (!turbulence_)
|
||||
{
|
||||
// Re-calculate viscosity
|
||||
mut_ = rho_*Cmu*sqr(k_)/(epsilon_ + epsilonSmall_);
|
||||
mut_ = rho_*Cmu_*sqr(k_)/(epsilon_ + epsilonSmall_);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -251,8 +329,8 @@ void LRR::correct()
|
||||
//- fvm::laplacian(Ceps*rho_*(k_/epsilon_)*R_, epsilon_)
|
||||
- fvm::laplacian(DepsilonEff(), epsilon_)
|
||||
==
|
||||
C1*rho_*G*epsilon_/k_
|
||||
- fvm::Sp(C2*rho_*epsilon_/k_, epsilon_)
|
||||
C1_*rho_*G*epsilon_/k_
|
||||
- fvm::Sp(C2_*rho_*epsilon_/k_, epsilon_)
|
||||
);
|
||||
|
||||
epsEqn().relax();
|
||||
@ -289,11 +367,11 @@ void LRR::correct()
|
||||
+ fvm::div(phi_, R_)
|
||||
//- fvm::laplacian(Cs*rho_*(k_/epsilon_)*R_, R_)
|
||||
- fvm::laplacian(DREff(), R_)
|
||||
+ fvm::Sp(Clrr1*rho_*epsilon_/k_, R_)
|
||||
+ fvm::Sp(Clrr1_*rho_*epsilon_/k_, R_)
|
||||
==
|
||||
rho_*P
|
||||
- (2.0/3.0*(1 - Clrr1)*I)*rho_*epsilon_
|
||||
- Clrr2*rho_*dev(P)
|
||||
- (2.0/3.0*(1 - Clrr1_)*I)*rho_*epsilon_
|
||||
- Clrr2_*rho_*dev(P)
|
||||
);
|
||||
|
||||
REqn().relax();
|
||||
@ -319,7 +397,7 @@ void LRR::correct()
|
||||
|
||||
|
||||
// Re-calculate viscosity
|
||||
mut_ = rho_*Cmu*sqr(k_)/epsilon_;
|
||||
mut_ = rho_*Cmu_*sqr(k_)/epsilon_;
|
||||
|
||||
# include "wallViscosityI.H"
|
||||
|
||||
|
||||
@ -77,21 +77,21 @@ class LRR
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar Cmu;
|
||||
dimensionedScalar Cmu_;
|
||||
|
||||
scalar Clrr1;
|
||||
scalar Clrr2;
|
||||
dimensionedScalar Clrr1_;
|
||||
dimensionedScalar Clrr2_;
|
||||
|
||||
scalar C1;
|
||||
scalar C2;
|
||||
scalar Cs;
|
||||
scalar Ceps;
|
||||
dimensionedScalar C1_;
|
||||
dimensionedScalar C2_;
|
||||
dimensionedScalar Cs_;
|
||||
dimensionedScalar Ceps_;
|
||||
|
||||
scalar couplingFactor_;
|
||||
dimensionedScalar couplingFactor_;
|
||||
|
||||
scalar alphaR;
|
||||
scalar alphaEps;
|
||||
scalar alphah;
|
||||
dimensionedScalar alphaR_;
|
||||
dimensionedScalar alphaEps_;
|
||||
dimensionedScalar alphah_;
|
||||
|
||||
volSymmTensorField R_;
|
||||
volScalarField k_;
|
||||
@ -134,7 +134,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DREff", alphaR*mut_ + mu())
|
||||
new volScalarField("DREff", alphaR_*mut_ + mu())
|
||||
);
|
||||
}
|
||||
|
||||
@ -143,7 +143,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DepsilonEff", alphaEps*mut_ + mu())
|
||||
new volScalarField("DepsilonEff", alphaEps_*mut_ + mu())
|
||||
);
|
||||
}
|
||||
|
||||
@ -152,7 +152,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("alphaEff", alphah*mut_ + alpha())
|
||||
new volScalarField("alphaEff", alphah_*mut_ + alpha())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -57,25 +57,123 @@ LaunderGibsonRSTM::LaunderGibsonRSTM
|
||||
:
|
||||
RASmodel(typeName, rho, U, phi, thermophysicalModel),
|
||||
|
||||
Cmu(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cmu", 0.09)),
|
||||
Clg1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Clg1", 1.8)),
|
||||
Clg2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Clg2", 0.6)),
|
||||
C1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C1", 1.44)),
|
||||
C2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C2", 1.92)),
|
||||
Cs(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cs", 0.25)),
|
||||
Ceps(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Ceps", 0.15)),
|
||||
C1Ref(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C1Ref", 0.5)),
|
||||
C2Ref(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C2Ref", 0.3)),
|
||||
Cmu_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cmu",
|
||||
RASmodelCoeffs_,
|
||||
0.09
|
||||
)
|
||||
),
|
||||
Clg1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Clg1",
|
||||
RASmodelCoeffs_,
|
||||
1.8
|
||||
)
|
||||
),
|
||||
Clg2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Clg2",
|
||||
RASmodelCoeffs_,
|
||||
0.6
|
||||
)
|
||||
),
|
||||
C1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C1",
|
||||
RASmodelCoeffs_,
|
||||
1.44
|
||||
)
|
||||
),
|
||||
C2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C2",
|
||||
RASmodelCoeffs_,
|
||||
1.92
|
||||
)
|
||||
),
|
||||
Cs_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cs",
|
||||
RASmodelCoeffs_,
|
||||
0.25
|
||||
)
|
||||
),
|
||||
Ceps_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Ceps",
|
||||
RASmodelCoeffs_,
|
||||
0.15
|
||||
)
|
||||
),
|
||||
C1Ref_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C1Ref",
|
||||
RASmodelCoeffs_,
|
||||
0.5
|
||||
)
|
||||
),
|
||||
C2Ref_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C2Ref",
|
||||
RASmodelCoeffs_,
|
||||
0.3
|
||||
)
|
||||
),
|
||||
couplingFactor_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("couplingFactor", 0.0)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"couplingFactor",
|
||||
RASmodelCoeffs_,
|
||||
0.0
|
||||
)
|
||||
),
|
||||
alphaR(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaR", 1.22)),
|
||||
alphaEps
|
||||
alphaR_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaEps", 0.76923)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaR",
|
||||
RASmodelCoeffs_,
|
||||
1.22
|
||||
)
|
||||
),
|
||||
alphaEps_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaEps",
|
||||
RASmodelCoeffs_,
|
||||
0.76923
|
||||
)
|
||||
),
|
||||
alphah_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphah",
|
||||
RASmodelCoeffs_,
|
||||
1.0
|
||||
)
|
||||
),
|
||||
alphah(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphah", 1.0)),
|
||||
|
||||
y_(mesh_),
|
||||
|
||||
@ -128,12 +226,12 @@ LaunderGibsonRSTM::LaunderGibsonRSTM
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
Cmu*rho_*sqr(k_)/(epsilon_ + epsilonSmall_)
|
||||
Cmu_*rho_*sqr(k_)/(epsilon_ + epsilonSmall_)
|
||||
)
|
||||
{
|
||||
# include "wallViscosityI.H"
|
||||
|
||||
if (couplingFactor_ < 0.0 || couplingFactor_ > 1.0)
|
||||
if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0)
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
@ -173,7 +271,7 @@ tmp<volSymmTensorField> LaunderGibsonRSTM::devRhoReff() const
|
||||
|
||||
tmp<fvVectorMatrix> LaunderGibsonRSTM::divDevRhoReff(volVectorField& U) const
|
||||
{
|
||||
if (couplingFactor_ > 0.0)
|
||||
if (couplingFactor_.value() > 0.0)
|
||||
{
|
||||
return
|
||||
(
|
||||
@ -200,26 +298,22 @@ bool LaunderGibsonRSTM::read()
|
||||
{
|
||||
if (RASmodel::read())
|
||||
{
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cmu", Cmu);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Clg1", Clg1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Clg2", Clg2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C1", C1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C2", C2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cs", Cs);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Ceps", Ceps);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C1Ref", C1Ref);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C2Ref", C2Ref);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaR", alphaR);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaEps", alphaEps);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphah", alphah);
|
||||
Cmu_.readIfPresent(RASmodelCoeffs_);
|
||||
Clg1_.readIfPresent(RASmodelCoeffs_);
|
||||
Clg2_.readIfPresent(RASmodelCoeffs_);
|
||||
C1_.readIfPresent(RASmodelCoeffs_);
|
||||
C2_.readIfPresent(RASmodelCoeffs_);
|
||||
Cs_.readIfPresent(RASmodelCoeffs_);
|
||||
Ceps_.readIfPresent(RASmodelCoeffs_);
|
||||
C1Ref_.readIfPresent(RASmodelCoeffs_);
|
||||
C2Ref_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaR_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaEps_.readIfPresent(RASmodelCoeffs_);
|
||||
alphah_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
RASmodelCoeffs_.readIfPresent<scalar>
|
||||
(
|
||||
"couplingFactor",
|
||||
couplingFactor_
|
||||
);
|
||||
couplingFactor_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
if (couplingFactor_ < 0.0 || couplingFactor_ > 1.0)
|
||||
if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0)
|
||||
{
|
||||
FatalErrorIn("LaunderGibsonRSTM::read()")
|
||||
<< "couplingFactor = " << couplingFactor_
|
||||
@ -241,7 +335,7 @@ void LaunderGibsonRSTM::correct()
|
||||
if (!turbulence_)
|
||||
{
|
||||
// Re-calculate viscosity
|
||||
mut_ = rho_*Cmu*sqr(k_)/(epsilon_ + epsilonSmall_);
|
||||
mut_ = rho_*Cmu_*sqr(k_)/(epsilon_ + epsilonSmall_);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -265,8 +359,8 @@ void LaunderGibsonRSTM::correct()
|
||||
//- fvm::laplacian(Ceps*rho_*(k_/epsilon_)*R_, epsilon_)
|
||||
- fvm::laplacian(DepsilonEff(), epsilon_)
|
||||
==
|
||||
C1*rho_*G*epsilon_/k_
|
||||
- fvm::Sp(C2*rho_*epsilon_/k_, epsilon_)
|
||||
C1_*rho_*G*epsilon_/k_
|
||||
- fvm::Sp(C2_*rho_*epsilon_/k_, epsilon_)
|
||||
);
|
||||
|
||||
epsEqn().relax();
|
||||
@ -296,7 +390,7 @@ void LaunderGibsonRSTM::correct()
|
||||
}
|
||||
}
|
||||
|
||||
volSymmTensorField reflect = C1Ref*epsilon_/k_*R_ - C2Ref*Clg2*dev(P);
|
||||
volSymmTensorField reflect = C1Ref_*epsilon_/k_*R_ - C2Ref_*Clg2_*dev(P);
|
||||
|
||||
tmp<fvSymmTensorMatrix> REqn
|
||||
(
|
||||
@ -304,11 +398,11 @@ void LaunderGibsonRSTM::correct()
|
||||
+ fvm::div(phi_, R_)
|
||||
//- fvm::laplacian(Cs*rho_*(k_/epsilon_)*R_, R_)
|
||||
- fvm::laplacian(DREff(), R_)
|
||||
+ fvm::Sp(Clg1*rho_*epsilon_/k_, R_)
|
||||
+ fvm::Sp(Clg1_*rho_*epsilon_/k_, R_)
|
||||
==
|
||||
rho_*P
|
||||
+ (2.0/3.0*(Clg1 - 1)*I)*rho_*epsilon_
|
||||
- Clg2*rho_*dev(P)
|
||||
+ (2.0/3.0*(Clg1_ - 1)*I)*rho_*epsilon_
|
||||
- Clg2_*rho_*dev(P)
|
||||
|
||||
// wall reflection terms
|
||||
+ symm
|
||||
@ -316,7 +410,7 @@ void LaunderGibsonRSTM::correct()
|
||||
I*((y_.n() & reflect) & y_.n())
|
||||
- 1.5*(y_.n()*(reflect & y_.n())
|
||||
+ (y_.n() & reflect)*y_.n())
|
||||
)*pow(Cmu, 0.75)*rho_*pow(k_, 1.5)/(kappa_*y_*epsilon_)
|
||||
)*pow(Cmu_, 0.75)*rho_*pow(k_, 1.5)/(kappa_*y_*epsilon_)
|
||||
);
|
||||
|
||||
REqn().relax();
|
||||
@ -342,7 +436,7 @@ void LaunderGibsonRSTM::correct()
|
||||
|
||||
|
||||
// Re-calculate turbulent viscosity
|
||||
mut_ = Cmu*rho_*sqr(k_)/epsilon_;
|
||||
mut_ = Cmu_*rho_*sqr(k_)/epsilon_;
|
||||
|
||||
|
||||
# include "wallViscosityI.H"
|
||||
|
||||
@ -79,24 +79,24 @@ class LaunderGibsonRSTM
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar Cmu;
|
||||
dimensionedScalar Cmu_;
|
||||
|
||||
scalar Clg1;
|
||||
scalar Clg2;
|
||||
dimensionedScalar Clg1_;
|
||||
dimensionedScalar Clg2_;
|
||||
|
||||
scalar C1;
|
||||
scalar C2;
|
||||
scalar Cs;
|
||||
scalar Ceps;
|
||||
dimensionedScalar C1_;
|
||||
dimensionedScalar C2_;
|
||||
dimensionedScalar Cs_;
|
||||
dimensionedScalar Ceps_;
|
||||
|
||||
scalar C1Ref;
|
||||
scalar C2Ref;
|
||||
dimensionedScalar C1Ref_;
|
||||
dimensionedScalar C2Ref_;
|
||||
|
||||
scalar couplingFactor_;
|
||||
dimensionedScalar couplingFactor_;
|
||||
|
||||
scalar alphaR;
|
||||
scalar alphaEps;
|
||||
scalar alphah;
|
||||
dimensionedScalar alphaR_;
|
||||
dimensionedScalar alphaEps_;
|
||||
dimensionedScalar alphah_;
|
||||
|
||||
wallDistReflection y_;
|
||||
|
||||
@ -143,7 +143,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DREff", alphaR*mut_ + mu())
|
||||
new volScalarField("DREff", alphaR_*mut_ + mu())
|
||||
);
|
||||
}
|
||||
|
||||
@ -152,7 +152,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DepsilonEff", alphaEps*mut_ + mu())
|
||||
new volScalarField("DepsilonEff", alphaEps_*mut_ + mu())
|
||||
);
|
||||
}
|
||||
|
||||
@ -161,7 +161,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("alphaEff", alphah*mut_ + alpha())
|
||||
new volScalarField("alphaEff", alphah_*mut_ + alpha())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -71,16 +71,69 @@ LaunderSharmaKE::LaunderSharmaKE
|
||||
:
|
||||
RASmodel(typeName, rho, U, phi, thermophysicalModel),
|
||||
|
||||
Cmu(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cmu", 0.09)),
|
||||
C1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C1", 1.44)),
|
||||
C2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C2", 1.92)),
|
||||
C3(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C3", -0.33)),
|
||||
alphak(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphak", 1.0)),
|
||||
alphaEps
|
||||
Cmu_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaEps", 0.76923)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cmu",
|
||||
RASmodelCoeffs_,
|
||||
0.09
|
||||
)
|
||||
),
|
||||
C1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C1",
|
||||
RASmodelCoeffs_,
|
||||
1.44
|
||||
)
|
||||
),
|
||||
C2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C2",
|
||||
RASmodelCoeffs_,
|
||||
1.92
|
||||
)
|
||||
),
|
||||
C3_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C3",
|
||||
RASmodelCoeffs_,
|
||||
-0.33
|
||||
)
|
||||
),
|
||||
alphak_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphak",
|
||||
RASmodelCoeffs_,
|
||||
1.0
|
||||
)
|
||||
),
|
||||
alphaEps_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaEps",
|
||||
RASmodelCoeffs_,
|
||||
0.76923
|
||||
)
|
||||
),
|
||||
alphah_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphah",
|
||||
RASmodelCoeffs_,
|
||||
1.0
|
||||
)
|
||||
),
|
||||
alphah(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphah", 1.0)),
|
||||
|
||||
k_
|
||||
(
|
||||
@ -118,7 +171,7 @@ LaunderSharmaKE::LaunderSharmaKE
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
Cmu*fMu()*rho_*sqr(k_)/(epsilon_ + epsilonSmall_)
|
||||
Cmu_*fMu()*rho_*sqr(k_)/(epsilon_ + epsilonSmall_)
|
||||
)
|
||||
{
|
||||
printCoeffs();
|
||||
@ -181,12 +234,13 @@ bool LaunderSharmaKE::read()
|
||||
{
|
||||
if (RASmodel::read())
|
||||
{
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cmu", Cmu);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C1", C1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C2", C2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C3", C3);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaEps", alphaEps);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphah", alphah);
|
||||
Cmu_.readIfPresent(RASmodelCoeffs_);
|
||||
C1_.readIfPresent(RASmodelCoeffs_);
|
||||
C2_.readIfPresent(RASmodelCoeffs_);
|
||||
C3_.readIfPresent(RASmodelCoeffs_);
|
||||
alphak_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaEps_.readIfPresent(RASmodelCoeffs_);
|
||||
alphah_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -202,7 +256,7 @@ void LaunderSharmaKE::correct()
|
||||
if (!turbulence_)
|
||||
{
|
||||
// Re-calculate viscosity
|
||||
mut_ = rho_*Cmu*fMu()*sqr(k_)/(epsilon_ + epsilonSmall_);
|
||||
mut_ = rho_*Cmu_*fMu()*sqr(k_)/(epsilon_ + epsilonSmall_);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -234,8 +288,8 @@ void LaunderSharmaKE::correct()
|
||||
+ fvm::div(phi_, epsilon_)
|
||||
- fvm::laplacian(DepsilonEff(), epsilon_)
|
||||
==
|
||||
C1*G*epsilon_/k_ + fvm::SuSp((C3 - 2.0/3.0*C1)*rho_*divU, epsilon_)
|
||||
- fvm::Sp(C2*f2()*rho_*epsilon_/k_, epsilon_)
|
||||
C1_*G*epsilon_/k_ + fvm::SuSp((C3_ - 2.0/3.0*C1_)*rho_*divU, epsilon_)
|
||||
- fvm::Sp(C2_*f2()*rho_*epsilon_/k_, epsilon_)
|
||||
//+ 0.75*1.5*flameKproduction*epsilon_/k_
|
||||
+ E
|
||||
);
|
||||
@ -264,7 +318,7 @@ void LaunderSharmaKE::correct()
|
||||
|
||||
|
||||
// Re-calculate viscosity
|
||||
mut_ = Cmu*fMu()*rho_*sqr(k_)/epsilon_;
|
||||
mut_ = Cmu_*fMu()*rho_*sqr(k_)/epsilon_;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -73,13 +73,13 @@ class LaunderSharmaKE
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar Cmu;
|
||||
scalar C1;
|
||||
scalar C2;
|
||||
scalar C3;
|
||||
scalar alphak;
|
||||
scalar alphaEps;
|
||||
scalar alphah;
|
||||
dimensionedScalar Cmu_;
|
||||
dimensionedScalar C1_;
|
||||
dimensionedScalar C2_;
|
||||
dimensionedScalar C3_;
|
||||
dimensionedScalar alphak_;
|
||||
dimensionedScalar alphaEps_;
|
||||
dimensionedScalar alphah_;
|
||||
|
||||
volScalarField k_;
|
||||
volScalarField epsilon_;
|
||||
@ -127,7 +127,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DkEff", alphak*mut_ + mu())
|
||||
new volScalarField("DkEff", alphak_*mut_ + mu())
|
||||
);
|
||||
}
|
||||
|
||||
@ -136,7 +136,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DepsilonEff", alphaEps*mut_ + mu())
|
||||
new volScalarField("DepsilonEff", alphaEps_*mut_ + mu())
|
||||
);
|
||||
}
|
||||
|
||||
@ -145,7 +145,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("alphaEff", alphah*mut_ + alpha())
|
||||
new volScalarField("alphaEff", alphah_*mut_ + alpha())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -55,18 +55,87 @@ RNGkEpsilon::RNGkEpsilon
|
||||
:
|
||||
RASmodel(typeName, rho, U, phi, thermophysicalModel),
|
||||
|
||||
Cmu(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cmu", 0.0845)),
|
||||
C1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C1", 1.42)),
|
||||
C2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C2", 1.68)),
|
||||
C3(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C3", -0.33)),
|
||||
alphak(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphak", 1.39)),
|
||||
alphaEps
|
||||
Cmu_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaEps", 1.39)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cmu",
|
||||
RASmodelCoeffs_,
|
||||
0.0845
|
||||
)
|
||||
),
|
||||
C1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C1",
|
||||
RASmodelCoeffs_,
|
||||
1.42
|
||||
)
|
||||
),
|
||||
C2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C2",
|
||||
RASmodelCoeffs_,
|
||||
1.68
|
||||
)
|
||||
),
|
||||
C3_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C3",
|
||||
RASmodelCoeffs_,
|
||||
-0.33
|
||||
)
|
||||
),
|
||||
alphak_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphak",
|
||||
RASmodelCoeffs_,
|
||||
1.39
|
||||
)
|
||||
),
|
||||
alphaEps_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaEps",
|
||||
RASmodelCoeffs_,
|
||||
1.39
|
||||
)
|
||||
),
|
||||
alphah_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphah",
|
||||
RASmodelCoeffs_,
|
||||
1.0
|
||||
)
|
||||
),
|
||||
eta0_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"eta0",
|
||||
RASmodelCoeffs_,
|
||||
4.38
|
||||
)
|
||||
),
|
||||
beta_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"beta",
|
||||
RASmodelCoeffs_,
|
||||
0.012
|
||||
)
|
||||
),
|
||||
alphah(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphah", 1.0)),
|
||||
eta0(RASmodelCoeffs_.lookupOrAddDefault<scalar>("eta0", 4.38)),
|
||||
beta(RASmodelCoeffs_.lookupOrAddDefault<scalar>("beta", 0.012)),
|
||||
|
||||
k_
|
||||
(
|
||||
@ -104,7 +173,7 @@ RNGkEpsilon::RNGkEpsilon
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
Cmu*rho_*sqr(k_)/(epsilon_ + epsilonSmall_)
|
||||
Cmu_*rho_*sqr(k_)/(epsilon_ + epsilonSmall_)
|
||||
)
|
||||
{
|
||||
# include "wallViscosityI.H"
|
||||
@ -169,15 +238,15 @@ bool RNGkEpsilon::read()
|
||||
{
|
||||
if (RASmodel::read())
|
||||
{
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cmu", Cmu);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C1", C1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C2", C2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C3", C3);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphak", alphak);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaEps", alphaEps);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphah", alphah);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("eta0", eta0);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("beta", beta);
|
||||
Cmu_.readIfPresent(RASmodelCoeffs_);
|
||||
C1_.readIfPresent(RASmodelCoeffs_);
|
||||
C2_.readIfPresent(RASmodelCoeffs_);
|
||||
C3_.readIfPresent(RASmodelCoeffs_);
|
||||
alphak_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaEps_.readIfPresent(RASmodelCoeffs_);
|
||||
alphah_.readIfPresent(RASmodelCoeffs_);
|
||||
eta0_.readIfPresent(RASmodelCoeffs_);
|
||||
beta_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -193,7 +262,7 @@ void RNGkEpsilon::correct()
|
||||
if (!turbulence_)
|
||||
{
|
||||
// Re-calculate viscosity
|
||||
mut_ = rho_*Cmu*sqr(k_)/(epsilon_ + epsilonSmall_);
|
||||
mut_ = rho_*Cmu_*sqr(k_)/(epsilon_ + epsilonSmall_);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -216,7 +285,7 @@ void RNGkEpsilon::correct()
|
||||
volScalarField eta3 = eta*sqr(eta);
|
||||
|
||||
volScalarField R =
|
||||
((eta*(-eta/eta0 + scalar(1)))/(beta*eta3 + scalar(1)));
|
||||
((eta*(-eta/eta0_ + scalar(1)))/(beta_*eta3 + scalar(1)));
|
||||
|
||||
# include "wallFunctionsI.H"
|
||||
|
||||
@ -227,9 +296,9 @@ void RNGkEpsilon::correct()
|
||||
+ fvm::div(phi_, epsilon_)
|
||||
- fvm::laplacian(DepsilonEff(), epsilon_)
|
||||
==
|
||||
(C1 - R)*G*epsilon_/k_
|
||||
- fvm::SuSp(((2.0/3.0)*C1 + C3)*rho_*divU, epsilon_)
|
||||
- fvm::Sp(C2*rho_*epsilon_/k_, epsilon_)
|
||||
(C1_ - R)*G*epsilon_/k_
|
||||
- fvm::SuSp(((2.0/3.0)*C1_ + C3_)*rho_*divU, epsilon_)
|
||||
- fvm::Sp(C2_*rho_*epsilon_/k_, epsilon_)
|
||||
);
|
||||
|
||||
epsEqn().relax();
|
||||
@ -258,7 +327,7 @@ void RNGkEpsilon::correct()
|
||||
|
||||
|
||||
// Re-calculate viscosity
|
||||
mut_ = rho_*Cmu*sqr(k_)/epsilon_;
|
||||
mut_ = rho_*Cmu_*sqr(k_)/epsilon_;
|
||||
|
||||
# include "wallViscosityI.H"
|
||||
|
||||
|
||||
@ -74,15 +74,15 @@ class RNGkEpsilon
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar Cmu;
|
||||
scalar C1;
|
||||
scalar C2;
|
||||
scalar C3;
|
||||
scalar alphak;
|
||||
scalar alphaEps;
|
||||
scalar alphah;
|
||||
scalar eta0;
|
||||
scalar beta;
|
||||
dimensionedScalar Cmu_;
|
||||
dimensionedScalar C1_;
|
||||
dimensionedScalar C2_;
|
||||
dimensionedScalar C3_;
|
||||
dimensionedScalar alphak_;
|
||||
dimensionedScalar alphaEps_;
|
||||
dimensionedScalar alphah_;
|
||||
dimensionedScalar eta0_;
|
||||
dimensionedScalar beta_;
|
||||
|
||||
volScalarField k_;
|
||||
volScalarField epsilon_;
|
||||
@ -124,7 +124,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DkEff", alphak*mut_ + mu())
|
||||
new volScalarField("DkEff", alphak_*mut_ + mu())
|
||||
);
|
||||
}
|
||||
|
||||
@ -133,7 +133,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DepsilonEff", alphaEps*mut_ + mu())
|
||||
new volScalarField("DepsilonEff", alphaEps_*mut_ + mu())
|
||||
);
|
||||
}
|
||||
|
||||
@ -142,7 +142,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("alphaEff", alphah*mut_ + alpha())
|
||||
new volScalarField("alphaEff", alphah_*mut_ + alpha())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -53,7 +53,7 @@ tmp<volScalarField> SpalartAllmaras::chi() const
|
||||
tmp<volScalarField> SpalartAllmaras::fv1(const volScalarField& chi) const
|
||||
{
|
||||
volScalarField chi3 = pow3(chi);
|
||||
return chi3/(chi3 + pow3(Cv1));
|
||||
return chi3/(chi3 + pow3(Cv1_));
|
||||
}
|
||||
|
||||
|
||||
@ -74,11 +74,11 @@ tmp<volScalarField> SpalartAllmaras::fv3
|
||||
const volScalarField& fv1
|
||||
) const
|
||||
{
|
||||
volScalarField chiByCv2 = (1/Cv2)*chi;
|
||||
volScalarField chiByCv2 = (1/Cv2_)*chi;
|
||||
|
||||
return
|
||||
(scalar(1) + chi*fv1)
|
||||
*(1/Cv2)
|
||||
*(1/Cv2_)
|
||||
*(3*(scalar(1) + chiByCv2) + sqr(chiByCv2))
|
||||
/pow3(scalar(1) + chiByCv2);
|
||||
}
|
||||
@ -97,9 +97,9 @@ tmp<volScalarField> SpalartAllmaras::fw(const volScalarField& Stilda) const
|
||||
);
|
||||
r.boundaryField() == 0.0;
|
||||
|
||||
volScalarField g = r + Cw2*(pow6(r) - r);
|
||||
volScalarField g = r + Cw2_*(pow6(r) - r);
|
||||
|
||||
return g*pow((1.0 + pow6(Cw3))/(pow6(g) + pow6(Cw3)), 1.0/6.0);
|
||||
return g*pow((1.0 + pow6(Cw3_))/(pow6(g) + pow6(Cw3_)), 1.0/6.0);
|
||||
}
|
||||
|
||||
|
||||
@ -107,7 +107,7 @@ tmp<volScalarField> SpalartAllmaras::fw(const volScalarField& Stilda) const
|
||||
|
||||
SpalartAllmaras::SpalartAllmaras
|
||||
(
|
||||
const volScalarField& rho,
|
||||
const volScalarField& rho,
|
||||
const volVectorField& U,
|
||||
const surfaceScalarField& phi,
|
||||
basicThermo& thermophysicalModel
|
||||
@ -115,19 +115,80 @@ SpalartAllmaras::SpalartAllmaras
|
||||
:
|
||||
RASmodel(typeName, rho, U, phi, thermophysicalModel),
|
||||
|
||||
alphaNut
|
||||
alphaNut_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaNut", 1.5)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaNut",
|
||||
RASmodelCoeffs_,
|
||||
1.5
|
||||
)
|
||||
),
|
||||
alphah_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphah",
|
||||
RASmodelCoeffs_,
|
||||
1.0
|
||||
)
|
||||
),
|
||||
alphah(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphah", 1.0)),
|
||||
|
||||
Cb1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cb1", 0.1355)),
|
||||
Cb2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cb2", 0.622)),
|
||||
Cw1(Cb1/sqr(kappa_) + alphaNut*(1.0 + Cb2)),
|
||||
Cw2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cw2", 0.3)),
|
||||
Cw3(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cw3", 2.0)),
|
||||
Cv1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cv1", 7.1)),
|
||||
Cv2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cv2", 5.0)),
|
||||
Cb1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cb1",
|
||||
RASmodelCoeffs_,
|
||||
0.1355
|
||||
)
|
||||
),
|
||||
Cb2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cb2",
|
||||
RASmodelCoeffs_,
|
||||
0.622
|
||||
)
|
||||
),
|
||||
Cw1_(Cb1_/sqr(kappa_) + alphaNut_*(1.0 + Cb2_)),
|
||||
Cw2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cw2",
|
||||
RASmodelCoeffs_,
|
||||
0.3
|
||||
)
|
||||
),
|
||||
Cw3_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cw3",
|
||||
RASmodelCoeffs_,
|
||||
2.0
|
||||
)
|
||||
),
|
||||
Cv1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cv1",
|
||||
RASmodelCoeffs_,
|
||||
7.1
|
||||
)
|
||||
),
|
||||
Cv2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cv2",
|
||||
RASmodelCoeffs_,
|
||||
5.0
|
||||
)
|
||||
),
|
||||
|
||||
nuTilda_
|
||||
(
|
||||
@ -219,16 +280,16 @@ bool SpalartAllmaras::read()
|
||||
{
|
||||
if (RASmodel::read())
|
||||
{
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaNut", alphaNut);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphah", alphah);
|
||||
alphaNut_.readIfPresent(RASmodelCoeffs_);
|
||||
alphah_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cb1", Cb1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cb2", Cb2);
|
||||
Cw1 = Cb1/sqr(kappa_) + alphaNut*(1.0 + Cb2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cw2", Cw2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cw3", Cw3);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cv1", Cv1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cv2", Cv2);
|
||||
Cb1_.readIfPresent(RASmodelCoeffs_);
|
||||
Cb2_.readIfPresent(RASmodelCoeffs_);
|
||||
Cw1_ = Cb1_/sqr(kappa_) + alphaNut_*(1.0 + Cb2_);
|
||||
Cw2_.readIfPresent(RASmodelCoeffs_);
|
||||
Cw3_.readIfPresent(RASmodelCoeffs_);
|
||||
Cv1_.readIfPresent(RASmodelCoeffs_);
|
||||
Cv2_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -244,7 +305,7 @@ void SpalartAllmaras::correct()
|
||||
if (!turbulence_)
|
||||
{
|
||||
// Re-calculate viscosity
|
||||
mut_ = rho_*nuTilda_*fv1( chi() );
|
||||
mut_ = rho_*nuTilda_*fv1(chi());
|
||||
return;
|
||||
}
|
||||
|
||||
@ -267,10 +328,10 @@ void SpalartAllmaras::correct()
|
||||
fvm::ddt(rho_, nuTilda_)
|
||||
+ fvm::div(phi_, nuTilda_)
|
||||
- fvm::laplacian(DnuTildaEff(), nuTilda_)
|
||||
- alphaNut*Cb2*rho_*magSqr(fvc::grad(nuTilda_))
|
||||
- alphaNut_*Cb2_*rho_*magSqr(fvc::grad(nuTilda_))
|
||||
==
|
||||
Cb1*rho_*Stilda*nuTilda_
|
||||
- fvm::Sp(Cw1*fw(Stilda)*nuTilda_*rho_/sqr(d_), nuTilda_)
|
||||
Cb1_*rho_*Stilda*nuTilda_
|
||||
- fvm::Sp(Cw1_*fw(Stilda)*nuTilda_*rho_/sqr(d_), nuTilda_)
|
||||
);
|
||||
|
||||
nuTildaEqn().relax();
|
||||
|
||||
@ -90,16 +90,16 @@ class SpalartAllmaras
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar alphaNut;
|
||||
scalar alphah;
|
||||
dimensionedScalar alphaNut_;
|
||||
dimensionedScalar alphah_;
|
||||
|
||||
scalar Cb1;
|
||||
scalar Cb2;
|
||||
scalar Cw1;
|
||||
scalar Cw2;
|
||||
scalar Cw3;
|
||||
scalar Cv1;
|
||||
scalar Cv2;
|
||||
dimensionedScalar Cb1_;
|
||||
dimensionedScalar Cb2_;
|
||||
dimensionedScalar Cw1_;
|
||||
dimensionedScalar Cw2_;
|
||||
dimensionedScalar Cw3_;
|
||||
dimensionedScalar Cv1_;
|
||||
dimensionedScalar Cv2_;
|
||||
|
||||
volScalarField nuTilda_;
|
||||
volScalarField mut_;
|
||||
@ -161,7 +161,11 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DnuTildaEff", alphaNut*rho_*nuTilda_ + mu())
|
||||
new volScalarField
|
||||
(
|
||||
"DnuTildaEff",
|
||||
alphaNut_*rho_*nuTilda_ + mu()
|
||||
)
|
||||
);
|
||||
}
|
||||
//- Return the effective turbulent thermal diffusivity
|
||||
@ -169,7 +173,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("alphaEff", alphah*mut_ + alpha())
|
||||
new volScalarField("alphaEff", alphah_*mut_ + alpha())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -54,16 +54,69 @@ kEpsilon::kEpsilon
|
||||
:
|
||||
RASmodel(typeName, rho, U, phi, thermophysicalModel),
|
||||
|
||||
Cmu(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cmu", 0.09)),
|
||||
C1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C1", 1.44)),
|
||||
C2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C2", 1.92)),
|
||||
C3(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C3", -0.33)),
|
||||
alphak(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphak", 1.0)),
|
||||
alphaEps
|
||||
Cmu_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaEps", 0.76923)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cmu",
|
||||
RASmodelCoeffs_,
|
||||
0.09
|
||||
)
|
||||
),
|
||||
C1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C1",
|
||||
RASmodelCoeffs_,
|
||||
1.44
|
||||
)
|
||||
),
|
||||
C2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C2",
|
||||
RASmodelCoeffs_,
|
||||
1.92
|
||||
)
|
||||
),
|
||||
C3_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C3",
|
||||
RASmodelCoeffs_,
|
||||
-0.33
|
||||
)
|
||||
),
|
||||
alphak_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphak",
|
||||
RASmodelCoeffs_,
|
||||
1.0
|
||||
)
|
||||
),
|
||||
alphaEps_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaEps",
|
||||
RASmodelCoeffs_,
|
||||
0.76923
|
||||
)
|
||||
),
|
||||
alphah_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphah",
|
||||
RASmodelCoeffs_,
|
||||
1.0
|
||||
)
|
||||
),
|
||||
alphah(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphah", 1.0)),
|
||||
|
||||
k_
|
||||
(
|
||||
@ -101,7 +154,7 @@ kEpsilon::kEpsilon
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
Cmu*rho_*sqr(k_)/(epsilon_ + epsilonSmall_)
|
||||
Cmu_*rho_*sqr(k_)/(epsilon_ + epsilonSmall_)
|
||||
)
|
||||
{
|
||||
# include "wallViscosityI.H"
|
||||
@ -167,13 +220,13 @@ bool kEpsilon::read()
|
||||
{
|
||||
if (RASmodel::read())
|
||||
{
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cmu", Cmu);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C1", C1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C2", C2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C3", C3);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphak", alphak);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaEps", alphaEps);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphah", alphah);
|
||||
Cmu_.readIfPresent(RASmodelCoeffs_);
|
||||
C1_.readIfPresent(RASmodelCoeffs_);
|
||||
C2_.readIfPresent(RASmodelCoeffs_);
|
||||
C3_.readIfPresent(RASmodelCoeffs_);
|
||||
alphak_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaEps_.readIfPresent(RASmodelCoeffs_);
|
||||
alphah_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -189,7 +242,7 @@ void kEpsilon::correct()
|
||||
if (!turbulence_)
|
||||
{
|
||||
// Re-calculate viscosity
|
||||
mut_ = rho_*Cmu*sqr(k_)/(epsilon_ + epsilonSmall_);
|
||||
mut_ = rho_*Cmu_*sqr(k_)/(epsilon_ + epsilonSmall_);
|
||||
# include "wallViscosityI.H"
|
||||
return;
|
||||
}
|
||||
@ -216,9 +269,9 @@ void kEpsilon::correct()
|
||||
+ fvm::div(phi_, epsilon_)
|
||||
- fvm::laplacian(DepsilonEff(), epsilon_)
|
||||
==
|
||||
C1*G*epsilon_/k_
|
||||
- fvm::SuSp(((2.0/3.0)*C1 + C3)*rho_*divU, epsilon_)
|
||||
- fvm::Sp(C2*rho_*epsilon_/k_, epsilon_)
|
||||
C1_*G*epsilon_/k_
|
||||
- fvm::SuSp(((2.0/3.0)*C1_ + C3_)*rho_*divU, epsilon_)
|
||||
- fvm::Sp(C2_*rho_*epsilon_/k_, epsilon_)
|
||||
);
|
||||
|
||||
# include "wallDissipationI.H"
|
||||
@ -248,7 +301,7 @@ void kEpsilon::correct()
|
||||
|
||||
|
||||
// Re-calculate viscosity
|
||||
mut_ = rho_*Cmu*sqr(k_)/epsilon_;
|
||||
mut_ = rho_*Cmu_*sqr(k_)/epsilon_;
|
||||
|
||||
# include "wallViscosityI.H"
|
||||
|
||||
|
||||
@ -74,13 +74,14 @@ class kEpsilon
|
||||
|
||||
// Model coefficients
|
||||
|
||||
scalar Cmu;
|
||||
scalar C1;
|
||||
scalar C2;
|
||||
scalar C3;
|
||||
scalar alphak;
|
||||
scalar alphaEps;
|
||||
scalar alphah;
|
||||
// dimensionedScalar Cmu;
|
||||
dimensionedScalar Cmu_;
|
||||
dimensionedScalar C1_;
|
||||
dimensionedScalar C2_;
|
||||
dimensionedScalar C3_;
|
||||
dimensionedScalar alphak_;
|
||||
dimensionedScalar alphaEps_;
|
||||
dimensionedScalar alphah_;
|
||||
|
||||
// Fields
|
||||
|
||||
@ -125,7 +126,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DkEff", alphak*mut_ + mu())
|
||||
new volScalarField("DkEff", alphak_*mut_ + mu())
|
||||
);
|
||||
}
|
||||
|
||||
@ -134,7 +135,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DepsilonEff", alphaEps*mut_ + mu())
|
||||
new volScalarField("DepsilonEff", alphaEps_*mut_ + mu())
|
||||
);
|
||||
}
|
||||
|
||||
@ -143,7 +144,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("alphaEff", alphah*mut_ + alpha())
|
||||
new volScalarField("alphaEff", alphah_*mut_ + alpha())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -58,10 +58,10 @@ tmp<volScalarField> kOmegaSST::F1(const volScalarField& CDkOmega) const
|
||||
(
|
||||
max
|
||||
(
|
||||
(scalar(1)/betaStar)*sqrt(k_)/(omega_*y_),
|
||||
(scalar(1)/betaStar_)*sqrt(k_)/(omega_*y_),
|
||||
scalar(500)*(mu()/rho_)/(sqr(y_)*omega_)
|
||||
),
|
||||
(4*alphaOmega2)*k_/(CDkOmegaPlus*sqr(y_))
|
||||
(4*alphaOmega2_)*k_/(CDkOmegaPlus*sqr(y_))
|
||||
),
|
||||
scalar(10)
|
||||
);
|
||||
@ -75,7 +75,7 @@ tmp<volScalarField> kOmegaSST::F2() const
|
||||
(
|
||||
max
|
||||
(
|
||||
(scalar(2)/betaStar)*sqrt(k_)/(omega_*y_),
|
||||
(scalar(2)/betaStar_)*sqrt(k_)/(omega_*y_),
|
||||
scalar(500)*(mu()/rho_)/(sqr(y_)*omega_)
|
||||
),
|
||||
scalar(100)
|
||||
@ -97,32 +97,127 @@ kOmegaSST::kOmegaSST
|
||||
:
|
||||
RASmodel(typeName, rho, U, phi, thermophysicalModel),
|
||||
|
||||
alphaK1
|
||||
alphaK1_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaK1", 0.85034)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaK1",
|
||||
RASmodelCoeffs_,
|
||||
0.85034
|
||||
)
|
||||
),
|
||||
alphaK2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaK2", 1.0)),
|
||||
alphaOmega1
|
||||
alphaK2_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaOmega1", 0.5)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaK2",
|
||||
RASmodelCoeffs_,
|
||||
1.0
|
||||
)
|
||||
),
|
||||
alphaOmega2
|
||||
alphaOmega1_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaOmega2", 0.85616)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaOmega1",
|
||||
RASmodelCoeffs_,
|
||||
0.5
|
||||
)
|
||||
),
|
||||
alphaOmega2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaOmega2",
|
||||
RASmodelCoeffs_,
|
||||
0.85616
|
||||
)
|
||||
),
|
||||
alphah_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphah",
|
||||
RASmodelCoeffs_,
|
||||
1.0
|
||||
)
|
||||
),
|
||||
gamma1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"gamma1",
|
||||
RASmodelCoeffs_,
|
||||
0.5532
|
||||
)
|
||||
),
|
||||
gamma2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"gamma2",
|
||||
RASmodelCoeffs_,
|
||||
0.4403
|
||||
)
|
||||
),
|
||||
beta1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"beta1",
|
||||
RASmodelCoeffs_,
|
||||
0.075
|
||||
)
|
||||
),
|
||||
beta2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"beta2",
|
||||
RASmodelCoeffs_,
|
||||
0.0828
|
||||
)
|
||||
),
|
||||
betaStar_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"betaStar",
|
||||
RASmodelCoeffs_,
|
||||
0.09
|
||||
)
|
||||
),
|
||||
a1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"a1",
|
||||
RASmodelCoeffs_,
|
||||
0.31
|
||||
)
|
||||
),
|
||||
c1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"c1",
|
||||
RASmodelCoeffs_,
|
||||
10.0
|
||||
)
|
||||
),
|
||||
alphah(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphah", 1.0)),
|
||||
gamma1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("gamma1", 0.5532)),
|
||||
gamma2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("gamma2", 0.4403)),
|
||||
beta1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("beta1", 0.075)),
|
||||
beta2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("beta2", 0.0828)),
|
||||
betaStar(RASmodelCoeffs_.lookupOrAddDefault<scalar>("betaStar", 0.09)),
|
||||
a1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("a1", 0.31)),
|
||||
c1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("c1", 10.0)),
|
||||
|
||||
omega0_("omega0", dimless/dimTime, SMALL),
|
||||
omegaSmall_("omegaSmall", dimless/dimTime, SMALL),
|
||||
|
||||
Cmu(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cmu", 0.09)),
|
||||
Cmu_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cmu",
|
||||
RASmodelCoeffs_,
|
||||
0.09
|
||||
)
|
||||
),
|
||||
|
||||
y_(mesh_),
|
||||
|
||||
@ -162,7 +257,7 @@ kOmegaSST::kOmegaSST
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
a1*rho_*k_/max(a1*omega_, F2()*sqrt(magSqr(symm(fvc::grad(U_)))))
|
||||
a1_*rho_*k_/max(a1_*omega_, F2()*sqrt(magSqr(symm(fvc::grad(U_)))))
|
||||
)
|
||||
{
|
||||
# include "kOmegaWallViscosityI.H"
|
||||
@ -227,27 +322,19 @@ bool kOmegaSST::read()
|
||||
{
|
||||
if (RASmodel::read())
|
||||
{
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaK1", alphaK1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaK2", alphaK2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>
|
||||
(
|
||||
"alphaOmega1",
|
||||
alphaOmega1
|
||||
);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>
|
||||
(
|
||||
"alphaOmega2",
|
||||
alphaOmega2
|
||||
);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphah", alphah);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("gamma1", gamma1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("gamma2", gamma2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("beta1", beta1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("beta2", beta2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("betaStar", betaStar);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("a1", a1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("c1", c1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cmu", Cmu);
|
||||
alphaK1_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaK2_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaOmega1_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaOmega2_.readIfPresent(RASmodelCoeffs_);
|
||||
alphah_.readIfPresent(RASmodelCoeffs_);
|
||||
gamma1_.readIfPresent(RASmodelCoeffs_);
|
||||
gamma2_.readIfPresent(RASmodelCoeffs_);
|
||||
beta1_.readIfPresent(RASmodelCoeffs_);
|
||||
beta2_.readIfPresent(RASmodelCoeffs_);
|
||||
betaStar_.readIfPresent(RASmodelCoeffs_);
|
||||
a1_.readIfPresent(RASmodelCoeffs_);
|
||||
c1_.readIfPresent(RASmodelCoeffs_);
|
||||
Cmu_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -264,7 +351,8 @@ void kOmegaSST::correct()
|
||||
{
|
||||
// Re-calculate viscosity
|
||||
mut_ =
|
||||
a1*rho_*k_/max(a1*omega_, F2()*sqrt(magSqr(symm(fvc::grad(U_)))));
|
||||
a1_*rho_*k_
|
||||
/max(a1_*omega_, F2()*sqrt(magSqr(symm(fvc::grad(U_)))));
|
||||
# include "kOmegaWallViscosityI.H"
|
||||
return;
|
||||
}
|
||||
@ -292,7 +380,7 @@ void kOmegaSST::correct()
|
||||
# include "kOmegaWallFunctionsI.H"
|
||||
|
||||
volScalarField CDkOmega =
|
||||
(2*alphaOmega2)*(fvc::grad(k_) & fvc::grad(omega_))/omega_;
|
||||
(2*alphaOmega2_)*(fvc::grad(k_) & fvc::grad(omega_))/omega_;
|
||||
|
||||
volScalarField F1 = this->F1(CDkOmega);
|
||||
volScalarField rhoGammaF1 = rho_*gamma(F1);
|
||||
@ -328,9 +416,9 @@ void kOmegaSST::correct()
|
||||
+ fvm::div(phi_, k_)
|
||||
- fvm::laplacian(DkEff(F1), k_)
|
||||
==
|
||||
min(G, (c1*betaStar)*rho_*k_*omega_)
|
||||
min(G, (c1_*betaStar_)*rho_*k_*omega_)
|
||||
- fvm::SuSp(2.0/3.0*rho_*divU, k_)
|
||||
- fvm::Sp(rho_*betaStar*omega_, k_)
|
||||
- fvm::Sp(rho_*betaStar_*omega_, k_)
|
||||
);
|
||||
|
||||
kEqn().relax();
|
||||
@ -339,7 +427,7 @@ void kOmegaSST::correct()
|
||||
|
||||
|
||||
// Re-calculate viscosity
|
||||
mut_ = a1*rho_*k_/max(a1*omega_, F2()*sqrt(S2));
|
||||
mut_ = a1_*rho_*k_/max(a1_*omega_, F2()*sqrt(S2));
|
||||
|
||||
# include "kOmegaWallViscosityI.H"
|
||||
|
||||
|
||||
@ -105,29 +105,29 @@ class kOmegaSST
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar alphaK1;
|
||||
scalar alphaK2;
|
||||
dimensionedScalar alphaK1_;
|
||||
dimensionedScalar alphaK2_;
|
||||
|
||||
scalar alphaOmega1;
|
||||
scalar alphaOmega2;
|
||||
dimensionedScalar alphaOmega1_;
|
||||
dimensionedScalar alphaOmega2_;
|
||||
|
||||
scalar alphah;
|
||||
dimensionedScalar alphah_;
|
||||
|
||||
scalar gamma1;
|
||||
scalar gamma2;
|
||||
dimensionedScalar gamma1_;
|
||||
dimensionedScalar gamma2_;
|
||||
|
||||
scalar beta1;
|
||||
scalar beta2;
|
||||
dimensionedScalar beta1_;
|
||||
dimensionedScalar beta2_;
|
||||
|
||||
scalar betaStar;
|
||||
dimensionedScalar betaStar_;
|
||||
|
||||
scalar a1;
|
||||
scalar c1;
|
||||
dimensionedScalar a1_;
|
||||
dimensionedScalar c1_;
|
||||
|
||||
dimensionedScalar omega0_;
|
||||
dimensionedScalar omegaSmall_;
|
||||
|
||||
scalar Cmu;
|
||||
dimensionedScalar Cmu_;
|
||||
|
||||
wallDist y_;
|
||||
|
||||
@ -156,7 +156,7 @@ class kOmegaSST
|
||||
const volScalarField& F1
|
||||
) const
|
||||
{
|
||||
return blend(F1, alphaK1, alphaK2);
|
||||
return blend(F1, alphaK1_, alphaK2_);
|
||||
}
|
||||
|
||||
tmp<volScalarField> alphaOmega
|
||||
@ -164,7 +164,7 @@ class kOmegaSST
|
||||
const volScalarField& F1
|
||||
) const
|
||||
{
|
||||
return blend(F1, alphaOmega1, alphaOmega2);
|
||||
return blend(F1, alphaOmega1_, alphaOmega2_);
|
||||
}
|
||||
|
||||
tmp<volScalarField> beta
|
||||
@ -172,7 +172,7 @@ class kOmegaSST
|
||||
const volScalarField& F1
|
||||
) const
|
||||
{
|
||||
return blend(F1, beta1, beta2);
|
||||
return blend(F1, beta1_, beta2_);
|
||||
}
|
||||
|
||||
tmp<volScalarField> gamma
|
||||
@ -180,7 +180,7 @@ class kOmegaSST
|
||||
const volScalarField& F1
|
||||
) const
|
||||
{
|
||||
return blend(F1, gamma1, gamma2);
|
||||
return blend(F1, gamma1_, gamma2_);
|
||||
}
|
||||
|
||||
|
||||
@ -238,7 +238,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("alphaEff", alphah*mut_ + alpha())
|
||||
new volScalarField("alphaEff", alphah_*mut_ + alpha())
|
||||
);
|
||||
}
|
||||
|
||||
@ -266,7 +266,7 @@ public:
|
||||
mesh_.time().timeName(),
|
||||
mesh_
|
||||
),
|
||||
betaStar*k_*omega_,
|
||||
betaStar_*k_*omega_,
|
||||
omega_.boundaryField().types()
|
||||
)
|
||||
);
|
||||
|
||||
@ -33,7 +33,7 @@ Description
|
||||
{
|
||||
labelList cellBoundaryFaceCount(omega_.size(), 0);
|
||||
|
||||
scalar Cmu25 = pow(Cmu, 0.25);
|
||||
scalar Cmu25 = pow(Cmu_.value(), 0.25);
|
||||
|
||||
const fvPatchList& patches = mesh_.boundary();
|
||||
|
||||
|
||||
@ -31,7 +31,7 @@ Description
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
{
|
||||
scalar Cmu25 = pow(Cmu, 0.25);
|
||||
scalar Cmu25 = pow(Cmu_.value(), 0.25);
|
||||
|
||||
const fvPatchList& patches = mesh_.boundary();
|
||||
|
||||
|
||||
@ -68,7 +68,7 @@ tmp<volScalarField> realizableKE::rCmu
|
||||
volScalarField As = sqrt(6.0)*cos(phis);
|
||||
volScalarField Us = sqrt(S2/2.0 + magSqr(skew(gradU)));
|
||||
|
||||
return 1.0/(A0 + As*Us*k_/(epsilon_ + epsilonSmall_));
|
||||
return 1.0/(A0_ + As*Us*k_/(epsilon_ + epsilonSmall_));
|
||||
}
|
||||
|
||||
|
||||
@ -95,15 +95,60 @@ realizableKE::realizableKE
|
||||
:
|
||||
RASmodel(typeName, rho, U, phi, thermophysicalModel),
|
||||
|
||||
Cmu(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cmu", 0.09)),
|
||||
A0(RASmodelCoeffs_.lookupOrAddDefault<scalar>("A0", 4.0)),
|
||||
C2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C2", 1.9)),
|
||||
alphak(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphak", 1.0)),
|
||||
alphaEps
|
||||
Cmu_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaEps", 0.833333)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cmu",
|
||||
RASmodelCoeffs_,
|
||||
0.09
|
||||
)
|
||||
),
|
||||
A0_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"A0",
|
||||
RASmodelCoeffs_,
|
||||
4.0
|
||||
)
|
||||
),
|
||||
C2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C2",
|
||||
RASmodelCoeffs_,
|
||||
1.9
|
||||
)
|
||||
),
|
||||
alphak_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphak",
|
||||
RASmodelCoeffs_,
|
||||
1.0
|
||||
)
|
||||
),
|
||||
alphaEps_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaEps",
|
||||
RASmodelCoeffs_,
|
||||
0.833333
|
||||
)
|
||||
),
|
||||
alphah_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphah",
|
||||
RASmodelCoeffs_,
|
||||
1.0
|
||||
)
|
||||
),
|
||||
alphah(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphah", 1.0)),
|
||||
|
||||
k_
|
||||
(
|
||||
@ -208,12 +253,12 @@ bool realizableKE::read()
|
||||
{
|
||||
if (RASmodel::read())
|
||||
{
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cmu", Cmu);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("A0", A0);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C2", C2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphak", alphak);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaEps", alphaEps);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphah", alphah);
|
||||
Cmu_.readIfPresent(RASmodelCoeffs_);
|
||||
A0_.readIfPresent(RASmodelCoeffs_);
|
||||
C2_.readIfPresent(RASmodelCoeffs_);
|
||||
alphak_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaEps_.readIfPresent(RASmodelCoeffs_);
|
||||
alphah_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -263,7 +308,7 @@ void realizableKE::correct()
|
||||
C1*rho_*magS*epsilon_
|
||||
- fvm::Sp
|
||||
(
|
||||
C2*rho_*epsilon_/(k_ + sqrt((mu()/rho_)*epsilon_)),
|
||||
C2_*rho_*epsilon_/(k_ + sqrt((mu()/rho_)*epsilon_)),
|
||||
epsilon_
|
||||
)
|
||||
);
|
||||
|
||||
@ -81,12 +81,12 @@ class realizableKE
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar Cmu;
|
||||
scalar A0;
|
||||
scalar C2;
|
||||
scalar alphak;
|
||||
scalar alphaEps;
|
||||
scalar alphah;
|
||||
dimensionedScalar Cmu_;
|
||||
dimensionedScalar A0_;
|
||||
dimensionedScalar C2_;
|
||||
dimensionedScalar alphak_;
|
||||
dimensionedScalar alphaEps_;
|
||||
dimensionedScalar alphah_;
|
||||
|
||||
volScalarField k_;
|
||||
volScalarField epsilon_;
|
||||
@ -139,7 +139,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DkEff", alphak*mut_ + mu())
|
||||
new volScalarField("DkEff", alphak_*mut_ + mu())
|
||||
);
|
||||
}
|
||||
|
||||
@ -148,7 +148,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DepsilonEff", alphaEps*mut_ + mu())
|
||||
new volScalarField("DepsilonEff", alphaEps_*mut_ + mu())
|
||||
);
|
||||
}
|
||||
|
||||
@ -157,7 +157,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("alphaEff", alphah*mut_ + alpha())
|
||||
new volScalarField("alphaEff", alphah_*mut_ + alpha())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -33,8 +33,8 @@ Description
|
||||
{
|
||||
labelList cellBoundaryFaceCount(epsilon_.size(), 0);
|
||||
|
||||
scalar Cmu25 = pow(Cmu, 0.25);
|
||||
scalar Cmu75 = pow(Cmu, 0.75);
|
||||
scalar Cmu25 = pow(Cmu_.value(), 0.25);
|
||||
scalar Cmu75 = pow(Cmu_.value(), 0.75);
|
||||
|
||||
const fvPatchList& patches = mesh_.boundary();
|
||||
|
||||
|
||||
@ -31,7 +31,7 @@ Description
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
{
|
||||
scalar Cmu25 = pow(Cmu, 0.25);
|
||||
scalar Cmu25 = pow(Cmu_.value(), 0.25);
|
||||
|
||||
const fvPatchList& patches = mesh_.boundary();
|
||||
|
||||
|
||||
@ -54,20 +54,86 @@ LRR::LRR
|
||||
:
|
||||
RASmodel(typeName, U, phi, lamTransportModel),
|
||||
|
||||
Cmu(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cmu", 0.09)),
|
||||
Clrr1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Clrr1", 1.8)),
|
||||
Clrr2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Clrr2", 0.6)),
|
||||
C1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C1", 1.44)),
|
||||
C2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C2", 1.92)),
|
||||
Cs(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cs", 0.25)),
|
||||
Ceps(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Ceps", 0.15)),
|
||||
alphaEps
|
||||
Cmu_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaEps", 0.76923)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cmu",
|
||||
RASmodelCoeffs_,
|
||||
0.09
|
||||
)
|
||||
),
|
||||
Clrr1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Clrr1",
|
||||
RASmodelCoeffs_,
|
||||
1.8
|
||||
)
|
||||
),
|
||||
Clrr2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Clrr2",
|
||||
RASmodelCoeffs_,
|
||||
0.6
|
||||
)
|
||||
),
|
||||
C1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C1",
|
||||
RASmodelCoeffs_,
|
||||
1.44
|
||||
)
|
||||
),
|
||||
C2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C2",
|
||||
RASmodelCoeffs_,
|
||||
1.92
|
||||
)
|
||||
),
|
||||
Cs_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cs",
|
||||
RASmodelCoeffs_,
|
||||
0.25
|
||||
)
|
||||
),
|
||||
Ceps_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Ceps",
|
||||
RASmodelCoeffs_,
|
||||
0.15
|
||||
)
|
||||
),
|
||||
alphaEps_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaEps",
|
||||
RASmodelCoeffs_,
|
||||
0.76923
|
||||
)
|
||||
),
|
||||
couplingFactor_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("couplingFactor", 0.0)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"couplingFactor",
|
||||
RASmodelCoeffs_,
|
||||
0.0
|
||||
)
|
||||
),
|
||||
|
||||
R_
|
||||
@ -109,11 +175,11 @@ LRR::LRR
|
||||
mesh_
|
||||
),
|
||||
|
||||
nut_(Cmu*sqr(k_)/(epsilon_ + epsilonSmall_))
|
||||
nut_(Cmu_*sqr(k_)/(epsilon_ + epsilonSmall_))
|
||||
{
|
||||
# include "wallViscosityI.H"
|
||||
|
||||
if (couplingFactor_ < 0.0 || couplingFactor_ > 1.0)
|
||||
if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0)
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
@ -153,12 +219,17 @@ tmp<volSymmTensorField> LRR::devReff() const
|
||||
|
||||
tmp<fvVectorMatrix> LRR::divDevReff(volVectorField& U) const
|
||||
{
|
||||
if (couplingFactor_ > 0.0)
|
||||
if (couplingFactor_.value() > 0.0)
|
||||
{
|
||||
return
|
||||
(
|
||||
fvc::div(R_ + couplingFactor_*nut_*fvc::grad(U), "div(R)")
|
||||
+ fvc::laplacian((1.0-couplingFactor_)*nut_, U, "laplacian(nuEff,U)")
|
||||
+ fvc::laplacian
|
||||
(
|
||||
(1.0 - couplingFactor_)*nut_,
|
||||
U,
|
||||
"laplacian(nuEff,U)"
|
||||
)
|
||||
- fvm::laplacian(nuEff(), U)
|
||||
);
|
||||
}
|
||||
@ -178,22 +249,18 @@ bool LRR::read()
|
||||
{
|
||||
if (RASmodel::read())
|
||||
{
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cmu", Cmu);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Clrr1", Clrr1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Clrr2", Clrr2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C1", C1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C2", C2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cs", Cs);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Ceps", Ceps);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaEps", alphaEps);
|
||||
Cmu_.readIfPresent(RASmodelCoeffs_);
|
||||
Clrr1_.readIfPresent(RASmodelCoeffs_);
|
||||
Clrr2_.readIfPresent(RASmodelCoeffs_);
|
||||
C1_.readIfPresent(RASmodelCoeffs_);
|
||||
C2_.readIfPresent(RASmodelCoeffs_);
|
||||
Cs_.readIfPresent(RASmodelCoeffs_);
|
||||
Ceps_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaEps_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
RASmodelCoeffs_.readIfPresent<scalar>
|
||||
(
|
||||
"couplingFactor",
|
||||
couplingFactor_
|
||||
);
|
||||
couplingFactor_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
if (couplingFactor_ < 0.0 || couplingFactor_ > 1.0)
|
||||
if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0)
|
||||
{
|
||||
FatalErrorIn("LRR::read()")
|
||||
<< "couplingFactor = " << couplingFactor_
|
||||
@ -234,8 +301,8 @@ void LRR::correct()
|
||||
//- fvm::laplacian(Ceps*(K/epsilon_)*R, epsilon_)
|
||||
- fvm::laplacian(DepsilonEff(), epsilon_)
|
||||
==
|
||||
C1*G*epsilon_/k_
|
||||
- fvm::Sp(C2*epsilon_/k_, epsilon_)
|
||||
C1_*G*epsilon_/k_
|
||||
- fvm::Sp(C2_*epsilon_/k_, epsilon_)
|
||||
);
|
||||
|
||||
epsEqn().relax();
|
||||
@ -272,11 +339,11 @@ void LRR::correct()
|
||||
+ fvm::div(phi_, R_)
|
||||
//- fvm::laplacian(Cs*(k_/epsilon_)*R_, R_)
|
||||
- fvm::laplacian(DREff(), R_)
|
||||
+ fvm::Sp(Clrr1*epsilon_/k_, R_)
|
||||
+ fvm::Sp(Clrr1_*epsilon_/k_, R_)
|
||||
==
|
||||
P
|
||||
- (2.0/3.0*(1 - Clrr1)*I)*epsilon_
|
||||
- Clrr2*dev(P)
|
||||
- (2.0/3.0*(1 - Clrr1_)*I)*epsilon_
|
||||
- Clrr2_*dev(P)
|
||||
);
|
||||
|
||||
REqn().relax();
|
||||
@ -302,7 +369,7 @@ void LRR::correct()
|
||||
|
||||
|
||||
// Re-calculate viscosity
|
||||
nut_ = Cmu*sqr(k_)/epsilon_;
|
||||
nut_ = Cmu_*sqr(k_)/epsilon_;
|
||||
|
||||
# include "wallViscosityI.H"
|
||||
|
||||
|
||||
@ -76,18 +76,18 @@ class LRR
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar Cmu;
|
||||
dimensionedScalar Cmu_;
|
||||
|
||||
scalar Clrr1;
|
||||
scalar Clrr2;
|
||||
dimensionedScalar Clrr1_;
|
||||
dimensionedScalar Clrr2_;
|
||||
|
||||
scalar C1;
|
||||
scalar C2;
|
||||
scalar Cs;
|
||||
scalar Ceps;
|
||||
scalar alphaEps;
|
||||
dimensionedScalar C1_;
|
||||
dimensionedScalar C2_;
|
||||
dimensionedScalar Cs_;
|
||||
dimensionedScalar Ceps_;
|
||||
dimensionedScalar alphaEps_;
|
||||
|
||||
scalar couplingFactor_;
|
||||
dimensionedScalar couplingFactor_;
|
||||
|
||||
volSymmTensorField R_;
|
||||
volScalarField k_;
|
||||
@ -139,7 +139,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DepsilonEff", alphaEps*nut_ + nu())
|
||||
new volScalarField("DepsilonEff", alphaEps_*nut_ + nu())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -53,12 +53,41 @@ LamBremhorstKE::LamBremhorstKE
|
||||
:
|
||||
RASmodel(typeName, U, phi, lamTransportModel),
|
||||
|
||||
Cmu(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cmu", 0.09)),
|
||||
C1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C1", 1.44)),
|
||||
C2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C2", 1.92)),
|
||||
alphaEps
|
||||
Cmu_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaEps", 0.76923)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cmu",
|
||||
RASmodelCoeffs_,
|
||||
0.09
|
||||
)
|
||||
),
|
||||
C1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C1",
|
||||
RASmodelCoeffs_,
|
||||
1.44
|
||||
)
|
||||
),
|
||||
C2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C2",
|
||||
RASmodelCoeffs_,
|
||||
1.92
|
||||
)
|
||||
),
|
||||
alphaEps_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaEps",
|
||||
RASmodelCoeffs_,
|
||||
0.76923
|
||||
)
|
||||
),
|
||||
|
||||
k_
|
||||
@ -97,7 +126,7 @@ LamBremhorstKE::LamBremhorstKE
|
||||
*(scalar(1) + 20.5/(Rt_ + SMALL))
|
||||
),
|
||||
|
||||
nut_(Cmu*fMu_*sqr(k_)/(epsilon_ + epsilonSmall_))
|
||||
nut_(Cmu_*fMu_*sqr(k_)/(epsilon_ + epsilonSmall_))
|
||||
{
|
||||
printCoeffs();
|
||||
}
|
||||
@ -160,10 +189,10 @@ bool LamBremhorstKE::read()
|
||||
{
|
||||
if (RASmodel::read())
|
||||
{
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cmu", Cmu);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C1", C1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C2", C2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaEps", alphaEps);
|
||||
Cmu_.readIfPresent(RASmodelCoeffs_);
|
||||
C1_.readIfPresent(RASmodelCoeffs_);
|
||||
C2_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaEps_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -212,8 +241,8 @@ void LamBremhorstKE::correct()
|
||||
+ fvm::div(phi_, epsilon_)
|
||||
- fvm::laplacian(DepsilonEff(), epsilon_)
|
||||
==
|
||||
C1*f1*G*epsilon_/k_
|
||||
- fvm::Sp(C2*f2*epsilon_/k_, epsilon_)
|
||||
C1_*f1*G*epsilon_/k_
|
||||
- fvm::Sp(C2_*f2*epsilon_/k_, epsilon_)
|
||||
);
|
||||
|
||||
epsEqn().relax();
|
||||
@ -238,7 +267,7 @@ void LamBremhorstKE::correct()
|
||||
|
||||
|
||||
// Re-calculate viscosity
|
||||
nut_ = Cmu*fMu_*sqr(k_)/epsilon_;
|
||||
nut_ = Cmu_*fMu_*sqr(k_)/epsilon_;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -59,10 +59,10 @@ class LamBremhorstKE
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar Cmu;
|
||||
scalar C1;
|
||||
scalar C2;
|
||||
scalar alphaEps;
|
||||
dimensionedScalar Cmu_;
|
||||
dimensionedScalar C1_;
|
||||
dimensionedScalar C2_;
|
||||
dimensionedScalar alphaEps_;
|
||||
|
||||
volScalarField k_;
|
||||
volScalarField epsilon_;
|
||||
@ -119,7 +119,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DepsilonEff", alphaEps*nut_ + nu())
|
||||
new volScalarField("DepsilonEff", alphaEps_*nut_ + nu())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -54,23 +54,113 @@ LaunderGibsonRSTM::LaunderGibsonRSTM
|
||||
:
|
||||
RASmodel(typeName, U, phi, lamTransportModel),
|
||||
|
||||
Cmu(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cmu", 0.09)),
|
||||
Clg1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Clg1", 1.8)),
|
||||
Clg2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Clg2", 0.6)),
|
||||
C1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C1", 1.44)),
|
||||
C2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C2", 1.92)),
|
||||
Cs(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cs", 0.25)),
|
||||
Ceps(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Ceps", 0.15)),
|
||||
alphaR(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaR", 1.22)),
|
||||
alphaEps
|
||||
Cmu_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaEps", 0.76923)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cmu",
|
||||
RASmodelCoeffs_,
|
||||
0.09
|
||||
)
|
||||
),
|
||||
Clg1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Clg1",
|
||||
RASmodelCoeffs_,
|
||||
1.8
|
||||
)
|
||||
),
|
||||
Clg2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Clg2",
|
||||
RASmodelCoeffs_,
|
||||
0.6
|
||||
)
|
||||
),
|
||||
C1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C1",
|
||||
RASmodelCoeffs_,
|
||||
1.44
|
||||
)
|
||||
),
|
||||
C2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C2",
|
||||
RASmodelCoeffs_,
|
||||
1.92
|
||||
)
|
||||
),
|
||||
Cs_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cs",
|
||||
RASmodelCoeffs_,
|
||||
0.25
|
||||
)
|
||||
),
|
||||
Ceps_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Ceps",
|
||||
RASmodelCoeffs_,
|
||||
0.15
|
||||
)
|
||||
),
|
||||
alphaR_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaR",
|
||||
RASmodelCoeffs_,
|
||||
1.22
|
||||
)
|
||||
),
|
||||
alphaEps_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaEps",
|
||||
RASmodelCoeffs_,
|
||||
0.76923
|
||||
)
|
||||
),
|
||||
C1Ref_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C1Ref",
|
||||
RASmodelCoeffs_,
|
||||
0.5
|
||||
)
|
||||
),
|
||||
C2Ref_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C2Ref",
|
||||
RASmodelCoeffs_,
|
||||
0.3
|
||||
)
|
||||
),
|
||||
C1Ref(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C1Ref", 0.5)),
|
||||
C2Ref(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C2Ref", 0.3)),
|
||||
couplingFactor_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("couplingFactor", 0.0)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"couplingFactor",
|
||||
RASmodelCoeffs_,
|
||||
0.0
|
||||
)
|
||||
),
|
||||
|
||||
yr_(mesh_),
|
||||
@ -114,11 +204,11 @@ LaunderGibsonRSTM::LaunderGibsonRSTM
|
||||
mesh_
|
||||
),
|
||||
|
||||
nut_(Cmu*sqr(k_)/(epsilon_ + epsilonSmall_))
|
||||
nut_(Cmu_*sqr(k_)/(epsilon_ + epsilonSmall_))
|
||||
{
|
||||
# include "wallViscosityI.H"
|
||||
|
||||
if (couplingFactor_ < 0.0 || couplingFactor_ > 1.0)
|
||||
if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0)
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
@ -158,7 +248,7 @@ tmp<volSymmTensorField> LaunderGibsonRSTM::devReff() const
|
||||
|
||||
tmp<fvVectorMatrix> LaunderGibsonRSTM::divDevReff(volVectorField& U) const
|
||||
{
|
||||
if (couplingFactor_ > 0.0)
|
||||
if (couplingFactor_.value() > 0.0)
|
||||
{
|
||||
return
|
||||
(
|
||||
@ -183,25 +273,21 @@ bool LaunderGibsonRSTM::read()
|
||||
{
|
||||
if (RASmodel::read())
|
||||
{
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cmu", Cmu);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Clg1", Clg1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Clg2", Clg2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C1", C1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C2", C2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cs", Cs);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Ceps", Ceps);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaR", alphaR);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaEps", alphaEps);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C1Ref", C1Ref);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C2Ref", C2Ref);
|
||||
Cmu_.readIfPresent(RASmodelCoeffs_);
|
||||
Clg1_.readIfPresent(RASmodelCoeffs_);
|
||||
Clg2_.readIfPresent(RASmodelCoeffs_);
|
||||
C1_.readIfPresent(RASmodelCoeffs_);
|
||||
C2_.readIfPresent(RASmodelCoeffs_);
|
||||
Cs_.readIfPresent(RASmodelCoeffs_);
|
||||
Ceps_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaR_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaEps_.readIfPresent(RASmodelCoeffs_);
|
||||
C1Ref_.readIfPresent(RASmodelCoeffs_);
|
||||
C2Ref_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
RASmodelCoeffs_.readIfPresent<scalar>
|
||||
(
|
||||
"couplingFactor",
|
||||
couplingFactor_
|
||||
);
|
||||
couplingFactor_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
if (couplingFactor_ < 0.0 || couplingFactor_ > 1.0)
|
||||
if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0)
|
||||
{
|
||||
FatalErrorIn("LaunderGibsonRSTM::read()")
|
||||
<< "couplingFactor = " << couplingFactor_
|
||||
@ -247,8 +333,8 @@ void LaunderGibsonRSTM::correct()
|
||||
//- fvm::laplacian(Ceps*(k_/epsilon_)*R_, epsilon_)
|
||||
- fvm::laplacian(DepsilonEff(), epsilon_)
|
||||
==
|
||||
C1*G*epsilon_/k_
|
||||
- fvm::Sp(C2*epsilon_/k_, epsilon_)
|
||||
C1_*G*epsilon_/k_
|
||||
- fvm::Sp(C2_*epsilon_/k_, epsilon_)
|
||||
);
|
||||
|
||||
epsEqn().relax();
|
||||
@ -278,7 +364,7 @@ void LaunderGibsonRSTM::correct()
|
||||
}
|
||||
}
|
||||
|
||||
volSymmTensorField reflect = C1Ref*epsilon_/k_*R_ - C2Ref*Clg2*dev(P);
|
||||
volSymmTensorField reflect = C1Ref_*epsilon_/k_*R_ - C2Ref_*Clg2_*dev(P);
|
||||
|
||||
tmp<fvSymmTensorMatrix> REqn
|
||||
(
|
||||
@ -286,11 +372,11 @@ void LaunderGibsonRSTM::correct()
|
||||
+ fvm::div(phi_, R_)
|
||||
//- fvm::laplacian(Cs*(k_/epsilon_)*R_, R_)
|
||||
- fvm::laplacian(DREff(), R_)
|
||||
+ fvm::Sp(Clg1*epsilon_/k_, R_)
|
||||
+ fvm::Sp(Clg1_*epsilon_/k_, R_)
|
||||
==
|
||||
P
|
||||
+ (2.0/3.0*(Clg1 - 1)*I)*epsilon_
|
||||
- Clg2*dev(P)
|
||||
+ (2.0/3.0*(Clg1_ - 1)*I)*epsilon_
|
||||
- Clg2_*dev(P)
|
||||
|
||||
// wall reflection terms
|
||||
+ symm
|
||||
@ -298,7 +384,7 @@ void LaunderGibsonRSTM::correct()
|
||||
I*((yr_.n() & reflect) & yr_.n())
|
||||
- 1.5*(yr_.n()*(reflect & yr_.n())
|
||||
+ (yr_.n() & reflect)*yr_.n())
|
||||
)*pow(Cmu, 0.75)*pow(k_, 1.5)/(kappa_*yr_*epsilon_)
|
||||
)*pow(Cmu_, 0.75)*pow(k_, 1.5)/(kappa_*yr_*epsilon_)
|
||||
);
|
||||
|
||||
REqn().relax();
|
||||
@ -324,7 +410,7 @@ void LaunderGibsonRSTM::correct()
|
||||
|
||||
|
||||
// Re-calculate turbulent viscosity
|
||||
nut_ = Cmu*sqr(k_)/epsilon_;
|
||||
nut_ = Cmu_*sqr(k_)/epsilon_;
|
||||
|
||||
|
||||
# include "wallViscosityI.H"
|
||||
|
||||
@ -78,22 +78,22 @@ class LaunderGibsonRSTM
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar Cmu;
|
||||
dimensionedScalar Cmu_;
|
||||
|
||||
scalar Clg1;
|
||||
scalar Clg2;
|
||||
dimensionedScalar Clg1_;
|
||||
dimensionedScalar Clg2_;
|
||||
|
||||
scalar C1;
|
||||
scalar C2;
|
||||
scalar Cs;
|
||||
scalar Ceps;
|
||||
scalar alphaR;
|
||||
scalar alphaEps;
|
||||
dimensionedScalar C1_;
|
||||
dimensionedScalar C2_;
|
||||
dimensionedScalar Cs_;
|
||||
dimensionedScalar Ceps_;
|
||||
dimensionedScalar alphaR_;
|
||||
dimensionedScalar alphaEps_;
|
||||
|
||||
scalar C1Ref;
|
||||
scalar C2Ref;
|
||||
dimensionedScalar C1Ref_;
|
||||
dimensionedScalar C2Ref_;
|
||||
|
||||
scalar couplingFactor_;
|
||||
dimensionedScalar couplingFactor_;
|
||||
|
||||
wallDistReflection yr_;
|
||||
|
||||
@ -138,7 +138,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DREff", alphaR*nut_ + nu())
|
||||
new volScalarField("DREff", alphaR_*nut_ + nu())
|
||||
);
|
||||
}
|
||||
|
||||
@ -147,7 +147,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DepsilonEff", alphaEps*nut_ + nu())
|
||||
new volScalarField("DepsilonEff", alphaEps_*nut_ + nu())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -68,12 +68,41 @@ LaunderSharmaKE::LaunderSharmaKE
|
||||
:
|
||||
RASmodel(typeName, U, phi, lamTransportModel),
|
||||
|
||||
Cmu(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cmu", 0.09)),
|
||||
C1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C1", 1.44)),
|
||||
C2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C2", 1.92)),
|
||||
alphaEps
|
||||
Cmu_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaEps", 0.76923)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cmu",
|
||||
RASmodelCoeffs_,
|
||||
0.09
|
||||
)
|
||||
),
|
||||
C1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C1",
|
||||
RASmodelCoeffs_,
|
||||
1.44
|
||||
)
|
||||
),
|
||||
C2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C2",
|
||||
RASmodelCoeffs_,
|
||||
1.92
|
||||
)
|
||||
),
|
||||
alphaEps_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaEps",
|
||||
RASmodelCoeffs_,
|
||||
0.76923
|
||||
)
|
||||
),
|
||||
|
||||
k_
|
||||
@ -102,7 +131,7 @@ LaunderSharmaKE::LaunderSharmaKE
|
||||
mesh_
|
||||
),
|
||||
|
||||
nut_(Cmu*fMu()*sqr(k_)/(epsilonTilda_ + epsilonSmall_))
|
||||
nut_(Cmu_*fMu()*sqr(k_)/(epsilonTilda_ + epsilonSmall_))
|
||||
{
|
||||
printCoeffs();
|
||||
}
|
||||
@ -165,10 +194,10 @@ bool LaunderSharmaKE::read()
|
||||
{
|
||||
if (RASmodel::read())
|
||||
{
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cmu", Cmu);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C1", C1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C2", C2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaEps", alphaEps);
|
||||
Cmu_.readIfPresent(RASmodelCoeffs_);
|
||||
C1_.readIfPresent(RASmodelCoeffs_);
|
||||
C2_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaEps_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -206,8 +235,8 @@ void LaunderSharmaKE::correct()
|
||||
+ fvm::div(phi_, epsilonTilda_)
|
||||
- fvm::laplacian(DepsilonEff(), epsilonTilda_)
|
||||
==
|
||||
C1*G*epsilonTilda_/k_
|
||||
- fvm::Sp(C2*f2()*epsilonTilda_/k_, epsilonTilda_)
|
||||
C1_*G*epsilonTilda_/k_
|
||||
- fvm::Sp(C2_*f2()*epsilonTilda_/k_, epsilonTilda_)
|
||||
+ E
|
||||
);
|
||||
|
||||
@ -233,7 +262,7 @@ void LaunderSharmaKE::correct()
|
||||
|
||||
|
||||
// Re-calculate viscosity
|
||||
nut_ = Cmu*fMu()*sqr(k_)/epsilonTilda_;
|
||||
nut_ = Cmu_*fMu()*sqr(k_)/epsilonTilda_;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -72,10 +72,10 @@ class LaunderSharmaKE
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar Cmu;
|
||||
scalar C1;
|
||||
scalar C2;
|
||||
scalar alphaEps;
|
||||
dimensionedScalar Cmu_;
|
||||
dimensionedScalar C1_;
|
||||
dimensionedScalar C2_;
|
||||
dimensionedScalar alphaEps_;
|
||||
|
||||
volScalarField k_;
|
||||
volScalarField epsilonTilda_;
|
||||
@ -133,7 +133,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DepsilonEff", alphaEps*nut_ + nu())
|
||||
new volScalarField("DepsilonEff", alphaEps_*nut_ + nu())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -54,19 +54,96 @@ LienCubicKE::LienCubicKE
|
||||
:
|
||||
RASmodel(typeName, U, phi, lamTransportModel),
|
||||
|
||||
C1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C1", 1.44)),
|
||||
C2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C2", 1.92)),
|
||||
alphak(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphak", 1.0)),
|
||||
alphaEps
|
||||
C1_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaEps", 0.76923)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C1",
|
||||
RASmodelCoeffs_,
|
||||
1.44
|
||||
)
|
||||
),
|
||||
C2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C2",
|
||||
RASmodelCoeffs_,
|
||||
1.92
|
||||
)
|
||||
),
|
||||
alphak_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphak",
|
||||
RASmodelCoeffs_,
|
||||
1.0
|
||||
)
|
||||
),
|
||||
alphaEps_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaEps",
|
||||
RASmodelCoeffs_,
|
||||
0.76923
|
||||
)
|
||||
),
|
||||
A1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"A1",
|
||||
RASmodelCoeffs_,
|
||||
1.25
|
||||
)
|
||||
),
|
||||
A2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"A2",
|
||||
RASmodelCoeffs_,
|
||||
1000.0
|
||||
)
|
||||
),
|
||||
Ctau1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Ctau1",
|
||||
RASmodelCoeffs_,
|
||||
-4.0
|
||||
)
|
||||
),
|
||||
Ctau2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Ctau2",
|
||||
RASmodelCoeffs_,
|
||||
13.0
|
||||
)
|
||||
),
|
||||
Ctau3_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Ctau3",
|
||||
RASmodelCoeffs_,
|
||||
-2.0
|
||||
)
|
||||
),
|
||||
alphaKsi_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaKsi",
|
||||
RASmodelCoeffs_,
|
||||
0.9
|
||||
)
|
||||
),
|
||||
A1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("A1", 1.25)),
|
||||
A2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("A2", 1000.0)),
|
||||
Ctau1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Ctau1", -4.0)),
|
||||
Ctau2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Ctau2", 13.0)),
|
||||
Ctau3(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Ctau3", -2.0)),
|
||||
alphaKsi(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaKsi", 0.9)),
|
||||
|
||||
k_
|
||||
(
|
||||
@ -94,46 +171,46 @@ LienCubicKE::LienCubicKE
|
||||
mesh_
|
||||
),
|
||||
|
||||
gradU(fvc::grad(U)),
|
||||
eta(k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU + gradU.T())))),
|
||||
ksi(k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU - gradU.T())))),
|
||||
Cmu(2.0/(3.0*(A1 + eta + alphaKsi*ksi))),
|
||||
fEta(A2 + pow(eta, 3.0)),
|
||||
gradU_(fvc::grad(U)),
|
||||
eta_(k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T())))),
|
||||
ksi_(k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T())))),
|
||||
Cmu_(2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_))),
|
||||
fEta_(A2_ + pow(eta_, 3.0)),
|
||||
|
||||
C5viscosity
|
||||
C5viscosity_
|
||||
(
|
||||
-2.0*pow(Cmu, 3.0)*pow(k_, 4.0)/pow(epsilon_, 3.0)*
|
||||
(magSqr(gradU + gradU.T()) - magSqr(gradU - gradU.T()))
|
||||
-2.0*pow(Cmu_, 3.0)*pow(k_, 4.0)/pow(epsilon_, 3.0)*
|
||||
(magSqr(gradU_ + gradU_.T()) - magSqr(gradU_ - gradU_.T()))
|
||||
),
|
||||
|
||||
// C5 term, implicit
|
||||
nut_(Cmu*sqr(k_)/(epsilon_ + epsilonSmall_) + C5viscosity),
|
||||
nut_(Cmu_*sqr(k_)/(epsilon_ + epsilonSmall_) + C5viscosity_),
|
||||
// turbulent viscosity, with implicit part of C5
|
||||
|
||||
nonlinearStress
|
||||
nonlinearStress_
|
||||
(
|
||||
"nonlinearStress",
|
||||
// quadratic terms
|
||||
symm
|
||||
(
|
||||
pow(k_, 3.0)/sqr(epsilon_)*
|
||||
(
|
||||
Ctau1/fEta*
|
||||
(
|
||||
(gradU & gradU)
|
||||
+ (gradU & gradU)().T()
|
||||
pow(k_, 3.0)/sqr(epsilon_)
|
||||
*(
|
||||
Ctau1_/fEta_
|
||||
*(
|
||||
(gradU_ & gradU_)
|
||||
+ (gradU_ & gradU_)().T()
|
||||
)
|
||||
+ Ctau2/fEta*(gradU & gradU.T())
|
||||
+ Ctau3/fEta*(gradU.T() & gradU)
|
||||
+ Ctau2_/fEta_*(gradU_ & gradU_.T())
|
||||
+ Ctau3_/fEta_*(gradU_.T() & gradU_)
|
||||
)
|
||||
// cubic term C4
|
||||
- 20.0*pow(k_, 4.0)/pow(epsilon_, 3.0)*
|
||||
pow(Cmu, 3.0)*
|
||||
(
|
||||
((gradU & gradU) & gradU.T())
|
||||
+ ((gradU & gradU.T()) & gradU.T())
|
||||
- ((gradU.T() & gradU) & gradU)
|
||||
- ((gradU.T() & gradU.T()) & gradU)
|
||||
- 20.0*pow(k_, 4.0)/pow(epsilon_, 3.0)
|
||||
*pow(Cmu_, 3.0)
|
||||
*(
|
||||
((gradU_ & gradU_) & gradU_.T())
|
||||
+ ((gradU_ & gradU_.T()) & gradU_.T())
|
||||
- ((gradU_.T() & gradU_) & gradU_)
|
||||
- ((gradU_.T() & gradU_.T()) & gradU_)
|
||||
)
|
||||
)
|
||||
)
|
||||
@ -160,7 +237,7 @@ tmp<volSymmTensorField> LienCubicKE::R() const
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
((2.0/3.0)*I)*k_ - nut_*twoSymm(gradU) + nonlinearStress,
|
||||
((2.0/3.0)*I)*k_ - nut_*twoSymm(gradU_) + nonlinearStress_,
|
||||
k_.boundaryField().types()
|
||||
)
|
||||
);
|
||||
@ -181,7 +258,7 @@ tmp<volSymmTensorField> LienCubicKE::devReff() const
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
-nuEff()*dev(twoSymm(fvc::grad(U_))) + nonlinearStress
|
||||
-nuEff()*dev(twoSymm(fvc::grad(U_))) + nonlinearStress_
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -191,7 +268,7 @@ tmp<fvVectorMatrix> LienCubicKE::divDevReff(volVectorField& U) const
|
||||
{
|
||||
return
|
||||
(
|
||||
fvc::div(nonlinearStress)
|
||||
fvc::div(nonlinearStress_)
|
||||
- fvm::laplacian(nuEff(), U)
|
||||
- fvc::div(nuEff()*dev(fvc::grad(U)().T()))
|
||||
);
|
||||
@ -202,16 +279,16 @@ bool LienCubicKE::read()
|
||||
{
|
||||
if (RASmodel::read())
|
||||
{
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C1", C1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C2", C2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphak", alphak);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaEps", alphaEps);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("A1", A1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("A2", A2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Ctau1", Ctau1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Ctau2", Ctau2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Ctau3", Ctau3);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaKsi", alphaKsi);
|
||||
C1_.readIfPresent(RASmodelCoeffs_);
|
||||
C2_.readIfPresent(RASmodelCoeffs_);
|
||||
alphak_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaEps_.readIfPresent(RASmodelCoeffs_);
|
||||
A1_.readIfPresent(RASmodelCoeffs_);
|
||||
A2_.readIfPresent(RASmodelCoeffs_);
|
||||
Ctau1_.readIfPresent(RASmodelCoeffs_);
|
||||
Ctau2_.readIfPresent(RASmodelCoeffs_);
|
||||
Ctau3_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaKsi_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -233,12 +310,12 @@ void LienCubicKE::correct()
|
||||
|
||||
RASmodel::correct();
|
||||
|
||||
gradU = fvc::grad(U_);
|
||||
gradU_ = fvc::grad(U_);
|
||||
|
||||
// generation term
|
||||
volScalarField S2 = symm(gradU) && gradU;
|
||||
volScalarField S2 = symm(gradU_) && gradU_;
|
||||
|
||||
volScalarField G = Cmu*sqr(k_)/epsilon_*S2 - (nonlinearStress && gradU);
|
||||
volScalarField G = Cmu_*sqr(k_)/epsilon_*S2 - (nonlinearStress_ && gradU_);
|
||||
|
||||
# include "nonLinearWallFunctionsI.H"
|
||||
|
||||
@ -249,8 +326,8 @@ void LienCubicKE::correct()
|
||||
+ fvm::div(phi_, epsilon_)
|
||||
- fvm::laplacian(DepsilonEff(), epsilon_)
|
||||
==
|
||||
C1*G*epsilon_/k_
|
||||
- fvm::Sp(C2*epsilon_/k_, epsilon_)
|
||||
C1_*G*epsilon_/k_
|
||||
- fvm::Sp(C2_*epsilon_/k_, epsilon_)
|
||||
);
|
||||
|
||||
epsEqn().relax();
|
||||
@ -280,40 +357,40 @@ void LienCubicKE::correct()
|
||||
|
||||
// Re-calculate viscosity
|
||||
|
||||
eta = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU + gradU.T())));
|
||||
ksi = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU - gradU.T())));
|
||||
Cmu = 2.0/(3.0*(A1 + eta + alphaKsi*ksi));
|
||||
fEta = A2 + pow(eta, 3.0);
|
||||
eta_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T())));
|
||||
ksi_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T())));
|
||||
Cmu_ = 2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_));
|
||||
fEta_ = A2_ + pow(eta_, 3.0);
|
||||
|
||||
C5viscosity =
|
||||
- 2.0*pow(Cmu, 3.0)*pow(k_, 4.0)/pow(epsilon_, 3.0)*
|
||||
(magSqr(gradU + gradU.T()) - magSqr(gradU - gradU.T()));
|
||||
C5viscosity_ =
|
||||
- 2.0*pow(Cmu_, 3.0)*pow(k_, 4.0)/pow(epsilon_, 3.0)
|
||||
*(magSqr(gradU_ + gradU_.T()) - magSqr(gradU_ - gradU_.T()));
|
||||
|
||||
nut_ = Cmu*sqr(k_)/epsilon_ + C5viscosity;
|
||||
nut_ = Cmu_*sqr(k_)/epsilon_ + C5viscosity_;
|
||||
|
||||
# include "wallNonlinearViscosityI.H"
|
||||
|
||||
nonlinearStress = symm
|
||||
nonlinearStress_ = symm
|
||||
(
|
||||
// quadratic terms
|
||||
pow(k_, 3.0)/sqr(epsilon_)*
|
||||
(
|
||||
Ctau1/fEta*
|
||||
Ctau1_/fEta_*
|
||||
(
|
||||
(gradU & gradU)
|
||||
+ (gradU & gradU)().T()
|
||||
(gradU_ & gradU_)
|
||||
+ (gradU_ & gradU_)().T()
|
||||
)
|
||||
+ Ctau2/fEta*(gradU & gradU.T())
|
||||
+ Ctau3/fEta*(gradU.T() & gradU)
|
||||
+ Ctau2_/fEta_*(gradU_ & gradU_.T())
|
||||
+ Ctau3_/fEta_*(gradU_.T() & gradU_)
|
||||
)
|
||||
// cubic term C4
|
||||
- 20.0*pow(k_, 4.0)/pow(epsilon_, 3.0)*
|
||||
pow(Cmu, 3.0)*
|
||||
(
|
||||
((gradU & gradU) & gradU.T())
|
||||
+ ((gradU & gradU.T()) & gradU.T())
|
||||
- ((gradU.T() & gradU) & gradU)
|
||||
- ((gradU.T() & gradU.T()) & gradU)
|
||||
- 20.0*pow(k_, 4.0)/pow(epsilon_, 3.0)
|
||||
*pow(Cmu_, 3.0)
|
||||
*(
|
||||
((gradU_ & gradU_) & gradU_.T())
|
||||
+ ((gradU_ & gradU_.T()) & gradU_.T())
|
||||
- ((gradU_.T() & gradU_) & gradU_)
|
||||
- ((gradU_.T() & gradU_.T()) & gradU_)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@ -57,30 +57,30 @@ class LienCubicKE
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar C1;
|
||||
scalar C2;
|
||||
scalar alphak;
|
||||
scalar alphaEps;
|
||||
scalar A1;
|
||||
scalar A2;
|
||||
scalar Ctau1;
|
||||
scalar Ctau2;
|
||||
scalar Ctau3;
|
||||
scalar alphaKsi;
|
||||
dimensionedScalar C1_;
|
||||
dimensionedScalar C2_;
|
||||
dimensionedScalar alphak_;
|
||||
dimensionedScalar alphaEps_;
|
||||
dimensionedScalar A1_;
|
||||
dimensionedScalar A2_;
|
||||
dimensionedScalar Ctau1_;
|
||||
dimensionedScalar Ctau2_;
|
||||
dimensionedScalar Ctau3_;
|
||||
dimensionedScalar alphaKsi_;
|
||||
|
||||
volScalarField k_;
|
||||
volScalarField epsilon_;
|
||||
|
||||
volTensorField gradU;
|
||||
volScalarField eta;
|
||||
volScalarField ksi;
|
||||
volScalarField Cmu;
|
||||
volScalarField fEta;
|
||||
volScalarField C5viscosity;
|
||||
volTensorField gradU_;
|
||||
volScalarField eta_;
|
||||
volScalarField ksi_;
|
||||
volScalarField Cmu_;
|
||||
volScalarField fEta_;
|
||||
volScalarField C5viscosity_;
|
||||
|
||||
volScalarField nut_;
|
||||
|
||||
volSymmTensorField nonlinearStress;
|
||||
volSymmTensorField nonlinearStress_;
|
||||
|
||||
|
||||
public:
|
||||
@ -118,7 +118,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DkEff", alphak*nut_ + nu())
|
||||
new volScalarField("DkEff", alphak_*nut_ + nu())
|
||||
);
|
||||
}
|
||||
|
||||
@ -127,7 +127,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DepsilonEff", alphaEps*nut_ + nu())
|
||||
new volScalarField("DepsilonEff", alphaEps_*nut_ + nu())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -54,26 +54,132 @@ LienCubicKELowRe::LienCubicKELowRe
|
||||
:
|
||||
RASmodel(typeName, U, phi, lamTransportModel),
|
||||
|
||||
C1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C1", 1.44)),
|
||||
C2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C2", 1.92)),
|
||||
alphak(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphak", 1.0)),
|
||||
alphaEps
|
||||
C1_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaEps", 0.76923)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C1",
|
||||
RASmodelCoeffs_,
|
||||
1.44
|
||||
)
|
||||
),
|
||||
A1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("A1", 1.25)),
|
||||
A2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("A2", 1000.0)),
|
||||
Ctau1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Ctau1", -4.0)),
|
||||
Ctau2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Ctau2", 13.0)),
|
||||
Ctau3(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Ctau3", -2.0)),
|
||||
alphaKsi(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaKsi", 0.9)),
|
||||
CmuWall(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cmu", 0.09)),
|
||||
Am(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Am", 0.016)),
|
||||
Aepsilon
|
||||
C2_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("Aepsilon", 0.263)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C2",
|
||||
RASmodelCoeffs_,
|
||||
1.92
|
||||
)
|
||||
),
|
||||
alphak_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphak",
|
||||
RASmodelCoeffs_,
|
||||
1.0
|
||||
)
|
||||
),
|
||||
alphaEps_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaEps",
|
||||
RASmodelCoeffs_,
|
||||
0.76923
|
||||
)
|
||||
),
|
||||
A1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"A1",
|
||||
RASmodelCoeffs_,
|
||||
1.25
|
||||
)
|
||||
),
|
||||
A2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"A2",
|
||||
RASmodelCoeffs_,
|
||||
1000.0
|
||||
)
|
||||
),
|
||||
Ctau1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Ctau1",
|
||||
RASmodelCoeffs_,
|
||||
-4.0
|
||||
)
|
||||
),
|
||||
Ctau2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Ctau2",
|
||||
RASmodelCoeffs_,
|
||||
13.0
|
||||
)
|
||||
),
|
||||
Ctau3_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Ctau3",
|
||||
RASmodelCoeffs_,
|
||||
-2.0
|
||||
)
|
||||
),
|
||||
alphaKsi_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaKsi",
|
||||
RASmodelCoeffs_,
|
||||
0.9
|
||||
)
|
||||
),
|
||||
CmuWall_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cmu",
|
||||
RASmodelCoeffs_,
|
||||
0.09
|
||||
)
|
||||
),
|
||||
Am_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Am",
|
||||
RASmodelCoeffs_,
|
||||
0.016
|
||||
)
|
||||
),
|
||||
Aepsilon_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Aepsilon",
|
||||
RASmodelCoeffs_,
|
||||
0.263
|
||||
)
|
||||
),
|
||||
Amu_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Amu",
|
||||
RASmodelCoeffs_,
|
||||
0.00222
|
||||
)
|
||||
),
|
||||
Amu(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Amu", 0.00222)),
|
||||
|
||||
k_
|
||||
(
|
||||
@ -103,68 +209,68 @@ LienCubicKELowRe::LienCubicKELowRe
|
||||
|
||||
y_(mesh_),
|
||||
|
||||
gradU(fvc::grad(U)),
|
||||
eta(k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU + gradU.T())))),
|
||||
ksi(k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU - gradU.T())))),
|
||||
Cmu(2.0/(3.0*(A1 + eta + alphaKsi*ksi))),
|
||||
fEta(A2 + pow(eta, 3.0)),
|
||||
gradU_(fvc::grad(U)),
|
||||
eta_(k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T())))),
|
||||
ksi_(k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T())))),
|
||||
Cmu_(2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_))),
|
||||
fEta_(A2_ + pow(eta_, 3.0)),
|
||||
|
||||
C5viscosity
|
||||
C5viscosity_
|
||||
(
|
||||
-2.0*pow(Cmu, 3.0)*pow(k_, 4.0)/pow(epsilon_, 3.0)*
|
||||
(magSqr(gradU + gradU.T()) - magSqr(gradU - gradU.T()))
|
||||
-2.0*pow(Cmu_, 3.0)*pow(k_, 4.0)/pow(epsilon_, 3.0)
|
||||
*(magSqr(gradU_ + gradU_.T()) - magSqr(gradU_ - gradU_.T()))
|
||||
),
|
||||
|
||||
yStar(sqrt(k_)*y_/nu() + SMALL),
|
||||
yStar_(sqrt(k_)*y_/nu() + SMALL),
|
||||
|
||||
nut_
|
||||
(
|
||||
Cmu*
|
||||
(
|
||||
scalar(1) - exp(-Am*yStar))
|
||||
/(scalar(1) - exp(-Aepsilon*yStar) + SMALL
|
||||
Cmu_
|
||||
*(
|
||||
scalar(1) - exp(-Am_*yStar_))
|
||||
/(scalar(1) - exp(-Aepsilon_*yStar_) + SMALL
|
||||
)
|
||||
*sqr(k_)/(epsilon_ + epsilonSmall_)
|
||||
*sqr(k_)/(epsilon_ + epsilonSmall_)
|
||||
// cubic term C5, implicit part
|
||||
+ max
|
||||
(
|
||||
C5viscosity,
|
||||
dimensionedScalar("0", C5viscosity.dimensions(), 0.0)
|
||||
C5viscosity_,
|
||||
dimensionedScalar("0", C5viscosity_.dimensions(), 0.0)
|
||||
)
|
||||
),
|
||||
// turbulent viscosity, with implicit part of C5
|
||||
|
||||
nonlinearStress
|
||||
nonlinearStress_
|
||||
(
|
||||
"nonlinearStress",
|
||||
symm
|
||||
(
|
||||
// quadratic terms
|
||||
pow(k_, 3.0)/sqr(epsilon_)*
|
||||
(
|
||||
Ctau1/fEta*
|
||||
(
|
||||
(gradU & gradU)
|
||||
+ (gradU & gradU)().T()
|
||||
// quadratic terms
|
||||
pow(k_, 3.0)/sqr(epsilon_)
|
||||
*(
|
||||
Ctau1_/fEta_
|
||||
*(
|
||||
(gradU_ & gradU_)
|
||||
+ (gradU_ & gradU_)().T()
|
||||
)
|
||||
+ Ctau2_/fEta_*(gradU_ & gradU_.T())
|
||||
+ Ctau3_/fEta_*(gradU_.T() & gradU_)
|
||||
)
|
||||
+ Ctau2/fEta*(gradU & gradU.T())
|
||||
+ Ctau3/fEta*(gradU.T() & gradU)
|
||||
)
|
||||
// cubic term C4
|
||||
- 20.0*pow(k_, 4.0)/pow(epsilon_, 3.0)*
|
||||
pow(Cmu, 3.0)*
|
||||
(
|
||||
((gradU & gradU) & gradU.T())
|
||||
+ ((gradU & gradU.T()) & gradU.T())
|
||||
- ((gradU.T() & gradU) & gradU)
|
||||
- ((gradU.T() & gradU.T()) & gradU)
|
||||
)
|
||||
// cubic term C5, explicit part
|
||||
+ min
|
||||
(
|
||||
C5viscosity,
|
||||
dimensionedScalar("0", C5viscosity.dimensions(), 0.0)
|
||||
)*gradU
|
||||
// cubic term C4
|
||||
- 20.0*pow(k_, 4.0)/pow(epsilon_, 3.0)
|
||||
*pow(Cmu_, 3.0)
|
||||
*(
|
||||
((gradU_ & gradU_) & gradU_.T())
|
||||
+ ((gradU_ & gradU_.T()) & gradU_.T())
|
||||
- ((gradU_.T() & gradU_) & gradU_)
|
||||
- ((gradU_.T() & gradU_.T()) & gradU_)
|
||||
)
|
||||
// cubic term C5, explicit part
|
||||
+ min
|
||||
(
|
||||
C5viscosity_,
|
||||
dimensionedScalar("0", C5viscosity_.dimensions(), 0.0)
|
||||
)*gradU_
|
||||
)
|
||||
)
|
||||
{
|
||||
@ -188,7 +294,7 @@ tmp<volSymmTensorField> LienCubicKELowRe::R() const
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
((2.0/3.0)*I)*k_ - nut_*twoSymm(gradU) + nonlinearStress,
|
||||
((2.0/3.0)*I)*k_ - nut_*twoSymm(gradU_) + nonlinearStress_,
|
||||
k_.boundaryField().types()
|
||||
)
|
||||
);
|
||||
@ -209,7 +315,7 @@ tmp<volSymmTensorField> LienCubicKELowRe::devReff() const
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
-nuEff()*dev(twoSymm(fvc::grad(U_))) + nonlinearStress
|
||||
-nuEff()*dev(twoSymm(fvc::grad(U_))) + nonlinearStress_
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -219,7 +325,7 @@ tmp<fvVectorMatrix> LienCubicKELowRe::divDevReff(volVectorField& U) const
|
||||
{
|
||||
return
|
||||
(
|
||||
fvc::div(nonlinearStress)
|
||||
fvc::div(nonlinearStress_)
|
||||
- fvm::laplacian(nuEff(), U)
|
||||
- fvc::div(nuEff()*dev(fvc::grad(U)().T()))
|
||||
);
|
||||
@ -230,20 +336,20 @@ bool LienCubicKELowRe::read()
|
||||
{
|
||||
if (RASmodel::read())
|
||||
{
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C1", C1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C2", C2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphak", alphak);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaEps", alphaEps);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("A1", A1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("A2", A2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Ctau1", Ctau1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Ctau2", Ctau2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Ctau3", Ctau3);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaKsi", alphaKsi);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cmu", CmuWall);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Am", Am);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Aepsilon", Aepsilon);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Amu", Amu);
|
||||
C1_.readIfPresent(RASmodelCoeffs_);
|
||||
C2_.readIfPresent(RASmodelCoeffs_);
|
||||
alphak_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaEps_.readIfPresent(RASmodelCoeffs_);
|
||||
A1_.readIfPresent(RASmodelCoeffs_);
|
||||
A2_.readIfPresent(RASmodelCoeffs_);
|
||||
Ctau1_.readIfPresent(RASmodelCoeffs_);
|
||||
Ctau2_.readIfPresent(RASmodelCoeffs_);
|
||||
Ctau3_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaKsi_.readIfPresent(RASmodelCoeffs_);
|
||||
CmuWall_.readIfPresent(RASmodelCoeffs_);
|
||||
Am_.readIfPresent(RASmodelCoeffs_);
|
||||
Aepsilon_.readIfPresent(RASmodelCoeffs_);
|
||||
Amu_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -270,22 +376,22 @@ void LienCubicKELowRe::correct()
|
||||
y_.correct();
|
||||
}
|
||||
|
||||
gradU = fvc::grad(U_);
|
||||
gradU_ = fvc::grad(U_);
|
||||
|
||||
// generation term
|
||||
volScalarField S2 = symm(gradU) && gradU;
|
||||
volScalarField S2 = symm(gradU_) && gradU_;
|
||||
|
||||
yStar = sqrt(k_)*y_/nu() + SMALL;
|
||||
yStar_ = sqrt(k_)*y_/nu() + SMALL;
|
||||
volScalarField Rt = sqr(k_)/(nu()*epsilon_);
|
||||
|
||||
volScalarField fMu =
|
||||
(scalar(1) - exp(-Am*yStar))
|
||||
/(scalar(1) - exp(-Aepsilon*yStar) + SMALL);
|
||||
(scalar(1) - exp(-Am_*yStar_))
|
||||
/(scalar(1) - exp(-Aepsilon_*yStar_) + SMALL);
|
||||
|
||||
volScalarField f2 = scalar(1) - 0.3*exp(-sqr(Rt));
|
||||
|
||||
volScalarField G =
|
||||
Cmu*fMu*sqr(k_)/epsilon_*S2 - (nonlinearStress && gradU);
|
||||
Cmu_*fMu*sqr(k_)/epsilon_*S2 - (nonlinearStress_ && gradU_);
|
||||
|
||||
// Dissipation equation
|
||||
tmp<fvScalarMatrix> epsEqn
|
||||
@ -294,12 +400,12 @@ void LienCubicKELowRe::correct()
|
||||
+ fvm::div(phi_, epsilon_)
|
||||
- fvm::laplacian(DepsilonEff(), epsilon_)
|
||||
==
|
||||
C1*G*epsilon_/k_
|
||||
C1_*G*epsilon_/k_
|
||||
// E-term
|
||||
+ C2*f2*pow(Cmu, 0.75)*pow(k_, scalar(0.5))
|
||||
/(kappa_*y_*(scalar(1) - exp(-Aepsilon*yStar)))
|
||||
*exp(-Amu*sqr(yStar))*epsilon_
|
||||
- fvm::Sp(C2*f2*epsilon_/k_, epsilon_)
|
||||
+ C2_*f2*pow(Cmu_, 0.75)*pow(k_, scalar(0.5))
|
||||
/(kappa_*y_*(scalar(1) - exp(-Aepsilon_*yStar_)))
|
||||
*exp(-Amu_*sqr(yStar_))*epsilon_
|
||||
- fvm::Sp(C2_*f2*epsilon_/k_, epsilon_)
|
||||
);
|
||||
|
||||
epsEqn().relax();
|
||||
@ -330,52 +436,52 @@ void LienCubicKELowRe::correct()
|
||||
|
||||
// Re-calculate viscosity
|
||||
|
||||
eta = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU + gradU.T())));
|
||||
ksi = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU - gradU.T())));
|
||||
Cmu = 2.0/(3.0*(A1 + eta + alphaKsi*ksi));
|
||||
fEta = A2 + pow(eta, 3.0);
|
||||
eta_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T())));
|
||||
ksi_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T())));
|
||||
Cmu_ = 2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_));
|
||||
fEta_ = A2_ + pow(eta_, 3.0);
|
||||
|
||||
C5viscosity =
|
||||
- 2.0*pow(Cmu, 3.0)*pow(k_, 4.0)/pow(epsilon_, 3.0)*
|
||||
(magSqr(gradU + gradU.T()) - magSqr(gradU - gradU.T()));
|
||||
C5viscosity_ =
|
||||
- 2.0*pow(Cmu_, 3.0)*pow(k_, 4.0)/pow(epsilon_, 3.0)
|
||||
*(magSqr(gradU_ + gradU_.T()) - magSqr(gradU_ - gradU_.T()));
|
||||
|
||||
nut_ =
|
||||
Cmu*fMu*sqr(k_)/epsilon_
|
||||
Cmu_*fMu*sqr(k_)/epsilon_
|
||||
// C5 term, implicit
|
||||
+ max
|
||||
+ max
|
||||
(
|
||||
C5viscosity,
|
||||
dimensionedScalar("0", C5viscosity.dimensions(), 0.0)
|
||||
C5viscosity_,
|
||||
dimensionedScalar("0", C5viscosity_.dimensions(), 0.0)
|
||||
);
|
||||
|
||||
nonlinearStress = symm
|
||||
nonlinearStress_ = symm
|
||||
(
|
||||
// quadratic terms
|
||||
pow(k_, 3.0)/sqr(epsilon_)*
|
||||
(
|
||||
Ctau1/fEta*
|
||||
(
|
||||
(gradU & gradU)
|
||||
+ (gradU & gradU)().T()
|
||||
pow(k_, 3.0)/sqr(epsilon_)
|
||||
*(
|
||||
Ctau1_/fEta_
|
||||
*(
|
||||
(gradU_ & gradU_)
|
||||
+ (gradU_ & gradU_)().T()
|
||||
)
|
||||
+ Ctau2/fEta*(gradU & gradU.T())
|
||||
+ Ctau3/fEta*(gradU.T() & gradU)
|
||||
+ Ctau2_/fEta_*(gradU_ & gradU_.T())
|
||||
+ Ctau3_/fEta_*(gradU_.T() & gradU_)
|
||||
)
|
||||
// cubic term C4
|
||||
- 20.0*pow(k_, 4.0)/pow(epsilon_, 3.0)*
|
||||
pow(Cmu, 3.0)*
|
||||
(
|
||||
((gradU & gradU) & gradU.T())
|
||||
+ ((gradU & gradU.T()) & gradU.T())
|
||||
- ((gradU.T() & gradU) & gradU)
|
||||
- ((gradU.T() & gradU.T()) & gradU)
|
||||
- 20.0*pow(k_, 4.0)/pow(epsilon_, 3.0)
|
||||
*pow(Cmu_, 3.0)
|
||||
*(
|
||||
((gradU_ & gradU_) & gradU_.T())
|
||||
+ ((gradU_ & gradU_.T()) & gradU_.T())
|
||||
- ((gradU_.T() & gradU_) & gradU_)
|
||||
- ((gradU_.T() & gradU_.T()) & gradU_)
|
||||
)
|
||||
// cubic term C5, explicit part
|
||||
+ min
|
||||
(
|
||||
C5viscosity,
|
||||
dimensionedScalar("0", C5viscosity.dimensions(), 0.0)
|
||||
)*gradU
|
||||
C5viscosity_,
|
||||
dimensionedScalar("0", C5viscosity_.dimensions(), 0.0)
|
||||
)*gradU_
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -73,40 +73,40 @@ class LienCubicKELowRe
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar C1;
|
||||
scalar C2;
|
||||
scalar alphak;
|
||||
scalar alphaEps;
|
||||
scalar A1;
|
||||
scalar A2;
|
||||
scalar Ctau1;
|
||||
scalar Ctau2;
|
||||
scalar Ctau3;
|
||||
scalar alphaKsi;
|
||||
dimensionedScalar C1_;
|
||||
dimensionedScalar C2_;
|
||||
dimensionedScalar alphak_;
|
||||
dimensionedScalar alphaEps_;
|
||||
dimensionedScalar A1_;
|
||||
dimensionedScalar A2_;
|
||||
dimensionedScalar Ctau1_;
|
||||
dimensionedScalar Ctau2_;
|
||||
dimensionedScalar Ctau3_;
|
||||
dimensionedScalar alphaKsi_;
|
||||
|
||||
scalar CmuWall;
|
||||
dimensionedScalar CmuWall_;
|
||||
|
||||
scalar Am;
|
||||
scalar Aepsilon;
|
||||
scalar Amu;
|
||||
dimensionedScalar Am_;
|
||||
dimensionedScalar Aepsilon_;
|
||||
dimensionedScalar Amu_;
|
||||
|
||||
volScalarField k_;
|
||||
volScalarField epsilon_;
|
||||
|
||||
wallDist y_;
|
||||
|
||||
volTensorField gradU;
|
||||
volScalarField eta;
|
||||
volScalarField ksi;
|
||||
volScalarField Cmu;
|
||||
volScalarField fEta;
|
||||
volScalarField C5viscosity;
|
||||
volTensorField gradU_;
|
||||
volScalarField eta_;
|
||||
volScalarField ksi_;
|
||||
volScalarField Cmu_;
|
||||
volScalarField fEta_;
|
||||
volScalarField C5viscosity_;
|
||||
|
||||
volScalarField yStar;
|
||||
volScalarField yStar_;
|
||||
|
||||
volScalarField nut_;
|
||||
|
||||
volSymmTensorField nonlinearStress;
|
||||
volSymmTensorField nonlinearStress_;
|
||||
|
||||
public:
|
||||
|
||||
@ -143,7 +143,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DkEff", alphak*nut_ + nu())
|
||||
new volScalarField("DkEff", alphak_*nut_ + nu())
|
||||
);
|
||||
}
|
||||
|
||||
@ -152,7 +152,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DepsilonEff", alphaEps*nut_ + nu())
|
||||
new volScalarField("DepsilonEff", alphaEps_*nut_ + nu())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
labelList cellBoundaryFaceCount(epsilon_.size(), 0);
|
||||
|
||||
//- use constant Cmu for epsilon in the near-wall cell
|
||||
scalar Cmu75 = pow(CmuWall, 0.75);
|
||||
scalar Cmu75 = pow(CmuWall_.value(), 0.75);
|
||||
|
||||
const fvPatchList& patches = mesh_.boundary();
|
||||
|
||||
@ -44,9 +44,9 @@
|
||||
Cmu75*pow(k_[faceCelli], 1.5)
|
||||
/(
|
||||
kappa_*y_[faceCelli]
|
||||
*(1.0 - exp(-Aepsilon*yStar[faceCelli]))
|
||||
*(1.0 - exp(-Aepsilon_.value()*yStar_[faceCelli]))
|
||||
)
|
||||
*exp(-Amu*sqr(yStar[faceCelli]));
|
||||
*exp(-Amu_.value()*sqr(yStar_[faceCelli]));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -54,21 +54,95 @@ NonlinearKEShih::NonlinearKEShih
|
||||
:
|
||||
RASmodel(typeName, U, phi, lamTransportModel),
|
||||
|
||||
C1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C1", 1.44)),
|
||||
C2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C2", 1.92)),
|
||||
alphak(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphak", 1.0)),
|
||||
alphaEps
|
||||
C1_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaEps", 0.76923)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C1",
|
||||
RASmodelCoeffs_,
|
||||
1.44
|
||||
)
|
||||
),
|
||||
A1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("A1", 1.25)),
|
||||
A2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("A2", 1000.0)),
|
||||
Ctau1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Ctau1", -4.0)),
|
||||
Ctau2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Ctau2", 13.0)),
|
||||
Ctau3(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Ctau3", -2.0)),
|
||||
alphaKsi
|
||||
C2_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaKsi", 0.9)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C2",
|
||||
RASmodelCoeffs_,
|
||||
1.92
|
||||
)
|
||||
),
|
||||
alphak_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphak",
|
||||
RASmodelCoeffs_,
|
||||
1.0
|
||||
)
|
||||
),
|
||||
alphaEps_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaEps",
|
||||
RASmodelCoeffs_,
|
||||
0.76923
|
||||
)
|
||||
),
|
||||
A1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"A1",
|
||||
RASmodelCoeffs_,
|
||||
1.25
|
||||
)
|
||||
),
|
||||
A2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"A2",
|
||||
RASmodelCoeffs_,
|
||||
1000.0
|
||||
)
|
||||
),
|
||||
Ctau1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Ctau1",
|
||||
RASmodelCoeffs_,
|
||||
-4.0
|
||||
)
|
||||
),
|
||||
Ctau2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Ctau2",
|
||||
RASmodelCoeffs_,
|
||||
13.0
|
||||
)
|
||||
),
|
||||
Ctau3_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Ctau3",
|
||||
RASmodelCoeffs_,
|
||||
-2.0
|
||||
)
|
||||
),
|
||||
alphaKsi_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaKsi",
|
||||
RASmodelCoeffs_,
|
||||
0.9
|
||||
)
|
||||
),
|
||||
|
||||
k_
|
||||
@ -97,29 +171,29 @@ NonlinearKEShih::NonlinearKEShih
|
||||
mesh_
|
||||
),
|
||||
|
||||
gradU(fvc::grad(U)),
|
||||
eta(k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU + gradU.T())))),
|
||||
ksi(k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU - gradU.T())))),
|
||||
Cmu(2.0/(3.0*(A1 + eta + alphaKsi*ksi))),
|
||||
fEta(A2 + pow(eta, 3.0)),
|
||||
gradU_(fvc::grad(U)),
|
||||
eta_(k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T())))),
|
||||
ksi_(k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T())))),
|
||||
Cmu_(2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_))),
|
||||
fEta_(A2_ + pow(eta_, 3.0)),
|
||||
|
||||
nut_(Cmu*sqr(k_)/(epsilon_ + epsilonSmall_)),
|
||||
nut_(Cmu_*sqr(k_)/(epsilon_ + epsilonSmall_)),
|
||||
|
||||
nonlinearStress
|
||||
nonlinearStress_
|
||||
(
|
||||
"nonlinearStress",
|
||||
symm
|
||||
(
|
||||
pow(k_, 3.0)/sqr(epsilon_)*
|
||||
(
|
||||
Ctau1/fEta*
|
||||
(
|
||||
(gradU & gradU)
|
||||
+ (gradU & gradU)().T()
|
||||
pow(k_, 3.0)/sqr(epsilon_)
|
||||
*(
|
||||
Ctau1_/fEta_
|
||||
*(
|
||||
(gradU_ & gradU_)
|
||||
+ (gradU_ & gradU_)().T()
|
||||
)
|
||||
+ Ctau2_/fEta_*(gradU_ & gradU_.T())
|
||||
+ Ctau3_/fEta_*(gradU_.T() & gradU_)
|
||||
)
|
||||
+ Ctau2/fEta*(gradU & gradU.T())
|
||||
+ Ctau3/fEta*(gradU.T() & gradU)
|
||||
)
|
||||
)
|
||||
)
|
||||
{
|
||||
@ -133,7 +207,7 @@ NonlinearKEShih::NonlinearKEShih
|
||||
|
||||
tmp<volSymmTensorField> NonlinearKEShih::R() const
|
||||
{
|
||||
volTensorField gradU = fvc::grad(U_);
|
||||
volTensorField gradU_ = fvc::grad(U_);
|
||||
|
||||
return tmp<volSymmTensorField>
|
||||
(
|
||||
@ -147,7 +221,7 @@ tmp<volSymmTensorField> NonlinearKEShih::R() const
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
((2.0/3.0)*I)*k_ - nut_*twoSymm(gradU) + nonlinearStress,
|
||||
((2.0/3.0)*I)*k_ - nut_*twoSymm(gradU_) + nonlinearStress_,
|
||||
k_.boundaryField().types()
|
||||
)
|
||||
);
|
||||
@ -168,7 +242,7 @@ tmp<volSymmTensorField> NonlinearKEShih::devReff() const
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
-nuEff()*dev(twoSymm(fvc::grad(U_))) + nonlinearStress
|
||||
-nuEff()*dev(twoSymm(fvc::grad(U_))) + nonlinearStress_
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -178,7 +252,7 @@ tmp<fvVectorMatrix> NonlinearKEShih::divDevReff(volVectorField& U) const
|
||||
{
|
||||
return
|
||||
(
|
||||
fvc::div(nonlinearStress)
|
||||
fvc::div(nonlinearStress_)
|
||||
- fvm::laplacian(nuEff(), U)
|
||||
- fvc::div(nuEff()*dev(fvc::grad(U)().T()))
|
||||
);
|
||||
@ -189,16 +263,16 @@ bool NonlinearKEShih::read()
|
||||
{
|
||||
if (RASmodel::read())
|
||||
{
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C1", C1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C2", C2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphak", alphak);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaEps", alphaEps);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("A1", A1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("A2", A2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Ctau1", Ctau1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Ctau2", Ctau2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Ctau3", Ctau3);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaKsi", alphaKsi);
|
||||
C1_.readIfPresent(RASmodelCoeffs_);
|
||||
C2_.readIfPresent(RASmodelCoeffs_);
|
||||
alphak_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaEps_.readIfPresent(RASmodelCoeffs_);
|
||||
A1_.readIfPresent(RASmodelCoeffs_);
|
||||
A2_.readIfPresent(RASmodelCoeffs_);
|
||||
Ctau1_.readIfPresent(RASmodelCoeffs_);
|
||||
Ctau2_.readIfPresent(RASmodelCoeffs_);
|
||||
Ctau3_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaKsi_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -220,14 +294,14 @@ void NonlinearKEShih::correct()
|
||||
|
||||
RASmodel::correct();
|
||||
|
||||
gradU = fvc::grad(U_);
|
||||
gradU_ = fvc::grad(U_);
|
||||
|
||||
// generation term
|
||||
volScalarField S2 = symm(gradU) && gradU;
|
||||
volScalarField S2 = symm(gradU_) && gradU_;
|
||||
|
||||
volScalarField G =
|
||||
Cmu*sqr(k_)/epsilon_*S2
|
||||
- (nonlinearStress && gradU);
|
||||
Cmu_*sqr(k_)/epsilon_*S2
|
||||
- (nonlinearStress_ && gradU_);
|
||||
|
||||
# include "nonLinearWallFunctionsI.H"
|
||||
|
||||
@ -238,8 +312,8 @@ void NonlinearKEShih::correct()
|
||||
+ fvm::div(phi_, epsilon_)
|
||||
- fvm::laplacian(DepsilonEff(), epsilon_)
|
||||
==
|
||||
C1*G*epsilon_/k_
|
||||
- fvm::Sp(C2*epsilon_/k_, epsilon_)
|
||||
C1_*G*epsilon_/k_
|
||||
- fvm::Sp(C2_*epsilon_/k_, epsilon_)
|
||||
);
|
||||
|
||||
epsEqn().relax();
|
||||
@ -269,26 +343,26 @@ void NonlinearKEShih::correct()
|
||||
|
||||
// Re-calculate viscosity
|
||||
|
||||
eta = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU + gradU.T())));
|
||||
ksi = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU - gradU.T())));
|
||||
Cmu = 2.0/(3.0*(A1 + eta + alphaKsi*ksi));
|
||||
fEta = A2 + pow(eta, 3.0);
|
||||
eta_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T())));
|
||||
ksi_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T())));
|
||||
Cmu_ = 2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_));
|
||||
fEta_ = A2_ + pow(eta_, 3.0);
|
||||
|
||||
nut_ = Cmu*sqr(k_)/epsilon_;
|
||||
nut_ = Cmu_*sqr(k_)/epsilon_;
|
||||
|
||||
# include "wallNonlinearViscosityI.H"
|
||||
|
||||
nonlinearStress = symm
|
||||
nonlinearStress_ = symm
|
||||
(
|
||||
pow(k_, 3.0)/sqr(epsilon_)*
|
||||
(
|
||||
Ctau1/fEta*
|
||||
(
|
||||
(gradU & gradU)
|
||||
+ (gradU & gradU)().T()
|
||||
pow(k_, 3.0)/sqr(epsilon_)
|
||||
*(
|
||||
Ctau1_/fEta_
|
||||
*(
|
||||
(gradU_ & gradU_)
|
||||
+ (gradU_ & gradU_)().T()
|
||||
)
|
||||
+ Ctau2/fEta*(gradU & gradU.T())
|
||||
+ Ctau3/fEta*(gradU.T() & gradU)
|
||||
+ Ctau2_/fEta_*(gradU_ & gradU_.T())
|
||||
+ Ctau3_/fEta_*(gradU_.T() & gradU_)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@ -58,29 +58,29 @@ class NonlinearKEShih
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar C1;
|
||||
scalar C2;
|
||||
scalar alphak;
|
||||
scalar alphaEps;
|
||||
scalar A1;
|
||||
scalar A2;
|
||||
scalar Ctau1;
|
||||
scalar Ctau2;
|
||||
scalar Ctau3;
|
||||
scalar alphaKsi;
|
||||
dimensionedScalar C1_;
|
||||
dimensionedScalar C2_;
|
||||
dimensionedScalar alphak_;
|
||||
dimensionedScalar alphaEps_;
|
||||
dimensionedScalar A1_;
|
||||
dimensionedScalar A2_;
|
||||
dimensionedScalar Ctau1_;
|
||||
dimensionedScalar Ctau2_;
|
||||
dimensionedScalar Ctau3_;
|
||||
dimensionedScalar alphaKsi_;
|
||||
|
||||
volScalarField k_;
|
||||
volScalarField epsilon_;
|
||||
|
||||
volTensorField gradU;
|
||||
volScalarField eta;
|
||||
volScalarField ksi;
|
||||
volScalarField Cmu;
|
||||
volScalarField fEta;
|
||||
volTensorField gradU_;
|
||||
volScalarField eta_;
|
||||
volScalarField ksi_;
|
||||
volScalarField Cmu_;
|
||||
volScalarField fEta_;
|
||||
|
||||
volScalarField nut_;
|
||||
|
||||
volSymmTensorField nonlinearStress;
|
||||
volSymmTensorField nonlinearStress_;
|
||||
|
||||
public:
|
||||
|
||||
@ -117,7 +117,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DkEff", alphak*nut_ + nu())
|
||||
new volScalarField("DkEff", alphak_*nut_ + nu())
|
||||
);
|
||||
}
|
||||
|
||||
@ -126,7 +126,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DepsilonEff", alphaEps*nut_ + nu())
|
||||
new volScalarField("DepsilonEff", alphaEps_*nut_ + nu())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -47,7 +47,7 @@ tmp<volScalarField> QZeta::fMu() const
|
||||
{
|
||||
volScalarField Rt = q_*k_/(2.0*nu()*zeta_);
|
||||
|
||||
if (Anisotropic)
|
||||
if (anisotropic_)
|
||||
{
|
||||
return exp((-scalar(2.5) + Rt/20.0)/pow(scalar(1) + Rt/130.0, 3.0));
|
||||
}
|
||||
@ -79,16 +79,50 @@ QZeta::QZeta
|
||||
:
|
||||
RASmodel(typeName, U, phi, lamTransportModel),
|
||||
|
||||
Cmu(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cmu", 0.09)),
|
||||
C1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C1", 1.44)),
|
||||
C2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C2", 1.92)),
|
||||
alphaZeta
|
||||
Cmu_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaZeta", 0.76923)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cmu",
|
||||
RASmodelCoeffs_,
|
||||
0.09
|
||||
)
|
||||
),
|
||||
Anisotropic
|
||||
C1_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<Switch>("anisotropic", false)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C1",
|
||||
RASmodelCoeffs_,
|
||||
1.44
|
||||
)
|
||||
),
|
||||
C2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C2",
|
||||
RASmodelCoeffs_,
|
||||
1.92
|
||||
)
|
||||
),
|
||||
alphaZeta_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaZeta",
|
||||
RASmodelCoeffs_,
|
||||
0.76923
|
||||
)
|
||||
),
|
||||
anisotropic_
|
||||
(
|
||||
Switch::lookupOrAddToDict
|
||||
(
|
||||
"anisotropic",
|
||||
RASmodelCoeffs_,
|
||||
false
|
||||
)
|
||||
),
|
||||
|
||||
k_
|
||||
@ -145,7 +179,7 @@ QZeta::QZeta
|
||||
epsilon_.boundaryField().types()
|
||||
),
|
||||
|
||||
nut_(Cmu*fMu()*sqr(k_)/(epsilon_ + epsilonSmall_))
|
||||
nut_(Cmu_*fMu()*sqr(k_)/(epsilon_ + epsilonSmall_))
|
||||
{
|
||||
printCoeffs();
|
||||
}
|
||||
@ -208,15 +242,11 @@ bool QZeta::read()
|
||||
{
|
||||
if (RASmodel::read())
|
||||
{
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cmu", Cmu);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C1", C1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C2", C2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaZeta", alphaZeta);
|
||||
RASmodelCoeffs_.readIfPresent<Switch>
|
||||
(
|
||||
"anisotropic",
|
||||
Anisotropic
|
||||
);
|
||||
Cmu_.readIfPresent(RASmodelCoeffs_);
|
||||
C1_.readIfPresent(RASmodelCoeffs_);
|
||||
C2_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaZeta_.readIfPresent(RASmodelCoeffs_);
|
||||
anisotropic_.readIfPresent("anisotropic", RASmodelCoeffs_);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -252,8 +282,8 @@ void QZeta::correct()
|
||||
+ fvm::div(phi_, zeta_)
|
||||
- fvm::laplacian(DzetaEff(), zeta_)
|
||||
==
|
||||
(2.0*C1 - 1)*G*zeta_/q_
|
||||
- fvm::Sp((2.0*C2 - dimensionedScalar(1.0))*f2()*zeta_/q_, zeta_)
|
||||
(2.0*C1_ - 1)*G*zeta_/q_
|
||||
- fvm::Sp((2.0*C2_ - dimensionedScalar(1.0))*f2()*zeta_/q_, zeta_)
|
||||
+ E
|
||||
);
|
||||
|
||||
@ -287,7 +317,7 @@ void QZeta::correct()
|
||||
|
||||
|
||||
// Re-calculate viscosity
|
||||
nut_ = Cmu*fMu()*sqr(k_)/epsilon_;
|
||||
nut_ = Cmu_*fMu()*sqr(k_)/epsilon_;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -58,11 +58,11 @@ class QZeta
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar Cmu;
|
||||
scalar C1;
|
||||
scalar C2;
|
||||
scalar alphaZeta;
|
||||
Switch Anisotropic;
|
||||
dimensionedScalar Cmu_;
|
||||
dimensionedScalar C1_;
|
||||
dimensionedScalar C2_;
|
||||
dimensionedScalar alphaZeta_;
|
||||
Switch anisotropic_;
|
||||
|
||||
volScalarField k_;
|
||||
volScalarField epsilon_;
|
||||
@ -123,7 +123,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DzetaEff", alphaZeta*nut_ + nu())
|
||||
new volScalarField("DzetaEff", alphaZeta_*nut_ + nu())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -53,16 +53,69 @@ RNGkEpsilon::RNGkEpsilon
|
||||
:
|
||||
RASmodel(typeName, U, phi, lamTransportModel),
|
||||
|
||||
Cmu(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cmu", 0.0845)),
|
||||
C1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C1", 1.42)),
|
||||
C2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C2", 1.68)),
|
||||
alphak(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphak", 1.39)),
|
||||
alphaEps
|
||||
Cmu_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaEps", 1.39)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cmu",
|
||||
RASmodelCoeffs_,
|
||||
0.0845
|
||||
)
|
||||
),
|
||||
C1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C1",
|
||||
RASmodelCoeffs_,
|
||||
1.42
|
||||
)
|
||||
),
|
||||
C2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C2",
|
||||
RASmodelCoeffs_,
|
||||
1.68
|
||||
)
|
||||
),
|
||||
alphak_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphak",
|
||||
RASmodelCoeffs_,
|
||||
1.39
|
||||
)
|
||||
),
|
||||
alphaEps_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaEps",
|
||||
RASmodelCoeffs_,
|
||||
1.39
|
||||
)
|
||||
),
|
||||
eta0_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"eta0",
|
||||
RASmodelCoeffs_,
|
||||
4.38
|
||||
)
|
||||
),
|
||||
beta_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"beta",
|
||||
RASmodelCoeffs_,
|
||||
0.012
|
||||
)
|
||||
),
|
||||
eta0(RASmodelCoeffs_.lookupOrAddDefault<scalar>("eta0", 4.38)),
|
||||
beta(RASmodelCoeffs_.lookupOrAddDefault<scalar>("beta", 0.012)),
|
||||
|
||||
k_
|
||||
(
|
||||
@ -90,7 +143,7 @@ RNGkEpsilon::RNGkEpsilon
|
||||
mesh_
|
||||
),
|
||||
|
||||
nut_(Cmu*sqr(k_)/(epsilon_ + epsilonSmall_))
|
||||
nut_(Cmu_*sqr(k_)/(epsilon_ + epsilonSmall_))
|
||||
{
|
||||
# include "wallViscosityI.H"
|
||||
|
||||
@ -156,13 +209,13 @@ bool RNGkEpsilon::read()
|
||||
{
|
||||
if (RASmodel::read())
|
||||
{
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cmu", Cmu);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C1", C1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C2", C2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphak", alphak);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaEps", alphaEps);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("eta0", eta0);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("beta", beta);
|
||||
Cmu_.readIfPresent(RASmodelCoeffs_);
|
||||
C1_.readIfPresent(RASmodelCoeffs_);
|
||||
C2_.readIfPresent(RASmodelCoeffs_);
|
||||
alphak_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaEps_.readIfPresent(RASmodelCoeffs_);
|
||||
eta0_.readIfPresent(RASmodelCoeffs_);
|
||||
beta_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -190,7 +243,7 @@ void RNGkEpsilon::correct()
|
||||
|
||||
volScalarField eta = sqrt(S2)*k_/epsilon_;
|
||||
volScalarField R =
|
||||
((eta*(scalar(1) - eta/eta0))/(scalar(1) + beta*eta*sqr(eta)));
|
||||
((eta*(scalar(1) - eta/eta0_))/(scalar(1) + beta_*eta*sqr(eta)));
|
||||
|
||||
# include "wallFunctionsI.H"
|
||||
|
||||
@ -201,9 +254,9 @@ void RNGkEpsilon::correct()
|
||||
+ fvm::div(phi_, epsilon_)
|
||||
- fvm::laplacian(DepsilonEff(), epsilon_)
|
||||
==
|
||||
(C1 - R)*G*epsilon_/k_
|
||||
(C1_ - R)*G*epsilon_/k_
|
||||
//- fvm::SuSp(R*G/k_, epsilon_)
|
||||
- fvm::Sp(C2*epsilon_/k_, epsilon_)
|
||||
- fvm::Sp(C2_*epsilon_/k_, epsilon_)
|
||||
);
|
||||
|
||||
epsEqn().relax();
|
||||
@ -231,7 +284,7 @@ void RNGkEpsilon::correct()
|
||||
|
||||
|
||||
// Re-calculate viscosity
|
||||
nut_ = Cmu*sqr(k_)/epsilon_;
|
||||
nut_ = Cmu_*sqr(k_)/epsilon_;
|
||||
|
||||
# include "wallViscosityI.H"
|
||||
|
||||
|
||||
@ -73,13 +73,13 @@ class RNGkEpsilon
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar Cmu;
|
||||
scalar C1;
|
||||
scalar C2;
|
||||
scalar alphak;
|
||||
scalar alphaEps;
|
||||
scalar eta0;
|
||||
scalar beta;
|
||||
dimensionedScalar Cmu_;
|
||||
dimensionedScalar C1_;
|
||||
dimensionedScalar C2_;
|
||||
dimensionedScalar alphak_;
|
||||
dimensionedScalar alphaEps_;
|
||||
dimensionedScalar eta0_;
|
||||
dimensionedScalar beta_;
|
||||
|
||||
volScalarField k_;
|
||||
volScalarField epsilon_;
|
||||
@ -121,7 +121,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DkEff", alphak*nut_ + nu())
|
||||
new volScalarField("DkEff", alphak_*nut_ + nu())
|
||||
);
|
||||
}
|
||||
|
||||
@ -130,7 +130,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DepsilonEff", alphaEps*nut_ + nu())
|
||||
new volScalarField("DepsilonEff", alphaEps_*nut_ + nu())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -53,7 +53,7 @@ tmp<volScalarField> SpalartAllmaras::chi() const
|
||||
tmp<volScalarField> SpalartAllmaras::fv1(const volScalarField& chi) const
|
||||
{
|
||||
volScalarField chi3 = pow3(chi);
|
||||
return chi3/(chi3 + pow3(Cv1));
|
||||
return chi3/(chi3 + pow3(Cv1_));
|
||||
}
|
||||
|
||||
|
||||
@ -74,11 +74,11 @@ tmp<volScalarField> SpalartAllmaras::fv3
|
||||
const volScalarField& fv1
|
||||
) const
|
||||
{
|
||||
volScalarField chiByCv2 = (1/Cv2)*chi;
|
||||
volScalarField chiByCv2 = (1/Cv2_)*chi;
|
||||
|
||||
return
|
||||
(scalar(1) + chi*fv1)
|
||||
*(1/Cv2)
|
||||
*(1/Cv2_)
|
||||
*(3*(scalar(1) + chiByCv2) + sqr(chiByCv2))
|
||||
/pow3(scalar(1) + chiByCv2);
|
||||
}
|
||||
@ -97,9 +97,9 @@ tmp<volScalarField> SpalartAllmaras::fw(const volScalarField& Stilda) const
|
||||
);
|
||||
r.boundaryField() == 0.0;
|
||||
|
||||
volScalarField g = r + Cw2*(pow6(r) - r);
|
||||
volScalarField g = r + Cw2_*(pow6(r) - r);
|
||||
|
||||
return g*pow((1.0 + pow6(Cw3))/(pow6(g) + pow6(Cw3)), 1.0/6.0);
|
||||
return g*pow((1.0 + pow6(Cw3_))/(pow6(g) + pow6(Cw3_)), 1.0/6.0);
|
||||
}
|
||||
|
||||
|
||||
@ -114,15 +114,71 @@ SpalartAllmaras::SpalartAllmaras
|
||||
:
|
||||
RASmodel(typeName, U, phi, lamTransportModel),
|
||||
|
||||
alphaNut(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaNut", 1.5)),
|
||||
alphaNut_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaNut",
|
||||
RASmodelCoeffs_,
|
||||
1.5
|
||||
)
|
||||
),
|
||||
|
||||
Cb1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cb1", 0.1355)),
|
||||
Cb2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cb2", 0.622)),
|
||||
Cw1(Cb1/sqr(kappa_) + alphaNut*(1.0 + Cb2)),
|
||||
Cw2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cw2", 0.3)),
|
||||
Cw3(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cw3", 2.0)),
|
||||
Cv1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cv1", 7.1)),
|
||||
Cv2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cv2", 5.0)),
|
||||
Cb1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cb1",
|
||||
RASmodelCoeffs_,
|
||||
0.1355
|
||||
)
|
||||
),
|
||||
Cb2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cb2",
|
||||
RASmodelCoeffs_,
|
||||
0.622
|
||||
)
|
||||
),
|
||||
Cw1_(Cb1_/sqr(kappa_) + alphaNut_*(1.0 + Cb2_)),
|
||||
Cw2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cw2",
|
||||
RASmodelCoeffs_,
|
||||
0.3
|
||||
)
|
||||
),
|
||||
Cw3_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cw3",
|
||||
RASmodelCoeffs_,
|
||||
2.0
|
||||
)
|
||||
),
|
||||
Cv1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cv1",
|
||||
RASmodelCoeffs_,
|
||||
7.1
|
||||
)
|
||||
),
|
||||
Cv2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cv2",
|
||||
RASmodelCoeffs_,
|
||||
5.0
|
||||
)
|
||||
),
|
||||
|
||||
nuTilda_
|
||||
(
|
||||
@ -162,7 +218,7 @@ tmp<volScalarField> SpalartAllmaras::DnuTildaEff() const
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DnuTildaEff", alphaNut*nuTilda_ + nu())
|
||||
new volScalarField("DnuTildaEff", alphaNut_*nuTilda_ + nu())
|
||||
);
|
||||
}
|
||||
|
||||
@ -261,15 +317,15 @@ bool SpalartAllmaras::read()
|
||||
{
|
||||
if (RASmodel::read())
|
||||
{
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaNut", alphaNut);
|
||||
alphaNut_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cb1", Cb1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cb2", Cb2);
|
||||
Cw1 = Cb1/sqr(kappa_) + alphaNut*(1.0 + Cb2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cw2", Cw2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cw3", Cw3);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cv1", Cv1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cv2", Cv2);
|
||||
Cb1_.readIfPresent(RASmodelCoeffs_);
|
||||
Cb2_.readIfPresent(RASmodelCoeffs_);
|
||||
Cw1_ = Cb1_/sqr(kappa_) + alphaNut_*(1.0 + Cb2_);
|
||||
Cw2_.readIfPresent(RASmodelCoeffs_);
|
||||
Cw3_.readIfPresent(RASmodelCoeffs_);
|
||||
Cv1_.readIfPresent(RASmodelCoeffs_);
|
||||
Cv2_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -309,10 +365,10 @@ void SpalartAllmaras::correct()
|
||||
+ fvm::div(phi_, nuTilda_)
|
||||
- fvm::Sp(fvc::div(phi_), nuTilda_)
|
||||
- fvm::laplacian(DnuTildaEff(), nuTilda_)
|
||||
- alphaNut*Cb2*magSqr(fvc::grad(nuTilda_))
|
||||
- alphaNut_*Cb2_*magSqr(fvc::grad(nuTilda_))
|
||||
==
|
||||
Cb1*Stilda*nuTilda_
|
||||
- fvm::Sp(Cw1*fw(Stilda)*nuTilda_/sqr(d_), nuTilda_)
|
||||
Cb1_*Stilda*nuTilda_
|
||||
- fvm::Sp(Cw1_*fw(Stilda)*nuTilda_/sqr(d_), nuTilda_)
|
||||
);
|
||||
|
||||
nuTildaEqn().relax();
|
||||
|
||||
@ -89,15 +89,15 @@ class SpalartAllmaras
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar alphaNut;
|
||||
dimensionedScalar alphaNut_;
|
||||
|
||||
scalar Cb1;
|
||||
scalar Cb2;
|
||||
scalar Cw1;
|
||||
scalar Cw2;
|
||||
scalar Cw3;
|
||||
scalar Cv1;
|
||||
scalar Cv2;
|
||||
dimensionedScalar Cb1_;
|
||||
dimensionedScalar Cb2_;
|
||||
dimensionedScalar Cw1_;
|
||||
dimensionedScalar Cw2_;
|
||||
dimensionedScalar Cw3_;
|
||||
dimensionedScalar Cv1_;
|
||||
dimensionedScalar Cv2_;
|
||||
|
||||
volScalarField nuTilda_;
|
||||
volScalarField nut_;
|
||||
|
||||
@ -54,12 +54,41 @@ kEpsilon::kEpsilon
|
||||
:
|
||||
RASmodel(typeName, U, phi, lamTransportModel),
|
||||
|
||||
Cmu(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cmu", 0.09)),
|
||||
C1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C1", 1.44)),
|
||||
C2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C2", 1.92)),
|
||||
alphaEps
|
||||
Cmu_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaEps", 0.76923)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cmu",
|
||||
RASmodelCoeffs_,
|
||||
0.09
|
||||
)
|
||||
),
|
||||
C1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C1",
|
||||
RASmodelCoeffs_,
|
||||
1.44
|
||||
)
|
||||
),
|
||||
C2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C2",
|
||||
RASmodelCoeffs_,
|
||||
1.92
|
||||
)
|
||||
),
|
||||
alphaEps_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaEps",
|
||||
RASmodelCoeffs_,
|
||||
0.76923
|
||||
)
|
||||
),
|
||||
|
||||
k_
|
||||
@ -88,7 +117,7 @@ kEpsilon::kEpsilon
|
||||
mesh_
|
||||
),
|
||||
|
||||
nut_(Cmu*sqr(k_)/(epsilon_ + epsilonSmall_))
|
||||
nut_(Cmu_*sqr(k_)/(epsilon_ + epsilonSmall_))
|
||||
{
|
||||
# include "wallViscosityI.H"
|
||||
|
||||
@ -153,10 +182,10 @@ bool kEpsilon::read()
|
||||
{
|
||||
if (RASmodel::read())
|
||||
{
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cmu", Cmu);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C1", C1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C2", C2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaEps", alphaEps);
|
||||
Cmu_.readIfPresent(RASmodelCoeffs_);
|
||||
C1_.readIfPresent(RASmodelCoeffs_);
|
||||
C2_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaEps_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -190,8 +219,8 @@ void kEpsilon::correct()
|
||||
- fvm::Sp(fvc::div(phi_), epsilon_)
|
||||
- fvm::laplacian(DepsilonEff(), epsilon_)
|
||||
==
|
||||
C1*G*epsilon_/k_
|
||||
- fvm::Sp(C2*epsilon_/k_, epsilon_)
|
||||
C1_*G*epsilon_/k_
|
||||
- fvm::Sp(C2_*epsilon_/k_, epsilon_)
|
||||
);
|
||||
|
||||
epsEqn().relax();
|
||||
@ -220,7 +249,7 @@ void kEpsilon::correct()
|
||||
|
||||
|
||||
// Re-calculate viscosity
|
||||
nut_ = Cmu*sqr(k_)/epsilon_;
|
||||
nut_ = Cmu_*sqr(k_)/epsilon_;
|
||||
|
||||
# include "wallViscosityI.H"
|
||||
|
||||
|
||||
@ -73,10 +73,10 @@ class kEpsilon
|
||||
|
||||
// Model coefficients
|
||||
|
||||
scalar Cmu;
|
||||
scalar C1;
|
||||
scalar C2;
|
||||
scalar alphaEps;
|
||||
dimensionedScalar Cmu_;
|
||||
dimensionedScalar C1_;
|
||||
dimensionedScalar C2_;
|
||||
dimensionedScalar alphaEps_;
|
||||
|
||||
|
||||
// Fields
|
||||
@ -130,7 +130,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DepsilonEff", alphaEps*nut_ + nu())
|
||||
new volScalarField("DepsilonEff", alphaEps_*nut_ + nu())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -58,10 +58,10 @@ tmp<volScalarField> kOmegaSST::F1(const volScalarField& CDkOmega) const
|
||||
(
|
||||
max
|
||||
(
|
||||
(scalar(1)/betaStar)*sqrt(k_)/(omega_*y_),
|
||||
(scalar(1)/betaStar_)*sqrt(k_)/(omega_*y_),
|
||||
scalar(500)*nu()/(sqr(y_)*omega_)
|
||||
),
|
||||
(4*alphaOmega2)*k_/(CDkOmegaPlus*sqr(y_))
|
||||
(4*alphaOmega2_)*k_/(CDkOmegaPlus*sqr(y_))
|
||||
),
|
||||
scalar(10)
|
||||
);
|
||||
@ -75,7 +75,7 @@ tmp<volScalarField> kOmegaSST::F2() const
|
||||
(
|
||||
max
|
||||
(
|
||||
(scalar(2)/betaStar)*sqrt(k_)/(omega_*y_),
|
||||
(scalar(2)/betaStar_)*sqrt(k_)/(omega_*y_),
|
||||
scalar(500)*nu()/(sqr(y_)*omega_)
|
||||
),
|
||||
scalar(100)
|
||||
@ -96,34 +96,118 @@ kOmegaSST::kOmegaSST
|
||||
:
|
||||
RASmodel(typeName, U, phi, lamTransportModel),
|
||||
|
||||
alphaK1
|
||||
alphaK1_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaK1", 0.85034)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaK1",
|
||||
RASmodelCoeffs_,
|
||||
0.85034
|
||||
)
|
||||
),
|
||||
alphaK2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaK2", 1.0)),
|
||||
alphaOmega1
|
||||
alphaK2_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaOmega1", 0.5)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaK2",
|
||||
RASmodelCoeffs_,
|
||||
1.0
|
||||
)
|
||||
),
|
||||
alphaOmega2
|
||||
alphaOmega1_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaOmega2", 0.85616)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaOmega1",
|
||||
RASmodelCoeffs_,
|
||||
0.5
|
||||
)
|
||||
),
|
||||
gamma1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("gamma1", 0.5532)),
|
||||
gamma2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("gamma2", 0.4403)),
|
||||
beta1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("beta1", 0.075)),
|
||||
beta2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("beta2", 0.0828)),
|
||||
betaStar
|
||||
alphaOmega2_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("betaStar", 0.09)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaOmega2",
|
||||
RASmodelCoeffs_,
|
||||
0.85616
|
||||
)
|
||||
),
|
||||
gamma1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"gamma1",
|
||||
RASmodelCoeffs_,
|
||||
0.5532
|
||||
)
|
||||
),
|
||||
gamma2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"gamma2",
|
||||
RASmodelCoeffs_,
|
||||
0.4403
|
||||
)
|
||||
),
|
||||
beta1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"beta1",
|
||||
RASmodelCoeffs_,
|
||||
0.075
|
||||
)
|
||||
),
|
||||
beta2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"beta2",
|
||||
RASmodelCoeffs_,
|
||||
0.0828
|
||||
)
|
||||
),
|
||||
betaStar_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"betaStar",
|
||||
RASmodelCoeffs_,
|
||||
0.09
|
||||
)
|
||||
),
|
||||
a1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"a1",
|
||||
RASmodelCoeffs_,
|
||||
0.31
|
||||
)
|
||||
),
|
||||
c1_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"c1",
|
||||
RASmodelCoeffs_,
|
||||
10.0
|
||||
)
|
||||
),
|
||||
a1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("a1", 0.31)),
|
||||
c1(RASmodelCoeffs_.lookupOrAddDefault<scalar>("c1", 10.0)),
|
||||
|
||||
omega0_("omega0", dimless/dimTime, SMALL),
|
||||
omegaSmall_("omegaSmall", dimless/dimTime, SMALL),
|
||||
|
||||
Cmu(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cmu", 0.09)),
|
||||
Cmu_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cmu",
|
||||
RASmodelCoeffs_,
|
||||
0.09
|
||||
)
|
||||
),
|
||||
|
||||
y_(mesh_),
|
||||
|
||||
@ -153,7 +237,7 @@ kOmegaSST::kOmegaSST
|
||||
mesh_
|
||||
),
|
||||
|
||||
nut_(a1*k_/max(a1*(omega_ + omegaSmall_), F2()*mag(symm(fvc::grad(U_)))))
|
||||
nut_(a1_*k_/max(a1_*(omega_ + omegaSmall_), F2()*mag(symm(fvc::grad(U_)))))
|
||||
{
|
||||
# include "kOmegaWallViscosityI.H"
|
||||
|
||||
@ -218,26 +302,18 @@ bool kOmegaSST::read()
|
||||
{
|
||||
if (RASmodel::read())
|
||||
{
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaK1", alphaK1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaK2", alphaK2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>
|
||||
(
|
||||
"alphaOmega1",
|
||||
alphaOmega1
|
||||
);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>
|
||||
(
|
||||
"alphaOmega2",
|
||||
alphaOmega2
|
||||
);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("gamma1", gamma1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("gamma2", gamma2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("beta1", beta1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("beta2", beta2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("betaStar", betaStar);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("a1", a1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("c1", c1);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cmu", Cmu);
|
||||
alphaK1_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaK2_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaOmega1_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaOmega2_.readIfPresent(RASmodelCoeffs_);
|
||||
gamma1_.readIfPresent(RASmodelCoeffs_);
|
||||
gamma2_.readIfPresent(RASmodelCoeffs_);
|
||||
beta1_.readIfPresent(RASmodelCoeffs_);
|
||||
beta2_.readIfPresent(RASmodelCoeffs_);
|
||||
betaStar_.readIfPresent(RASmodelCoeffs_);
|
||||
a1_.readIfPresent(RASmodelCoeffs_);
|
||||
c1_.readIfPresent(RASmodelCoeffs_);
|
||||
Cmu_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -270,7 +346,7 @@ void kOmegaSST::correct()
|
||||
# include "kOmegaWallFunctionsI.H"
|
||||
|
||||
volScalarField CDkOmega =
|
||||
(2*alphaOmega2)*(fvc::grad(k_) & fvc::grad(omega_))/omega_;
|
||||
(2*alphaOmega2_)*(fvc::grad(k_) & fvc::grad(omega_))/omega_;
|
||||
|
||||
volScalarField F1 = this->F1(CDkOmega);
|
||||
|
||||
@ -306,8 +382,8 @@ void kOmegaSST::correct()
|
||||
- fvm::Sp(fvc::div(phi_), k_)
|
||||
- fvm::laplacian(DkEff(F1), k_)
|
||||
==
|
||||
min(G, c1*betaStar*k_*omega_)
|
||||
- fvm::Sp(betaStar*omega_, k_)
|
||||
min(G, c1_*betaStar_*k_*omega_)
|
||||
- fvm::Sp(betaStar_*omega_, k_)
|
||||
);
|
||||
|
||||
kEqn().relax();
|
||||
@ -316,7 +392,7 @@ void kOmegaSST::correct()
|
||||
|
||||
|
||||
// Re-calculate viscosity
|
||||
nut_ = a1*k_/max(a1*omega_, F2()*sqrt(S2));
|
||||
nut_ = a1_*k_/max(a1_*omega_, F2()*sqrt(S2));
|
||||
|
||||
# include "kOmegaWallViscosityI.H"
|
||||
|
||||
|
||||
@ -106,27 +106,27 @@ class kOmegaSST
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar alphaK1;
|
||||
scalar alphaK2;
|
||||
dimensionedScalar alphaK1_;
|
||||
dimensionedScalar alphaK2_;
|
||||
|
||||
scalar alphaOmega1;
|
||||
scalar alphaOmega2;
|
||||
dimensionedScalar alphaOmega1_;
|
||||
dimensionedScalar alphaOmega2_;
|
||||
|
||||
scalar gamma1;
|
||||
scalar gamma2;
|
||||
dimensionedScalar gamma1_;
|
||||
dimensionedScalar gamma2_;
|
||||
|
||||
scalar beta1;
|
||||
scalar beta2;
|
||||
dimensionedScalar beta1_;
|
||||
dimensionedScalar beta2_;
|
||||
|
||||
scalar betaStar;
|
||||
dimensionedScalar betaStar_;
|
||||
|
||||
scalar a1;
|
||||
scalar c1;
|
||||
dimensionedScalar a1_;
|
||||
dimensionedScalar c1_;
|
||||
|
||||
dimensionedScalar omega0_;
|
||||
dimensionedScalar omegaSmall_;
|
||||
|
||||
scalar Cmu;
|
||||
dimensionedScalar Cmu_;
|
||||
|
||||
wallDist y_;
|
||||
|
||||
@ -155,7 +155,7 @@ class kOmegaSST
|
||||
const volScalarField& F1
|
||||
) const
|
||||
{
|
||||
return blend(F1, alphaK1, alphaK2);
|
||||
return blend(F1, alphaK1_, alphaK2_);
|
||||
}
|
||||
|
||||
tmp<volScalarField> alphaOmega
|
||||
@ -163,7 +163,7 @@ class kOmegaSST
|
||||
const volScalarField& F1
|
||||
) const
|
||||
{
|
||||
return blend(F1, alphaOmega1, alphaOmega2);
|
||||
return blend(F1, alphaOmega1_, alphaOmega2_);
|
||||
}
|
||||
|
||||
tmp<volScalarField> beta
|
||||
@ -171,7 +171,7 @@ class kOmegaSST
|
||||
const volScalarField& F1
|
||||
) const
|
||||
{
|
||||
return blend(F1, beta1, beta2);
|
||||
return blend(F1, beta1_, beta2_);
|
||||
}
|
||||
|
||||
tmp<volScalarField> gamma
|
||||
@ -179,7 +179,7 @@ class kOmegaSST
|
||||
const volScalarField& F1
|
||||
) const
|
||||
{
|
||||
return blend(F1, gamma1, gamma2);
|
||||
return blend(F1, gamma1_, gamma2_);
|
||||
}
|
||||
|
||||
|
||||
@ -256,7 +256,7 @@ public:
|
||||
mesh_.time().timeName(),
|
||||
mesh_
|
||||
),
|
||||
betaStar*k_*omega_,
|
||||
betaStar_*k_*omega_,
|
||||
omega_.boundaryField().types()
|
||||
)
|
||||
);
|
||||
|
||||
@ -33,7 +33,7 @@ Description
|
||||
{
|
||||
labelList cellBoundaryFaceCount(omega_.size(), 0);
|
||||
|
||||
scalar Cmu25 = pow(Cmu, 0.25);
|
||||
scalar Cmu25 = pow(Cmu_.value(), 0.25);
|
||||
|
||||
const fvPatchList& patches = mesh_.boundary();
|
||||
|
||||
|
||||
@ -31,7 +31,7 @@ Description
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
{
|
||||
scalar Cmu25 = pow(Cmu, 0.25);
|
||||
scalar Cmu25 = pow(Cmu_.value(), 0.25);
|
||||
|
||||
const fvPatchList& patches = mesh_.boundary();
|
||||
|
||||
|
||||
@ -68,7 +68,7 @@ tmp<volScalarField> realizableKE::rCmu
|
||||
volScalarField As = sqrt(6.0)*cos(phis);
|
||||
volScalarField Us = sqrt(S2/2.0 + magSqr(skew(gradU)));
|
||||
|
||||
return 1.0/(A0 + As*Us*k_/(epsilon_ + epsilonSmall_));
|
||||
return 1.0/(A0_ + As*Us*k_/(epsilon_ + epsilonSmall_));
|
||||
}
|
||||
|
||||
|
||||
@ -94,14 +94,50 @@ realizableKE::realizableKE
|
||||
:
|
||||
RASmodel(typeName, U, phi, lamTransportModel),
|
||||
|
||||
|
||||
Cmu(RASmodelCoeffs_.lookupOrAddDefault<scalar>("Cmu", 0.09)),
|
||||
A0(RASmodelCoeffs_.lookupOrAddDefault<scalar>("A0", 4.0)),
|
||||
C2(RASmodelCoeffs_.lookupOrAddDefault<scalar>("C2", 1.9)),
|
||||
alphak(RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphak", 1.0)),
|
||||
alphaEps
|
||||
Cmu_
|
||||
(
|
||||
RASmodelCoeffs_.lookupOrAddDefault<scalar>("alphaEps", 0.833333)
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"Cmu",
|
||||
RASmodelCoeffs_,
|
||||
0.09
|
||||
)
|
||||
),
|
||||
A0_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"A0",
|
||||
RASmodelCoeffs_,
|
||||
4.0
|
||||
)
|
||||
),
|
||||
C2_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"C2",
|
||||
RASmodelCoeffs_,
|
||||
1.9
|
||||
)
|
||||
),
|
||||
alphak_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphak",
|
||||
RASmodelCoeffs_,
|
||||
1.0
|
||||
)
|
||||
),
|
||||
alphaEps_
|
||||
(
|
||||
dimensioned<scalar>::lookupOrAddToDict
|
||||
(
|
||||
"alphaEps",
|
||||
RASmodelCoeffs_,
|
||||
0.833333
|
||||
)
|
||||
),
|
||||
|
||||
k_
|
||||
@ -197,11 +233,11 @@ bool realizableKE::read()
|
||||
{
|
||||
if (RASmodel::read())
|
||||
{
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("Cmu", Cmu);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("A0", A0);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("C2", C2);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphak", alphak);
|
||||
RASmodelCoeffs_.readIfPresent<scalar>("alphaEps", alphaEps);
|
||||
Cmu_.readIfPresent(RASmodelCoeffs_);
|
||||
A0_.readIfPresent(RASmodelCoeffs_);
|
||||
C2_.readIfPresent(RASmodelCoeffs_);
|
||||
alphak_.readIfPresent(RASmodelCoeffs_);
|
||||
alphaEps_.readIfPresent(RASmodelCoeffs_);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -246,7 +282,7 @@ void realizableKE::correct()
|
||||
C1*magS*epsilon_
|
||||
- fvm::Sp
|
||||
(
|
||||
C2*epsilon_/(k_ + sqrt(nu()*epsilon_)),
|
||||
C2_*epsilon_/(k_ + sqrt(nu()*epsilon_)),
|
||||
epsilon_
|
||||
)
|
||||
);
|
||||
|
||||
@ -81,11 +81,11 @@ class realizableKE
|
||||
{
|
||||
// Private data
|
||||
|
||||
scalar Cmu;
|
||||
scalar A0;
|
||||
scalar C2;
|
||||
scalar alphak;
|
||||
scalar alphaEps;
|
||||
dimensionedScalar Cmu_;
|
||||
dimensionedScalar A0_;
|
||||
dimensionedScalar C2_;
|
||||
dimensionedScalar alphak_;
|
||||
dimensionedScalar alphaEps_;
|
||||
|
||||
volScalarField k_;
|
||||
volScalarField epsilon_;
|
||||
@ -138,7 +138,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DkEff", alphak*nut_ + nu())
|
||||
new volScalarField("DkEff", alphak_*nut_ + nu())
|
||||
);
|
||||
}
|
||||
|
||||
@ -147,7 +147,7 @@ public:
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
new volScalarField("DepsilonEff", alphaEps*nut_ + nu())
|
||||
new volScalarField("DepsilonEff", alphaEps_*nut_ + nu())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -26,7 +26,7 @@ Global
|
||||
nonLinearwallFunctions
|
||||
|
||||
Description
|
||||
Calculate wall generation and dissipation from wall-functions
|
||||
Calculate wall generation and dissipation from wall-functions
|
||||
for non-linear models.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
@ -73,8 +73,8 @@ Description
|
||||
label faceCelli = curPatch.faceCells()[facei];
|
||||
|
||||
//- using local Cmu !
|
||||
scalar Cmu25 = pow(Cmu[faceCelli], 0.25);
|
||||
scalar Cmu75 = pow(Cmu[faceCelli], 0.75);
|
||||
scalar Cmu25 = pow(Cmu_[faceCelli], 0.25);
|
||||
scalar Cmu75 = pow(Cmu_[faceCelli], 0.75);
|
||||
|
||||
scalar yPlus =
|
||||
Cmu25*y_[patchi][facei]
|
||||
@ -98,7 +98,7 @@ Description
|
||||
*magFaceGradU[facei]
|
||||
*Cmu25*sqrt(k_[faceCelli])
|
||||
/(kappa_*y_[patchi][facei])
|
||||
- (nonlinearStress[faceCelli] && gradU[faceCelli]);
|
||||
- (nonlinearStress_[faceCelli] && gradU_[faceCelli]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -33,8 +33,8 @@ Description
|
||||
{
|
||||
labelList cellBoundaryFaceCount(epsilon_.size(), 0);
|
||||
|
||||
scalar Cmu25 = pow(Cmu, 0.25);
|
||||
scalar Cmu75 = pow(Cmu, 0.75);
|
||||
scalar Cmu25 = pow(Cmu_.value(), 0.25);
|
||||
scalar Cmu75 = pow(Cmu_.value(), 0.75);
|
||||
|
||||
const fvPatchList& patches = mesh_.boundary();
|
||||
|
||||
|
||||
@ -47,7 +47,7 @@ Description
|
||||
label faceCelli = curPatch.faceCells()[facei];
|
||||
|
||||
//- Using local Cmu
|
||||
scalar Cmu25 = pow(Cmu[faceCelli], 0.25);
|
||||
scalar Cmu25 = pow(Cmu_[faceCelli], 0.25);
|
||||
|
||||
scalar yPlus =
|
||||
Cmu25*y_[patchi][facei]*sqrt(k_[faceCelli])/nuw[facei];
|
||||
|
||||
@ -31,7 +31,7 @@ Description
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
{
|
||||
scalar Cmu25 = pow(Cmu, 0.25);
|
||||
scalar Cmu25 = pow(Cmu_.value(), 0.25);
|
||||
|
||||
const fvPatchList& patches = mesh_.boundary();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user