Vanilla backport

-in turbulenceModels
backported alphat() member function
backported rhoEpsilonEff() memberfunction
backported to constructor sigature to allow derivation of classes
backported member functions for compatibility with FOs
allow mutkWallFunction to work with LES
This commit is contained in:
Henrik Rusche 2017-04-20 08:20:10 +02:00
parent 34d4a30be7
commit 08a7e2e03b
118 changed files with 629 additions and 338 deletions

View file

@ -125,11 +125,6 @@ public:
// Member Functions
tmp<volScalarField> mut() const
{
return mut_;
}
//- Return the effective diffusivity for k
tmp<volScalarField> DkEff() const
{
@ -148,6 +143,18 @@ public:
);
}
//- Return the turbulence viscosity
virtual tmp<volScalarField> mut() const
{
return mut_;
}
//- Return the turbulence thermal diffusivity
virtual tmp<volScalarField> alphat() const
{
return alphat_;
}
//- Return the effective turbulent thermal diffusivity
tmp<volScalarField> alphaEff() const
{

View file

@ -125,7 +125,7 @@ int main(int argc, char *argv[])
// Set all times on processor meshes equal to reconstructed mesh
forAll (databases, procI)
{
databases[procI].setTime(runTime);
databases[procI].setTime(runTime, runTime.timeIndex());
}
// Read all meshes and addressing to reconstructed mesh

View file

@ -132,7 +132,7 @@ int main(int argc, char *argv[])
{
Info<< "Reading database for processor " << procI << endl;
databases[procI].setTime(runTime.timeName(), runTime.timeIndex());
databases[procI].setTime(runTime, runTime.timeIndex());
}
// Read all meshes and addressing to reconstructed mesh

View file

@ -60,11 +60,13 @@ DeardorffDiffStress::DeardorffDiffStress
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, rho, U, phi, thermoPhysicalModel),
GenSGSStress(rho, U, phi, thermoPhysicalModel),
LESModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
GenSGSStress(rho, U, phi, thermophysicalModel),
ck_
(

View file

@ -101,7 +101,9 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -58,10 +58,11 @@ LESModel::LESModel
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName
)
:
turbulenceModel(rho, U, phi, thermoPhysicalModel),
turbulenceModel(rho, U, phi, thermoPhysicalModel, turbulenceModelName),
IOdictionary
(
@ -97,7 +98,8 @@ autoPtr<LESModel> LESModel::New
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName
)
{
word modelName;
@ -139,7 +141,10 @@ autoPtr<LESModel> LESModel::New
<< exit(FatalError);
}
return autoPtr<LESModel>(cstrIter()(rho, U, phi, thermoPhysicalModel));
return autoPtr<LESModel>
(
cstrIter()(rho, U, phi, thermoPhysicalModel, turbulenceModelName)
);
}
@ -147,6 +152,7 @@ autoPtr<LESModel> LESModel::New
void LESModel::correct(const tmp<volTensorField>&)
{
turbulenceModel::correct();
delta_().correct();
}
@ -159,7 +165,20 @@ void LESModel::correct()
bool LESModel::read()
{
if (regIOobject::read())
// Bit of trickery : we are both IOdictionary ('RASProperties') and
// an regIOobject (from the turbulenceModel). Problem is to distinguish
// between the two - we only want to reread the IOdictionary.
bool ok = IOdictionary::readData
(
IOdictionary::readStream
(
IOdictionary::type()
)
);
IOdictionary::close();
if (ok)
{
if (const dictionary* dictPtr = subDictPtr(type() + "Coeffs"))
{

View file

@ -121,9 +121,10 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName
),
(rho, U, phi, thermoPhysicalModel)
(rho, U, phi, thermoPhysicalModel, turbulenceModelName)
);
@ -136,19 +137,21 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
);
// Selectors
//- Return a reference to the selected LES model
static autoPtr<compressible::LESModel> New
static autoPtr<LESModel> New
(
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
);

View file

@ -68,11 +68,13 @@ Smagorinsky::Smagorinsky
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, rho, U, phi, thermoPhysicalModel),
GenEddyVisc(rho, U, phi, thermoPhysicalModel),
LESModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
GenEddyVisc(rho, U, phi, thermophysicalModel),
ck_
(

View file

@ -96,7 +96,9 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -106,10 +106,12 @@ SpalartAllmaras::SpalartAllmaras
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, rho, U, phi, thermoPhysicalModel),
LESModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
sigmaNut_
(

View file

@ -111,7 +111,9 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -90,11 +90,13 @@ dynOneEqEddy::dynOneEqEddy
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, rho, U, phi, thermoPhysicalModel),
GenEddyVisc(rho, U, phi, thermoPhysicalModel),
LESModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
GenEddyVisc(rho, U, phi, thermophysicalModel),
filterPtr_(LESfilter::New(U.mesh(), coeffDict())),
filter_(filterPtr_())

View file

@ -107,7 +107,9 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -63,11 +63,13 @@ lowReOneEqEddy::lowReOneEqEddy
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, rho, U, phi, thermoPhysicalModel),
GenEddyVisc(rho, U, phi, thermoPhysicalModel),
LESModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
GenEddyVisc(rho, U, phi, thermophysicalModel),
ck_
(

View file

@ -98,7 +98,9 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -59,11 +59,13 @@ oneEqEddy::oneEqEddy
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, rho, U, phi, thermoPhysicalModel),
GenEddyVisc(rho, U, phi, thermoPhysicalModel),
LESModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
GenEddyVisc(rho, U, phi, thermophysicalModel),
ck_
(

View file

@ -101,7 +101,9 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -49,10 +49,12 @@ LRR::LRR
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, rho, U, phi, thermophysicalModel),
RASModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
Cmu_
(

View file

@ -117,7 +117,9 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -49,10 +49,12 @@ LaunderGibsonRSTM::LaunderGibsonRSTM
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, rho, U, phi, thermophysicalModel),
RASModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
Cmu_
(

View file

@ -126,7 +126,9 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -65,10 +65,12 @@ LaunderSharmaKE::LaunderSharmaKE
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, rho, U, phi, thermophysicalModel),
RASModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
Cmu_
(

View file

@ -110,7 +110,9 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -58,10 +58,11 @@ RASModel::RASModel
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName
)
:
turbulenceModel(rho, U, phi, thermophysicalModel),
turbulenceModel(rho, U, phi, thermophysicalModel, turbulenceModelName),
IOdictionary
(
@ -84,9 +85,7 @@ RASModel::RASModel
epsilonSmall_("epsilonSmall", epsilon0_.dimensions(), SMALL),
omega0_("omega0", dimless/dimTime, SMALL),
omegaSmall_("omegaSmall", omega0_.dimensions(), SMALL),
muRatio_(lookupOrDefault<scalar>("muRatio", 1e6)),
y_(mesh_)
muRatio_(lookupOrDefault<scalar>("muRatio", 1e6))
{
// Force the construction of the mesh deltaCoeffs which may be needed
// for the construction of the derived models and BCs
@ -101,7 +100,8 @@ autoPtr<RASModel> RASModel::New
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName
)
{
word modelName;
@ -146,26 +146,13 @@ autoPtr<RASModel> RASModel::New
return autoPtr<RASModel>
(
cstrIter()(rho, U, phi, thermophysicalModel)
cstrIter()(rho, U, phi, thermophysicalModel, turbulenceModelName)
);
}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
scalar RASModel::yPlusLam(const scalar kappa, const scalar E) const
{
scalar ypl = 11.0;
for (int i=0; i<10; i++)
{
ypl = log(E*ypl)/kappa;
}
return ypl;
}
tmp<volScalarField> RASModel::muEff() const
{
tmp<volScalarField> tmuEff
@ -181,50 +168,30 @@ tmp<volScalarField> RASModel::muEff() const
}
tmp<scalarField> RASModel::yPlus(const label patchNo, const scalar Cmu) const
{
const fvPatch& curPatch = mesh_.boundary()[patchNo];
tmp<scalarField> tYp(new scalarField(curPatch.size()));
scalarField& Yp = tYp();
if (curPatch.isWall())
{
Yp = pow(Cmu, 0.25)
*y_[patchNo]
*sqrt(k()().boundaryField()[patchNo].patchInternalField())
/(
mu().boundaryField()[patchNo].patchInternalField()
/rho_.boundaryField()[patchNo]
);
}
else
{
WarningIn
(
"tmp<scalarField> RASModel::yPlus(const label patchNo) const"
) << "Patch " << patchNo << " is not a wall. Returning null field"
<< nl << endl;
Yp.setSize(0);
}
return tYp;
}
void RASModel::correct()
{
if (mesh_.changing())
{
y_.correct();
}
turbulenceModel::correct();
}
bool RASModel::read()
{
if (regIOobject::read())
//if (regIOobject::read())
// Bit of trickery : we are both IOdictionary ('RASProperties') and
// an regIOobject from the turbulenceModel level. Problem is to distinguish
// between the two - we only want to reread the IOdictionary.
bool ok = IOdictionary::readData
(
IOdictionary::readStream
(
IOdictionary::type()
)
);
IOdictionary::close();
if (ok)
{
lookup("turbulence") >> turbulence_;

View file

@ -88,9 +88,6 @@ protected:
//- Model coefficients dictionary
dictionary coeffDict_;
//- Value of y+ at the edge of the laminar sublayer
scalar yPlusLam_;
//- Lower limit of k
dimensionedScalar k0_;
@ -109,9 +106,6 @@ protected:
//- Laminar to turbulent viscosity ratio
scalar muRatio_;
//- Near wall distance boundary field
nearWallDist y_;
// Protected member functions
@ -148,9 +142,10 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName
),
(rho, U, phi, thermoPhysicalModel)
(rho, U, phi, thermoPhysicalModel, turbulenceModelName)
);
#endif
@ -163,19 +158,21 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
);
// Selectors
//- Return a reference to the selected turbulence model
static autoPtr<compressible::RASModel> New
static autoPtr<RASModel> New
(
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
);
@ -264,15 +261,6 @@ public:
return muRatio_;
}
//- Return the near wall distances
const nearWallDist& y() const
{
return y_;
}
//- Calculate y+ at the edge of the laminar sublayer
scalar yPlusLam(const scalar kappa, const scalar E) const;
//- Const access to the coefficients dictionary
const dictionary& coeffDict() const
{
@ -310,13 +298,6 @@ public:
//- Return the source term for the momentum equation
virtual tmp<fvVectorMatrix> divDevRhoReff() const = 0;
//- Return yPlus for the given patch
virtual tmp<scalarField> yPlus
(
const label patchI,
const scalar Cmu
) const;
//- Solve the turbulence equations and correct the turbulence viscosity
virtual void correct() = 0;

View file

@ -49,10 +49,12 @@ RNGkEpsilon::RNGkEpsilon
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, rho, U, phi, thermophysicalModel),
RASModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
Cmu_
(

View file

@ -106,7 +106,9 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -109,10 +109,12 @@ SpalartAllmaras::SpalartAllmaras
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, rho, U, phi, thermophysicalModel),
RASModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
sigmaNut_
(

View file

@ -147,7 +147,9 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -73,15 +73,16 @@ scalar mutkWallFunctionFvPatchScalarField::calcYPlusLam
tmp<scalarField> mutkWallFunctionFvPatchScalarField::calcMut() const
{
const label patchI = patch().index();
const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
const scalarField& y = rasModel.y()[patchI];
const scalarField& rhow = rasModel.rho().boundaryField()[patchI];
const tmp<volScalarField> tk = rasModel.k();
const label patchi = patch().index();
const turbulenceModel& turbModel =
db().lookupObject<turbulenceModel>("turbulenceModel");
const scalarField& y = turbModel.y()[patchi];
const scalarField& rhow = turbModel.rho().boundaryField()[patchi];
const tmp<volScalarField> tk = turbModel.k();
const volScalarField& k = tk();
const scalarField& muw = rasModel.mu().boundaryField()[patchI];
const scalarField& muw = turbModel.mu().boundaryField()[patchi];
const scalar Cmu25 = pow(Cmu_, 0.25);
const scalar Cmu25 = pow025(Cmu_);
tmp<scalarField> tmutw(new scalarField(patch().size(), 0.0));
scalarField& mutw = tmutw();
@ -202,18 +203,19 @@ void mutkWallFunctionFvPatchScalarField::updateCoeffs()
tmp<scalarField> mutkWallFunctionFvPatchScalarField::yPlus() const
{
const label patchI = patch().index();
const label patchi = patch().index();
const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
const scalarField& y = rasModel.y()[patchI];
const turbulenceModel& turbModel =
db().lookupObject<turbulenceModel>("turbulenceModel");
const scalarField& y = turbModel.y()[patchi];
const tmp<volScalarField> tk = rasModel.k();
const tmp<volScalarField> tk = turbModel.k();
const volScalarField& k = tk();
const scalarField kwc = k.boundaryField()[patchI].patchInternalField();
const scalarField& muw = rasModel.mu().boundaryField()[patchI];
const scalarField& rhow = rasModel.rho().boundaryField()[patchI];
const scalarField kwc(k.boundaryField()[patchi].patchInternalField());
const scalarField& muw = turbModel.mu().boundaryField()[patchi];
const scalarField& rhow = turbModel.rho().boundaryField()[patchi];
return pow(Cmu_, 0.25)*y*sqrt(kwc)/(muw/rhow);
return pow025(Cmu_)*y*sqrt(kwc)/(muw/rhow);
}

View file

@ -49,10 +49,12 @@ kEpsilon::kEpsilon
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, rho, U, phi, thermophysicalModel),
RASModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
Cmu_
(

View file

@ -102,7 +102,9 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -117,10 +117,12 @@ kOmegaSST::kOmegaSST
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, rho, U, phi, thermophysicalModel),
RASModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
alphaK1_
(

View file

@ -210,7 +210,9 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -47,10 +47,12 @@ laminar::laminar
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, rho, U, phi, thermophysicalModel)
RASModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName)
{}

View file

@ -68,7 +68,9 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -90,10 +90,12 @@ realizableKE::realizableKE
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, rho, U, phi, thermophysicalModel),
RASModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
Cmu_
(

View file

@ -123,7 +123,9 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -51,10 +51,11 @@ laminar::laminar
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName
)
:
turbulenceModel(rho, U, phi, thermophysicalModel)
turbulenceModel(rho, U, phi, thermophysicalModel, turbulenceModelName)
{}
@ -65,10 +66,14 @@ autoPtr<laminar> laminar::New
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName
)
{
return autoPtr<laminar>(new laminar(rho, U, phi, thermophysicalModel));
return autoPtr<laminar>
(
new laminar(rho, U, phi, thermophysicalModel, turbulenceModelName)
);
}
@ -229,7 +234,7 @@ void laminar::correct()
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace incompressible
} // End namespace compressible
} // End namespace Foam
// ************************************************************************* //

View file

@ -66,7 +66,8 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
);
@ -78,7 +79,8 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
);
@ -134,7 +136,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace incompressible
} // End namespace compressible
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View file

@ -50,6 +50,7 @@ SourceFiles
#include "surfaceFieldsFwd.H"
#include "fvMatricesFwd.H"
#include "basicThermo.H"
#include "nearWallDist.H"
#include "autoPtr.H"
#include "runTimeSelectionTables.H"
@ -69,6 +70,8 @@ namespace compressible
\*---------------------------------------------------------------------------*/
class turbulenceModel
:
public regIOobject
{
protected:
@ -84,6 +87,9 @@ protected:
const basicThermo& thermophysicalModel_;
//- Near wall distance boundary field
nearWallDist y_;
private:
@ -114,9 +120,10 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName
),
(rho, U, phi, thermoPhysicalModel)
(rho, U, phi, thermoPhysicalModel, turbulenceModelName)
);
#endif
@ -129,19 +136,21 @@ public:
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName = typeName
);
// Selectors
//- Return a reference to the selected turbulence model
static autoPtr<compressible::turbulenceModel> New
static autoPtr<turbulenceModel> New
(
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName = typeName
);
@ -176,6 +185,15 @@ public:
return thermophysicalModel_;
}
//- Return the near wall distances
const nearWallDist& y() const
{
return y_;
}
//- Calculate y+ at the edge of the laminar sublayer
scalar yPlusLam(const scalar kappa, const scalar E) const;
//- Return the laminar viscosity
const volScalarField& mu() const
{
@ -224,6 +242,13 @@ public:
//- Read turbulenceProperties dictionary
virtual bool read() = 0;
//- Default dummy write function
virtual bool writeData(Ostream&) const
{
return true;
}
};

View file

@ -55,10 +55,12 @@ DeardorffDiffStress::DeardorffDiffStress
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, U, phi, transport),
LESModel(modelName, U, phi, transport, turbulenceModelName),
GenSGSStress(U, phi, transport),
ck_

View file

@ -100,7 +100,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -57,10 +57,11 @@ LESModel::LESModel
const word& type,
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& lamTransportModel
transportModel& transport,
const word& turbulenceModelName
)
:
turbulenceModel(U, phi, lamTransportModel),
turbulenceModel(U, phi, transport, turbulenceModelName),
IOdictionary
(
@ -69,7 +70,7 @@ LESModel::LESModel
"LESProperties",
U.time().constant(),
U.db(),
IOobject::MUST_READ,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
),
@ -94,7 +95,8 @@ autoPtr<LESModel> LESModel::New
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName
)
{
word modelName;
@ -110,8 +112,9 @@ autoPtr<LESModel> LESModel::New
"LESProperties",
U.time().constant(),
U.db(),
IOobject::MUST_READ,
IOobject::NO_WRITE
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
);
@ -136,7 +139,10 @@ autoPtr<LESModel> LESModel::New
<< exit(FatalError);
}
return autoPtr<LESModel>(cstrIter()(U, phi, transport));
return autoPtr<LESModel>
(
cstrIter()(U, phi, transport, turbulenceModelName)
);
}
@ -157,7 +163,22 @@ void LESModel::correct()
bool LESModel::read()
{
if (regIOobject::read())
//if (regIOobject::read())
// Bit of trickery : we are both IOdictionary ('RASProperties') and
// an regIOobject from the turbulenceModel level. Problem is to distinguish
// between the two - we only want to reread the IOdictionary.
bool ok = IOdictionary::readData
(
IOdictionary::readStream
(
IOdictionary::type()
)
);
IOdictionary::close();
if (ok)
{
if (const dictionary* dictPtr = subDictPtr(type() + "Coeffs"))
{

View file

@ -120,9 +120,10 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& lamTransportModel
transportModel& transport,
const word& turbulenceModelName
),
(U, phi, lamTransportModel)
(U, phi, transport, turbulenceModelName)
);
@ -134,7 +135,8 @@ public:
const word& type,
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& lamTransportModel
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName
);
@ -145,7 +147,8 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& lamTransportModel
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName
);

View file

@ -55,10 +55,12 @@ LRRDiffStress::LRRDiffStress
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, U, phi, transport),
LESModel(modelName, U, phi, transport, turbulenceModelName),
GenSGSStress(U, phi, transport),
ck_

View file

@ -99,7 +99,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -55,10 +55,12 @@ Smagorinsky::Smagorinsky
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, U, phi, transport),
LESModel(modelName, U, phi, transport, turbulenceModelName),
GenEddyVisc(U, phi, transport),
ck_

View file

@ -96,7 +96,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -46,10 +46,12 @@ Smagorinsky2::Smagorinsky2
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, U, phi, transport),
LESModel(modelName, U, phi, transport, turbulenceModelName),
Smagorinsky(U, phi, transport),
cD2_

View file

@ -93,7 +93,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -149,10 +149,11 @@ SpalartAllmaras::SpalartAllmaras
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(modelName, U, phi, transport),
LESModel(modelName, U, phi, transport, turbulenceModelName),
sigmaNut_
(

View file

@ -138,6 +138,7 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -93,10 +93,12 @@ SpalartAllmarasDDES::SpalartAllmarasDDES
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
SpalartAllmaras(U, phi, transport, typeName)
SpalartAllmaras(U, phi, transport, turbulenceModelName, modelName)
{}

View file

@ -95,7 +95,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -143,10 +143,12 @@ SpalartAllmarasIDDES::SpalartAllmarasIDDES
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
SpalartAllmaras(U, phi, transport, typeName),
SpalartAllmaras(U, phi, transport, turbulenceModelName, modelName),
fwStar_
(

View file

@ -104,7 +104,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -46,10 +46,12 @@ dynMixedSmagorinsky::dynMixedSmagorinsky
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, U, phi, transport),
LESModel(modelName, U, phi, transport, turbulenceModelName),
scaleSimilarity(U, phi, transport),
dynSmagorinsky(U, phi, transport)
{

View file

@ -99,7 +99,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -104,10 +104,12 @@ dynOneEqEddy::dynOneEqEddy
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, U, phi, transport),
LESModel(modelName, U, phi, transport, turbulenceModelName),
GenEddyVisc(U, phi, transport),
k_

View file

@ -110,7 +110,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -95,10 +95,12 @@ dynSmagorinsky::dynSmagorinsky
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, U, phi, transport),
LESModel(modelName, U, phi, transport, turbulenceModelName),
GenEddyVisc(U, phi, transport),
k_

View file

@ -119,7 +119,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -121,6 +121,7 @@ kOmegaSSTSAS::kOmegaSSTSAS
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:

View file

@ -184,6 +184,7 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -47,10 +47,12 @@ laminar::laminar
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, U, phi, transport)
LESModel(modelName, U, phi, transport, turbulenceModelName)
{}

View file

@ -76,7 +76,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -95,10 +95,12 @@ locDynOneEqEddy::locDynOneEqEddy
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, U, phi, transport),
LESModel(modelName, U, phi, transport, turbulenceModelName),
GenEddyVisc(U, phi, transport),
k_

View file

@ -132,7 +132,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -46,10 +46,12 @@ mixedSmagorinsky::mixedSmagorinsky
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, U, phi, transport),
LESModel(modelName, U, phi, transport, turbulenceModelName),
scaleSimilarity(U, phi, transport),
Smagorinsky(U, phi, transport)
{

View file

@ -99,7 +99,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -56,10 +56,12 @@ oneEqEddy::oneEqEddy
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, U, phi, transport),
LESModel(modelName, U, phi, transport, turbulenceModelName),
GenEddyVisc(U, phi, transport),
k_

View file

@ -102,7 +102,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -65,10 +65,12 @@ spectEddyVisc::spectEddyVisc
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, U, phi, transport),
LESModel(modelName, U, phi, transport, turbulenceModelName),
GenEddyVisc(U, phi, transport),

View file

@ -104,7 +104,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -48,10 +48,12 @@ LRR::LRR
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& lamTransportModel
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, U, phi, lamTransportModel),
RASModel(modelName, U, phi, transport, turbulenceModelName),
Cmu_
(

View file

@ -109,7 +109,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -48,10 +48,12 @@ LamBremhorstKE::LamBremhorstKE
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& lamTransportModel
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, U, phi, lamTransportModel),
RASModel(modelName, U, phi, transport, turbulenceModelName),
Cmu_
(

View file

@ -86,7 +86,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -48,10 +48,12 @@ LaunderGibsonRSTM::LaunderGibsonRSTM
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& lamTransportModel
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, U, phi, lamTransportModel),
RASModel(modelName, U, phi, transport, turbulenceModelName),
Cmu_
(

View file

@ -120,7 +120,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -64,10 +64,12 @@ LaunderSharmaKE::LaunderSharmaKE
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& lamTransportModel
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, U, phi, lamTransportModel),
RASModel(modelName, U, phi, transport, turbulenceModelName),
Cmu_
(

View file

@ -102,7 +102,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -48,10 +48,12 @@ LienCubicKE::LienCubicKE
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& lamTransportModel
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, U, phi, lamTransportModel),
RASModel(modelName, U, phi, transport, turbulenceModelName),
C1_
(

View file

@ -119,7 +119,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -49,10 +49,12 @@ LienCubicKELowRe::LienCubicKELowRe
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& lamTransportModel
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, U, phi, lamTransportModel),
RASModel(modelName, U, phi, transport, turbulenceModelName),
C1_
(

View file

@ -125,7 +125,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -49,10 +49,12 @@ LienLeschzinerLowRe::LienLeschzinerLowRe
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& lamTransportModel
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, U, phi, lamTransportModel),
RASModel(modelName, U, phi, transport, turbulenceModelName),
C1_
(

View file

@ -95,7 +95,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -47,10 +47,12 @@ NonlinearKEShih::NonlinearKEShih
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& lamTransportModel
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, U, phi, lamTransportModel),
RASModel(modelName, U, phi, transport, turbulenceModelName),
C1_
(

View file

@ -101,7 +101,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -57,10 +57,11 @@ RASModel::RASModel
const word& type,
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& lamTransportModel
transportModel& transport,
const word& turbulenceModelName
)
:
turbulenceModel(U, phi, lamTransportModel),
turbulenceModel(U, phi, transport, turbulenceModelName),
IOdictionary
(
@ -69,7 +70,7 @@ RASModel::RASModel
"RASProperties",
U.time().constant(),
U.db(),
IOobject::MUST_READ,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
),
@ -83,9 +84,7 @@ RASModel::RASModel
epsilonSmall_("epsilonSmall", epsilon0_.dimensions(), SMALL),
omega0_("omega0", dimless/dimTime, SMALL),
omegaSmall_("omegaSmall", omega0_.dimensions(), SMALL),
nuRatio_(lookupOrDefault<scalar>("nuRatio", 1e6)),
y_(mesh_)
nuRatio_(lookupOrDefault<scalar>("nuRatio", 1e6))
{
// Force the construction of the mesh deltaCoeffs which may be needed
// for the construction of the derived models and BCs
@ -99,7 +98,8 @@ autoPtr<RASModel> RASModel::New
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName
)
{
word modelName;
@ -141,7 +141,10 @@ autoPtr<RASModel> RASModel::New
<< exit(FatalError);
}
return autoPtr<RASModel>(cstrIter()(U, phi, transport));
return autoPtr<RASModel>
(
cstrIter()(U, phi, transport, turbulenceModelName)
);
}
@ -208,17 +211,27 @@ tmp<scalarField> RASModel::yPlus(const label patchNo, const scalar Cmu) const
void RASModel::correct()
{
turbulenceModel::correct();
if (turbulence_ && mesh_.changing())
{
y_.correct();
}
}
bool RASModel::read()
{
if (regIOobject::read())
//if (regIOobject::read())
// Bit of trickery : we are both IOdictionary ('RASProperties') and
// an regIOobject from the turbulenceModel level. Problem is to distinguish
// between the two - we only want to reread the IOdictionary.
bool ok = IOdictionary::readData
(
IOdictionary::readStream
(
IOdictionary::type()
)
);
IOdictionary::close();
if (ok)
{
lookup("turbulence") >> turbulence_;

View file

@ -44,7 +44,6 @@ SourceFiles
#include "incompressible/turbulenceModel/turbulenceModel.H"
#include "volFields.H"
#include "surfaceFields.H"
#include "nearWallDist.H"
#include "fvm.H"
#include "fvc.H"
#include "fvMatrices.H"
@ -103,9 +102,6 @@ protected:
//- Laminar to turbulent viscosity ratio
scalar nuRatio_;
//- Near wall distance boundary field
nearWallDist y_;
// Protected member functions
@ -140,9 +136,10 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& lamTransportModel
transportModel& transport,
const word& turbulenceModelName
),
(U, phi, lamTransportModel)
(U, phi, transport, turbulenceModelName)
);
@ -154,18 +151,20 @@ public:
const word& type,
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& lamTransportModel
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName
);
// Selectors
//- Return a reference to the selected RAS model
static autoPtr<incompressible::RASModel> New
static autoPtr<RASModel> New
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& lamTransportModel
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName
);

View file

@ -48,10 +48,12 @@ RNGkEpsilon::RNGkEpsilon
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& lamTransportModel
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, U, phi, lamTransportModel),
RASModel(modelName, U, phi, transport, turbulenceModelName),
Cmu_
(

View file

@ -100,7 +100,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -109,10 +109,12 @@ SpalartAllmaras::SpalartAllmaras
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& lamTransportModel
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, U, phi, lamTransportModel),
RASModel(modelName, U, phi, transport, turbulenceModelName),
sigmaNut_
(

View file

@ -144,7 +144,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -49,10 +49,12 @@ coupledKEpsilon::coupledKEpsilon
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& lamTransportModel
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, U, phi, lamTransportModel),
RASModel(modelName, U, phi, transport, turbulenceModelName),
Cmu_
(

View file

@ -102,7 +102,9 @@ public:
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View file

@ -117,10 +117,12 @@ coupledKOmegaSST::coupledKOmegaSST
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& lamTransportModel
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, U, phi, lamTransportModel),
RASModel(modelName, U, phi, transport, turbulenceModelName),
alphaK1_
(

Some files were not shown because too many files have changed in this diff Show more