Merge commit 'origin/master' into olesenm

This commit is contained in:
Mark Olesen
2008-06-20 08:55:23 +02:00
94 changed files with 2885 additions and 1149 deletions

View File

@ -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;
}

View File

@ -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

View File

@ -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&);

View File

@ -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>

View File

@ -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

View 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;
}

View File

@ -61,8 +61,8 @@ class powerLaw
dimensionedScalar k_;
dimensionedScalar n_;
dimensionedScalar numin_;
dimensionedScalar numax_;
dimensionedScalar nuMin_;
dimensionedScalar nuMax_;
volScalarField nu_;

View File

@ -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;
}

View File

@ -75,8 +75,8 @@ class DeardorffDiffStress
{
// Private data
scalar ck_;
scalar cm_;
dimensionedScalar ck_;
dimensionedScalar cm_;
// Private Member Functions

View File

@ -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;
}

View File

@ -68,7 +68,7 @@ class GenEddyVisc
protected:
scalar ce_;
dimensionedScalar ce_;
volScalarField k_;
volScalarField muSgs_;

View File

@ -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;
}

View File

@ -69,7 +69,7 @@ class GenSGSStress
protected:
scalar ce_;
dimensionedScalar ce_;
volSymmTensorField B_;
volScalarField muSgs_;

View File

@ -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;
}

View File

@ -71,7 +71,7 @@ class Smagorinsky
{
// Private data
scalar ck_;
dimensionedScalar ck_;
// Private Member Functions

View File

@ -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;
}

View File

@ -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

View File

@ -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;
}

View File

@ -72,8 +72,8 @@ class lowReOneEqEddy
{
// Private data
scalar ck_;
scalar beta_;
dimensionedScalar ck_;
dimensionedScalar beta_;
// Private Member Functions

View File

@ -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;
}

View File

@ -75,7 +75,7 @@ class oneEqEddy
{
// Private data
scalar ck_;
dimensionedScalar ck_;
// Private Member Functions

View File

@ -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;
}

View File

@ -75,8 +75,8 @@ class DeardorffDiffStress
{
// Private data
scalar ck_;
scalar cm_;
dimensionedScalar ck_;
dimensionedScalar cm_;
// Private Member Functions

View File

@ -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;
}

View File

@ -68,7 +68,7 @@ class GenEddyVisc
protected:
scalar ce_;
dimensionedScalar ce_;
volScalarField nuSgs_;

View File

@ -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_

View File

@ -69,9 +69,9 @@ class GenSGSStress
protected:
scalar ce_;
dimensionedScalar ce_;
scalar couplingFactor_;
dimensionedScalar couplingFactor_;
volSymmTensorField B_;
volScalarField nuSgs_;

View File

@ -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;
}

View File

@ -73,9 +73,9 @@ class LRRDiffStress
{
// Private data
scalar ck_;
scalar c1_;
scalar c2_;
dimensionedScalar ck_;
dimensionedScalar c1_;
dimensionedScalar c2_;
// Private Member Functions

View File

@ -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;
}

View File

@ -72,7 +72,7 @@ class Smagorinsky
{
// Private data
scalar ck_;
dimensionedScalar ck_;
// Private Member Functions

View File

@ -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;
}

View File

@ -71,7 +71,7 @@ class Smagorinsky2
{
// Private data
scalar cD2_;
dimensionedScalar cD2_;
// Private Member Functions

View File

@ -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;
}

View File

@ -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

View File

@ -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;
}

View File

@ -78,7 +78,7 @@ class oneEqEddy
volScalarField k_;
scalar ck_;
dimensionedScalar ck_;
// Private Member Functions

View File

@ -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;
}

View File

@ -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

View File

@ -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"

View File

@ -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())
);
}

View File

@ -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"

View File

@ -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())
);
}

View File

@ -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_;
}

View File

@ -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())
);
}

View File

@ -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"

View File

@ -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())
);
}

View File

@ -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();

View File

@ -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())
);
}

View File

@ -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"

View File

@ -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())
);
}

View File

@ -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"

View File

@ -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()
)
);

View File

@ -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();

View File

@ -31,7 +31,7 @@ Description
\*---------------------------------------------------------------------------*/
{
scalar Cmu25 = pow(Cmu, 0.25);
scalar Cmu25 = pow(Cmu_.value(), 0.25);
const fvPatchList& patches = mesh_.boundary();

View File

@ -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_
)
);

View File

@ -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())
);
}

View File

@ -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();

View File

@ -31,7 +31,7 @@ Description
\*---------------------------------------------------------------------------*/
{
scalar Cmu25 = pow(Cmu, 0.25);
scalar Cmu25 = pow(Cmu_.value(), 0.25);
const fvPatchList& patches = mesh_.boundary();

View File

@ -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"

View File

@ -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())
);
}

View File

@ -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_;
}

View File

@ -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())
);
}

View File

@ -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"

View File

@ -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())
);
}

View File

@ -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_;
}

View File

@ -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())
);
}

View File

@ -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_)
)
);
}

View File

@ -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())
);
}

View File

@ -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_
);
}

View File

@ -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())
);
}

View File

@ -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]));
}
}

View File

@ -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_)
)
);
}

View File

@ -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())
);
}

View File

@ -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_;
}

View File

@ -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())
);
}

View File

@ -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"

View File

@ -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())
);
}

View File

@ -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();

View File

@ -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_;

View File

@ -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"

View File

@ -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())
);
}

View File

@ -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"

View File

@ -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()
)
);

View File

@ -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();

View File

@ -31,7 +31,7 @@ Description
\*---------------------------------------------------------------------------*/
{
scalar Cmu25 = pow(Cmu, 0.25);
scalar Cmu25 = pow(Cmu_.value(), 0.25);
const fvPatchList& patches = mesh_.boundary();

View File

@ -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_
)
);

View File

@ -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())
);
}

View File

@ -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]);
}
}
}

View File

@ -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();

View File

@ -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];

View File

@ -31,7 +31,7 @@ Description
\*---------------------------------------------------------------------------*/
{
scalar Cmu25 = pow(Cmu, 0.25);
scalar Cmu25 = pow(Cmu_.value(), 0.25);
const fvPatchList& patches = mesh_.boundary();