mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge commit 'OpenCFD/master' into olesenm
This commit is contained in:
@ -244,6 +244,23 @@ void Foam::fvPatchField<Type>::write(Ostream& os) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class Type>
|
||||||
|
template<class EntryType>
|
||||||
|
void Foam::fvPatchField<Type>::writeEntryIfDifferent
|
||||||
|
(
|
||||||
|
Ostream& os,
|
||||||
|
const word& entryName,
|
||||||
|
const EntryType& value1,
|
||||||
|
const EntryType& value2
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
if (value1 != value2)
|
||||||
|
{
|
||||||
|
os.writeKeyword(entryName) << value2 << token::END_STATEMENT << nl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
|
||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
|
|||||||
@ -414,8 +414,21 @@ public:
|
|||||||
virtual void manipulateMatrix(fvMatrix<Type>& matrix);
|
virtual void manipulateMatrix(fvMatrix<Type>& matrix);
|
||||||
|
|
||||||
|
|
||||||
//- Write
|
// I-O
|
||||||
virtual void write(Ostream&) const;
|
|
||||||
|
//- Write
|
||||||
|
virtual void write(Ostream&) const;
|
||||||
|
|
||||||
|
//- Helper function to write the keyword and entry only if the
|
||||||
|
// values are not equal. The value is then output as value2
|
||||||
|
template<class EntryType>
|
||||||
|
void writeEntryIfDifferent
|
||||||
|
(
|
||||||
|
Ostream& os,
|
||||||
|
const word& entryName,
|
||||||
|
const EntryType& value1,
|
||||||
|
const EntryType& value2
|
||||||
|
) const;
|
||||||
|
|
||||||
|
|
||||||
// Check
|
// Check
|
||||||
|
|||||||
@ -125,6 +125,8 @@ RASModel::RASModel
|
|||||||
k0_("k0", dimVelocity*dimVelocity, SMALL),
|
k0_("k0", dimVelocity*dimVelocity, SMALL),
|
||||||
epsilon0_("epsilon", k0_.dimensions()/dimTime, SMALL),
|
epsilon0_("epsilon", k0_.dimensions()/dimTime, SMALL),
|
||||||
epsilonSmall_("epsilonSmall", epsilon0_.dimensions(), SMALL),
|
epsilonSmall_("epsilonSmall", epsilon0_.dimensions(), SMALL),
|
||||||
|
omega0_("omega", dimless/dimTime, SMALL),
|
||||||
|
omegaSmall_("omegaSmall", omega0_.dimensions(), SMALL),
|
||||||
|
|
||||||
y_(mesh_)
|
y_(mesh_)
|
||||||
{}
|
{}
|
||||||
@ -204,6 +206,8 @@ bool RASModel::read()
|
|||||||
k0_.readIfPresent(*this);
|
k0_.readIfPresent(*this);
|
||||||
epsilon0_.readIfPresent(*this);
|
epsilon0_.readIfPresent(*this);
|
||||||
epsilonSmall_.readIfPresent(*this);
|
epsilonSmall_.readIfPresent(*this);
|
||||||
|
omega0_.readIfPresent(*this);
|
||||||
|
omegaSmall_.readIfPresent(*this);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -80,22 +80,47 @@ protected:
|
|||||||
|
|
||||||
// Protected data
|
// Protected data
|
||||||
|
|
||||||
|
//- Turbulence on/off flag
|
||||||
Switch turbulence_;
|
Switch turbulence_;
|
||||||
|
|
||||||
|
//- Flag to print the model coeffs at run-time
|
||||||
Switch printCoeffs_;
|
Switch printCoeffs_;
|
||||||
|
|
||||||
|
//- Model coefficients dictionary
|
||||||
dictionary coeffDict_;
|
dictionary coeffDict_;
|
||||||
|
|
||||||
dictionary wallFunctionDict_;
|
// Wall function properties
|
||||||
dimensionedScalar kappa_;
|
|
||||||
dimensionedScalar E_;
|
|
||||||
dimensionedScalar Cmu_;
|
|
||||||
dimensionedScalar Prt_;
|
|
||||||
|
|
||||||
|
//- Wall function dictionary
|
||||||
|
dictionary wallFunctionDict_;
|
||||||
|
|
||||||
|
dimensionedScalar kappa_;
|
||||||
|
|
||||||
|
dimensionedScalar E_;
|
||||||
|
|
||||||
|
dimensionedScalar Cmu_;
|
||||||
|
|
||||||
|
dimensionedScalar Prt_;
|
||||||
|
|
||||||
|
//- Value of y+ at the edge of the laminar sublayer
|
||||||
scalar yPlusLam_;
|
scalar yPlusLam_;
|
||||||
|
|
||||||
|
//- Lower limit of k
|
||||||
dimensionedScalar k0_;
|
dimensionedScalar k0_;
|
||||||
|
|
||||||
|
//- Lower limit of epsilon
|
||||||
dimensionedScalar epsilon0_;
|
dimensionedScalar epsilon0_;
|
||||||
|
|
||||||
|
//- Small epsilon value used to avoid divide by zero
|
||||||
dimensionedScalar epsilonSmall_;
|
dimensionedScalar epsilonSmall_;
|
||||||
|
|
||||||
|
//- Lower limit for omega
|
||||||
|
dimensionedScalar omega0_;
|
||||||
|
|
||||||
|
//- Small omega value used to avoid divide by zero
|
||||||
|
dimensionedScalar omegaSmall_;
|
||||||
|
|
||||||
|
//- Near wall distance boundary field
|
||||||
nearWallDist y_;
|
nearWallDist y_;
|
||||||
|
|
||||||
|
|
||||||
@ -193,6 +218,19 @@ public:
|
|||||||
return epsilonSmall_;
|
return epsilonSmall_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//- Return the value of omega0 which epsilon is not allowed to be
|
||||||
|
// less than
|
||||||
|
const dimensionedScalar& omega0() const
|
||||||
|
{
|
||||||
|
return omega0_;
|
||||||
|
}
|
||||||
|
|
||||||
|
//- Return the value of omegaSmall which is added to epsilon when
|
||||||
|
// calculating nut
|
||||||
|
const dimensionedScalar& omegaSmall() const
|
||||||
|
{
|
||||||
|
return omegaSmall_;
|
||||||
|
}
|
||||||
|
|
||||||
//- Allow k0 to be changed
|
//- Allow k0 to be changed
|
||||||
dimensionedScalar& k0()
|
dimensionedScalar& k0()
|
||||||
@ -212,6 +250,17 @@ public:
|
|||||||
return epsilonSmall_;
|
return epsilonSmall_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//- Allow omega0 to be changed
|
||||||
|
dimensionedScalar& omega0()
|
||||||
|
{
|
||||||
|
return omega0_;
|
||||||
|
}
|
||||||
|
|
||||||
|
//- Allow omegaSmall to be changed
|
||||||
|
dimensionedScalar& omegaSmall()
|
||||||
|
{
|
||||||
|
return omegaSmall_;
|
||||||
|
}
|
||||||
|
|
||||||
//- Return kappa for use in wall-functions
|
//- Return kappa for use in wall-functions
|
||||||
dimensionedScalar kappa() const
|
dimensionedScalar kappa() const
|
||||||
|
|||||||
@ -48,7 +48,8 @@ alphatWallFunctionFvPatchScalarField
|
|||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF)
|
fixedValueFvPatchScalarField(p, iF),
|
||||||
|
mutName_("mut")
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -61,7 +62,8 @@ alphatWallFunctionFvPatchScalarField
|
|||||||
const fvPatchFieldMapper& mapper
|
const fvPatchFieldMapper& mapper
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(ptf, p, iF, mapper)
|
fixedValueFvPatchScalarField(ptf, p, iF, mapper),
|
||||||
|
mutName_(ptf.mutName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -73,7 +75,8 @@ alphatWallFunctionFvPatchScalarField
|
|||||||
const dictionary& dict
|
const dictionary& dict
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF, dict)
|
fixedValueFvPatchScalarField(p, iF, dict),
|
||||||
|
mutName_(dict.lookupOrDefault<word>("mut", "mut"))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -83,7 +86,8 @@ alphatWallFunctionFvPatchScalarField
|
|||||||
const alphatWallFunctionFvPatchScalarField& awfpsf
|
const alphatWallFunctionFvPatchScalarField& awfpsf
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(awfpsf)
|
fixedValueFvPatchScalarField(awfpsf),
|
||||||
|
mutName_(awfpsf.mutName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -94,7 +98,8 @@ alphatWallFunctionFvPatchScalarField
|
|||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(awfpsf, iF)
|
fixedValueFvPatchScalarField(awfpsf, iF),
|
||||||
|
mutName_(awfpsf.mutName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -106,7 +111,7 @@ void alphatWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
const scalar Prt = ras.Prt().value();
|
const scalar Prt = ras.Prt().value();
|
||||||
|
|
||||||
const scalarField& mutw =
|
const scalarField& mutw =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("mut");
|
patch().lookupPatchField<volScalarField, scalar>(mutName_);
|
||||||
|
|
||||||
operator==(mutw/Prt);
|
operator==(mutw/Prt);
|
||||||
}
|
}
|
||||||
@ -115,6 +120,7 @@ void alphatWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
void alphatWallFunctionFvPatchScalarField::write(Ostream& os) const
|
void alphatWallFunctionFvPatchScalarField::write(Ostream& os) const
|
||||||
{
|
{
|
||||||
fvPatchField<scalar>::write(os);
|
fvPatchField<scalar>::write(os);
|
||||||
|
writeEntryIfDifferent<word>(os, "mut", "mut", mutName_);
|
||||||
writeEntry("value", os);
|
writeEntry("value", os);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -57,6 +57,11 @@ class alphatWallFunctionFvPatchScalarField
|
|||||||
:
|
:
|
||||||
public fixedValueFvPatchScalarField
|
public fixedValueFvPatchScalarField
|
||||||
{
|
{
|
||||||
|
// Private data
|
||||||
|
|
||||||
|
//- Name of turbulent viscosity field
|
||||||
|
word mutName_;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|||||||
@ -64,7 +64,13 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
|
|||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedInternalValueFvPatchField<scalar>(p, iF)
|
fixedInternalValueFvPatchField<scalar>(p, iF),
|
||||||
|
UName_("U"),
|
||||||
|
kName_("k"),
|
||||||
|
GName_("G"),
|
||||||
|
rhoName_("rho"),
|
||||||
|
muName_("mu"),
|
||||||
|
mutName_("mut")
|
||||||
{
|
{
|
||||||
checkType();
|
checkType();
|
||||||
}
|
}
|
||||||
@ -78,7 +84,13 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
|
|||||||
const fvPatchFieldMapper& mapper
|
const fvPatchFieldMapper& mapper
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper)
|
fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper),
|
||||||
|
UName_(ptf.UName_),
|
||||||
|
kName_(ptf.kName_),
|
||||||
|
GName_(ptf.GName_),
|
||||||
|
rhoName_(ptf.rhoName_),
|
||||||
|
muName_(ptf.muName_),
|
||||||
|
mutName_(ptf.mutName_)
|
||||||
{
|
{
|
||||||
checkType();
|
checkType();
|
||||||
}
|
}
|
||||||
@ -91,7 +103,13 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
|
|||||||
const dictionary& dict
|
const dictionary& dict
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedInternalValueFvPatchField<scalar>(p, iF, dict)
|
fixedInternalValueFvPatchField<scalar>(p, iF, dict),
|
||||||
|
UName_(dict.lookupOrDefault<word>("U", "U")),
|
||||||
|
kName_(dict.lookupOrDefault<word>("k", "k")),
|
||||||
|
GName_(dict.lookupOrDefault<word>("G", "G")),
|
||||||
|
rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
|
||||||
|
muName_(dict.lookupOrDefault<word>("mu", "mu")),
|
||||||
|
mutName_(dict.lookupOrDefault<word>("mut", "mut"))
|
||||||
{
|
{
|
||||||
checkType();
|
checkType();
|
||||||
}
|
}
|
||||||
@ -102,7 +120,13 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
|
|||||||
const epsilonWallFunctionFvPatchScalarField& ewfpsf
|
const epsilonWallFunctionFvPatchScalarField& ewfpsf
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedInternalValueFvPatchField<scalar>(ewfpsf)
|
fixedInternalValueFvPatchField<scalar>(ewfpsf),
|
||||||
|
UName_(ewfpsf.UName_),
|
||||||
|
kName_(ewfpsf.kName_),
|
||||||
|
GName_(ewfpsf.GName_),
|
||||||
|
rhoName_(ewfpsf.rhoName_),
|
||||||
|
muName_(ewfpsf.muName_),
|
||||||
|
mutName_(ewfpsf.mutName_)
|
||||||
{
|
{
|
||||||
checkType();
|
checkType();
|
||||||
}
|
}
|
||||||
@ -114,7 +138,13 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
|
|||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedInternalValueFvPatchField<scalar>(ewfpsf, iF)
|
fixedInternalValueFvPatchField<scalar>(ewfpsf, iF),
|
||||||
|
UName_(ewfpsf.UName_),
|
||||||
|
kName_(ewfpsf.kName_),
|
||||||
|
GName_(ewfpsf.GName_),
|
||||||
|
rhoName_(ewfpsf.rhoName_),
|
||||||
|
muName_(ewfpsf.muName_),
|
||||||
|
mutName_(ewfpsf.mutName_)
|
||||||
{
|
{
|
||||||
checkType();
|
checkType();
|
||||||
}
|
}
|
||||||
@ -135,24 +165,24 @@ void epsilonWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
const scalarField& y = ras.y()[patch().index()];
|
const scalarField& y = ras.y()[patch().index()];
|
||||||
|
|
||||||
volScalarField& G = const_cast<volScalarField&>
|
volScalarField& G = const_cast<volScalarField&>
|
||||||
(db().lookupObject<volScalarField>("G"));
|
(db().lookupObject<volScalarField>(GName_));
|
||||||
|
|
||||||
volScalarField& epsilon = const_cast<volScalarField&>
|
volScalarField& epsilon = const_cast<volScalarField&>
|
||||||
(db().lookupObject<volScalarField>("epsilon"));
|
(db().lookupObject<volScalarField>(dimensionedInternalField().name()));
|
||||||
|
|
||||||
const volScalarField& k = db().lookupObject<volScalarField>("k");
|
const volScalarField& k = db().lookupObject<volScalarField>(kName_);
|
||||||
|
|
||||||
const scalarField& rhow =
|
const scalarField& rhow =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("rho");
|
patch().lookupPatchField<volScalarField, scalar>(rhoName_);
|
||||||
|
|
||||||
const scalarField& muw =
|
const scalarField& muw =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("mu");
|
patch().lookupPatchField<volScalarField, scalar>(muName_);
|
||||||
|
|
||||||
const scalarField& mutw =
|
const scalarField& mutw =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("mut");
|
patch().lookupPatchField<volScalarField, scalar>(mutName_);
|
||||||
|
|
||||||
const fvPatchVectorField& Uw =
|
const fvPatchVectorField& Uw =
|
||||||
patch().lookupPatchField<volVectorField, vector>("U");
|
patch().lookupPatchField<volVectorField, vector>(UName_);
|
||||||
|
|
||||||
const scalarField magGradUw = mag(Uw.snGrad());
|
const scalarField magGradUw = mag(Uw.snGrad());
|
||||||
|
|
||||||
@ -197,6 +227,12 @@ void epsilonWallFunctionFvPatchScalarField::evaluate
|
|||||||
void epsilonWallFunctionFvPatchScalarField::write(Ostream& os) const
|
void epsilonWallFunctionFvPatchScalarField::write(Ostream& os) const
|
||||||
{
|
{
|
||||||
fixedInternalValueFvPatchField<scalar>::write(os);
|
fixedInternalValueFvPatchField<scalar>::write(os);
|
||||||
|
writeEntryIfDifferent<word>(os, "U", "U", UName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "k", "k", kName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "G", "G", GName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "mu", "mu", muName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "mut", "mut", mutName_);
|
||||||
writeEntry("value", os);
|
writeEntry("value", os);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -57,6 +57,26 @@ class epsilonWallFunctionFvPatchScalarField
|
|||||||
:
|
:
|
||||||
public fixedInternalValueFvPatchField<scalar>
|
public fixedInternalValueFvPatchField<scalar>
|
||||||
{
|
{
|
||||||
|
// Private data
|
||||||
|
|
||||||
|
//- Name of velocity field
|
||||||
|
word UName_;
|
||||||
|
|
||||||
|
//- Name of turbulence kinetic energy field
|
||||||
|
word kName_;
|
||||||
|
|
||||||
|
//- Name of turbulence generation field
|
||||||
|
word GName_;
|
||||||
|
|
||||||
|
//- Name of density field
|
||||||
|
word rhoName_;
|
||||||
|
|
||||||
|
//- Name of laminar viscosity field
|
||||||
|
word muName_;
|
||||||
|
|
||||||
|
//- Name of turbulent viscosity field
|
||||||
|
word mutName_;
|
||||||
|
|
||||||
|
|
||||||
// Private member functions
|
// Private member functions
|
||||||
|
|
||||||
|
|||||||
@ -77,6 +77,9 @@ mutRoughWallFunctionFvPatchScalarField
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF),
|
fixedValueFvPatchScalarField(p, iF),
|
||||||
|
rhoName_("rho"),
|
||||||
|
muName_("mu"),
|
||||||
|
kName_("k"),
|
||||||
Ks_(p.size(), 0.0),
|
Ks_(p.size(), 0.0),
|
||||||
Cs_(p.size(), 0.0)
|
Cs_(p.size(), 0.0)
|
||||||
{}
|
{}
|
||||||
@ -92,6 +95,9 @@ mutRoughWallFunctionFvPatchScalarField
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(ptf, p, iF, mapper),
|
fixedValueFvPatchScalarField(ptf, p, iF, mapper),
|
||||||
|
rhoName_(ptf.rhoName_),
|
||||||
|
muName_(ptf.muName_),
|
||||||
|
kName_(ptf.kName_),
|
||||||
Ks_(ptf.Ks_, mapper),
|
Ks_(ptf.Ks_, mapper),
|
||||||
Cs_(ptf.Cs_, mapper)
|
Cs_(ptf.Cs_, mapper)
|
||||||
{}
|
{}
|
||||||
@ -106,6 +112,9 @@ mutRoughWallFunctionFvPatchScalarField
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF, dict),
|
fixedValueFvPatchScalarField(p, iF, dict),
|
||||||
|
rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
|
||||||
|
muName_(dict.lookupOrDefault<word>("mu", "mu")),
|
||||||
|
kName_(dict.lookupOrDefault<word>("k", "k")),
|
||||||
Ks_("Ks", dict, p.size()),
|
Ks_("Ks", dict, p.size()),
|
||||||
Cs_("Cs", dict, p.size())
|
Cs_("Cs", dict, p.size())
|
||||||
{}
|
{}
|
||||||
@ -114,25 +123,31 @@ mutRoughWallFunctionFvPatchScalarField
|
|||||||
mutRoughWallFunctionFvPatchScalarField::
|
mutRoughWallFunctionFvPatchScalarField::
|
||||||
mutRoughWallFunctionFvPatchScalarField
|
mutRoughWallFunctionFvPatchScalarField
|
||||||
(
|
(
|
||||||
const mutRoughWallFunctionFvPatchScalarField& nrwfpsf
|
const mutRoughWallFunctionFvPatchScalarField& rwfpsf
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(nrwfpsf),
|
fixedValueFvPatchScalarField(rwfpsf),
|
||||||
Ks_(nrwfpsf.Ks_),
|
rhoName_(rwfpsf.rhoName_),
|
||||||
Cs_(nrwfpsf.Cs_)
|
muName_(rwfpsf.muName_),
|
||||||
|
kName_(rwfpsf.kName_),
|
||||||
|
Ks_(rwfpsf.Ks_),
|
||||||
|
Cs_(rwfpsf.Cs_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
mutRoughWallFunctionFvPatchScalarField::
|
mutRoughWallFunctionFvPatchScalarField::
|
||||||
mutRoughWallFunctionFvPatchScalarField
|
mutRoughWallFunctionFvPatchScalarField
|
||||||
(
|
(
|
||||||
const mutRoughWallFunctionFvPatchScalarField& nrwfpsf,
|
const mutRoughWallFunctionFvPatchScalarField& rwfpsf,
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(nrwfpsf, iF),
|
fixedValueFvPatchScalarField(rwfpsf, iF),
|
||||||
Ks_(nrwfpsf.Ks_),
|
rhoName_(rwfpsf.rhoName_),
|
||||||
Cs_(nrwfpsf.Cs_)
|
muName_(rwfpsf.muName_),
|
||||||
|
kName_(rwfpsf.kName_),
|
||||||
|
Ks_(rwfpsf.Ks_),
|
||||||
|
Cs_(rwfpsf.Cs_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -178,12 +193,12 @@ void mutRoughWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
const scalarField& y = ras.y()[patch().index()];
|
const scalarField& y = ras.y()[patch().index()];
|
||||||
|
|
||||||
const scalarField& rhow =
|
const scalarField& rhow =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("rho");
|
patch().lookupPatchField<volScalarField, scalar>(rhoName_);
|
||||||
|
|
||||||
const scalarField& k = db().lookupObject<volScalarField>("k");
|
const scalarField& k = db().lookupObject<volScalarField>(kName_);
|
||||||
|
|
||||||
const scalarField& muw =
|
const scalarField& muw =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("mu");
|
patch().lookupPatchField<volScalarField, scalar>(muName_);
|
||||||
|
|
||||||
scalarField& mutw = *this;
|
scalarField& mutw = *this;
|
||||||
|
|
||||||
@ -229,6 +244,9 @@ void mutRoughWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
void mutRoughWallFunctionFvPatchScalarField::write(Ostream& os) const
|
void mutRoughWallFunctionFvPatchScalarField::write(Ostream& os) const
|
||||||
{
|
{
|
||||||
fvPatchField<scalar>::write(os);
|
fvPatchField<scalar>::write(os);
|
||||||
|
writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "mu", "mu", muName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "k", "k", kName_);
|
||||||
Cs_.writeEntry("Cs", os);
|
Cs_.writeEntry("Cs", os);
|
||||||
Ks_.writeEntry("Ks", os);
|
Ks_.writeEntry("Ks", os);
|
||||||
writeEntry("value", os);
|
writeEntry("value", os);
|
||||||
|
|||||||
@ -64,6 +64,15 @@ class mutRoughWallFunctionFvPatchScalarField
|
|||||||
{
|
{
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
|
//- Name of density field
|
||||||
|
word rhoName_;
|
||||||
|
|
||||||
|
//- Name of laminar viscosity field
|
||||||
|
word muName_;
|
||||||
|
|
||||||
|
//- Name of turbulence kinetic energy field
|
||||||
|
word kName_;
|
||||||
|
|
||||||
//- Roughness height
|
//- Roughness height
|
||||||
scalarField Ks_;
|
scalarField Ks_;
|
||||||
|
|
||||||
|
|||||||
@ -49,6 +49,9 @@ mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF),
|
fixedValueFvPatchScalarField(p, iF),
|
||||||
|
UName_("U"),
|
||||||
|
rhoName_("rho"),
|
||||||
|
muName_("mu"),
|
||||||
roughnessHeight_(pTraits<scalar>::zero),
|
roughnessHeight_(pTraits<scalar>::zero),
|
||||||
roughnessConstant_(pTraits<scalar>::zero),
|
roughnessConstant_(pTraits<scalar>::zero),
|
||||||
roughnessFudgeFactor_(pTraits<scalar>::zero)
|
roughnessFudgeFactor_(pTraits<scalar>::zero)
|
||||||
@ -65,6 +68,9 @@ mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(ptf, p, iF, mapper),
|
fixedValueFvPatchScalarField(ptf, p, iF, mapper),
|
||||||
|
UName_(ptf.UName_),
|
||||||
|
rhoName_(ptf.rhoName_),
|
||||||
|
muName_(ptf.muName_),
|
||||||
roughnessHeight_(ptf.roughnessHeight_),
|
roughnessHeight_(ptf.roughnessHeight_),
|
||||||
roughnessConstant_(ptf.roughnessConstant_),
|
roughnessConstant_(ptf.roughnessConstant_),
|
||||||
roughnessFudgeFactor_(ptf.roughnessFudgeFactor_)
|
roughnessFudgeFactor_(ptf.roughnessFudgeFactor_)
|
||||||
@ -80,6 +86,9 @@ mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF, dict),
|
fixedValueFvPatchScalarField(p, iF, dict),
|
||||||
|
UName_(dict.lookupOrDefault<word>("U", "U")),
|
||||||
|
rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
|
||||||
|
muName_(dict.lookupOrDefault<word>("mu", "mu")),
|
||||||
roughnessHeight_(readScalar(dict.lookup("roughnessHeight"))),
|
roughnessHeight_(readScalar(dict.lookup("roughnessHeight"))),
|
||||||
roughnessConstant_(readScalar(dict.lookup("roughnessConstant"))),
|
roughnessConstant_(readScalar(dict.lookup("roughnessConstant"))),
|
||||||
roughnessFudgeFactor_(readScalar(dict.lookup("roughnessFudgeFactor")))
|
roughnessFudgeFactor_(readScalar(dict.lookup("roughnessFudgeFactor")))
|
||||||
@ -89,27 +98,33 @@ mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
|
|||||||
mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::
|
mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::
|
||||||
mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
|
mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
|
||||||
(
|
(
|
||||||
const mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField& tppsf
|
const mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField& rwfpsf
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(tppsf),
|
fixedValueFvPatchScalarField(rwfpsf),
|
||||||
roughnessHeight_(tppsf.roughnessHeight_),
|
UName_(rwfpsf.UName_),
|
||||||
roughnessConstant_(tppsf.roughnessConstant_),
|
rhoName_(rwfpsf.rhoName_),
|
||||||
roughnessFudgeFactor_(tppsf.roughnessFudgeFactor_)
|
muName_(rwfpsf.muName_),
|
||||||
|
roughnessHeight_(rwfpsf.roughnessHeight_),
|
||||||
|
roughnessConstant_(rwfpsf.roughnessConstant_),
|
||||||
|
roughnessFudgeFactor_(rwfpsf.roughnessFudgeFactor_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::
|
mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::
|
||||||
mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
|
mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
|
||||||
(
|
(
|
||||||
const mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField& tppsf,
|
const mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField& rwfpsf,
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(tppsf, iF),
|
fixedValueFvPatchScalarField(rwfpsf, iF),
|
||||||
roughnessHeight_(tppsf.roughnessHeight_),
|
UName_(rwfpsf.UName_),
|
||||||
roughnessConstant_(tppsf.roughnessConstant_),
|
rhoName_(rwfpsf.rhoName_),
|
||||||
roughnessFudgeFactor_(tppsf.roughnessFudgeFactor_)
|
muName_(rwfpsf.muName_),
|
||||||
|
roughnessHeight_(rwfpsf.roughnessHeight_),
|
||||||
|
roughnessConstant_(rwfpsf.roughnessConstant_),
|
||||||
|
roughnessFudgeFactor_(rwfpsf.roughnessFudgeFactor_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -131,16 +146,16 @@ void mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::evaluate
|
|||||||
const scalarField& ry = patch().deltaCoeffs();
|
const scalarField& ry = patch().deltaCoeffs();
|
||||||
|
|
||||||
const fvPatchVectorField& U =
|
const fvPatchVectorField& U =
|
||||||
patch().lookupPatchField<volVectorField, vector>("U");
|
patch().lookupPatchField<volVectorField, vector>(UName_);
|
||||||
|
|
||||||
const fvPatchScalarField& rho =
|
const fvPatchScalarField& rho =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("rho");
|
patch().lookupPatchField<volScalarField, scalar>(rhoName_);
|
||||||
|
|
||||||
// The flow velocity at the adjacent cell centre.
|
// The flow velocity at the adjacent cell centre.
|
||||||
scalarField magUp = mag(U.patchInternalField() - U);
|
scalarField magUp = mag(U.patchInternalField() - U);
|
||||||
|
|
||||||
const scalarField& muw =
|
const scalarField& muw =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("mu");
|
patch().lookupPatchField<volScalarField, scalar>(muName_);
|
||||||
scalarField& mutw = *this;
|
scalarField& mutw = *this;
|
||||||
|
|
||||||
scalarField magFaceGradU = mag(U.snGrad());
|
scalarField magFaceGradU = mag(U.snGrad());
|
||||||
@ -172,7 +187,7 @@ void mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::evaluate
|
|||||||
|
|
||||||
// Enforce the roughnessHeight to be less than the distance to
|
// Enforce the roughnessHeight to be less than the distance to
|
||||||
// the first cell centre.
|
// the first cell centre.
|
||||||
if(dKsPlusdYPlus > 1)
|
if (dKsPlusdYPlus > 1)
|
||||||
{
|
{
|
||||||
dKsPlusdYPlus = 1;
|
dKsPlusdYPlus = 1;
|
||||||
}
|
}
|
||||||
@ -211,7 +226,7 @@ void mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::evaluate
|
|||||||
}
|
}
|
||||||
|
|
||||||
scalar denom = 1.0 + log(E* yPlus) - G - yPlusGPrime;
|
scalar denom = 1.0 + log(E* yPlus) - G - yPlusGPrime;
|
||||||
if(mag(denom) > VSMALL)
|
if (mag(denom) > VSMALL)
|
||||||
{
|
{
|
||||||
yPlus = (kappaRe + yPlus*(1 - yPlusGPrime))/denom;
|
yPlus = (kappaRe + yPlus*(1 - yPlusGPrime))/denom;
|
||||||
if( yPlus < 0 )
|
if( yPlus < 0 )
|
||||||
@ -288,6 +303,9 @@ void mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::write
|
|||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
fixedValueFvPatchScalarField::write(os);
|
fixedValueFvPatchScalarField::write(os);
|
||||||
|
writeEntryIfDifferent<word>(os, "U", "U", UName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "mu", "mu", muName_);
|
||||||
os.writeKeyword("roughnessHeight")
|
os.writeKeyword("roughnessHeight")
|
||||||
<< roughnessHeight_ << token::END_STATEMENT << nl;
|
<< roughnessHeight_ << token::END_STATEMENT << nl;
|
||||||
os.writeKeyword("roughnessConstant")
|
os.writeKeyword("roughnessConstant")
|
||||||
|
|||||||
@ -58,9 +58,25 @@ class mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
|
|||||||
{
|
{
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
scalar roughnessHeight_;
|
//- Name of velocity field
|
||||||
scalar roughnessConstant_;
|
word UName_;
|
||||||
scalar roughnessFudgeFactor_;
|
|
||||||
|
//- Name of density field
|
||||||
|
word rhoName_;
|
||||||
|
|
||||||
|
//- Name of laminar viscosity field
|
||||||
|
word muName_;
|
||||||
|
|
||||||
|
// Roughness parameters
|
||||||
|
|
||||||
|
//- Height
|
||||||
|
scalar roughnessHeight_;
|
||||||
|
|
||||||
|
//- Constant
|
||||||
|
scalar roughnessConstant_;
|
||||||
|
|
||||||
|
//- Scale factor
|
||||||
|
scalar roughnessFudgeFactor_;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -143,38 +159,38 @@ public:
|
|||||||
|
|
||||||
// Access
|
// Access
|
||||||
|
|
||||||
//- Return the fluctuation scale
|
//- Return the roughness height scale
|
||||||
const scalar& roughnessHeight() const
|
const scalar& roughnessHeight() const
|
||||||
{
|
{
|
||||||
return roughnessHeight_;
|
return roughnessHeight_;
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return reference to the fluctuation scale to allow adjustment
|
//- Return reference to the roughness height to allow adjustment
|
||||||
scalar& roughnessHeight()
|
scalar& roughnessHeight()
|
||||||
{
|
{
|
||||||
return roughnessHeight_;
|
return roughnessHeight_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//- Return the roughness constant scale
|
||||||
//- Return the fluctuation scale
|
|
||||||
const scalar& roughnessConstant() const
|
const scalar& roughnessConstant() const
|
||||||
{
|
{
|
||||||
return roughnessConstant_;
|
return roughnessConstant_;
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return reference to the fluctuation scale to allow adjustment
|
//- Return reference to the roughness constant to allow adjustment
|
||||||
scalar& roughnessConstant()
|
scalar& roughnessConstant()
|
||||||
{
|
{
|
||||||
return roughnessConstant_;
|
return roughnessConstant_;
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the fluctuation scale
|
//- Return the roughness scale factor
|
||||||
const scalar& roughnessFudgeFactor() const
|
const scalar& roughnessFudgeFactor() const
|
||||||
{
|
{
|
||||||
return roughnessFudgeFactor_;
|
return roughnessFudgeFactor_;
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return reference to the fluctuation scale to allow adjustment
|
//- Return reference to the roughness scale factor to allow
|
||||||
|
// adjustment
|
||||||
scalar& roughnessFudgeFactor()
|
scalar& roughnessFudgeFactor()
|
||||||
{
|
{
|
||||||
return roughnessFudgeFactor_;
|
return roughnessFudgeFactor_;
|
||||||
|
|||||||
@ -48,7 +48,10 @@ mutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
|||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF)
|
fixedValueFvPatchScalarField(p, iF),
|
||||||
|
UName_("U"),
|
||||||
|
rhoName_("rho"),
|
||||||
|
muName_("mu")
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -61,7 +64,10 @@ mutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
|||||||
const fvPatchFieldMapper& mapper
|
const fvPatchFieldMapper& mapper
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(ptf, p, iF, mapper)
|
fixedValueFvPatchScalarField(ptf, p, iF, mapper),
|
||||||
|
UName_(ptf.UName_),
|
||||||
|
rhoName_(ptf.rhoName_),
|
||||||
|
muName_(ptf.muName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -73,28 +79,37 @@ mutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
|||||||
const dictionary& dict
|
const dictionary& dict
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF, dict)
|
fixedValueFvPatchScalarField(p, iF, dict),
|
||||||
|
UName_(dict.lookupOrDefault<word>("U", "U")),
|
||||||
|
rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
|
||||||
|
muName_(dict.lookupOrDefault<word>("mu", "mu"))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
mutSpalartAllmarasStandardWallFunctionFvPatchScalarField::
|
mutSpalartAllmarasStandardWallFunctionFvPatchScalarField::
|
||||||
mutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
mutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
||||||
(
|
(
|
||||||
const mutSpalartAllmarasStandardWallFunctionFvPatchScalarField& tppsf
|
const mutSpalartAllmarasStandardWallFunctionFvPatchScalarField& rwfpsf
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(tppsf)
|
fixedValueFvPatchScalarField(rwfpsf),
|
||||||
|
UName_(rwfpsf.UName_),
|
||||||
|
rhoName_(rwfpsf.rhoName_),
|
||||||
|
muName_(rwfpsf.muName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
mutSpalartAllmarasStandardWallFunctionFvPatchScalarField::
|
mutSpalartAllmarasStandardWallFunctionFvPatchScalarField::
|
||||||
mutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
mutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
||||||
(
|
(
|
||||||
const mutSpalartAllmarasStandardWallFunctionFvPatchScalarField& tppsf,
|
const mutSpalartAllmarasStandardWallFunctionFvPatchScalarField& rwfpsf,
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(tppsf, iF)
|
fixedValueFvPatchScalarField(rwfpsf, iF),
|
||||||
|
UName_(rwfpsf.UName_),
|
||||||
|
rhoName_(rwfpsf.rhoName_),
|
||||||
|
muName_(rwfpsf.muName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -114,15 +129,15 @@ void mutSpalartAllmarasStandardWallFunctionFvPatchScalarField::evaluate
|
|||||||
const scalarField& ry = patch().deltaCoeffs();
|
const scalarField& ry = patch().deltaCoeffs();
|
||||||
|
|
||||||
const fvPatchVectorField& U =
|
const fvPatchVectorField& U =
|
||||||
patch().lookupPatchField<volVectorField, vector>("U");
|
patch().lookupPatchField<volVectorField, vector>(UName_);
|
||||||
|
|
||||||
scalarField magUp = mag(U.patchInternalField() - U);
|
scalarField magUp = mag(U.patchInternalField() - U);
|
||||||
|
|
||||||
const scalarField& rhow =
|
const scalarField& rhow =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("rho");
|
patch().lookupPatchField<volScalarField, scalar>(rhoName_);
|
||||||
|
|
||||||
const scalarField& muw =
|
const scalarField& muw =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("mu");
|
patch().lookupPatchField<volScalarField, scalar>(muName_);
|
||||||
scalarField& mutw = *this;
|
scalarField& mutw = *this;
|
||||||
|
|
||||||
scalarField magFaceGradU = mag(U.snGrad());
|
scalarField magFaceGradU = mag(U.snGrad());
|
||||||
@ -158,6 +173,19 @@ void mutSpalartAllmarasStandardWallFunctionFvPatchScalarField::evaluate
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void mutSpalartAllmarasStandardWallFunctionFvPatchScalarField::write
|
||||||
|
(
|
||||||
|
Ostream& os
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
fvPatchField<scalar>::write(os);
|
||||||
|
writeEntryIfDifferent<word>(os, "U", "U", UName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "mu", "mu", muName_);
|
||||||
|
writeEntry("value", os);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
makePatchTypeField
|
makePatchTypeField
|
||||||
|
|||||||
@ -56,6 +56,17 @@ class mutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
|||||||
:
|
:
|
||||||
public fixedValueFvPatchScalarField
|
public fixedValueFvPatchScalarField
|
||||||
{
|
{
|
||||||
|
// Private data
|
||||||
|
|
||||||
|
//- Name of velocity field
|
||||||
|
word UName_;
|
||||||
|
|
||||||
|
//- Name of density field
|
||||||
|
word rhoName_;
|
||||||
|
|
||||||
|
//- Name of laminar viscosity field
|
||||||
|
word muName_;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -142,6 +153,9 @@ public:
|
|||||||
(
|
(
|
||||||
const Pstream::commsTypes commsType=Pstream::blocking
|
const Pstream::commsTypes commsType=Pstream::blocking
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//- Write
|
||||||
|
virtual void write(Ostream& os) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -48,7 +48,10 @@ mutSpalartAllmarasWallFunctionFvPatchScalarField
|
|||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF)
|
fixedValueFvPatchScalarField(p, iF),
|
||||||
|
UName_("U"),
|
||||||
|
rhoName_("rho"),
|
||||||
|
muName_("mu")
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -61,7 +64,10 @@ mutSpalartAllmarasWallFunctionFvPatchScalarField
|
|||||||
const fvPatchFieldMapper& mapper
|
const fvPatchFieldMapper& mapper
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(ptf, p, iF, mapper)
|
fixedValueFvPatchScalarField(ptf, p, iF, mapper),
|
||||||
|
UName_(ptf.UName_),
|
||||||
|
rhoName_(ptf.rhoName_),
|
||||||
|
muName_(ptf.muName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -73,28 +79,37 @@ mutSpalartAllmarasWallFunctionFvPatchScalarField
|
|||||||
const dictionary& dict
|
const dictionary& dict
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF, dict)
|
fixedValueFvPatchScalarField(p, iF, dict),
|
||||||
|
UName_(dict.lookupOrDefault<word>("U", "U")),
|
||||||
|
rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
|
||||||
|
muName_(dict.lookupOrDefault<word>("mu", "mu"))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
mutSpalartAllmarasWallFunctionFvPatchScalarField::
|
mutSpalartAllmarasWallFunctionFvPatchScalarField::
|
||||||
mutSpalartAllmarasWallFunctionFvPatchScalarField
|
mutSpalartAllmarasWallFunctionFvPatchScalarField
|
||||||
(
|
(
|
||||||
const mutSpalartAllmarasWallFunctionFvPatchScalarField& tppsf
|
const mutSpalartAllmarasWallFunctionFvPatchScalarField& wfpsf
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(tppsf)
|
fixedValueFvPatchScalarField(wfpsf),
|
||||||
|
UName_(wfpsf.UName_),
|
||||||
|
rhoName_(wfpsf.rhoName_),
|
||||||
|
muName_(wfpsf.muName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
mutSpalartAllmarasWallFunctionFvPatchScalarField::
|
mutSpalartAllmarasWallFunctionFvPatchScalarField::
|
||||||
mutSpalartAllmarasWallFunctionFvPatchScalarField
|
mutSpalartAllmarasWallFunctionFvPatchScalarField
|
||||||
(
|
(
|
||||||
const mutSpalartAllmarasWallFunctionFvPatchScalarField& tppsf,
|
const mutSpalartAllmarasWallFunctionFvPatchScalarField& wfpsf,
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(tppsf, iF)
|
fixedValueFvPatchScalarField(wfpsf, iF),
|
||||||
|
UName_(wfpsf.UName_),
|
||||||
|
rhoName_(wfpsf.rhoName_),
|
||||||
|
muName_(wfpsf.muName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -113,15 +128,15 @@ void mutSpalartAllmarasWallFunctionFvPatchScalarField::evaluate
|
|||||||
const scalarField& ry = patch().deltaCoeffs();
|
const scalarField& ry = patch().deltaCoeffs();
|
||||||
|
|
||||||
const fvPatchVectorField& U =
|
const fvPatchVectorField& U =
|
||||||
patch().lookupPatchField<volVectorField, vector>("U");
|
patch().lookupPatchField<volVectorField, vector>(UName_);
|
||||||
|
|
||||||
scalarField magUp = mag(U.patchInternalField() - U);
|
scalarField magUp = mag(U.patchInternalField() - U);
|
||||||
|
|
||||||
const scalarField& rhow =
|
const scalarField& rhow =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("rho");
|
patch().lookupPatchField<volScalarField, scalar>(rhoName_);
|
||||||
|
|
||||||
const scalarField& muw =
|
const scalarField& muw =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("mu");
|
patch().lookupPatchField<volScalarField, scalar>(muName_);
|
||||||
|
|
||||||
scalarField& mutw = *this;
|
scalarField& mutw = *this;
|
||||||
|
|
||||||
@ -174,6 +189,19 @@ void mutSpalartAllmarasWallFunctionFvPatchScalarField::evaluate
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void mutSpalartAllmarasWallFunctionFvPatchScalarField::write
|
||||||
|
(
|
||||||
|
Ostream& os
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
fvPatchField<scalar>::write(os);
|
||||||
|
writeEntryIfDifferent<word>(os, "U", "U", UName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "mu", "mu", muName_);
|
||||||
|
writeEntry("value", os);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
makePatchTypeField(fvPatchScalarField, mutSpalartAllmarasWallFunctionFvPatchScalarField);
|
makePatchTypeField(fvPatchScalarField, mutSpalartAllmarasWallFunctionFvPatchScalarField);
|
||||||
|
|||||||
@ -56,6 +56,18 @@ class mutSpalartAllmarasWallFunctionFvPatchScalarField
|
|||||||
:
|
:
|
||||||
public fixedValueFvPatchScalarField
|
public fixedValueFvPatchScalarField
|
||||||
{
|
{
|
||||||
|
// Private data
|
||||||
|
|
||||||
|
//- Name of velocity field
|
||||||
|
word UName_;
|
||||||
|
|
||||||
|
//- Name of density field
|
||||||
|
word rhoName_;
|
||||||
|
|
||||||
|
//- Name of laminar viscosity field
|
||||||
|
word muName_;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
//- Runtime type information
|
//- Runtime type information
|
||||||
@ -134,6 +146,9 @@ public:
|
|||||||
(
|
(
|
||||||
const Pstream::commsTypes commsType=Pstream::blocking
|
const Pstream::commsTypes commsType=Pstream::blocking
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//- Write
|
||||||
|
virtual void write(Ostream& os) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -48,7 +48,10 @@ mutWallFunctionFvPatchScalarField
|
|||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF)
|
fixedValueFvPatchScalarField(p, iF),
|
||||||
|
rhoName_("rho"),
|
||||||
|
muName_("mu"),
|
||||||
|
kName_("k")
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -61,7 +64,10 @@ mutWallFunctionFvPatchScalarField
|
|||||||
const fvPatchFieldMapper& mapper
|
const fvPatchFieldMapper& mapper
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(ptf, p, iF, mapper)
|
fixedValueFvPatchScalarField(ptf, p, iF, mapper),
|
||||||
|
rhoName_(ptf.rhoName_),
|
||||||
|
muName_(ptf.muName_),
|
||||||
|
kName_(ptf.kName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -73,28 +79,37 @@ mutWallFunctionFvPatchScalarField
|
|||||||
const dictionary& dict
|
const dictionary& dict
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF, dict)
|
fixedValueFvPatchScalarField(p, iF, dict),
|
||||||
|
rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
|
||||||
|
muName_(dict.lookupOrDefault<word>("mu", "mu")),
|
||||||
|
kName_(dict.lookupOrDefault<word>("k", "k"))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
mutWallFunctionFvPatchScalarField::
|
mutWallFunctionFvPatchScalarField::
|
||||||
mutWallFunctionFvPatchScalarField
|
mutWallFunctionFvPatchScalarField
|
||||||
(
|
(
|
||||||
const mutWallFunctionFvPatchScalarField& tppsf
|
const mutWallFunctionFvPatchScalarField& wfpsf
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(tppsf)
|
fixedValueFvPatchScalarField(wfpsf),
|
||||||
|
rhoName_(wfpsf.rhoName_),
|
||||||
|
muName_(wfpsf.muName_),
|
||||||
|
kName_(wfpsf.kName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
mutWallFunctionFvPatchScalarField::
|
mutWallFunctionFvPatchScalarField::
|
||||||
mutWallFunctionFvPatchScalarField
|
mutWallFunctionFvPatchScalarField
|
||||||
(
|
(
|
||||||
const mutWallFunctionFvPatchScalarField& tppsf,
|
const mutWallFunctionFvPatchScalarField& wfpsf,
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(tppsf, iF)
|
fixedValueFvPatchScalarField(wfpsf, iF),
|
||||||
|
rhoName_(wfpsf.rhoName_),
|
||||||
|
muName_(wfpsf.muName_),
|
||||||
|
kName_(wfpsf.kName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -113,12 +128,12 @@ void mutWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
const scalarField& y = ras.y()[patch().index()];
|
const scalarField& y = ras.y()[patch().index()];
|
||||||
|
|
||||||
const scalarField& rhow =
|
const scalarField& rhow =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("rho");
|
patch().lookupPatchField<volScalarField, scalar>(rhoName_);
|
||||||
|
|
||||||
const volScalarField& k = db().lookupObject<volScalarField>("k");
|
const volScalarField& k = db().lookupObject<volScalarField>(kName_);
|
||||||
|
|
||||||
const scalarField& muw =
|
const scalarField& muw =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("mu");
|
patch().lookupPatchField<volScalarField, scalar>(muName_);
|
||||||
|
|
||||||
scalarField& mutw = *this;
|
scalarField& mutw = *this;
|
||||||
|
|
||||||
@ -145,6 +160,9 @@ void mutWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
void mutWallFunctionFvPatchScalarField::write(Ostream& os) const
|
void mutWallFunctionFvPatchScalarField::write(Ostream& os) const
|
||||||
{
|
{
|
||||||
fvPatchField<scalar>::write(os);
|
fvPatchField<scalar>::write(os);
|
||||||
|
writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "mu", "mu", muName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "k", "k", kName_);
|
||||||
writeEntry("value", os);
|
writeEntry("value", os);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -57,6 +57,17 @@ class mutWallFunctionFvPatchScalarField
|
|||||||
:
|
:
|
||||||
public fixedValueFvPatchScalarField
|
public fixedValueFvPatchScalarField
|
||||||
{
|
{
|
||||||
|
// Private data
|
||||||
|
|
||||||
|
//- Name of density field
|
||||||
|
word rhoName_;
|
||||||
|
|
||||||
|
//- Name of laminar viscosity field
|
||||||
|
word muName_;
|
||||||
|
|
||||||
|
//- Name of turbulence kinetic energy field
|
||||||
|
word kName_;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -138,7 +149,7 @@ public:
|
|||||||
// I-O
|
// I-O
|
||||||
|
|
||||||
//- Write
|
//- Write
|
||||||
void write(Ostream&) const;
|
virtual void write(Ostream&) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -64,7 +64,13 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
|
|||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedInternalValueFvPatchField<scalar>(p, iF)
|
fixedInternalValueFvPatchField<scalar>(p, iF),
|
||||||
|
UName_("U"),
|
||||||
|
rhoName_("rho"),
|
||||||
|
kName_("k"),
|
||||||
|
GName_("G"),
|
||||||
|
muName_("mu"),
|
||||||
|
mutName_("mut")
|
||||||
{
|
{
|
||||||
checkType();
|
checkType();
|
||||||
}
|
}
|
||||||
@ -78,7 +84,13 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
|
|||||||
const fvPatchFieldMapper& mapper
|
const fvPatchFieldMapper& mapper
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper)
|
fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper),
|
||||||
|
UName_(ptf.UName_),
|
||||||
|
rhoName_(ptf.rhoName_),
|
||||||
|
kName_(ptf.kName_),
|
||||||
|
GName_(ptf.GName_),
|
||||||
|
muName_(ptf.muName_),
|
||||||
|
mutName_(ptf.mutName_)
|
||||||
{
|
{
|
||||||
checkType();
|
checkType();
|
||||||
}
|
}
|
||||||
@ -91,7 +103,13 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
|
|||||||
const dictionary& dict
|
const dictionary& dict
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedInternalValueFvPatchField<scalar>(p, iF, dict)
|
fixedInternalValueFvPatchField<scalar>(p, iF, dict),
|
||||||
|
UName_(dict.lookupOrDefault<word>("U", "U")),
|
||||||
|
rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
|
||||||
|
kName_(dict.lookupOrDefault<word>("k", "k")),
|
||||||
|
GName_(dict.lookupOrDefault<word>("G", "G")),
|
||||||
|
muName_(dict.lookupOrDefault<word>("mu", "mu")),
|
||||||
|
mutName_(dict.lookupOrDefault<word>("mut", "mut"))
|
||||||
{
|
{
|
||||||
checkType();
|
checkType();
|
||||||
}
|
}
|
||||||
@ -99,10 +117,16 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
|
|||||||
|
|
||||||
omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
|
omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
|
||||||
(
|
(
|
||||||
const omegaWallFunctionFvPatchScalarField& ewfpsf
|
const omegaWallFunctionFvPatchScalarField& owfpsf
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedInternalValueFvPatchField<scalar>(ewfpsf)
|
fixedInternalValueFvPatchField<scalar>(owfpsf),
|
||||||
|
UName_(owfpsf.UName_),
|
||||||
|
rhoName_(owfpsf.rhoName_),
|
||||||
|
kName_(owfpsf.kName_),
|
||||||
|
GName_(owfpsf.GName_),
|
||||||
|
muName_(owfpsf.muName_),
|
||||||
|
mutName_(owfpsf.mutName_)
|
||||||
{
|
{
|
||||||
checkType();
|
checkType();
|
||||||
}
|
}
|
||||||
@ -110,11 +134,17 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
|
|||||||
|
|
||||||
omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
|
omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
|
||||||
(
|
(
|
||||||
const omegaWallFunctionFvPatchScalarField& ewfpsf,
|
const omegaWallFunctionFvPatchScalarField& owfpsf,
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedInternalValueFvPatchField<scalar>(ewfpsf, iF)
|
fixedInternalValueFvPatchField<scalar>(owfpsf, iF),
|
||||||
|
UName_(owfpsf.UName_),
|
||||||
|
rhoName_(owfpsf.rhoName_),
|
||||||
|
kName_(owfpsf.kName_),
|
||||||
|
GName_(owfpsf.GName_),
|
||||||
|
muName_(owfpsf.muName_),
|
||||||
|
mutName_(owfpsf.mutName_)
|
||||||
{
|
{
|
||||||
checkType();
|
checkType();
|
||||||
}
|
}
|
||||||
@ -135,24 +165,24 @@ void omegaWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
const scalarField& y = ras.y()[patch().index()];
|
const scalarField& y = ras.y()[patch().index()];
|
||||||
|
|
||||||
volScalarField& G = const_cast<volScalarField&>
|
volScalarField& G = const_cast<volScalarField&>
|
||||||
(db().lookupObject<volScalarField>("G"));
|
(db().lookupObject<volScalarField>(GName_));
|
||||||
|
|
||||||
volScalarField& omega = const_cast<volScalarField&>
|
volScalarField& omega = const_cast<volScalarField&>
|
||||||
(db().lookupObject<volScalarField>("omega"));
|
(db().lookupObject<volScalarField>(dimensionedInternalField().name()));
|
||||||
|
|
||||||
const scalarField& k = db().lookupObject<volScalarField>("k");
|
const scalarField& k = db().lookupObject<volScalarField>(kName_);
|
||||||
|
|
||||||
const scalarField& rhow =
|
const scalarField& rhow =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("rho");
|
patch().lookupPatchField<volScalarField, scalar>(rhoName_);
|
||||||
|
|
||||||
const scalarField& muw =
|
const scalarField& muw =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("mu");
|
patch().lookupPatchField<volScalarField, scalar>(muName_);
|
||||||
|
|
||||||
const scalarField& mutw =
|
const scalarField& mutw =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("mut");
|
patch().lookupPatchField<volScalarField, scalar>(mutName_);
|
||||||
|
|
||||||
const fvPatchVectorField& Uw =
|
const fvPatchVectorField& Uw =
|
||||||
patch().lookupPatchField<volVectorField, vector>("U");
|
patch().lookupPatchField<volVectorField, vector>(UName_);
|
||||||
|
|
||||||
const scalarField magGradUw = mag(Uw.snGrad());
|
const scalarField magGradUw = mag(Uw.snGrad());
|
||||||
|
|
||||||
@ -188,6 +218,12 @@ void omegaWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
void omegaWallFunctionFvPatchScalarField::write(Ostream& os) const
|
void omegaWallFunctionFvPatchScalarField::write(Ostream& os) const
|
||||||
{
|
{
|
||||||
fixedInternalValueFvPatchField<scalar>::write(os);
|
fixedInternalValueFvPatchField<scalar>::write(os);
|
||||||
|
writeEntryIfDifferent<word>(os, "U", "U", UName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "k", "k", kName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "G", "G", GName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "mu", "mu", muName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "mut", "mut", mutName_);
|
||||||
writeEntry("value", os);
|
writeEntry("value", os);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -55,6 +55,26 @@ class omegaWallFunctionFvPatchScalarField
|
|||||||
:
|
:
|
||||||
public fixedInternalValueFvPatchField<scalar>
|
public fixedInternalValueFvPatchField<scalar>
|
||||||
{
|
{
|
||||||
|
// Private data
|
||||||
|
|
||||||
|
//- Name of velocity field
|
||||||
|
word UName_;
|
||||||
|
|
||||||
|
//- Name of density field
|
||||||
|
word rhoName_;
|
||||||
|
|
||||||
|
//- Name of turbulence kinetic energy field
|
||||||
|
word kName_;
|
||||||
|
|
||||||
|
//- Name of turbulence generation field
|
||||||
|
word GName_;
|
||||||
|
|
||||||
|
//- Name of laminar viscosity field
|
||||||
|
word muName_;
|
||||||
|
|
||||||
|
//- Name of turbulent viscosity field
|
||||||
|
word mutName_;
|
||||||
|
|
||||||
|
|
||||||
// Private member functions
|
// Private member functions
|
||||||
|
|
||||||
|
|||||||
@ -208,19 +208,6 @@ kOmegaSST::kOmegaSST
|
|||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|
||||||
omega0_("omega0", dimless/dimTime, SMALL),
|
|
||||||
omegaSmall_("omegaSmall", dimless/dimTime, SMALL),
|
|
||||||
|
|
||||||
Cmu_
|
|
||||||
(
|
|
||||||
dimensioned<scalar>::lookupOrAddToDict
|
|
||||||
(
|
|
||||||
"Cmu",
|
|
||||||
coeffDict_,
|
|
||||||
0.09
|
|
||||||
)
|
|
||||||
),
|
|
||||||
|
|
||||||
y_(mesh_),
|
y_(mesh_),
|
||||||
|
|
||||||
k_
|
k_
|
||||||
@ -350,7 +337,6 @@ bool kOmegaSST::read()
|
|||||||
betaStar_.readIfPresent(coeffDict_);
|
betaStar_.readIfPresent(coeffDict_);
|
||||||
a1_.readIfPresent(coeffDict_);
|
a1_.readIfPresent(coeffDict_);
|
||||||
c1_.readIfPresent(coeffDict_);
|
c1_.readIfPresent(coeffDict_);
|
||||||
Cmu_.readIfPresent(coeffDict_);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -56,7 +56,6 @@ Description
|
|||||||
@verbatim
|
@verbatim
|
||||||
kOmegaSST
|
kOmegaSST
|
||||||
{
|
{
|
||||||
Cmu 0.09;
|
|
||||||
alphaK1 0.85034;
|
alphaK1 0.85034;
|
||||||
alphaK2 1.0;
|
alphaK2 1.0;
|
||||||
alphaOmega1 0.5;
|
alphaOmega1 0.5;
|
||||||
@ -96,7 +95,7 @@ namespace RASModels
|
|||||||
{
|
{
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*\
|
/*---------------------------------------------------------------------------*\
|
||||||
Class kOmega Declaration
|
Class kOmegaSST Declaration
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
class kOmegaSST
|
class kOmegaSST
|
||||||
@ -105,36 +104,38 @@ class kOmegaSST
|
|||||||
{
|
{
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
dimensionedScalar alphaK1_;
|
// Model coefficients
|
||||||
dimensionedScalar alphaK2_;
|
|
||||||
|
|
||||||
dimensionedScalar alphaOmega1_;
|
dimensionedScalar alphaK1_;
|
||||||
dimensionedScalar alphaOmega2_;
|
dimensionedScalar alphaK2_;
|
||||||
|
|
||||||
dimensionedScalar alphah_;
|
dimensionedScalar alphaOmega1_;
|
||||||
|
dimensionedScalar alphaOmega2_;
|
||||||
|
|
||||||
dimensionedScalar gamma1_;
|
dimensionedScalar alphah_;
|
||||||
dimensionedScalar gamma2_;
|
|
||||||
|
|
||||||
dimensionedScalar beta1_;
|
dimensionedScalar gamma1_;
|
||||||
dimensionedScalar beta2_;
|
dimensionedScalar gamma2_;
|
||||||
|
|
||||||
dimensionedScalar betaStar_;
|
dimensionedScalar beta1_;
|
||||||
|
dimensionedScalar beta2_;
|
||||||
|
|
||||||
dimensionedScalar a1_;
|
dimensionedScalar betaStar_;
|
||||||
dimensionedScalar c1_;
|
|
||||||
|
|
||||||
dimensionedScalar omega0_;
|
dimensionedScalar a1_;
|
||||||
dimensionedScalar omegaSmall_;
|
dimensionedScalar c1_;
|
||||||
|
|
||||||
dimensionedScalar Cmu_;
|
|
||||||
|
|
||||||
|
//- Wall distance
|
||||||
|
// Note: different to wall distance in parent RASModel
|
||||||
wallDist y_;
|
wallDist y_;
|
||||||
|
|
||||||
volScalarField k_;
|
// Fields
|
||||||
volScalarField omega_;
|
|
||||||
volScalarField mut_;
|
volScalarField k_;
|
||||||
volScalarField alphat_;
|
volScalarField omega_;
|
||||||
|
volScalarField mut_;
|
||||||
|
volScalarField alphat_;
|
||||||
|
|
||||||
|
|
||||||
// Private member functions
|
// Private member functions
|
||||||
|
|||||||
@ -115,6 +115,8 @@ RASModel::RASModel
|
|||||||
k0_("k0", dimVelocity*dimVelocity, SMALL),
|
k0_("k0", dimVelocity*dimVelocity, SMALL),
|
||||||
epsilon0_("epsilon", k0_.dimensions()/dimTime, SMALL),
|
epsilon0_("epsilon", k0_.dimensions()/dimTime, SMALL),
|
||||||
epsilonSmall_("epsilonSmall", epsilon0_.dimensions(), SMALL),
|
epsilonSmall_("epsilonSmall", epsilon0_.dimensions(), SMALL),
|
||||||
|
omega0_("omega0", dimless/dimTime, SMALL),
|
||||||
|
omegaSmall_("omegaSmall", omega0_.dimensions(), SMALL),
|
||||||
|
|
||||||
y_(mesh_)
|
y_(mesh_)
|
||||||
{}
|
{}
|
||||||
@ -250,6 +252,8 @@ bool RASModel::read()
|
|||||||
k0_.readIfPresent(*this);
|
k0_.readIfPresent(*this);
|
||||||
epsilon0_.readIfPresent(*this);
|
epsilon0_.readIfPresent(*this);
|
||||||
epsilonSmall_.readIfPresent(*this);
|
epsilonSmall_.readIfPresent(*this);
|
||||||
|
omega0_.readIfPresent(*this);
|
||||||
|
omegaSmall_.readIfPresent(*this);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -77,21 +77,45 @@ protected:
|
|||||||
|
|
||||||
// Protected data
|
// Protected data
|
||||||
|
|
||||||
|
//- Turbulence on/off flag
|
||||||
Switch turbulence_;
|
Switch turbulence_;
|
||||||
|
|
||||||
|
//- Flag to print the model coeffs at run-time
|
||||||
Switch printCoeffs_;
|
Switch printCoeffs_;
|
||||||
|
|
||||||
|
//- Model coefficients dictionary
|
||||||
dictionary coeffDict_;
|
dictionary coeffDict_;
|
||||||
|
|
||||||
dictionary wallFunctionDict_;
|
// Wall function properties
|
||||||
dimensionedScalar kappa_;
|
|
||||||
dimensionedScalar E_;
|
|
||||||
dimensionedScalar Cmu_;
|
|
||||||
|
|
||||||
|
//- Wall function dictionary
|
||||||
|
dictionary wallFunctionDict_;
|
||||||
|
|
||||||
|
dimensionedScalar kappa_;
|
||||||
|
|
||||||
|
dimensionedScalar E_;
|
||||||
|
|
||||||
|
dimensionedScalar Cmu_;
|
||||||
|
|
||||||
|
//- Value of y+ at the edge of the laminar sublayer
|
||||||
scalar yPlusLam_;
|
scalar yPlusLam_;
|
||||||
|
|
||||||
|
//- Lower limit of k
|
||||||
dimensionedScalar k0_;
|
dimensionedScalar k0_;
|
||||||
|
|
||||||
|
//- Lower limit of epsilon
|
||||||
dimensionedScalar epsilon0_;
|
dimensionedScalar epsilon0_;
|
||||||
|
|
||||||
|
//- Small epsilon value used to avoid divide by zero
|
||||||
dimensionedScalar epsilonSmall_;
|
dimensionedScalar epsilonSmall_;
|
||||||
|
|
||||||
|
//- Lower limit for omega
|
||||||
|
dimensionedScalar omega0_;
|
||||||
|
|
||||||
|
//- Small omega value used to avoid divide by zero
|
||||||
|
dimensionedScalar omegaSmall_;
|
||||||
|
|
||||||
|
//- Near wall distance boundary field
|
||||||
nearWallDist y_;
|
nearWallDist y_;
|
||||||
|
|
||||||
|
|
||||||
@ -183,6 +207,20 @@ public:
|
|||||||
return epsilonSmall_;
|
return epsilonSmall_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//- Return the value of omega0 which epsilon is not allowed to be
|
||||||
|
// less than
|
||||||
|
const dimensionedScalar& omega0() const
|
||||||
|
{
|
||||||
|
return omega0_;
|
||||||
|
}
|
||||||
|
|
||||||
|
//- Return the value of omegaSmall which is added to epsilon when
|
||||||
|
// calculating nut
|
||||||
|
const dimensionedScalar& omegaSmall() const
|
||||||
|
{
|
||||||
|
return omegaSmall_;
|
||||||
|
}
|
||||||
|
|
||||||
//- Allow k0 to be changed
|
//- Allow k0 to be changed
|
||||||
dimensionedScalar& k0()
|
dimensionedScalar& k0()
|
||||||
{
|
{
|
||||||
@ -201,6 +239,18 @@ public:
|
|||||||
return epsilonSmall_;
|
return epsilonSmall_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//- Allow omega0 to be changed
|
||||||
|
dimensionedScalar& omega0()
|
||||||
|
{
|
||||||
|
return omega0_;
|
||||||
|
}
|
||||||
|
|
||||||
|
//- Allow omegaSmall to be changed
|
||||||
|
dimensionedScalar& omegaSmall()
|
||||||
|
{
|
||||||
|
return omegaSmall_;
|
||||||
|
}
|
||||||
|
|
||||||
//- Return kappa for use in wall-functions
|
//- Return kappa for use in wall-functions
|
||||||
dimensionedScalar kappa() const
|
dimensionedScalar kappa() const
|
||||||
{
|
{
|
||||||
|
|||||||
@ -64,7 +64,12 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
|
|||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedInternalValueFvPatchField<scalar>(p, iF)
|
fixedInternalValueFvPatchField<scalar>(p, iF),
|
||||||
|
UName_("U"),
|
||||||
|
kName_("k"),
|
||||||
|
GName_("G"),
|
||||||
|
nuName_("nu"),
|
||||||
|
nutName_("nut")
|
||||||
{
|
{
|
||||||
checkType();
|
checkType();
|
||||||
}
|
}
|
||||||
@ -78,7 +83,12 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
|
|||||||
const fvPatchFieldMapper& mapper
|
const fvPatchFieldMapper& mapper
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper)
|
fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper),
|
||||||
|
UName_(ptf.UName_),
|
||||||
|
kName_(ptf.kName_),
|
||||||
|
GName_(ptf.GName_),
|
||||||
|
nuName_(ptf.nuName_),
|
||||||
|
nutName_(ptf.nutName_)
|
||||||
{
|
{
|
||||||
checkType();
|
checkType();
|
||||||
}
|
}
|
||||||
@ -91,7 +101,12 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
|
|||||||
const dictionary& dict
|
const dictionary& dict
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedInternalValueFvPatchField<scalar>(p, iF, dict)
|
fixedInternalValueFvPatchField<scalar>(p, iF, dict),
|
||||||
|
UName_(dict.lookupOrDefault<word>("U", "U")),
|
||||||
|
kName_(dict.lookupOrDefault<word>("k", "k")),
|
||||||
|
GName_(dict.lookupOrDefault<word>("G", "G")),
|
||||||
|
nuName_(dict.lookupOrDefault<word>("nu", "nu")),
|
||||||
|
nutName_(dict.lookupOrDefault<word>("nut", "nut"))
|
||||||
{
|
{
|
||||||
checkType();
|
checkType();
|
||||||
}
|
}
|
||||||
@ -102,7 +117,12 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
|
|||||||
const epsilonWallFunctionFvPatchScalarField& ewfpsf
|
const epsilonWallFunctionFvPatchScalarField& ewfpsf
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedInternalValueFvPatchField<scalar>(ewfpsf)
|
fixedInternalValueFvPatchField<scalar>(ewfpsf),
|
||||||
|
UName_(ewfpsf.UName_),
|
||||||
|
kName_(ewfpsf.kName_),
|
||||||
|
GName_(ewfpsf.GName_),
|
||||||
|
nuName_(ewfpsf.nuName_),
|
||||||
|
nutName_(ewfpsf.nutName_)
|
||||||
{
|
{
|
||||||
checkType();
|
checkType();
|
||||||
}
|
}
|
||||||
@ -114,7 +134,12 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
|
|||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedInternalValueFvPatchField<scalar>(ewfpsf, iF)
|
fixedInternalValueFvPatchField<scalar>(ewfpsf, iF),
|
||||||
|
UName_(ewfpsf.UName_),
|
||||||
|
kName_(ewfpsf.kName_),
|
||||||
|
GName_(ewfpsf.GName_),
|
||||||
|
nuName_(ewfpsf.nuName_),
|
||||||
|
nutName_(ewfpsf.nutName_)
|
||||||
{
|
{
|
||||||
checkType();
|
checkType();
|
||||||
}
|
}
|
||||||
@ -135,21 +160,21 @@ void epsilonWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
const scalarField& y = ras.y()[patch().index()];
|
const scalarField& y = ras.y()[patch().index()];
|
||||||
|
|
||||||
volScalarField& G = const_cast<volScalarField&>
|
volScalarField& G = const_cast<volScalarField&>
|
||||||
(db().lookupObject<volScalarField>("G"));
|
(db().lookupObject<volScalarField>(GName_));
|
||||||
|
|
||||||
volScalarField& epsilon = const_cast<volScalarField&>
|
volScalarField& epsilon = const_cast<volScalarField&>
|
||||||
(db().lookupObject<volScalarField>("epsilon"));
|
(db().lookupObject<volScalarField>(dimensionedInternalField().name()));
|
||||||
|
|
||||||
const volScalarField& k = db().lookupObject<volScalarField>("k");
|
const volScalarField& k = db().lookupObject<volScalarField>(kName_);
|
||||||
|
|
||||||
const scalarField& nuw =
|
const scalarField& nuw =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("nu");
|
patch().lookupPatchField<volScalarField, scalar>(nuName_);
|
||||||
|
|
||||||
const scalarField& nutw =
|
const scalarField& nutw =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("nut");
|
patch().lookupPatchField<volScalarField, scalar>(nutName_);
|
||||||
|
|
||||||
const fvPatchVectorField& Uw =
|
const fvPatchVectorField& Uw =
|
||||||
patch().lookupPatchField<volVectorField, vector>("U");
|
patch().lookupPatchField<volVectorField, vector>(UName_);
|
||||||
|
|
||||||
const scalarField magGradUw = mag(Uw.snGrad());
|
const scalarField magGradUw = mag(Uw.snGrad());
|
||||||
|
|
||||||
@ -192,6 +217,11 @@ void epsilonWallFunctionFvPatchScalarField::evaluate
|
|||||||
void epsilonWallFunctionFvPatchScalarField::write(Ostream& os) const
|
void epsilonWallFunctionFvPatchScalarField::write(Ostream& os) const
|
||||||
{
|
{
|
||||||
fixedInternalValueFvPatchField<scalar>::write(os);
|
fixedInternalValueFvPatchField<scalar>::write(os);
|
||||||
|
writeEntryIfDifferent<word>(os, "U", "U", UName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "k", "k", kName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "G", "G", GName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "nu", "nu", nuName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "nut", "nut", nutName_);
|
||||||
writeEntry("value", os);
|
writeEntry("value", os);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -57,6 +57,23 @@ class epsilonWallFunctionFvPatchScalarField
|
|||||||
:
|
:
|
||||||
public fixedInternalValueFvPatchField<scalar>
|
public fixedInternalValueFvPatchField<scalar>
|
||||||
{
|
{
|
||||||
|
// Private data
|
||||||
|
|
||||||
|
//- Name of velocity field
|
||||||
|
word UName_;
|
||||||
|
|
||||||
|
//- Name of turbulence kinetic energy field
|
||||||
|
word kName_;
|
||||||
|
|
||||||
|
//- Name of turbulence generation field
|
||||||
|
word GName_;
|
||||||
|
|
||||||
|
//- Name of laminar viscosity field
|
||||||
|
word nuName_;
|
||||||
|
|
||||||
|
//- Name of turbulent viscosity field
|
||||||
|
word nutName_;
|
||||||
|
|
||||||
|
|
||||||
// Private member functions
|
// Private member functions
|
||||||
|
|
||||||
|
|||||||
@ -77,6 +77,8 @@ nutRoughWallFunctionFvPatchScalarField
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF),
|
fixedValueFvPatchScalarField(p, iF),
|
||||||
|
kName_("k"),
|
||||||
|
nuName_("nu"),
|
||||||
Ks_(p.size(), 0.0),
|
Ks_(p.size(), 0.0),
|
||||||
Cs_(p.size(), 0.0)
|
Cs_(p.size(), 0.0)
|
||||||
{}
|
{}
|
||||||
@ -92,6 +94,8 @@ nutRoughWallFunctionFvPatchScalarField
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(ptf, p, iF, mapper),
|
fixedValueFvPatchScalarField(ptf, p, iF, mapper),
|
||||||
|
kName_(ptf.kName_),
|
||||||
|
nuName_(ptf.nuName_),
|
||||||
Ks_(ptf.Ks_, mapper),
|
Ks_(ptf.Ks_, mapper),
|
||||||
Cs_(ptf.Cs_, mapper)
|
Cs_(ptf.Cs_, mapper)
|
||||||
{}
|
{}
|
||||||
@ -106,6 +110,8 @@ nutRoughWallFunctionFvPatchScalarField
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF, dict),
|
fixedValueFvPatchScalarField(p, iF, dict),
|
||||||
|
kName_(dict.lookupOrDefault<word>("k", "k")),
|
||||||
|
nuName_(dict.lookupOrDefault<word>("nu", "nu")),
|
||||||
Ks_("Ks", dict, p.size()),
|
Ks_("Ks", dict, p.size()),
|
||||||
Cs_("Cs", dict, p.size())
|
Cs_("Cs", dict, p.size())
|
||||||
{}
|
{}
|
||||||
@ -118,6 +124,8 @@ nutRoughWallFunctionFvPatchScalarField
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(nrwfpsf),
|
fixedValueFvPatchScalarField(nrwfpsf),
|
||||||
|
kName_(nrwfpsf.kName_),
|
||||||
|
nuName_(nrwfpsf.nuName_),
|
||||||
Ks_(nrwfpsf.Ks_),
|
Ks_(nrwfpsf.Ks_),
|
||||||
Cs_(nrwfpsf.Cs_)
|
Cs_(nrwfpsf.Cs_)
|
||||||
{}
|
{}
|
||||||
@ -131,6 +139,8 @@ nutRoughWallFunctionFvPatchScalarField
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(nrwfpsf, iF),
|
fixedValueFvPatchScalarField(nrwfpsf, iF),
|
||||||
|
kName_(nrwfpsf.kName_),
|
||||||
|
nuName_(nrwfpsf.nuName_),
|
||||||
Ks_(nrwfpsf.Ks_),
|
Ks_(nrwfpsf.Ks_),
|
||||||
Cs_(nrwfpsf.Cs_)
|
Cs_(nrwfpsf.Cs_)
|
||||||
{}
|
{}
|
||||||
@ -177,10 +187,10 @@ void nutRoughWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
|
|
||||||
const scalarField& y = ras.y()[patch().index()];
|
const scalarField& y = ras.y()[patch().index()];
|
||||||
|
|
||||||
const scalarField& k = db().lookupObject<volScalarField>("k");
|
const scalarField& k = db().lookupObject<volScalarField>(kName_);
|
||||||
|
|
||||||
const scalarField& nuw =
|
const scalarField& nuw =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("nu");
|
patch().lookupPatchField<volScalarField, scalar>(nuName_);
|
||||||
|
|
||||||
scalarField& nutw = *this;
|
scalarField& nutw = *this;
|
||||||
|
|
||||||
@ -226,6 +236,8 @@ void nutRoughWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
void nutRoughWallFunctionFvPatchScalarField::write(Ostream& os) const
|
void nutRoughWallFunctionFvPatchScalarField::write(Ostream& os) const
|
||||||
{
|
{
|
||||||
fvPatchField<scalar>::write(os);
|
fvPatchField<scalar>::write(os);
|
||||||
|
writeEntryIfDifferent<word>(os, "k", "k", kName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "nu", "nu", nuName_);
|
||||||
Cs_.writeEntry("Cs", os);
|
Cs_.writeEntry("Cs", os);
|
||||||
Ks_.writeEntry("Ks", os);
|
Ks_.writeEntry("Ks", os);
|
||||||
writeEntry("value", os);
|
writeEntry("value", os);
|
||||||
|
|||||||
@ -64,6 +64,12 @@ class nutRoughWallFunctionFvPatchScalarField
|
|||||||
{
|
{
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
|
//- Name of turbulence kinetic energy field
|
||||||
|
word kName_;
|
||||||
|
|
||||||
|
//- Name of laminar viscosity field
|
||||||
|
word nuName_;
|
||||||
|
|
||||||
//- Roughness height
|
//- Roughness height
|
||||||
scalarField Ks_;
|
scalarField Ks_;
|
||||||
|
|
||||||
|
|||||||
@ -49,6 +49,8 @@ nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF),
|
fixedValueFvPatchScalarField(p, iF),
|
||||||
|
UName_("U"),
|
||||||
|
nuName_("nu"),
|
||||||
roughnessHeight_(pTraits<scalar>::zero),
|
roughnessHeight_(pTraits<scalar>::zero),
|
||||||
roughnessConstant_(pTraits<scalar>::zero),
|
roughnessConstant_(pTraits<scalar>::zero),
|
||||||
roughnessFudgeFactor_(pTraits<scalar>::zero)
|
roughnessFudgeFactor_(pTraits<scalar>::zero)
|
||||||
@ -65,6 +67,8 @@ nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(ptf, p, iF, mapper),
|
fixedValueFvPatchScalarField(ptf, p, iF, mapper),
|
||||||
|
UName_(ptf.UName_),
|
||||||
|
nuName_(ptf.nuName_),
|
||||||
roughnessHeight_(ptf.roughnessHeight_),
|
roughnessHeight_(ptf.roughnessHeight_),
|
||||||
roughnessConstant_(ptf.roughnessConstant_),
|
roughnessConstant_(ptf.roughnessConstant_),
|
||||||
roughnessFudgeFactor_(ptf.roughnessFudgeFactor_)
|
roughnessFudgeFactor_(ptf.roughnessFudgeFactor_)
|
||||||
@ -80,6 +84,8 @@ nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF, dict),
|
fixedValueFvPatchScalarField(p, iF, dict),
|
||||||
|
UName_(dict.lookupOrDefault<word>("U", "U")),
|
||||||
|
nuName_(dict.lookupOrDefault<word>("nu", "nu")),
|
||||||
roughnessHeight_(readScalar(dict.lookup("roughnessHeight"))),
|
roughnessHeight_(readScalar(dict.lookup("roughnessHeight"))),
|
||||||
roughnessConstant_(readScalar(dict.lookup("roughnessConstant"))),
|
roughnessConstant_(readScalar(dict.lookup("roughnessConstant"))),
|
||||||
roughnessFudgeFactor_(readScalar(dict.lookup("roughnessFudgeFactor")))
|
roughnessFudgeFactor_(readScalar(dict.lookup("roughnessFudgeFactor")))
|
||||||
@ -93,6 +99,8 @@ nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(tppsf),
|
fixedValueFvPatchScalarField(tppsf),
|
||||||
|
UName_(tppsf.UName_),
|
||||||
|
nuName_(tppsf.nuName_),
|
||||||
roughnessHeight_(tppsf.roughnessHeight_),
|
roughnessHeight_(tppsf.roughnessHeight_),
|
||||||
roughnessConstant_(tppsf.roughnessConstant_),
|
roughnessConstant_(tppsf.roughnessConstant_),
|
||||||
roughnessFudgeFactor_(tppsf.roughnessFudgeFactor_)
|
roughnessFudgeFactor_(tppsf.roughnessFudgeFactor_)
|
||||||
@ -107,6 +115,8 @@ nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(tppsf, iF),
|
fixedValueFvPatchScalarField(tppsf, iF),
|
||||||
|
UName_(tppsf.UName_),
|
||||||
|
nuName_(tppsf.nuName_),
|
||||||
roughnessHeight_(tppsf.roughnessHeight_),
|
roughnessHeight_(tppsf.roughnessHeight_),
|
||||||
roughnessConstant_(tppsf.roughnessConstant_),
|
roughnessConstant_(tppsf.roughnessConstant_),
|
||||||
roughnessFudgeFactor_(tppsf.roughnessFudgeFactor_)
|
roughnessFudgeFactor_(tppsf.roughnessFudgeFactor_)
|
||||||
@ -130,13 +140,13 @@ void nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::evaluate
|
|||||||
const scalarField& ry = patch().deltaCoeffs();
|
const scalarField& ry = patch().deltaCoeffs();
|
||||||
|
|
||||||
const fvPatchVectorField& U =
|
const fvPatchVectorField& U =
|
||||||
patch().lookupPatchField<volVectorField, vector>("U");
|
patch().lookupPatchField<volVectorField, vector>(UName_);
|
||||||
|
|
||||||
// The flow velocity at the adjacent cell centre.
|
// The flow velocity at the adjacent cell centre.
|
||||||
scalarField magUp = mag(U.patchInternalField() - U);
|
scalarField magUp = mag(U.patchInternalField() - U);
|
||||||
|
|
||||||
const scalarField& nuw =
|
const scalarField& nuw =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("nu");
|
patch().lookupPatchField<volScalarField, scalar>(nuName_);
|
||||||
scalarField& nutw = *this;
|
scalarField& nutw = *this;
|
||||||
|
|
||||||
scalarField magFaceGradU = mag(U.snGrad());
|
scalarField magFaceGradU = mag(U.snGrad());
|
||||||
@ -276,6 +286,8 @@ void nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::write
|
|||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
fixedValueFvPatchScalarField::write(os);
|
fixedValueFvPatchScalarField::write(os);
|
||||||
|
writeEntryIfDifferent<word>(os, "U", "U", UName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "nu", "nu", nuName_);
|
||||||
os.writeKeyword("roughnessHeight")
|
os.writeKeyword("roughnessHeight")
|
||||||
<< roughnessHeight_ << token::END_STATEMENT << nl;
|
<< roughnessHeight_ << token::END_STATEMENT << nl;
|
||||||
os.writeKeyword("roughnessConstant")
|
os.writeKeyword("roughnessConstant")
|
||||||
|
|||||||
@ -58,9 +58,22 @@ class nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
|
|||||||
{
|
{
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
scalar roughnessHeight_;
|
//- Name of velocity field
|
||||||
scalar roughnessConstant_;
|
word UName_;
|
||||||
scalar roughnessFudgeFactor_;
|
|
||||||
|
//- Name of laminar viscosity field
|
||||||
|
word nuName_;
|
||||||
|
|
||||||
|
// Roughness model parameters
|
||||||
|
|
||||||
|
//- Height
|
||||||
|
scalar roughnessHeight_;
|
||||||
|
|
||||||
|
//- Constant
|
||||||
|
scalar roughnessConstant_;
|
||||||
|
|
||||||
|
//- Scale factor
|
||||||
|
scalar roughnessFudgeFactor_;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -143,38 +156,39 @@ public:
|
|||||||
|
|
||||||
// Access
|
// Access
|
||||||
|
|
||||||
//- Return the fluctuation scale
|
//- Return the roughness height
|
||||||
const scalar& roughnessHeight() const
|
const scalar& roughnessHeight() const
|
||||||
{
|
{
|
||||||
return roughnessHeight_;
|
return roughnessHeight_;
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return reference to the fluctuation scale to allow adjustment
|
//- Return reference to the roughness height to allow adjustment
|
||||||
scalar& roughnessHeight()
|
scalar& roughnessHeight()
|
||||||
{
|
{
|
||||||
return roughnessHeight_;
|
return roughnessHeight_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//- Return the fluctuation scale
|
//- Return the roughness constant scale
|
||||||
const scalar& roughnessConstant() const
|
const scalar& roughnessConstant() const
|
||||||
{
|
{
|
||||||
return roughnessConstant_;
|
return roughnessConstant_;
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return reference to the fluctuation scale to allow adjustment
|
//- Return reference to the roughness constant to allow adjustment
|
||||||
scalar& roughnessConstant()
|
scalar& roughnessConstant()
|
||||||
{
|
{
|
||||||
return roughnessConstant_;
|
return roughnessConstant_;
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the fluctuation scale
|
//- Return the roughness scale factor
|
||||||
const scalar& roughnessFudgeFactor() const
|
const scalar& roughnessFudgeFactor() const
|
||||||
{
|
{
|
||||||
return roughnessFudgeFactor_;
|
return roughnessFudgeFactor_;
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return reference to the fluctuation scale to allow adjustment
|
//- Return reference to the roughness scale factor to allow
|
||||||
|
// adjustment
|
||||||
scalar& roughnessFudgeFactor()
|
scalar& roughnessFudgeFactor()
|
||||||
{
|
{
|
||||||
return roughnessFudgeFactor_;
|
return roughnessFudgeFactor_;
|
||||||
|
|||||||
@ -48,7 +48,9 @@ nutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
|||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF)
|
fixedValueFvPatchScalarField(p, iF),
|
||||||
|
UName_("U"),
|
||||||
|
nuName_("nu")
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -61,7 +63,9 @@ nutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
|||||||
const fvPatchFieldMapper& mapper
|
const fvPatchFieldMapper& mapper
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(ptf, p, iF, mapper)
|
fixedValueFvPatchScalarField(ptf, p, iF, mapper),
|
||||||
|
UName_(ptf.UName_),
|
||||||
|
nuName_(ptf.nuName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -73,7 +77,9 @@ nutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
|||||||
const dictionary& dict
|
const dictionary& dict
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF, dict)
|
fixedValueFvPatchScalarField(p, iF, dict),
|
||||||
|
UName_(dict.lookupOrDefault<word>("U", "U")),
|
||||||
|
nuName_(dict.lookupOrDefault<word>("nu", "nu"))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -83,7 +89,9 @@ nutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
|||||||
const nutSpalartAllmarasStandardWallFunctionFvPatchScalarField& tppsf
|
const nutSpalartAllmarasStandardWallFunctionFvPatchScalarField& tppsf
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(tppsf)
|
fixedValueFvPatchScalarField(tppsf),
|
||||||
|
UName_(tppsf.UName_),
|
||||||
|
nuName_(tppsf.nuName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -94,7 +102,9 @@ nutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
|||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(tppsf, iF)
|
fixedValueFvPatchScalarField(tppsf, iF),
|
||||||
|
UName_(tppsf.UName_),
|
||||||
|
nuName_(tppsf.nuName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -114,12 +124,12 @@ void nutSpalartAllmarasStandardWallFunctionFvPatchScalarField::evaluate
|
|||||||
const scalarField& ry = patch().deltaCoeffs();
|
const scalarField& ry = patch().deltaCoeffs();
|
||||||
|
|
||||||
const fvPatchVectorField& U =
|
const fvPatchVectorField& U =
|
||||||
patch().lookupPatchField<volVectorField, vector>("U");
|
patch().lookupPatchField<volVectorField, vector>(UName_);
|
||||||
|
|
||||||
scalarField magUp = mag(U.patchInternalField() - U);
|
scalarField magUp = mag(U.patchInternalField() - U);
|
||||||
|
|
||||||
const scalarField& nuw =
|
const scalarField& nuw =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("nu");
|
patch().lookupPatchField<volScalarField, scalar>(nuName_);
|
||||||
scalarField& nutw = *this;
|
scalarField& nutw = *this;
|
||||||
|
|
||||||
scalarField magFaceGradU = mag(U.snGrad());
|
scalarField magFaceGradU = mag(U.snGrad());
|
||||||
@ -155,6 +165,17 @@ void nutSpalartAllmarasStandardWallFunctionFvPatchScalarField::evaluate
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void nutSpalartAllmarasStandardWallFunctionFvPatchScalarField::write
|
||||||
|
(
|
||||||
|
Ostream& os
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
fixedValueFvPatchScalarField::write(os);
|
||||||
|
writeEntryIfDifferent<word>(os, "U", "U", UName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "nu", "nu", nuName_);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
makePatchTypeField
|
makePatchTypeField
|
||||||
|
|||||||
@ -58,6 +58,12 @@ class nutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
|||||||
{
|
{
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
|
//- Name of velocity field
|
||||||
|
word UName_;
|
||||||
|
|
||||||
|
//- Name of laminar viscosity field
|
||||||
|
word nuName_;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -144,6 +150,9 @@ public:
|
|||||||
(
|
(
|
||||||
const Pstream::commsTypes commsType=Pstream::blocking
|
const Pstream::commsTypes commsType=Pstream::blocking
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//- Write
|
||||||
|
virtual void write(Ostream& os) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -48,7 +48,9 @@ nutSpalartAllmarasWallFunctionFvPatchScalarField
|
|||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF)
|
fixedValueFvPatchScalarField(p, iF),
|
||||||
|
UName_("U"),
|
||||||
|
nuName_("nu")
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -61,7 +63,9 @@ nutSpalartAllmarasWallFunctionFvPatchScalarField
|
|||||||
const fvPatchFieldMapper& mapper
|
const fvPatchFieldMapper& mapper
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(ptf, p, iF, mapper)
|
fixedValueFvPatchScalarField(ptf, p, iF, mapper),
|
||||||
|
UName_(ptf.UName_),
|
||||||
|
nuName_(ptf.nuName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -73,7 +77,9 @@ nutSpalartAllmarasWallFunctionFvPatchScalarField
|
|||||||
const dictionary& dict
|
const dictionary& dict
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF, dict)
|
fixedValueFvPatchScalarField(p, iF, dict),
|
||||||
|
UName_(dict.lookupOrDefault<word>("U", "U")),
|
||||||
|
nuName_(dict.lookupOrDefault<word>("nu", "nu"))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -83,7 +89,9 @@ nutSpalartAllmarasWallFunctionFvPatchScalarField
|
|||||||
const nutSpalartAllmarasWallFunctionFvPatchScalarField& tppsf
|
const nutSpalartAllmarasWallFunctionFvPatchScalarField& tppsf
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(tppsf)
|
fixedValueFvPatchScalarField(tppsf),
|
||||||
|
UName_(tppsf.UName_),
|
||||||
|
nuName_(tppsf.nuName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -94,7 +102,9 @@ nutSpalartAllmarasWallFunctionFvPatchScalarField
|
|||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(tppsf, iF)
|
fixedValueFvPatchScalarField(tppsf, iF),
|
||||||
|
UName_(tppsf.UName_),
|
||||||
|
nuName_(tppsf.nuName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -113,12 +123,12 @@ void nutSpalartAllmarasWallFunctionFvPatchScalarField::evaluate
|
|||||||
const scalarField& ry = patch().deltaCoeffs();
|
const scalarField& ry = patch().deltaCoeffs();
|
||||||
|
|
||||||
const fvPatchVectorField& U =
|
const fvPatchVectorField& U =
|
||||||
patch().lookupPatchField<volVectorField, vector>("U");
|
patch().lookupPatchField<volVectorField, vector>(UName_);
|
||||||
|
|
||||||
scalarField magUp = mag(U.patchInternalField() - U);
|
scalarField magUp = mag(U.patchInternalField() - U);
|
||||||
|
|
||||||
const scalarField& nuw =
|
const scalarField& nuw =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("nu");
|
patch().lookupPatchField<volScalarField, scalar>(nuName_);
|
||||||
|
|
||||||
scalarField& nutw = *this;
|
scalarField& nutw = *this;
|
||||||
|
|
||||||
@ -167,6 +177,17 @@ void nutSpalartAllmarasWallFunctionFvPatchScalarField::evaluate
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void nutSpalartAllmarasWallFunctionFvPatchScalarField::write
|
||||||
|
(
|
||||||
|
Ostream& os
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
fixedValueFvPatchScalarField::write(os);
|
||||||
|
writeEntryIfDifferent<word>(os, "U", "U", UName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "nu", "nu", nuName_);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
makePatchTypeField(fvPatchScalarField, nutSpalartAllmarasWallFunctionFvPatchScalarField);
|
makePatchTypeField(fvPatchScalarField, nutSpalartAllmarasWallFunctionFvPatchScalarField);
|
||||||
|
|||||||
@ -58,6 +58,12 @@ class nutSpalartAllmarasWallFunctionFvPatchScalarField
|
|||||||
{
|
{
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
|
//- Name of velocity field
|
||||||
|
word UName_;
|
||||||
|
|
||||||
|
//- Name of laminar viscosity field
|
||||||
|
word nuName_;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -137,6 +143,9 @@ public:
|
|||||||
(
|
(
|
||||||
const Pstream::commsTypes commsType=Pstream::blocking
|
const Pstream::commsTypes commsType=Pstream::blocking
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//- Write
|
||||||
|
virtual void write(Ostream& os) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -48,7 +48,9 @@ nutWallFunctionFvPatchScalarField
|
|||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF)
|
fixedValueFvPatchScalarField(p, iF),
|
||||||
|
kName_("k"),
|
||||||
|
nuName_("nu")
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -61,7 +63,9 @@ nutWallFunctionFvPatchScalarField
|
|||||||
const fvPatchFieldMapper& mapper
|
const fvPatchFieldMapper& mapper
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(ptf, p, iF, mapper)
|
fixedValueFvPatchScalarField(ptf, p, iF, mapper),
|
||||||
|
kName_(ptf.kName_),
|
||||||
|
nuName_(ptf.nuName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -73,28 +77,34 @@ nutWallFunctionFvPatchScalarField
|
|||||||
const dictionary& dict
|
const dictionary& dict
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(p, iF, dict)
|
fixedValueFvPatchScalarField(p, iF, dict),
|
||||||
|
kName_(dict.lookupOrDefault<word>("k", "k")),
|
||||||
|
nuName_(dict.lookupOrDefault<word>("nu", "nu"))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
nutWallFunctionFvPatchScalarField::
|
nutWallFunctionFvPatchScalarField::
|
||||||
nutWallFunctionFvPatchScalarField
|
nutWallFunctionFvPatchScalarField
|
||||||
(
|
(
|
||||||
const nutWallFunctionFvPatchScalarField& tppsf
|
const nutWallFunctionFvPatchScalarField& nwfpsf
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(tppsf)
|
fixedValueFvPatchScalarField(nwfpsf),
|
||||||
|
kName_(nwfpsf.kName_),
|
||||||
|
nuName_(nwfpsf.nuName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
nutWallFunctionFvPatchScalarField::
|
nutWallFunctionFvPatchScalarField::
|
||||||
nutWallFunctionFvPatchScalarField
|
nutWallFunctionFvPatchScalarField
|
||||||
(
|
(
|
||||||
const nutWallFunctionFvPatchScalarField& tppsf,
|
const nutWallFunctionFvPatchScalarField& nwfpsf,
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedValueFvPatchScalarField(tppsf, iF)
|
fixedValueFvPatchScalarField(nwfpsf, iF),
|
||||||
|
kName_(nwfpsf.kName_),
|
||||||
|
nuName_(nwfpsf.nuName_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -112,10 +122,10 @@ void nutWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
|
|
||||||
const scalarField& y = ras.y()[patch().index()];
|
const scalarField& y = ras.y()[patch().index()];
|
||||||
|
|
||||||
const volScalarField& k = db().lookupObject<volScalarField>("k");
|
const volScalarField& k = db().lookupObject<volScalarField>(kName_);
|
||||||
|
|
||||||
const scalarField& nuw =
|
const scalarField& nuw =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("nu");
|
patch().lookupPatchField<volScalarField, scalar>(nuName_);
|
||||||
|
|
||||||
scalarField& nutw = *this;
|
scalarField& nutw = *this;
|
||||||
|
|
||||||
@ -140,6 +150,8 @@ void nutWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
void nutWallFunctionFvPatchScalarField::write(Ostream& os) const
|
void nutWallFunctionFvPatchScalarField::write(Ostream& os) const
|
||||||
{
|
{
|
||||||
fvPatchField<scalar>::write(os);
|
fvPatchField<scalar>::write(os);
|
||||||
|
writeEntryIfDifferent<word>(os, "k", "k", kName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "nu", "nu", nuName_);
|
||||||
writeEntry("value", os);
|
writeEntry("value", os);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -57,6 +57,14 @@ class nutWallFunctionFvPatchScalarField
|
|||||||
:
|
:
|
||||||
public fixedValueFvPatchScalarField
|
public fixedValueFvPatchScalarField
|
||||||
{
|
{
|
||||||
|
//Private data
|
||||||
|
|
||||||
|
//- Name of turbulence kinetic energy field
|
||||||
|
word kName_;
|
||||||
|
|
||||||
|
//- Name of laminar viscosity field
|
||||||
|
word nuName_;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|||||||
@ -64,7 +64,12 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
|
|||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedInternalValueFvPatchField<scalar>(p, iF)
|
fixedInternalValueFvPatchField<scalar>(p, iF),
|
||||||
|
UName_("U"),
|
||||||
|
kName_("k"),
|
||||||
|
GName_("G"),
|
||||||
|
nuName_("nu"),
|
||||||
|
nutName_("nut")
|
||||||
{
|
{
|
||||||
checkType();
|
checkType();
|
||||||
}
|
}
|
||||||
@ -78,7 +83,12 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
|
|||||||
const fvPatchFieldMapper& mapper
|
const fvPatchFieldMapper& mapper
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper)
|
fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper),
|
||||||
|
UName_(ptf.UName_),
|
||||||
|
kName_(ptf.kName_),
|
||||||
|
GName_(ptf.GName_),
|
||||||
|
nuName_(ptf.nuName_),
|
||||||
|
nutName_(ptf.nutName_)
|
||||||
{
|
{
|
||||||
checkType();
|
checkType();
|
||||||
}
|
}
|
||||||
@ -91,7 +101,12 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
|
|||||||
const dictionary& dict
|
const dictionary& dict
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedInternalValueFvPatchField<scalar>(p, iF, dict)
|
fixedInternalValueFvPatchField<scalar>(p, iF, dict),
|
||||||
|
UName_(dict.lookupOrDefault<word>("U", "U")),
|
||||||
|
kName_(dict.lookupOrDefault<word>("k", "k")),
|
||||||
|
GName_(dict.lookupOrDefault<word>("G", "G")),
|
||||||
|
nuName_(dict.lookupOrDefault<word>("nu", "nu")),
|
||||||
|
nutName_(dict.lookupOrDefault<word>("nut", "nut"))
|
||||||
{
|
{
|
||||||
checkType();
|
checkType();
|
||||||
}
|
}
|
||||||
@ -99,10 +114,15 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
|
|||||||
|
|
||||||
omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
|
omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
|
||||||
(
|
(
|
||||||
const omegaWallFunctionFvPatchScalarField& ewfpsf
|
const omegaWallFunctionFvPatchScalarField& owfpsf
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedInternalValueFvPatchField<scalar>(ewfpsf)
|
fixedInternalValueFvPatchField<scalar>(owfpsf),
|
||||||
|
UName_(owfpsf.UName_),
|
||||||
|
kName_(owfpsf.kName_),
|
||||||
|
GName_(owfpsf.GName_),
|
||||||
|
nuName_(owfpsf.nuName_),
|
||||||
|
nutName_(owfpsf.nutName_)
|
||||||
{
|
{
|
||||||
checkType();
|
checkType();
|
||||||
}
|
}
|
||||||
@ -110,11 +130,16 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
|
|||||||
|
|
||||||
omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
|
omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
|
||||||
(
|
(
|
||||||
const omegaWallFunctionFvPatchScalarField& ewfpsf,
|
const omegaWallFunctionFvPatchScalarField& owfpsf,
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
fixedInternalValueFvPatchField<scalar>(ewfpsf, iF)
|
fixedInternalValueFvPatchField<scalar>(owfpsf, iF),
|
||||||
|
UName_(owfpsf.UName_),
|
||||||
|
kName_(owfpsf.kName_),
|
||||||
|
GName_(owfpsf.GName_),
|
||||||
|
nuName_(owfpsf.nuName_),
|
||||||
|
nutName_(owfpsf.nutName_)
|
||||||
{
|
{
|
||||||
checkType();
|
checkType();
|
||||||
}
|
}
|
||||||
@ -135,21 +160,21 @@ void omegaWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
const scalarField& y = ras.y()[patch().index()];
|
const scalarField& y = ras.y()[patch().index()];
|
||||||
|
|
||||||
volScalarField& G = const_cast<volScalarField&>
|
volScalarField& G = const_cast<volScalarField&>
|
||||||
(db().lookupObject<volScalarField>("G"));
|
(db().lookupObject<volScalarField>(GName_));
|
||||||
|
|
||||||
volScalarField& omega = const_cast<volScalarField&>
|
volScalarField& omega = const_cast<volScalarField&>
|
||||||
(db().lookupObject<volScalarField>("omega"));
|
(db().lookupObject<volScalarField>(dimensionedInternalField().name()));
|
||||||
|
|
||||||
const scalarField& k = db().lookupObject<volScalarField>("k");
|
const scalarField& k = db().lookupObject<volScalarField>(kName_);
|
||||||
|
|
||||||
const scalarField& nuw =
|
const scalarField& nuw =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("nu");
|
patch().lookupPatchField<volScalarField, scalar>(nuName_);
|
||||||
|
|
||||||
const scalarField& nutw =
|
const scalarField& nutw =
|
||||||
patch().lookupPatchField<volScalarField, scalar>("nut");
|
patch().lookupPatchField<volScalarField, scalar>(nutName_);
|
||||||
|
|
||||||
const fvPatchVectorField& Uw =
|
const fvPatchVectorField& Uw =
|
||||||
patch().lookupPatchField<volVectorField, vector>("U");
|
patch().lookupPatchField<volVectorField, vector>(UName_);
|
||||||
|
|
||||||
const scalarField magGradUw = mag(Uw.snGrad());
|
const scalarField magGradUw = mag(Uw.snGrad());
|
||||||
|
|
||||||
@ -183,6 +208,11 @@ void omegaWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
void omegaWallFunctionFvPatchScalarField::write(Ostream& os) const
|
void omegaWallFunctionFvPatchScalarField::write(Ostream& os) const
|
||||||
{
|
{
|
||||||
fixedInternalValueFvPatchField<scalar>::write(os);
|
fixedInternalValueFvPatchField<scalar>::write(os);
|
||||||
|
writeEntryIfDifferent<word>(os, "U", "U", UName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "k", "k", kName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "G", "G", GName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "nu", "nu", nuName_);
|
||||||
|
writeEntryIfDifferent<word>(os, "nut", "nut", nutName_);
|
||||||
writeEntry("value", os);
|
writeEntry("value", os);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -55,6 +55,23 @@ class omegaWallFunctionFvPatchScalarField
|
|||||||
:
|
:
|
||||||
public fixedInternalValueFvPatchField<scalar>
|
public fixedInternalValueFvPatchField<scalar>
|
||||||
{
|
{
|
||||||
|
// Private data
|
||||||
|
|
||||||
|
//- Name of velocity field
|
||||||
|
word UName_;
|
||||||
|
|
||||||
|
//- Name of turbulence kinetic energy field
|
||||||
|
word kName_;
|
||||||
|
|
||||||
|
//- Name of turbulence generation field
|
||||||
|
word GName_;
|
||||||
|
|
||||||
|
//- Name of laminar viscosity field
|
||||||
|
word nuName_;
|
||||||
|
|
||||||
|
//- Name of turbulent viscosity field
|
||||||
|
word nutName_;
|
||||||
|
|
||||||
|
|
||||||
// Private member functions
|
// Private member functions
|
||||||
|
|
||||||
|
|||||||
@ -101,9 +101,6 @@ kOmega::kOmega
|
|||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|
||||||
omega0_("omega0", dimless/dimTime, SMALL),
|
|
||||||
omegaSmall_("omegaSmall", dimless/dimTime, SMALL),
|
|
||||||
|
|
||||||
k_
|
k_
|
||||||
(
|
(
|
||||||
IOobject
|
IOobject
|
||||||
@ -271,7 +268,7 @@ void kOmega::correct()
|
|||||||
|
|
||||||
|
|
||||||
// Re-calculate viscosity
|
// Re-calculate viscosity
|
||||||
nut_ == k_/omega_;
|
nut_ == k_/(omega_ + omegaSmall_);
|
||||||
nut_.correctBoundaryConditions();
|
nut_.correctBoundaryConditions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -90,10 +90,6 @@ class kOmega
|
|||||||
dimensionedScalar alphaOmega_;
|
dimensionedScalar alphaOmega_;
|
||||||
|
|
||||||
|
|
||||||
dimensionedScalar omega0_;
|
|
||||||
dimensionedScalar omegaSmall_;
|
|
||||||
|
|
||||||
|
|
||||||
// Fields
|
// Fields
|
||||||
|
|
||||||
volScalarField k_;
|
volScalarField k_;
|
||||||
|
|||||||
@ -198,19 +198,6 @@ kOmegaSST::kOmegaSST
|
|||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|
||||||
omega0_("omega0", dimless/dimTime, SMALL),
|
|
||||||
omegaSmall_("omegaSmall", dimless/dimTime, SMALL),
|
|
||||||
|
|
||||||
Cmu_
|
|
||||||
(
|
|
||||||
dimensioned<scalar>::lookupOrAddToDict
|
|
||||||
(
|
|
||||||
"Cmu",
|
|
||||||
coeffDict_,
|
|
||||||
0.09
|
|
||||||
)
|
|
||||||
),
|
|
||||||
|
|
||||||
y_(mesh_),
|
y_(mesh_),
|
||||||
|
|
||||||
k_
|
k_
|
||||||
@ -331,7 +318,6 @@ bool kOmegaSST::read()
|
|||||||
betaStar_.readIfPresent(coeffDict_);
|
betaStar_.readIfPresent(coeffDict_);
|
||||||
a1_.readIfPresent(coeffDict_);
|
a1_.readIfPresent(coeffDict_);
|
||||||
c1_.readIfPresent(coeffDict_);
|
c1_.readIfPresent(coeffDict_);
|
||||||
Cmu_.readIfPresent(coeffDict_);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -57,7 +57,6 @@ Description
|
|||||||
@verbatim
|
@verbatim
|
||||||
kOmegaSST
|
kOmegaSST
|
||||||
{
|
{
|
||||||
Cmu 0.09;
|
|
||||||
alphaK1 0.85034;
|
alphaK1 0.85034;
|
||||||
alphaK2 1.0;
|
alphaK2 1.0;
|
||||||
alphaOmega1 0.5;
|
alphaOmega1 0.5;
|
||||||
@ -103,33 +102,33 @@ class kOmegaSST
|
|||||||
{
|
{
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
dimensionedScalar alphaK1_;
|
// Model coefficients
|
||||||
dimensionedScalar alphaK2_;
|
dimensionedScalar alphaK1_;
|
||||||
|
dimensionedScalar alphaK2_;
|
||||||
|
|
||||||
dimensionedScalar alphaOmega1_;
|
dimensionedScalar alphaOmega1_;
|
||||||
dimensionedScalar alphaOmega2_;
|
dimensionedScalar alphaOmega2_;
|
||||||
|
|
||||||
dimensionedScalar gamma1_;
|
dimensionedScalar gamma1_;
|
||||||
dimensionedScalar gamma2_;
|
dimensionedScalar gamma2_;
|
||||||
|
|
||||||
dimensionedScalar beta1_;
|
dimensionedScalar beta1_;
|
||||||
dimensionedScalar beta2_;
|
dimensionedScalar beta2_;
|
||||||
|
|
||||||
dimensionedScalar betaStar_;
|
dimensionedScalar betaStar_;
|
||||||
|
|
||||||
dimensionedScalar a1_;
|
dimensionedScalar a1_;
|
||||||
dimensionedScalar c1_;
|
dimensionedScalar c1_;
|
||||||
|
|
||||||
dimensionedScalar omega0_;
|
|
||||||
dimensionedScalar omegaSmall_;
|
|
||||||
|
|
||||||
dimensionedScalar Cmu_;
|
|
||||||
|
|
||||||
|
//- Wall distance field
|
||||||
|
// Note: different to wall distance in parent RASModel
|
||||||
wallDist y_;
|
wallDist y_;
|
||||||
|
|
||||||
volScalarField k_;
|
// Fields
|
||||||
volScalarField omega_;
|
|
||||||
volScalarField nut_;
|
volScalarField k_;
|
||||||
|
volScalarField omega_;
|
||||||
|
volScalarField nut_;
|
||||||
|
|
||||||
|
|
||||||
// Private member functions
|
// Private member functions
|
||||||
|
|||||||
Reference in New Issue
Block a user