diff --git a/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.C b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.C index 4e01c64d74c2ca69837d7e3dbaff5d583bc7f488..637cf8037af8bd4fb679032c8cc4e490ef6dac42 100644 --- a/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.C @@ -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 * * * * * * * * * * * * * // template<class Type> diff --git a/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.H b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.H index 701dd9fb4e85f4b2adfddb0f2ee4154b7f4d6776..851d9d33ae7e44d3f9d5ca72e0d2d5fa934bac3b 100644 --- a/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.H +++ b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.H @@ -414,8 +414,21 @@ public: virtual void manipulateMatrix(fvMatrix<Type>& matrix); - //- Write - virtual void write(Ostream&) const; + // I-O + + //- 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 diff --git a/src/turbulenceModels/compressible/RAS/RASModel/RASModel.C b/src/turbulenceModels/compressible/RAS/RASModel/RASModel.C index 26b1a214d57cb189907fede4b3af84791f8070bb..60d3dc3e841f40607dccb0292a8466bf7b7a3bda 100644 --- a/src/turbulenceModels/compressible/RAS/RASModel/RASModel.C +++ b/src/turbulenceModels/compressible/RAS/RASModel/RASModel.C @@ -125,6 +125,8 @@ RASModel::RASModel k0_("k0", dimVelocity*dimVelocity, SMALL), epsilon0_("epsilon", k0_.dimensions()/dimTime, SMALL), epsilonSmall_("epsilonSmall", epsilon0_.dimensions(), SMALL), + omega0_("omega", dimless/dimTime, SMALL), + omegaSmall_("omegaSmall", omega0_.dimensions(), SMALL), y_(mesh_) {} @@ -204,6 +206,8 @@ bool RASModel::read() k0_.readIfPresent(*this); epsilon0_.readIfPresent(*this); epsilonSmall_.readIfPresent(*this); + omega0_.readIfPresent(*this); + omegaSmall_.readIfPresent(*this); return true; } diff --git a/src/turbulenceModels/compressible/RAS/RASModel/RASModel.H b/src/turbulenceModels/compressible/RAS/RASModel/RASModel.H index 7f45f88eed42d3fe075e853fd0387bc7192c19e0..7479eb4c553c9667138c29d9c0c5a0656174ee17 100644 --- a/src/turbulenceModels/compressible/RAS/RASModel/RASModel.H +++ b/src/turbulenceModels/compressible/RAS/RASModel/RASModel.H @@ -80,22 +80,47 @@ protected: // Protected data + //- Turbulence on/off flag Switch turbulence_; + + //- Flag to print the model coeffs at run-time Switch printCoeffs_; + + //- Model coefficients dictionary dictionary coeffDict_; - dictionary wallFunctionDict_; - dimensionedScalar kappa_; - dimensionedScalar E_; - dimensionedScalar Cmu_; - dimensionedScalar Prt_; + // Wall function properties + + //- 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_; + //- Lower limit of k dimensionedScalar k0_; + + //- Lower limit of epsilon dimensionedScalar epsilon0_; + + //- Small epsilon value used to avoid divide by zero 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_; @@ -193,6 +218,19 @@ public: 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 dimensionedScalar& k0() @@ -212,6 +250,17 @@ public: 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 dimensionedScalar kappa() const diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C index 6ee5c45fea692548fafd1ef54e90d08d3ec0438b..6b2974b04f1e43becd924b8c06284487c417539f 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C @@ -48,7 +48,8 @@ alphatWallFunctionFvPatchScalarField const DimensionedField<scalar, volMesh>& iF ) : - fixedValueFvPatchScalarField(p, iF) + fixedValueFvPatchScalarField(p, iF), + mutName_("mut") {} @@ -61,7 +62,8 @@ alphatWallFunctionFvPatchScalarField const fvPatchFieldMapper& mapper ) : - fixedValueFvPatchScalarField(ptf, p, iF, mapper) + fixedValueFvPatchScalarField(ptf, p, iF, mapper), + mutName_(ptf.mutName_) {} @@ -73,7 +75,8 @@ alphatWallFunctionFvPatchScalarField 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 ) : - fixedValueFvPatchScalarField(awfpsf) + fixedValueFvPatchScalarField(awfpsf), + mutName_(awfpsf.mutName_) {} @@ -94,7 +98,8 @@ alphatWallFunctionFvPatchScalarField 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 scalarField& mutw = - patch().lookupPatchField<volScalarField, scalar>("mut"); + patch().lookupPatchField<volScalarField, scalar>(mutName_); operator==(mutw/Prt); } @@ -115,6 +120,7 @@ void alphatWallFunctionFvPatchScalarField::updateCoeffs() void alphatWallFunctionFvPatchScalarField::write(Ostream& os) const { fvPatchField<scalar>::write(os); + writeEntryIfDifferent<word>(os, "mut", "mut", mutName_); writeEntry("value", os); } diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H index 1d8ebc436c831909c4e1bfabd5978b656a1c450f..da71e80a2ff15dee2a7edb451153111d4f497b0b 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H @@ -57,6 +57,11 @@ class alphatWallFunctionFvPatchScalarField : public fixedValueFvPatchScalarField { + // Private data + + //- Name of turbulent viscosity field + word mutName_; + public: diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C index b22c101340d0e5c2dfd0bb2d577f4b3ffe840bd9..387f54df338b67e36b947ddb9dd634c883c76a88 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C @@ -64,7 +64,13 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField 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(); } @@ -78,7 +84,13 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField 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(); } @@ -91,7 +103,13 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField 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(); } @@ -102,7 +120,13 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField 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(); } @@ -114,7 +138,13 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField 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(); } @@ -135,24 +165,24 @@ void epsilonWallFunctionFvPatchScalarField::updateCoeffs() const scalarField& y = ras.y()[patch().index()]; volScalarField& G = const_cast<volScalarField&> - (db().lookupObject<volScalarField>("G")); + (db().lookupObject<volScalarField>(GName_)); 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 = - patch().lookupPatchField<volScalarField, scalar>("rho"); + patch().lookupPatchField<volScalarField, scalar>(rhoName_); const scalarField& muw = - patch().lookupPatchField<volScalarField, scalar>("mu"); + patch().lookupPatchField<volScalarField, scalar>(muName_); const scalarField& mutw = - patch().lookupPatchField<volScalarField, scalar>("mut"); + patch().lookupPatchField<volScalarField, scalar>(mutName_); const fvPatchVectorField& Uw = - patch().lookupPatchField<volVectorField, vector>("U"); + patch().lookupPatchField<volVectorField, vector>(UName_); const scalarField magGradUw = mag(Uw.snGrad()); @@ -197,6 +227,12 @@ void epsilonWallFunctionFvPatchScalarField::evaluate void epsilonWallFunctionFvPatchScalarField::write(Ostream& os) const { 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); } diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H index 2cb6b336bfb85a8767f0958350fac2b76300a997..42bdeea6818c8716c2c9fc8e9d8d5a1c5aad2efe 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H @@ -57,6 +57,26 @@ class epsilonWallFunctionFvPatchScalarField : 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 diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.C index d224109c20f0160fd659adbdfcc91009ac060da4..c772d95bff4d92ad9101ded14d8d1df3177d243f 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.C @@ -77,6 +77,9 @@ mutRoughWallFunctionFvPatchScalarField ) : fixedValueFvPatchScalarField(p, iF), + rhoName_("rho"), + muName_("mu"), + kName_("k"), Ks_(p.size(), 0.0), Cs_(p.size(), 0.0) {} @@ -92,6 +95,9 @@ mutRoughWallFunctionFvPatchScalarField ) : fixedValueFvPatchScalarField(ptf, p, iF, mapper), + rhoName_(ptf.rhoName_), + muName_(ptf.muName_), + kName_(ptf.kName_), Ks_(ptf.Ks_, mapper), Cs_(ptf.Cs_, mapper) {} @@ -106,6 +112,9 @@ mutRoughWallFunctionFvPatchScalarField ) : 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()), Cs_("Cs", dict, p.size()) {} @@ -114,25 +123,31 @@ mutRoughWallFunctionFvPatchScalarField mutRoughWallFunctionFvPatchScalarField:: mutRoughWallFunctionFvPatchScalarField ( - const mutRoughWallFunctionFvPatchScalarField& nrwfpsf + const mutRoughWallFunctionFvPatchScalarField& rwfpsf ) : - fixedValueFvPatchScalarField(nrwfpsf), - Ks_(nrwfpsf.Ks_), - Cs_(nrwfpsf.Cs_) + fixedValueFvPatchScalarField(rwfpsf), + rhoName_(rwfpsf.rhoName_), + muName_(rwfpsf.muName_), + kName_(rwfpsf.kName_), + Ks_(rwfpsf.Ks_), + Cs_(rwfpsf.Cs_) {} mutRoughWallFunctionFvPatchScalarField:: mutRoughWallFunctionFvPatchScalarField ( - const mutRoughWallFunctionFvPatchScalarField& nrwfpsf, + const mutRoughWallFunctionFvPatchScalarField& rwfpsf, const DimensionedField<scalar, volMesh>& iF ) : - fixedValueFvPatchScalarField(nrwfpsf, iF), - Ks_(nrwfpsf.Ks_), - Cs_(nrwfpsf.Cs_) + fixedValueFvPatchScalarField(rwfpsf, iF), + rhoName_(rwfpsf.rhoName_), + 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& 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 = - patch().lookupPatchField<volScalarField, scalar>("mu"); + patch().lookupPatchField<volScalarField, scalar>(muName_); scalarField& mutw = *this; @@ -229,6 +244,9 @@ void mutRoughWallFunctionFvPatchScalarField::updateCoeffs() void mutRoughWallFunctionFvPatchScalarField::write(Ostream& os) const { 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); Ks_.writeEntry("Ks", os); writeEntry("value", os); diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.H index c1bddbc360fc4f5daef96325e3ea267b7a2841a0..88209f4184e215053badbfe174afd321ff03f801 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.H @@ -64,6 +64,15 @@ class mutRoughWallFunctionFvPatchScalarField { // 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 scalarField Ks_; diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C index 041bc468474144bfa5026515fa5e9e9ba43efdf5..a480ba072baf347fba31c0cf34c06fc9d870f18f 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C @@ -49,6 +49,9 @@ mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField ) : fixedValueFvPatchScalarField(p, iF), + UName_("U"), + rhoName_("rho"), + muName_("mu"), roughnessHeight_(pTraits<scalar>::zero), roughnessConstant_(pTraits<scalar>::zero), roughnessFudgeFactor_(pTraits<scalar>::zero) @@ -65,6 +68,9 @@ mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField ) : fixedValueFvPatchScalarField(ptf, p, iF, mapper), + UName_(ptf.UName_), + rhoName_(ptf.rhoName_), + muName_(ptf.muName_), roughnessHeight_(ptf.roughnessHeight_), roughnessConstant_(ptf.roughnessConstant_), roughnessFudgeFactor_(ptf.roughnessFudgeFactor_) @@ -80,6 +86,9 @@ mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField ) : 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"))), roughnessConstant_(readScalar(dict.lookup("roughnessConstant"))), roughnessFudgeFactor_(readScalar(dict.lookup("roughnessFudgeFactor"))) @@ -89,27 +98,33 @@ mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField:: mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField ( - const mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField& tppsf + const mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField& rwfpsf ) : - fixedValueFvPatchScalarField(tppsf), - roughnessHeight_(tppsf.roughnessHeight_), - roughnessConstant_(tppsf.roughnessConstant_), - roughnessFudgeFactor_(tppsf.roughnessFudgeFactor_) + fixedValueFvPatchScalarField(rwfpsf), + UName_(rwfpsf.UName_), + rhoName_(rwfpsf.rhoName_), + muName_(rwfpsf.muName_), + roughnessHeight_(rwfpsf.roughnessHeight_), + roughnessConstant_(rwfpsf.roughnessConstant_), + roughnessFudgeFactor_(rwfpsf.roughnessFudgeFactor_) {} mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField:: mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField ( - const mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField& tppsf, + const mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField& rwfpsf, const DimensionedField<scalar, volMesh>& iF ) : - fixedValueFvPatchScalarField(tppsf, iF), - roughnessHeight_(tppsf.roughnessHeight_), - roughnessConstant_(tppsf.roughnessConstant_), - roughnessFudgeFactor_(tppsf.roughnessFudgeFactor_) + fixedValueFvPatchScalarField(rwfpsf, iF), + UName_(rwfpsf.UName_), + rhoName_(rwfpsf.rhoName_), + 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 fvPatchVectorField& U = - patch().lookupPatchField<volVectorField, vector>("U"); + patch().lookupPatchField<volVectorField, vector>(UName_); const fvPatchScalarField& rho = - patch().lookupPatchField<volScalarField, scalar>("rho"); + patch().lookupPatchField<volScalarField, scalar>(rhoName_); // The flow velocity at the adjacent cell centre. scalarField magUp = mag(U.patchInternalField() - U); const scalarField& muw = - patch().lookupPatchField<volScalarField, scalar>("mu"); + patch().lookupPatchField<volScalarField, scalar>(muName_); scalarField& mutw = *this; scalarField magFaceGradU = mag(U.snGrad()); @@ -172,7 +187,7 @@ void mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::evaluate // Enforce the roughnessHeight to be less than the distance to // the first cell centre. - if(dKsPlusdYPlus > 1) + if (dKsPlusdYPlus > 1) { dKsPlusdYPlus = 1; } @@ -211,7 +226,7 @@ void mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::evaluate } scalar denom = 1.0 + log(E* yPlus) - G - yPlusGPrime; - if(mag(denom) > VSMALL) + if (mag(denom) > VSMALL) { yPlus = (kappaRe + yPlus*(1 - yPlusGPrime))/denom; if( yPlus < 0 ) @@ -288,6 +303,9 @@ void mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::write ) const { fixedValueFvPatchScalarField::write(os); + writeEntryIfDifferent<word>(os, "U", "U", UName_); + writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_); + writeEntryIfDifferent<word>(os, "mu", "mu", muName_); os.writeKeyword("roughnessHeight") << roughnessHeight_ << token::END_STATEMENT << nl; os.writeKeyword("roughnessConstant") diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H index 86cff3403f9e7fbd2f90c7d47cc6fa8cb66b04c7..16aa54faa1b4d006e1234605b9e4e8cc4400fb04 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H @@ -58,9 +58,25 @@ class mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField { // Private data - scalar roughnessHeight_; - scalar roughnessConstant_; - scalar roughnessFudgeFactor_; + //- Name of velocity field + word UName_; + + //- 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: @@ -143,38 +159,38 @@ public: // Access - //- Return the fluctuation scale + //- Return the roughness height scale const scalar& roughnessHeight() const { return roughnessHeight_; } - //- Return reference to the fluctuation scale to allow adjustment + //- Return reference to the roughness height to allow adjustment scalar& roughnessHeight() { return roughnessHeight_; } - - //- Return the fluctuation scale + //- Return the roughness constant scale const scalar& roughnessConstant() const { return roughnessConstant_; } - //- Return reference to the fluctuation scale to allow adjustment + //- Return reference to the roughness constant to allow adjustment scalar& roughnessConstant() { return roughnessConstant_; } - //- Return the fluctuation scale + //- Return the roughness scale factor const scalar& roughnessFudgeFactor() const { return roughnessFudgeFactor_; } - //- Return reference to the fluctuation scale to allow adjustment + //- Return reference to the roughness scale factor to allow + // adjustment scalar& roughnessFudgeFactor() { return roughnessFudgeFactor_; diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C index f284fd13ba0779183b523d403597cef7d2668994..0501a266a9838145a1a16712102da05de08d4450 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C @@ -48,7 +48,10 @@ mutSpalartAllmarasStandardWallFunctionFvPatchScalarField 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 ) : - 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 ) : - 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 ( - const mutSpalartAllmarasStandardWallFunctionFvPatchScalarField& tppsf + const mutSpalartAllmarasStandardWallFunctionFvPatchScalarField& rwfpsf ) : - fixedValueFvPatchScalarField(tppsf) + fixedValueFvPatchScalarField(rwfpsf), + UName_(rwfpsf.UName_), + rhoName_(rwfpsf.rhoName_), + muName_(rwfpsf.muName_) {} mutSpalartAllmarasStandardWallFunctionFvPatchScalarField:: mutSpalartAllmarasStandardWallFunctionFvPatchScalarField ( - const mutSpalartAllmarasStandardWallFunctionFvPatchScalarField& tppsf, + const mutSpalartAllmarasStandardWallFunctionFvPatchScalarField& rwfpsf, 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 fvPatchVectorField& U = - patch().lookupPatchField<volVectorField, vector>("U"); + patch().lookupPatchField<volVectorField, vector>(UName_); scalarField magUp = mag(U.patchInternalField() - U); const scalarField& rhow = - patch().lookupPatchField<volScalarField, scalar>("rho"); + patch().lookupPatchField<volScalarField, scalar>(rhoName_); const scalarField& muw = - patch().lookupPatchField<volScalarField, scalar>("mu"); + patch().lookupPatchField<volScalarField, scalar>(muName_); scalarField& mutw = *this; 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 diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H index e417d5ed39bf77602f945bec465168c8f7a888cd..45f88e4c040d3e35ee682c88435fe159f6efe3ec 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H @@ -56,6 +56,17 @@ class mutSpalartAllmarasStandardWallFunctionFvPatchScalarField : public fixedValueFvPatchScalarField { + // Private data + + //- Name of velocity field + word UName_; + + //- Name of density field + word rhoName_; + + //- Name of laminar viscosity field + word muName_; + public: @@ -142,6 +153,9 @@ public: ( const Pstream::commsTypes commsType=Pstream::blocking ); + + //- Write + virtual void write(Ostream& os) const; }; diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.C index c814a1b827e8b42c7495cb90cbfaf062a27253e5..88d087dc9c440dddc5414ec85cecd192412bb655 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.C @@ -48,7 +48,10 @@ mutSpalartAllmarasWallFunctionFvPatchScalarField 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 ) : - 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 ) : - 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 ( - const mutSpalartAllmarasWallFunctionFvPatchScalarField& tppsf + const mutSpalartAllmarasWallFunctionFvPatchScalarField& wfpsf ) : - fixedValueFvPatchScalarField(tppsf) + fixedValueFvPatchScalarField(wfpsf), + UName_(wfpsf.UName_), + rhoName_(wfpsf.rhoName_), + muName_(wfpsf.muName_) {} mutSpalartAllmarasWallFunctionFvPatchScalarField:: mutSpalartAllmarasWallFunctionFvPatchScalarField ( - const mutSpalartAllmarasWallFunctionFvPatchScalarField& tppsf, + const mutSpalartAllmarasWallFunctionFvPatchScalarField& wfpsf, 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 fvPatchVectorField& U = - patch().lookupPatchField<volVectorField, vector>("U"); + patch().lookupPatchField<volVectorField, vector>(UName_); scalarField magUp = mag(U.patchInternalField() - U); const scalarField& rhow = - patch().lookupPatchField<volScalarField, scalar>("rho"); + patch().lookupPatchField<volScalarField, scalar>(rhoName_); const scalarField& muw = - patch().lookupPatchField<volScalarField, scalar>("mu"); + patch().lookupPatchField<volScalarField, scalar>(muName_); 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); diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.H index b0f3fa0e0210fdd20a6e78d90ec3a0c29ef3a858..dc7b241b8dbd1f46e0b09a2be97b9526752f68d9 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.H @@ -56,6 +56,18 @@ class mutSpalartAllmarasWallFunctionFvPatchScalarField : public fixedValueFvPatchScalarField { + // Private data + + //- Name of velocity field + word UName_; + + //- Name of density field + word rhoName_; + + //- Name of laminar viscosity field + word muName_; + + public: //- Runtime type information @@ -134,6 +146,9 @@ public: ( const Pstream::commsTypes commsType=Pstream::blocking ); + + //- Write + virtual void write(Ostream& os) const; }; diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.C index 3f0faddd860d28bbd7568147173972ce6df777de..f57f52cdc1fa78c3e4e4b59cfe612fc89598e23a 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.C @@ -48,7 +48,10 @@ mutWallFunctionFvPatchScalarField 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 ) : - 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 ) : - 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 ( - const mutWallFunctionFvPatchScalarField& tppsf + const mutWallFunctionFvPatchScalarField& wfpsf ) : - fixedValueFvPatchScalarField(tppsf) + fixedValueFvPatchScalarField(wfpsf), + rhoName_(wfpsf.rhoName_), + muName_(wfpsf.muName_), + kName_(wfpsf.kName_) {} mutWallFunctionFvPatchScalarField:: mutWallFunctionFvPatchScalarField ( - const mutWallFunctionFvPatchScalarField& tppsf, + const mutWallFunctionFvPatchScalarField& wfpsf, 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& 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 = - patch().lookupPatchField<volScalarField, scalar>("mu"); + patch().lookupPatchField<volScalarField, scalar>(muName_); scalarField& mutw = *this; @@ -145,6 +160,9 @@ void mutWallFunctionFvPatchScalarField::updateCoeffs() void mutWallFunctionFvPatchScalarField::write(Ostream& os) const { 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); } diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.H index 244dec844b931d66e249c5889c0b04e51b21c7ad..ec00de97634cda84b0e0cdb9ee8cdb9780953fb4 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.H @@ -57,6 +57,17 @@ class mutWallFunctionFvPatchScalarField : 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: @@ -138,7 +149,7 @@ public: // I-O //- Write - void write(Ostream&) const; + virtual void write(Ostream&) const; }; diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C index 5b0ee67630fa909764d9965fb3f9d49ed2c01af3..eacf26b1d42a2b81e4bafb52bb11d039dee35f4a 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C @@ -64,7 +64,13 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField 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(); } @@ -78,7 +84,13 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField 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(); } @@ -91,7 +103,13 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField 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(); } @@ -99,10 +117,16 @@ 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(); } @@ -110,11 +134,17 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField ( - const omegaWallFunctionFvPatchScalarField& ewfpsf, + const omegaWallFunctionFvPatchScalarField& owfpsf, 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(); } @@ -135,24 +165,24 @@ void omegaWallFunctionFvPatchScalarField::updateCoeffs() const scalarField& y = ras.y()[patch().index()]; volScalarField& G = const_cast<volScalarField&> - (db().lookupObject<volScalarField>("G")); + (db().lookupObject<volScalarField>(GName_)); 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 = - patch().lookupPatchField<volScalarField, scalar>("rho"); + patch().lookupPatchField<volScalarField, scalar>(rhoName_); const scalarField& muw = - patch().lookupPatchField<volScalarField, scalar>("mu"); + patch().lookupPatchField<volScalarField, scalar>(muName_); const scalarField& mutw = - patch().lookupPatchField<volScalarField, scalar>("mut"); + patch().lookupPatchField<volScalarField, scalar>(mutName_); const fvPatchVectorField& Uw = - patch().lookupPatchField<volVectorField, vector>("U"); + patch().lookupPatchField<volVectorField, vector>(UName_); const scalarField magGradUw = mag(Uw.snGrad()); @@ -188,6 +218,12 @@ void omegaWallFunctionFvPatchScalarField::updateCoeffs() void omegaWallFunctionFvPatchScalarField::write(Ostream& os) const { 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); } diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H index 266e7987d54f8d50b0b33712e483066808240d4f..6dfe7a772ba574110e3cba1a183fe5d99bd2bc60 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H @@ -55,6 +55,26 @@ class omegaWallFunctionFvPatchScalarField : 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 diff --git a/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.C b/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.C index ab941a32a4c0154194101e3c333c3ea16950525e..52cfaf2df838c5dd72ed4b5d678d80ccb32be7da 100644 --- a/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.C +++ b/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.C @@ -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_), k_ @@ -350,7 +337,6 @@ bool kOmegaSST::read() betaStar_.readIfPresent(coeffDict_); a1_.readIfPresent(coeffDict_); c1_.readIfPresent(coeffDict_); - Cmu_.readIfPresent(coeffDict_); return true; } diff --git a/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.H b/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.H index a9f668b6ad11dbf22f4625bcce29fdb471da8e80..8a948a5f779a00f1ccc07cdb9ed280e31c10a8d5 100644 --- a/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.H +++ b/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.H @@ -56,7 +56,6 @@ Description @verbatim kOmegaSST { - Cmu 0.09; alphaK1 0.85034; alphaK2 1.0; alphaOmega1 0.5; @@ -96,7 +95,7 @@ namespace RASModels { /*---------------------------------------------------------------------------*\ - Class kOmega Declaration + Class kOmegaSST Declaration \*---------------------------------------------------------------------------*/ class kOmegaSST @@ -105,36 +104,38 @@ class kOmegaSST { // Private data - dimensionedScalar alphaK1_; - dimensionedScalar alphaK2_; + // Model coefficients - dimensionedScalar alphaOmega1_; - dimensionedScalar alphaOmega2_; + dimensionedScalar alphaK1_; + dimensionedScalar alphaK2_; - dimensionedScalar alphah_; + dimensionedScalar alphaOmega1_; + dimensionedScalar alphaOmega2_; - dimensionedScalar gamma1_; - dimensionedScalar gamma2_; + dimensionedScalar alphah_; - dimensionedScalar beta1_; - dimensionedScalar beta2_; + dimensionedScalar gamma1_; + dimensionedScalar gamma2_; - dimensionedScalar betaStar_; + dimensionedScalar beta1_; + dimensionedScalar beta2_; - dimensionedScalar a1_; - dimensionedScalar c1_; + dimensionedScalar betaStar_; - dimensionedScalar omega0_; - dimensionedScalar omegaSmall_; + dimensionedScalar a1_; + dimensionedScalar c1_; - dimensionedScalar Cmu_; + //- Wall distance + // Note: different to wall distance in parent RASModel wallDist y_; - volScalarField k_; - volScalarField omega_; - volScalarField mut_; - volScalarField alphat_; + // Fields + + volScalarField k_; + volScalarField omega_; + volScalarField mut_; + volScalarField alphat_; // Private member functions diff --git a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.C b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.C index b70be3ad4d6025372df4fa22bbb3abc41675a1b8..d06bc6652b6bff30d5b1bc2d08e609d1814e1e01 100644 --- a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.C +++ b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.C @@ -115,6 +115,8 @@ RASModel::RASModel k0_("k0", dimVelocity*dimVelocity, SMALL), epsilon0_("epsilon", k0_.dimensions()/dimTime, SMALL), epsilonSmall_("epsilonSmall", epsilon0_.dimensions(), SMALL), + omega0_("omega0", dimless/dimTime, SMALL), + omegaSmall_("omegaSmall", omega0_.dimensions(), SMALL), y_(mesh_) {} @@ -250,6 +252,8 @@ bool RASModel::read() k0_.readIfPresent(*this); epsilon0_.readIfPresent(*this); epsilonSmall_.readIfPresent(*this); + omega0_.readIfPresent(*this); + omegaSmall_.readIfPresent(*this); return true; } diff --git a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H index 50127d8c665e22b3f32f4bd22097b590c7c1c65a..963af37dddbbe864f9d60a282394d6b64e6d6218 100644 --- a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H +++ b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H @@ -77,21 +77,45 @@ protected: // Protected data + //- Turbulence on/off flag Switch turbulence_; + + //- Flag to print the model coeffs at run-time Switch printCoeffs_; + + //- Model coefficients dictionary dictionary coeffDict_; - dictionary wallFunctionDict_; - dimensionedScalar kappa_; - dimensionedScalar E_; - dimensionedScalar Cmu_; + // Wall function properties + + //- Wall function dictionary + dictionary wallFunctionDict_; + + dimensionedScalar kappa_; + + dimensionedScalar E_; + + dimensionedScalar Cmu_; + //- Value of y+ at the edge of the laminar sublayer scalar yPlusLam_; + //- Lower limit of k dimensionedScalar k0_; + + //- Lower limit of epsilon dimensionedScalar epsilon0_; + + //- Small epsilon value used to avoid divide by zero 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_; @@ -183,6 +207,20 @@ public: 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 dimensionedScalar& k0() { @@ -201,6 +239,18 @@ public: 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 dimensionedScalar kappa() const { diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C index a4f0bd13f751fb797a6d1668f901b6c179f19db6..ae8a57c303d3c686212acb5c8f5175c677c9bad2 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C @@ -64,7 +64,12 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField const DimensionedField<scalar, volMesh>& iF ) : - fixedInternalValueFvPatchField<scalar>(p, iF) + fixedInternalValueFvPatchField<scalar>(p, iF), + UName_("U"), + kName_("k"), + GName_("G"), + nuName_("nu"), + nutName_("nut") { checkType(); } @@ -78,7 +83,12 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField 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(); } @@ -91,7 +101,12 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField 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(); } @@ -102,7 +117,12 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField 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(); } @@ -114,7 +134,12 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField 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(); } @@ -135,21 +160,21 @@ void epsilonWallFunctionFvPatchScalarField::updateCoeffs() const scalarField& y = ras.y()[patch().index()]; volScalarField& G = const_cast<volScalarField&> - (db().lookupObject<volScalarField>("G")); + (db().lookupObject<volScalarField>(GName_)); 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 = - patch().lookupPatchField<volScalarField, scalar>("nu"); + patch().lookupPatchField<volScalarField, scalar>(nuName_); const scalarField& nutw = - patch().lookupPatchField<volScalarField, scalar>("nut"); + patch().lookupPatchField<volScalarField, scalar>(nutName_); const fvPatchVectorField& Uw = - patch().lookupPatchField<volVectorField, vector>("U"); + patch().lookupPatchField<volVectorField, vector>(UName_); const scalarField magGradUw = mag(Uw.snGrad()); @@ -192,6 +217,11 @@ void epsilonWallFunctionFvPatchScalarField::evaluate void epsilonWallFunctionFvPatchScalarField::write(Ostream& os) const { 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); } diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H index 7e81a50a342a6029ecff4673fcc9c4ed4c687ebc..4dbdf40d1650b904fd2438174c0c0eacb20b5788 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H @@ -57,6 +57,23 @@ class epsilonWallFunctionFvPatchScalarField : 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 diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.C index a62e333f1f165b9204036a73470ceb2107d3c5ff..138e78333305a6694d5c48d47f2d3a6df920d99b 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.C @@ -77,6 +77,8 @@ nutRoughWallFunctionFvPatchScalarField ) : fixedValueFvPatchScalarField(p, iF), + kName_("k"), + nuName_("nu"), Ks_(p.size(), 0.0), Cs_(p.size(), 0.0) {} @@ -92,6 +94,8 @@ nutRoughWallFunctionFvPatchScalarField ) : fixedValueFvPatchScalarField(ptf, p, iF, mapper), + kName_(ptf.kName_), + nuName_(ptf.nuName_), Ks_(ptf.Ks_, mapper), Cs_(ptf.Cs_, mapper) {} @@ -106,6 +110,8 @@ nutRoughWallFunctionFvPatchScalarField ) : fixedValueFvPatchScalarField(p, iF, dict), + kName_(dict.lookupOrDefault<word>("k", "k")), + nuName_(dict.lookupOrDefault<word>("nu", "nu")), Ks_("Ks", dict, p.size()), Cs_("Cs", dict, p.size()) {} @@ -118,6 +124,8 @@ nutRoughWallFunctionFvPatchScalarField ) : fixedValueFvPatchScalarField(nrwfpsf), + kName_(nrwfpsf.kName_), + nuName_(nrwfpsf.nuName_), Ks_(nrwfpsf.Ks_), Cs_(nrwfpsf.Cs_) {} @@ -131,6 +139,8 @@ nutRoughWallFunctionFvPatchScalarField ) : fixedValueFvPatchScalarField(nrwfpsf, iF), + kName_(nrwfpsf.kName_), + nuName_(nrwfpsf.nuName_), Ks_(nrwfpsf.Ks_), Cs_(nrwfpsf.Cs_) {} @@ -177,10 +187,10 @@ void nutRoughWallFunctionFvPatchScalarField::updateCoeffs() const scalarField& y = ras.y()[patch().index()]; - const scalarField& k = db().lookupObject<volScalarField>("k"); + const scalarField& k = db().lookupObject<volScalarField>(kName_); const scalarField& nuw = - patch().lookupPatchField<volScalarField, scalar>("nu"); + patch().lookupPatchField<volScalarField, scalar>(nuName_); scalarField& nutw = *this; @@ -226,6 +236,8 @@ void nutRoughWallFunctionFvPatchScalarField::updateCoeffs() void nutRoughWallFunctionFvPatchScalarField::write(Ostream& os) const { fvPatchField<scalar>::write(os); + writeEntryIfDifferent<word>(os, "k", "k", kName_); + writeEntryIfDifferent<word>(os, "nu", "nu", nuName_); Cs_.writeEntry("Cs", os); Ks_.writeEntry("Ks", os); writeEntry("value", os); diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.H index 0263c145d09094a9ec4cb69792061cf45d57bca3..968c5c3f8f86612779651182cc3a6f733dd1ec92 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.H @@ -64,6 +64,12 @@ class nutRoughWallFunctionFvPatchScalarField { // Private data + //- Name of turbulence kinetic energy field + word kName_; + + //- Name of laminar viscosity field + word nuName_; + //- Roughness height scalarField Ks_; diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C index a7bd44016d026b84e85cb7006f49d8678de4acf8..2d7bfc9cd2d842d2b067f97aa62b3beda323813e 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C @@ -49,6 +49,8 @@ nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField ) : fixedValueFvPatchScalarField(p, iF), + UName_("U"), + nuName_("nu"), roughnessHeight_(pTraits<scalar>::zero), roughnessConstant_(pTraits<scalar>::zero), roughnessFudgeFactor_(pTraits<scalar>::zero) @@ -65,6 +67,8 @@ nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField ) : fixedValueFvPatchScalarField(ptf, p, iF, mapper), + UName_(ptf.UName_), + nuName_(ptf.nuName_), roughnessHeight_(ptf.roughnessHeight_), roughnessConstant_(ptf.roughnessConstant_), roughnessFudgeFactor_(ptf.roughnessFudgeFactor_) @@ -80,6 +84,8 @@ nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField ) : fixedValueFvPatchScalarField(p, iF, dict), + UName_(dict.lookupOrDefault<word>("U", "U")), + nuName_(dict.lookupOrDefault<word>("nu", "nu")), roughnessHeight_(readScalar(dict.lookup("roughnessHeight"))), roughnessConstant_(readScalar(dict.lookup("roughnessConstant"))), roughnessFudgeFactor_(readScalar(dict.lookup("roughnessFudgeFactor"))) @@ -93,6 +99,8 @@ nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField ) : fixedValueFvPatchScalarField(tppsf), + UName_(tppsf.UName_), + nuName_(tppsf.nuName_), roughnessHeight_(tppsf.roughnessHeight_), roughnessConstant_(tppsf.roughnessConstant_), roughnessFudgeFactor_(tppsf.roughnessFudgeFactor_) @@ -107,6 +115,8 @@ nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField ) : fixedValueFvPatchScalarField(tppsf, iF), + UName_(tppsf.UName_), + nuName_(tppsf.nuName_), roughnessHeight_(tppsf.roughnessHeight_), roughnessConstant_(tppsf.roughnessConstant_), roughnessFudgeFactor_(tppsf.roughnessFudgeFactor_) @@ -130,13 +140,13 @@ void nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::evaluate const scalarField& ry = patch().deltaCoeffs(); const fvPatchVectorField& U = - patch().lookupPatchField<volVectorField, vector>("U"); + patch().lookupPatchField<volVectorField, vector>(UName_); // The flow velocity at the adjacent cell centre. scalarField magUp = mag(U.patchInternalField() - U); const scalarField& nuw = - patch().lookupPatchField<volScalarField, scalar>("nu"); + patch().lookupPatchField<volScalarField, scalar>(nuName_); scalarField& nutw = *this; scalarField magFaceGradU = mag(U.snGrad()); @@ -276,6 +286,8 @@ void nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::write ) const { fixedValueFvPatchScalarField::write(os); + writeEntryIfDifferent<word>(os, "U", "U", UName_); + writeEntryIfDifferent<word>(os, "nu", "nu", nuName_); os.writeKeyword("roughnessHeight") << roughnessHeight_ << token::END_STATEMENT << nl; os.writeKeyword("roughnessConstant") diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H index 53a0478cffd2ecfe0fc9ab12b723a651f8d7aea8..f8c65f434cd49043d544120a8df7d928da30eeeb 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H @@ -58,9 +58,22 @@ class nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField { // Private data - scalar roughnessHeight_; - scalar roughnessConstant_; - scalar roughnessFudgeFactor_; + //- Name of velocity field + word UName_; + + //- Name of laminar viscosity field + word nuName_; + + // Roughness model parameters + + //- Height + scalar roughnessHeight_; + + //- Constant + scalar roughnessConstant_; + + //- Scale factor + scalar roughnessFudgeFactor_; public: @@ -143,38 +156,39 @@ public: // Access - //- Return the fluctuation scale + //- Return the roughness height const scalar& roughnessHeight() const { return roughnessHeight_; } - //- Return reference to the fluctuation scale to allow adjustment + //- Return reference to the roughness height to allow adjustment scalar& roughnessHeight() { return roughnessHeight_; } - //- Return the fluctuation scale + //- Return the roughness constant scale const scalar& roughnessConstant() const { return roughnessConstant_; } - //- Return reference to the fluctuation scale to allow adjustment + //- Return reference to the roughness constant to allow adjustment scalar& roughnessConstant() { return roughnessConstant_; } - //- Return the fluctuation scale + //- Return the roughness scale factor const scalar& roughnessFudgeFactor() const { return roughnessFudgeFactor_; } - //- Return reference to the fluctuation scale to allow adjustment + //- Return reference to the roughness scale factor to allow + // adjustment scalar& roughnessFudgeFactor() { return roughnessFudgeFactor_; diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C index 8e181f439b643bc7795bb5459b0bf85f9f493d4d..394c1ce7cf34c50866e65895ff22eeb13226199c 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C @@ -48,7 +48,9 @@ nutSpalartAllmarasStandardWallFunctionFvPatchScalarField const DimensionedField<scalar, volMesh>& iF ) : - fixedValueFvPatchScalarField(p, iF) + fixedValueFvPatchScalarField(p, iF), + UName_("U"), + nuName_("nu") {} @@ -61,7 +63,9 @@ nutSpalartAllmarasStandardWallFunctionFvPatchScalarField 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 ) : - 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 ) : - fixedValueFvPatchScalarField(tppsf) + fixedValueFvPatchScalarField(tppsf), + UName_(tppsf.UName_), + nuName_(tppsf.nuName_) {} @@ -94,7 +102,9 @@ nutSpalartAllmarasStandardWallFunctionFvPatchScalarField 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 fvPatchVectorField& U = - patch().lookupPatchField<volVectorField, vector>("U"); + patch().lookupPatchField<volVectorField, vector>(UName_); scalarField magUp = mag(U.patchInternalField() - U); const scalarField& nuw = - patch().lookupPatchField<volScalarField, scalar>("nu"); + patch().lookupPatchField<volScalarField, scalar>(nuName_); scalarField& nutw = *this; 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 diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H index f96f7d927a3a63c3ac418c425a8ce6d652fa02af..0ab4a7671a1bdb4249a2c00df6de0137fc7319c9 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H @@ -58,6 +58,12 @@ class nutSpalartAllmarasStandardWallFunctionFvPatchScalarField { // Private data + //- Name of velocity field + word UName_; + + //- Name of laminar viscosity field + word nuName_; + public: @@ -144,6 +150,9 @@ public: ( const Pstream::commsTypes commsType=Pstream::blocking ); + + //- Write + virtual void write(Ostream& os) const; }; diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.C index 420f7cd31c4704a2359a8ab7e82f69f0c4e0ffd2..112ae230257d55f6c81714205038bc0118ec7fc6 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.C @@ -48,7 +48,9 @@ nutSpalartAllmarasWallFunctionFvPatchScalarField const DimensionedField<scalar, volMesh>& iF ) : - fixedValueFvPatchScalarField(p, iF) + fixedValueFvPatchScalarField(p, iF), + UName_("U"), + nuName_("nu") {} @@ -61,7 +63,9 @@ nutSpalartAllmarasWallFunctionFvPatchScalarField 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 ) : - 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 ) : - fixedValueFvPatchScalarField(tppsf) + fixedValueFvPatchScalarField(tppsf), + UName_(tppsf.UName_), + nuName_(tppsf.nuName_) {} @@ -94,7 +102,9 @@ nutSpalartAllmarasWallFunctionFvPatchScalarField 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 fvPatchVectorField& U = - patch().lookupPatchField<volVectorField, vector>("U"); + patch().lookupPatchField<volVectorField, vector>(UName_); scalarField magUp = mag(U.patchInternalField() - U); const scalarField& nuw = - patch().lookupPatchField<volScalarField, scalar>("nu"); + patch().lookupPatchField<volScalarField, scalar>(nuName_); 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); diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.H index b085c95346b0725b4af16fd22787c209fb21d1d2..5679a2c565c055ed0012b5966b9844066a1d45ce 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.H @@ -58,6 +58,12 @@ class nutSpalartAllmarasWallFunctionFvPatchScalarField { // Private data + //- Name of velocity field + word UName_; + + //- Name of laminar viscosity field + word nuName_; + public: @@ -137,6 +143,9 @@ public: ( const Pstream::commsTypes commsType=Pstream::blocking ); + + //- Write + virtual void write(Ostream& os) const; }; diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C index 4498e25e266b480d831cd7fc9e0242a8837bcbbc..8e89f18d9696ff3038040ceb9b01b56a0ad1cd96 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C @@ -48,7 +48,9 @@ nutWallFunctionFvPatchScalarField const DimensionedField<scalar, volMesh>& iF ) : - fixedValueFvPatchScalarField(p, iF) + fixedValueFvPatchScalarField(p, iF), + kName_("k"), + nuName_("nu") {} @@ -61,7 +63,9 @@ nutWallFunctionFvPatchScalarField 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 ) : - fixedValueFvPatchScalarField(p, iF, dict) + fixedValueFvPatchScalarField(p, iF, dict), + kName_(dict.lookupOrDefault<word>("k", "k")), + nuName_(dict.lookupOrDefault<word>("nu", "nu")) {} nutWallFunctionFvPatchScalarField:: nutWallFunctionFvPatchScalarField ( - const nutWallFunctionFvPatchScalarField& tppsf + const nutWallFunctionFvPatchScalarField& nwfpsf ) : - fixedValueFvPatchScalarField(tppsf) + fixedValueFvPatchScalarField(nwfpsf), + kName_(nwfpsf.kName_), + nuName_(nwfpsf.nuName_) {} nutWallFunctionFvPatchScalarField:: nutWallFunctionFvPatchScalarField ( - const nutWallFunctionFvPatchScalarField& tppsf, + const nutWallFunctionFvPatchScalarField& nwfpsf, 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 volScalarField& k = db().lookupObject<volScalarField>("k"); + const volScalarField& k = db().lookupObject<volScalarField>(kName_); const scalarField& nuw = - patch().lookupPatchField<volScalarField, scalar>("nu"); + patch().lookupPatchField<volScalarField, scalar>(nuName_); scalarField& nutw = *this; @@ -140,6 +150,8 @@ void nutWallFunctionFvPatchScalarField::updateCoeffs() void nutWallFunctionFvPatchScalarField::write(Ostream& os) const { fvPatchField<scalar>::write(os); + writeEntryIfDifferent<word>(os, "k", "k", kName_); + writeEntryIfDifferent<word>(os, "nu", "nu", nuName_); writeEntry("value", os); } diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H index 149ebdf3214599880e98dd971b8c2bf4bedcf0ee..6f77f7cbb1af6056fdbd210bad8c7944fd2f6686 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H @@ -57,6 +57,14 @@ class nutWallFunctionFvPatchScalarField : public fixedValueFvPatchScalarField { + //Private data + + //- Name of turbulence kinetic energy field + word kName_; + + //- Name of laminar viscosity field + word nuName_; + public: diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C index 84793a2c4208e2d33e42be64826b625ba8658da1..f6a3b6a191fdeeef6fb8de8d729259989d129183 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C @@ -64,7 +64,12 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField const DimensionedField<scalar, volMesh>& iF ) : - fixedInternalValueFvPatchField<scalar>(p, iF) + fixedInternalValueFvPatchField<scalar>(p, iF), + UName_("U"), + kName_("k"), + GName_("G"), + nuName_("nu"), + nutName_("nut") { checkType(); } @@ -78,7 +83,12 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField 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(); } @@ -91,7 +101,12 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField 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(); } @@ -99,10 +114,15 @@ 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(); } @@ -110,11 +130,16 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField ( - const omegaWallFunctionFvPatchScalarField& ewfpsf, + const omegaWallFunctionFvPatchScalarField& owfpsf, 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(); } @@ -135,21 +160,21 @@ void omegaWallFunctionFvPatchScalarField::updateCoeffs() const scalarField& y = ras.y()[patch().index()]; volScalarField& G = const_cast<volScalarField&> - (db().lookupObject<volScalarField>("G")); + (db().lookupObject<volScalarField>(GName_)); 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 = - patch().lookupPatchField<volScalarField, scalar>("nu"); + patch().lookupPatchField<volScalarField, scalar>(nuName_); const scalarField& nutw = - patch().lookupPatchField<volScalarField, scalar>("nut"); + patch().lookupPatchField<volScalarField, scalar>(nutName_); const fvPatchVectorField& Uw = - patch().lookupPatchField<volVectorField, vector>("U"); + patch().lookupPatchField<volVectorField, vector>(UName_); const scalarField magGradUw = mag(Uw.snGrad()); @@ -183,6 +208,11 @@ void omegaWallFunctionFvPatchScalarField::updateCoeffs() void omegaWallFunctionFvPatchScalarField::write(Ostream& os) const { 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); } diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H index 37c8d90188a9e913c6e5c13795e83cda5ac53308..8f9e123ccfc0e5678c2ec68a663e868500fad9ca 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H @@ -55,6 +55,23 @@ class omegaWallFunctionFvPatchScalarField : 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 diff --git a/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.C b/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.C index ad8d3d14f78240ef386a4db0eb629fdd3a9328fd..a45ff8c33b1594741ab0d0c61fefd967fe5655b1 100644 --- a/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.C +++ b/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.C @@ -101,9 +101,6 @@ kOmega::kOmega ) ), - omega0_("omega0", dimless/dimTime, SMALL), - omegaSmall_("omegaSmall", dimless/dimTime, SMALL), - k_ ( IOobject @@ -271,7 +268,7 @@ void kOmega::correct() // Re-calculate viscosity - nut_ == k_/omega_; + nut_ == k_/(omega_ + omegaSmall_); nut_.correctBoundaryConditions(); } diff --git a/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.H b/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.H index d07d8a5fcbbd80bd9cfbe972cfd335920a60dc1b..649a13abe7976735ce54ef074575b54850778192 100644 --- a/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.H +++ b/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.H @@ -90,10 +90,6 @@ class kOmega dimensionedScalar alphaOmega_; - dimensionedScalar omega0_; - dimensionedScalar omegaSmall_; - - // Fields volScalarField k_; diff --git a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C b/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C index a066017a64472ee82e60a1a15a40bc674b7ce46e..6a737fce49fb5b4c1cb41f39818d314fa5ed4ad7 100644 --- a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C +++ b/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C @@ -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_), k_ @@ -331,7 +318,6 @@ bool kOmegaSST::read() betaStar_.readIfPresent(coeffDict_); a1_.readIfPresent(coeffDict_); c1_.readIfPresent(coeffDict_); - Cmu_.readIfPresent(coeffDict_); return true; } diff --git a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.H b/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.H index 8994b1ab3aa875d4adab233d9a449164086d3470..4563853801218285b5301896e507c52aac456adb 100644 --- a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.H +++ b/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.H @@ -57,7 +57,6 @@ Description @verbatim kOmegaSST { - Cmu 0.09; alphaK1 0.85034; alphaK2 1.0; alphaOmega1 0.5; @@ -103,33 +102,33 @@ class kOmegaSST { // Private data - dimensionedScalar alphaK1_; - dimensionedScalar alphaK2_; + // Model coefficients + dimensionedScalar alphaK1_; + dimensionedScalar alphaK2_; - dimensionedScalar alphaOmega1_; - dimensionedScalar alphaOmega2_; + dimensionedScalar alphaOmega1_; + dimensionedScalar alphaOmega2_; - dimensionedScalar gamma1_; - dimensionedScalar gamma2_; + dimensionedScalar gamma1_; + dimensionedScalar gamma2_; - dimensionedScalar beta1_; - dimensionedScalar beta2_; + dimensionedScalar beta1_; + dimensionedScalar beta2_; - dimensionedScalar betaStar_; + dimensionedScalar betaStar_; - dimensionedScalar a1_; - dimensionedScalar c1_; - - dimensionedScalar omega0_; - dimensionedScalar omegaSmall_; - - dimensionedScalar Cmu_; + dimensionedScalar a1_; + dimensionedScalar c1_; + //- Wall distance field + // Note: different to wall distance in parent RASModel wallDist y_; - volScalarField k_; - volScalarField omega_; - volScalarField nut_; + // Fields + + volScalarField k_; + volScalarField omega_; + volScalarField nut_; // Private member functions