inletOutlet BCs: update turbulence inletOutlet conditions

This commit is contained in:
Henry
2011-01-07 12:50:44 +00:00
parent d005fa29b4
commit 2d787d50ae
12 changed files with 250 additions and 114 deletions

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 1991-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -38,7 +38,7 @@ inletOutletTotalTemperatureFvPatchScalarField
const DimensionedField<scalar, volMesh>& iF const DimensionedField<scalar, volMesh>& iF
) )
: :
mixedFvPatchScalarField(p, iF), inletOutletFvPatchScalarField(p, iF),
UName_("U"), UName_("U"),
phiName_("phi"), phiName_("phi"),
psiName_("psi"), psiName_("psi"),
@ -60,7 +60,7 @@ inletOutletTotalTemperatureFvPatchScalarField
const fvPatchFieldMapper& mapper const fvPatchFieldMapper& mapper
) )
: :
mixedFvPatchScalarField(ptf, p, iF, mapper), inletOutletFvPatchScalarField(ptf, p, iF, mapper),
UName_(ptf.UName_), UName_(ptf.UName_),
phiName_(ptf.phiName_), phiName_(ptf.phiName_),
psiName_(ptf.psiName_), psiName_(ptf.psiName_),
@ -77,7 +77,7 @@ inletOutletTotalTemperatureFvPatchScalarField
const dictionary& dict const dictionary& dict
) )
: :
mixedFvPatchScalarField(p, iF), inletOutletFvPatchScalarField(p, iF),
UName_(dict.lookupOrDefault<word>("U", "U")), UName_(dict.lookupOrDefault<word>("U", "U")),
phiName_(dict.lookupOrDefault<word>("phi", "phi")), phiName_(dict.lookupOrDefault<word>("phi", "phi")),
psiName_(dict.lookupOrDefault<word>("psi", "psi")), psiName_(dict.lookupOrDefault<word>("psi", "psi")),
@ -108,7 +108,7 @@ inletOutletTotalTemperatureFvPatchScalarField
const inletOutletTotalTemperatureFvPatchScalarField& tppsf const inletOutletTotalTemperatureFvPatchScalarField& tppsf
) )
: :
mixedFvPatchScalarField(tppsf), inletOutletFvPatchScalarField(tppsf),
UName_(tppsf.UName_), UName_(tppsf.UName_),
phiName_(tppsf.phiName_), phiName_(tppsf.phiName_),
psiName_(tppsf.psiName_), psiName_(tppsf.psiName_),
@ -124,7 +124,7 @@ inletOutletTotalTemperatureFvPatchScalarField
const DimensionedField<scalar, volMesh>& iF const DimensionedField<scalar, volMesh>& iF
) )
: :
mixedFvPatchScalarField(tppsf, iF), inletOutletFvPatchScalarField(tppsf, iF),
UName_(tppsf.UName_), UName_(tppsf.UName_),
phiName_(tppsf.phiName_), phiName_(tppsf.phiName_),
psiName_(tppsf.psiName_), psiName_(tppsf.psiName_),
@ -140,7 +140,7 @@ void Foam::inletOutletTotalTemperatureFvPatchScalarField::autoMap
const fvPatchFieldMapper& m const fvPatchFieldMapper& m
) )
{ {
mixedFvPatchScalarField::autoMap(m); inletOutletFvPatchScalarField::autoMap(m);
T0_.autoMap(m); T0_.autoMap(m);
} }
@ -151,7 +151,7 @@ void Foam::inletOutletTotalTemperatureFvPatchScalarField::rmap
const labelList& addr const labelList& addr
) )
{ {
mixedFvPatchScalarField::rmap(ptf, addr); inletOutletFvPatchScalarField::rmap(ptf, addr);
const inletOutletTotalTemperatureFvPatchScalarField& tiptf = const inletOutletTotalTemperatureFvPatchScalarField& tiptf =
refCast<const inletOutletTotalTemperatureFvPatchScalarField>(ptf); refCast<const inletOutletTotalTemperatureFvPatchScalarField>(ptf);
@ -182,7 +182,7 @@ void Foam::inletOutletTotalTemperatureFvPatchScalarField::updateCoeffs()
T0_/(1.0 + 0.5*psip*gM1ByG*(1.0 - pos(phip))*magSqr(Up)); T0_/(1.0 + 0.5*psip*gM1ByG*(1.0 - pos(phip))*magSqr(Up));
this->valueFraction() = 1.0 - pos(phip); this->valueFraction() = 1.0 - pos(phip);
mixedFvPatchScalarField::updateCoeffs(); inletOutletFvPatchScalarField::updateCoeffs();
} }

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 1991-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -35,7 +35,7 @@ SourceFiles
#ifndef inletOutletTotalTemperatureFvPatchScalarField_H #ifndef inletOutletTotalTemperatureFvPatchScalarField_H
#define inletOutletTotalTemperatureFvPatchScalarField_H #define inletOutletTotalTemperatureFvPatchScalarField_H
#include "mixedFvPatchFields.H" #include "inletOutletFvPatchFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -48,7 +48,7 @@ namespace Foam
class inletOutletTotalTemperatureFvPatchScalarField class inletOutletTotalTemperatureFvPatchScalarField
: :
public mixedFvPatchScalarField public inletOutletFvPatchScalarField
{ {
// Private data // Private data

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2006-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2006-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -38,10 +38,15 @@ turbulentIntensityKineticEnergyInletFvPatchScalarField
const DimensionedField<scalar, volMesh>& iF const DimensionedField<scalar, volMesh>& iF
) )
: :
fixedValueFvPatchField<scalar>(p, iF), inletOutletFvPatchScalarField(p, iF),
UName_("U"), intensity_(0.0),
intensity_(0.05) UName_("undefined-U"),
{} phiName_("undefined-phi")
{
this->refValue() = 0.0;
this->refGrad() = 0.0;
this->valueFraction() = 0.0;
}
Foam::turbulentIntensityKineticEnergyInletFvPatchScalarField:: Foam::turbulentIntensityKineticEnergyInletFvPatchScalarField::
turbulentIntensityKineticEnergyInletFvPatchScalarField turbulentIntensityKineticEnergyInletFvPatchScalarField
@ -52,9 +57,10 @@ turbulentIntensityKineticEnergyInletFvPatchScalarField
const fvPatchFieldMapper& mapper const fvPatchFieldMapper& mapper
) )
: :
fixedValueFvPatchField<scalar>(ptf, p, iF, mapper), inletOutletFvPatchScalarField(ptf, p, iF, mapper),
intensity_(ptf.intensity_),
UName_(ptf.UName_), UName_(ptf.UName_),
intensity_(ptf.intensity_) phiName_(ptf.phiName_)
{} {}
Foam::turbulentIntensityKineticEnergyInletFvPatchScalarField:: Foam::turbulentIntensityKineticEnergyInletFvPatchScalarField::
@ -65,9 +71,10 @@ turbulentIntensityKineticEnergyInletFvPatchScalarField
const dictionary& dict const dictionary& dict
) )
: :
fixedValueFvPatchField<scalar>(p, iF, dict), inletOutletFvPatchScalarField(p, iF),
intensity_(readScalar(dict.lookup("intensity"))),
UName_(dict.lookupOrDefault<word>("U", "U")), UName_(dict.lookupOrDefault<word>("U", "U")),
intensity_(readScalar(dict.lookup("intensity"))) phiName_(dict.lookupOrDefault<word>("phi", "phi"))
{ {
if (intensity_ < 0 || intensity_ > 1) if (intensity_ < 0 || intensity_ > 1)
{ {
@ -85,6 +92,12 @@ turbulentIntensityKineticEnergyInletFvPatchScalarField
<< " in file " << this->dimensionedInternalField().objectPath() << " in file " << this->dimensionedInternalField().objectPath()
<< exit(FatalError); << exit(FatalError);
} }
fvPatchScalarField::operator=(scalarField("value", dict, p.size()));
this->refValue() = 0.0;
this->refGrad() = 0.0;
this->valueFraction() = 0.0;
} }
Foam::turbulentIntensityKineticEnergyInletFvPatchScalarField:: Foam::turbulentIntensityKineticEnergyInletFvPatchScalarField::
@ -93,9 +106,10 @@ turbulentIntensityKineticEnergyInletFvPatchScalarField
const turbulentIntensityKineticEnergyInletFvPatchScalarField& ptf const turbulentIntensityKineticEnergyInletFvPatchScalarField& ptf
) )
: :
fixedValueFvPatchField<scalar>(ptf), inletOutletFvPatchScalarField(ptf),
intensity_(ptf.intensity_),
UName_(ptf.UName_), UName_(ptf.UName_),
intensity_(ptf.intensity_) phiName_(ptf.phiName_)
{} {}
@ -106,9 +120,10 @@ turbulentIntensityKineticEnergyInletFvPatchScalarField
const DimensionedField<scalar, volMesh>& iF const DimensionedField<scalar, volMesh>& iF
) )
: :
fixedValueFvPatchField<scalar>(ptf, iF), inletOutletFvPatchScalarField(ptf, iF),
intensity_(ptf.intensity_),
UName_(ptf.UName_), UName_(ptf.UName_),
intensity_(ptf.intensity_) phiName_(ptf.phiName_)
{} {}
@ -122,12 +137,16 @@ updateCoeffs()
return; return;
} }
const fvPatchField<vector>& Up = const fvPatchVectorField& Up =
patch().lookupPatchField<volVectorField, vector>(UName_); patch().lookupPatchField<volVectorField, vector>(UName_);
operator==(1.5*sqr(intensity_)*magSqr(Up)); const fvsPatchScalarField& phip =
patch().lookupPatchField<surfaceScalarField, scalar>(phiName_);
fixedValueFvPatchField<scalar>::updateCoeffs(); this->refValue() = 1.5*sqr(intensity_)*magSqr(Up);
this->valueFraction() = 1.0 - pos(phip);
inletOutletFvPatchScalarField::updateCoeffs();
} }
@ -136,9 +155,10 @@ void Foam::turbulentIntensityKineticEnergyInletFvPatchScalarField::write
Ostream& os Ostream& os
) const ) const
{ {
fvPatchField<scalar>::write(os); fvPatchScalarField::write(os);
writeEntryIfDifferent<word>(os, "U", "U", UName_);
os.writeKeyword("intensity") << intensity_ << token::END_STATEMENT << nl; os.writeKeyword("intensity") << intensity_ << token::END_STATEMENT << nl;
os.writeKeyword("U") << UName_ << token::END_STATEMENT << nl;
os.writeKeyword("phi") << phiName_ << token::END_STATEMENT << nl;
writeEntry("value", os); writeEntry("value", os);
} }

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2006-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2006-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -33,7 +33,6 @@ Description
inlet inlet
{ {
type turbulentIntensityKineticEnergyInlet; type turbulentIntensityKineticEnergyInlet;
U U; // Name of U field (optional)
intensity 0.05; // 5% turbulence intensity 0.05; // 5% turbulence
value uniform 1; // placeholder value uniform 1; // placeholder
} }
@ -47,7 +46,7 @@ SourceFiles
#ifndef turbulentIntensityKineticEnergyInletFvPatchScalarField_H #ifndef turbulentIntensityKineticEnergyInletFvPatchScalarField_H
#define turbulentIntensityKineticEnergyInletFvPatchScalarField_H #define turbulentIntensityKineticEnergyInletFvPatchScalarField_H
#include "fixedValueFvPatchFields.H" #include "inletOutletFvPatchFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -60,16 +59,20 @@ namespace Foam
class turbulentIntensityKineticEnergyInletFvPatchScalarField class turbulentIntensityKineticEnergyInletFvPatchScalarField
: :
public fixedValueFvPatchScalarField public inletOutletFvPatchScalarField
{ {
// Private data // Private data
//- Name of belocity field
word UName_;
//- Turbulent intensity as fraction of mean velocity //- Turbulent intensity as fraction of mean velocity
scalar intensity_; scalar intensity_;
//- Name of the velocity field
word UName_;
//- Name of the flux field
word phiName_;
public: public:
//- Runtime type information //- Runtime type information

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2006-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2006-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -46,9 +46,15 @@ turbulentMixingLengthDissipationRateInletFvPatchScalarField
const DimensionedField<scalar, volMesh>& iF const DimensionedField<scalar, volMesh>& iF
) )
: :
fixedValueFvPatchField<scalar>(p, iF), inletOutletFvPatchScalarField(p, iF),
mixingLength_(0.001) mixingLength_(0.0),
{} phiName_("undefined-phi"),
kName_("undefined-k")
{
this->refValue() = 0.0;
this->refGrad() = 0.0;
this->valueFraction() = 0.0;
}
turbulentMixingLengthDissipationRateInletFvPatchScalarField:: turbulentMixingLengthDissipationRateInletFvPatchScalarField::
turbulentMixingLengthDissipationRateInletFvPatchScalarField turbulentMixingLengthDissipationRateInletFvPatchScalarField
@ -59,8 +65,10 @@ turbulentMixingLengthDissipationRateInletFvPatchScalarField
const fvPatchFieldMapper& mapper const fvPatchFieldMapper& mapper
) )
: :
fixedValueFvPatchField<scalar>(ptf, p, iF, mapper), inletOutletFvPatchScalarField(ptf, p, iF, mapper),
mixingLength_(ptf.mixingLength_) mixingLength_(ptf.mixingLength_),
phiName_(ptf.phiName_),
kName_(ptf.kName_)
{} {}
turbulentMixingLengthDissipationRateInletFvPatchScalarField:: turbulentMixingLengthDissipationRateInletFvPatchScalarField::
@ -71,9 +79,17 @@ turbulentMixingLengthDissipationRateInletFvPatchScalarField
const dictionary& dict const dictionary& dict
) )
: :
fixedValueFvPatchField<scalar>(p, iF, dict), inletOutletFvPatchScalarField(p, iF),
mixingLength_(readScalar(dict.lookup("mixingLength"))) mixingLength_(readScalar(dict.lookup("mixingLength"))),
{} phiName_(dict.lookupOrDefault<word>("phi", "phi")),
kName_(dict.lookupOrDefault<word>("k", "k"))
{
fvPatchScalarField::operator=(scalarField("value", dict, p.size()));
this->refValue() = 0.0;
this->refGrad() = 0.0;
this->valueFraction() = 0.0;
}
turbulentMixingLengthDissipationRateInletFvPatchScalarField:: turbulentMixingLengthDissipationRateInletFvPatchScalarField::
turbulentMixingLengthDissipationRateInletFvPatchScalarField turbulentMixingLengthDissipationRateInletFvPatchScalarField
@ -81,8 +97,10 @@ turbulentMixingLengthDissipationRateInletFvPatchScalarField
const turbulentMixingLengthDissipationRateInletFvPatchScalarField& ptf const turbulentMixingLengthDissipationRateInletFvPatchScalarField& ptf
) )
: :
fixedValueFvPatchField<scalar>(ptf), inletOutletFvPatchScalarField(ptf),
mixingLength_(ptf.mixingLength_) mixingLength_(ptf.mixingLength_),
phiName_(ptf.phiName_),
kName_(ptf.kName_)
{} {}
turbulentMixingLengthDissipationRateInletFvPatchScalarField:: turbulentMixingLengthDissipationRateInletFvPatchScalarField::
@ -92,8 +110,10 @@ turbulentMixingLengthDissipationRateInletFvPatchScalarField
const DimensionedField<scalar, volMesh>& iF const DimensionedField<scalar, volMesh>& iF
) )
: :
fixedValueFvPatchField<scalar>(ptf, iF), inletOutletFvPatchScalarField(ptf, iF),
mixingLength_(ptf.mixingLength_) mixingLength_(ptf.mixingLength_),
phiName_(ptf.phiName_),
kName_(ptf.kName_)
{} {}
@ -114,12 +134,16 @@ void turbulentMixingLengthDissipationRateInletFvPatchScalarField::updateCoeffs()
const scalar Cmu75 = pow(Cmu, 0.75); const scalar Cmu75 = pow(Cmu, 0.75);
const fvPatchField<scalar>& kp = const fvPatchScalarField& kp =
patch().lookupPatchField<volScalarField, scalar>("k"); patch().lookupPatchField<volScalarField, scalar>(kName_);
operator==(Cmu75*kp*sqrt(kp)/mixingLength_); const fvsPatchScalarField& phip =
patch().lookupPatchField<surfaceScalarField, scalar>(phiName_);
fixedValueFvPatchField<scalar>::updateCoeffs(); this->refValue() = Cmu75*kp*sqrt(kp)/mixingLength_;
this->valueFraction() = 1.0 - pos(phip);
inletOutletFvPatchScalarField::updateCoeffs();
} }
@ -128,9 +152,11 @@ void turbulentMixingLengthDissipationRateInletFvPatchScalarField::write
Ostream& os Ostream& os
) const ) const
{ {
fvPatchField<scalar>::write(os); fvPatchScalarField::write(os);
os.writeKeyword("mixingLength") os.writeKeyword("mixingLength")
<< mixingLength_ << token::END_STATEMENT << nl; << mixingLength_ << token::END_STATEMENT << nl;
os.writeKeyword("phi") << phiName_ << token::END_STATEMENT << nl;
os.writeKeyword("k") << kName_ << token::END_STATEMENT << nl;
writeEntry("value", os); writeEntry("value", os);
} }

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2006-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2006-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -32,9 +32,9 @@ Description
@verbatim @verbatim
inlet inlet
{ {
type compressible::turbulentMixingLengthDissipationRateInlet; type compressible::turbulentMixingLengthDissipationRateInlet;
mixingLength 0.005; // 5 mm mixingLength 0.005; // 5 mm
value uniform 200; // placeholder value uniform 200; // placeholder
} }
@endverbatim @endverbatim
@ -46,7 +46,7 @@ SourceFiles
#ifndef compressibleturbulentMixingLengthDissipationRateInletFvPatchField_H #ifndef compressibleturbulentMixingLengthDissipationRateInletFvPatchField_H
#define compressibleturbulentMixingLengthDissipationRateInletFvPatchField_H #define compressibleturbulentMixingLengthDissipationRateInletFvPatchField_H
#include "fixedValueFvPatchFields.H" #include "inletOutletFvPatchFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -61,13 +61,20 @@ namespace compressible
class turbulentMixingLengthDissipationRateInletFvPatchScalarField class turbulentMixingLengthDissipationRateInletFvPatchScalarField
: :
public fixedValueFvPatchScalarField public inletOutletFvPatchScalarField
{ {
// Private data // Private data
//- turbulent length scale //- turbulent length scale
scalar mixingLength_; scalar mixingLength_;
//- Name of the flux field
word phiName_;
//- Name of the turbulent kinetic energy field
word kName_;
public: public:
//- Runtime type information //- Runtime type information

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2006-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2006-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -26,6 +26,7 @@ License
#include "turbulentMixingLengthFrequencyInletFvPatchScalarField.H" #include "turbulentMixingLengthFrequencyInletFvPatchScalarField.H"
#include "addToRunTimeSelectionTable.H" #include "addToRunTimeSelectionTable.H"
#include "fvPatchFieldMapper.H" #include "fvPatchFieldMapper.H"
#include "surfaceFields.H"
#include "volFields.H" #include "volFields.H"
#include "RASModel.H" #include "RASModel.H"
@ -45,10 +46,15 @@ turbulentMixingLengthFrequencyInletFvPatchScalarField
const DimensionedField<scalar, volMesh>& iF const DimensionedField<scalar, volMesh>& iF
) )
: :
fixedValueFvPatchField<scalar>(p, iF), inletOutletFvPatchScalarField(p, iF),
mixingLength_(0.0), mixingLength_(0.0),
kName_("k") phiName_("undefined-phi"),
{} kName_("undefined-k")
{
this->refValue() = 0.0;
this->refGrad() = 0.0;
this->valueFraction() = 0.0;
}
turbulentMixingLengthFrequencyInletFvPatchScalarField:: turbulentMixingLengthFrequencyInletFvPatchScalarField::
turbulentMixingLengthFrequencyInletFvPatchScalarField turbulentMixingLengthFrequencyInletFvPatchScalarField
@ -59,8 +65,9 @@ turbulentMixingLengthFrequencyInletFvPatchScalarField
const fvPatchFieldMapper& mapper const fvPatchFieldMapper& mapper
) )
: :
fixedValueFvPatchField<scalar>(ptf, p, iF, mapper), inletOutletFvPatchScalarField(ptf, p, iF, mapper),
mixingLength_(ptf.mixingLength_), mixingLength_(ptf.mixingLength_),
phiName_(ptf.phiName_),
kName_(ptf.kName_) kName_(ptf.kName_)
{} {}
@ -72,10 +79,17 @@ turbulentMixingLengthFrequencyInletFvPatchScalarField
const dictionary& dict const dictionary& dict
) )
: :
fixedValueFvPatchField<scalar>(p, iF, dict), inletOutletFvPatchScalarField(p, iF),
mixingLength_(readScalar(dict.lookup("mixingLength"))), mixingLength_(readScalar(dict.lookup("mixingLength"))),
phiName_(dict.lookupOrDefault<word>("phi", "phi")),
kName_(dict.lookupOrDefault<word>("k", "k")) kName_(dict.lookupOrDefault<word>("k", "k"))
{} {
fvPatchScalarField::operator=(scalarField("value", dict, p.size()));
this->refValue() = 0.0;
this->refGrad() = 0.0;
this->valueFraction() = 0.0;
}
turbulentMixingLengthFrequencyInletFvPatchScalarField:: turbulentMixingLengthFrequencyInletFvPatchScalarField::
turbulentMixingLengthFrequencyInletFvPatchScalarField turbulentMixingLengthFrequencyInletFvPatchScalarField
@ -83,8 +97,9 @@ turbulentMixingLengthFrequencyInletFvPatchScalarField
const turbulentMixingLengthFrequencyInletFvPatchScalarField& ptf const turbulentMixingLengthFrequencyInletFvPatchScalarField& ptf
) )
: :
fixedValueFvPatchField<scalar>(ptf), inletOutletFvPatchScalarField(ptf),
mixingLength_(ptf.mixingLength_), mixingLength_(ptf.mixingLength_),
phiName_(ptf.phiName_),
kName_(ptf.kName_) kName_(ptf.kName_)
{} {}
@ -95,8 +110,9 @@ turbulentMixingLengthFrequencyInletFvPatchScalarField
const DimensionedField<scalar, volMesh>& iF const DimensionedField<scalar, volMesh>& iF
) )
: :
fixedValueFvPatchField<scalar>(ptf, iF), inletOutletFvPatchScalarField(ptf, iF),
mixingLength_(ptf.mixingLength_), mixingLength_(ptf.mixingLength_),
phiName_(ptf.phiName_),
kName_(ptf.kName_) kName_(ptf.kName_)
{} {}
@ -116,14 +132,18 @@ void turbulentMixingLengthFrequencyInletFvPatchScalarField::updateCoeffs()
const scalar Cmu = const scalar Cmu =
rasModel.coeffDict().lookupOrDefault<scalar>("Cmu", 0.09); rasModel.coeffDict().lookupOrDefault<scalar>("Cmu", 0.09);
const scalar Cmu25 = pow025(Cmu); const scalar Cmu25 = pow(Cmu, 0.25);
const fvPatchField<scalar>& kp = const fvPatchScalarField& kp =
patch().lookupPatchField<volScalarField, scalar>(kName_); patch().lookupPatchField<volScalarField, scalar>(kName_);
operator==(sqrt(kp)/(Cmu25*mixingLength_)); const fvsPatchScalarField& phip =
patch().lookupPatchField<surfaceScalarField, scalar>(phiName_);
fixedValueFvPatchField<scalar>::updateCoeffs(); this->refValue() = sqrt(kp)/(Cmu25*mixingLength_);
this->valueFraction() = 1.0 - pos(phip);
inletOutletFvPatchScalarField::updateCoeffs();
} }
@ -132,9 +152,10 @@ void turbulentMixingLengthFrequencyInletFvPatchScalarField::write
Ostream& os Ostream& os
) const ) const
{ {
fvPatchField<scalar>::write(os); fvPatchScalarField::write(os);
os.writeKeyword("mixingLength") os.writeKeyword("mixingLength")
<< mixingLength_ << token::END_STATEMENT << nl; << mixingLength_ << token::END_STATEMENT << nl;
os.writeKeyword("phi") << phiName_ << token::END_STATEMENT << nl;
os.writeKeyword("k") << kName_ << token::END_STATEMENT << nl; os.writeKeyword("k") << kName_ << token::END_STATEMENT << nl;
writeEntry("value", os); writeEntry("value", os);
} }

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2006-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2006-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -46,7 +46,7 @@ SourceFiles
#ifndef compressibleturbulentMixingLengthFrequencyInletFvPatchScalarField_H #ifndef compressibleturbulentMixingLengthFrequencyInletFvPatchScalarField_H
#define compressibleturbulentMixingLengthFrequencyInletFvPatchScalarField_H #define compressibleturbulentMixingLengthFrequencyInletFvPatchScalarField_H
#include "fixedValueFvPatchFields.H" #include "inletOutletFvPatchFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -61,13 +61,16 @@ namespace compressible
class turbulentMixingLengthFrequencyInletFvPatchScalarField class turbulentMixingLengthFrequencyInletFvPatchScalarField
: :
public fixedValueFvPatchScalarField public inletOutletFvPatchScalarField
{ {
// Private data // Private data
//- Turbulent length scale //- Turbulent length scale
scalar mixingLength_; scalar mixingLength_;
//- Name of the flux field
word phiName_;
//- Name of the turbulent kinetic energy field //- Name of the turbulent kinetic energy field
word kName_; word kName_;

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2006-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2006-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -46,9 +46,15 @@ turbulentMixingLengthDissipationRateInletFvPatchScalarField
const DimensionedField<scalar, volMesh>& iF const DimensionedField<scalar, volMesh>& iF
) )
: :
fixedValueFvPatchField<scalar>(p, iF), inletOutletFvPatchScalarField(p, iF),
mixingLength_(0.001) mixingLength_(0.0),
{} phiName_("undefined-phi"),
kName_("undefined-k")
{
this->refValue() = 0.0;
this->refGrad() = 0.0;
this->valueFraction() = 0.0;
}
turbulentMixingLengthDissipationRateInletFvPatchScalarField:: turbulentMixingLengthDissipationRateInletFvPatchScalarField::
turbulentMixingLengthDissipationRateInletFvPatchScalarField turbulentMixingLengthDissipationRateInletFvPatchScalarField
@ -59,8 +65,10 @@ turbulentMixingLengthDissipationRateInletFvPatchScalarField
const fvPatchFieldMapper& mapper const fvPatchFieldMapper& mapper
) )
: :
fixedValueFvPatchField<scalar>(ptf, p, iF, mapper), inletOutletFvPatchScalarField(ptf, p, iF, mapper),
mixingLength_(ptf.mixingLength_) mixingLength_(ptf.mixingLength_),
phiName_(ptf.phiName_),
kName_(ptf.kName_)
{} {}
turbulentMixingLengthDissipationRateInletFvPatchScalarField:: turbulentMixingLengthDissipationRateInletFvPatchScalarField::
@ -71,9 +79,17 @@ turbulentMixingLengthDissipationRateInletFvPatchScalarField
const dictionary& dict const dictionary& dict
) )
: :
fixedValueFvPatchField<scalar>(p, iF, dict), inletOutletFvPatchScalarField(p, iF),
mixingLength_(readScalar(dict.lookup("mixingLength"))) mixingLength_(readScalar(dict.lookup("mixingLength"))),
{} phiName_(dict.lookupOrDefault<word>("phi", "phi")),
kName_(dict.lookupOrDefault<word>("k", "k"))
{
fvPatchScalarField::operator=(scalarField("value", dict, p.size()));
this->refValue() = 0.0;
this->refGrad() = 0.0;
this->valueFraction() = 0.0;
}
turbulentMixingLengthDissipationRateInletFvPatchScalarField:: turbulentMixingLengthDissipationRateInletFvPatchScalarField::
turbulentMixingLengthDissipationRateInletFvPatchScalarField turbulentMixingLengthDissipationRateInletFvPatchScalarField
@ -81,8 +97,10 @@ turbulentMixingLengthDissipationRateInletFvPatchScalarField
const turbulentMixingLengthDissipationRateInletFvPatchScalarField& ptf const turbulentMixingLengthDissipationRateInletFvPatchScalarField& ptf
) )
: :
fixedValueFvPatchField<scalar>(ptf), inletOutletFvPatchScalarField(ptf),
mixingLength_(ptf.mixingLength_) mixingLength_(ptf.mixingLength_),
phiName_(ptf.phiName_),
kName_(ptf.kName_)
{} {}
turbulentMixingLengthDissipationRateInletFvPatchScalarField:: turbulentMixingLengthDissipationRateInletFvPatchScalarField::
@ -92,8 +110,10 @@ turbulentMixingLengthDissipationRateInletFvPatchScalarField
const DimensionedField<scalar, volMesh>& iF const DimensionedField<scalar, volMesh>& iF
) )
: :
fixedValueFvPatchField<scalar>(ptf, iF), inletOutletFvPatchScalarField(ptf, iF),
mixingLength_(ptf.mixingLength_) mixingLength_(ptf.mixingLength_),
phiName_(ptf.phiName_),
kName_(ptf.kName_)
{} {}
@ -114,12 +134,16 @@ void turbulentMixingLengthDissipationRateInletFvPatchScalarField::updateCoeffs()
const scalar Cmu75 = pow(Cmu, 0.75); const scalar Cmu75 = pow(Cmu, 0.75);
const fvPatchField<scalar>& kp = const fvPatchScalarField& kp =
patch().lookupPatchField<volScalarField, scalar>("k"); patch().lookupPatchField<volScalarField, scalar>(kName_);
operator==(Cmu75*kp*sqrt(kp)/mixingLength_); const fvsPatchScalarField& phip =
patch().lookupPatchField<surfaceScalarField, scalar>(phiName_);
fixedValueFvPatchField<scalar>::updateCoeffs(); this->refValue() = Cmu75*kp*sqrt(kp)/mixingLength_;
this->valueFraction() = 1.0 - pos(phip);
inletOutletFvPatchScalarField::updateCoeffs();
} }
@ -128,9 +152,11 @@ void turbulentMixingLengthDissipationRateInletFvPatchScalarField::write
Ostream& os Ostream& os
) const ) const
{ {
fvPatchField<scalar>::write(os); fvPatchScalarField::write(os);
os.writeKeyword("mixingLength") os.writeKeyword("mixingLength")
<< mixingLength_ << token::END_STATEMENT << nl; << mixingLength_ << token::END_STATEMENT << nl;
os.writeKeyword("phi") << phiName_ << token::END_STATEMENT << nl;
os.writeKeyword("k") << kName_ << token::END_STATEMENT << nl;
writeEntry("value", os); writeEntry("value", os);
} }

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2006-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2006-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -46,7 +46,7 @@ SourceFiles
#ifndef incompressibleturbulentMixingLengthDissipationRateInlet_H #ifndef incompressibleturbulentMixingLengthDissipationRateInlet_H
#define incompressibleturbulentMixingLengthDissipationRateInlet_H #define incompressibleturbulentMixingLengthDissipationRateInlet_H
#include "fixedValueFvPatchFields.H" #include "inletOutletFvPatchFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -61,13 +61,20 @@ namespace incompressible
class turbulentMixingLengthDissipationRateInletFvPatchScalarField class turbulentMixingLengthDissipationRateInletFvPatchScalarField
: :
public fixedValueFvPatchScalarField public inletOutletFvPatchScalarField
{ {
// Private data // Private data
//- turbulent length scale //- turbulent length scale
scalar mixingLength_; scalar mixingLength_;
//- Name of the flux field
word phiName_;
//- Name of the turbulent kinetic energy field
word kName_;
public: public:
//- Runtime type information //- Runtime type information

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2006-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2006-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -46,10 +46,15 @@ turbulentMixingLengthFrequencyInletFvPatchScalarField
const DimensionedField<scalar, volMesh>& iF const DimensionedField<scalar, volMesh>& iF
) )
: :
fixedValueFvPatchField<scalar>(p, iF), inletOutletFvPatchScalarField(p, iF),
mixingLength_(0.0), mixingLength_(0.0),
phiName_("undefined-phi"),
kName_("undefined-k") kName_("undefined-k")
{} {
this->refValue() = 0.0;
this->refGrad() = 0.0;
this->valueFraction() = 0.0;
}
turbulentMixingLengthFrequencyInletFvPatchScalarField:: turbulentMixingLengthFrequencyInletFvPatchScalarField::
turbulentMixingLengthFrequencyInletFvPatchScalarField turbulentMixingLengthFrequencyInletFvPatchScalarField
@ -60,8 +65,9 @@ turbulentMixingLengthFrequencyInletFvPatchScalarField
const fvPatchFieldMapper& mapper const fvPatchFieldMapper& mapper
) )
: :
fixedValueFvPatchField<scalar>(ptf, p, iF, mapper), inletOutletFvPatchScalarField(ptf, p, iF, mapper),
mixingLength_(ptf.mixingLength_), mixingLength_(ptf.mixingLength_),
phiName_(ptf.phiName_),
kName_(ptf.kName_) kName_(ptf.kName_)
{} {}
@ -73,10 +79,17 @@ turbulentMixingLengthFrequencyInletFvPatchScalarField
const dictionary& dict const dictionary& dict
) )
: :
fixedValueFvPatchField<scalar>(p, iF, dict), inletOutletFvPatchScalarField(p, iF),
mixingLength_(readScalar(dict.lookup("mixingLength"))), mixingLength_(readScalar(dict.lookup("mixingLength"))),
phiName_(dict.lookupOrDefault<word>("phi", "phi")),
kName_(dict.lookupOrDefault<word>("k", "k")) kName_(dict.lookupOrDefault<word>("k", "k"))
{} {
fvPatchScalarField::operator=(scalarField("value", dict, p.size()));
this->refValue() = 0.0;
this->refGrad() = 0.0;
this->valueFraction() = 0.0;
}
turbulentMixingLengthFrequencyInletFvPatchScalarField:: turbulentMixingLengthFrequencyInletFvPatchScalarField::
turbulentMixingLengthFrequencyInletFvPatchScalarField turbulentMixingLengthFrequencyInletFvPatchScalarField
@ -84,8 +97,9 @@ turbulentMixingLengthFrequencyInletFvPatchScalarField
const turbulentMixingLengthFrequencyInletFvPatchScalarField& ptf const turbulentMixingLengthFrequencyInletFvPatchScalarField& ptf
) )
: :
fixedValueFvPatchField<scalar>(ptf), inletOutletFvPatchScalarField(ptf),
mixingLength_(ptf.mixingLength_), mixingLength_(ptf.mixingLength_),
phiName_(ptf.phiName_),
kName_(ptf.kName_) kName_(ptf.kName_)
{} {}
@ -96,8 +110,9 @@ turbulentMixingLengthFrequencyInletFvPatchScalarField
const DimensionedField<scalar, volMesh>& iF const DimensionedField<scalar, volMesh>& iF
) )
: :
fixedValueFvPatchField<scalar>(ptf, iF), inletOutletFvPatchScalarField(ptf, iF),
mixingLength_(ptf.mixingLength_), mixingLength_(ptf.mixingLength_),
phiName_(ptf.phiName_),
kName_(ptf.kName_) kName_(ptf.kName_)
{} {}
@ -117,14 +132,18 @@ void turbulentMixingLengthFrequencyInletFvPatchScalarField::updateCoeffs()
const scalar Cmu = const scalar Cmu =
rasModel.coeffDict().lookupOrDefault<scalar>("Cmu", 0.09); rasModel.coeffDict().lookupOrDefault<scalar>("Cmu", 0.09);
const scalar Cmu25 = pow025(Cmu); const scalar Cmu25 = pow(Cmu, 0.25);
const fvPatchField<scalar>& kp = const fvPatchScalarField& kp =
patch().lookupPatchField<volScalarField, scalar>(kName_); patch().lookupPatchField<volScalarField, scalar>(kName_);
operator==(sqrt(kp)/(Cmu25*mixingLength_)); const fvsPatchScalarField& phip =
patch().lookupPatchField<surfaceScalarField, scalar>(phiName_);
fixedValueFvPatchField<scalar>::updateCoeffs(); this->refValue() = sqrt(kp)/(Cmu25*mixingLength_);
this->valueFraction() = 1.0 - pos(phip);
inletOutletFvPatchScalarField::updateCoeffs();
} }
@ -133,9 +152,10 @@ void turbulentMixingLengthFrequencyInletFvPatchScalarField::write
Ostream& os Ostream& os
) const ) const
{ {
fvPatchField<scalar>::write(os); fvPatchScalarField::write(os);
os.writeKeyword("mixingLength") os.writeKeyword("mixingLength")
<< mixingLength_ << token::END_STATEMENT << nl; << mixingLength_ << token::END_STATEMENT << nl;
os.writeKeyword("phi") << phiName_ << token::END_STATEMENT << nl;
os.writeKeyword("k") << kName_ << token::END_STATEMENT << nl; os.writeKeyword("k") << kName_ << token::END_STATEMENT << nl;
writeEntry("value", os); writeEntry("value", os);
} }

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2006-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2006-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -46,7 +46,7 @@ SourceFiles
#ifndef incompressibleturbulentMixingLengthFrequencyInletFvPatchScalarField_H #ifndef incompressibleturbulentMixingLengthFrequencyInletFvPatchScalarField_H
#define incompressibleturbulentMixingLengthFrequencyInletFvPatchScalarField_H #define incompressibleturbulentMixingLengthFrequencyInletFvPatchScalarField_H
#include "fixedValueFvPatchFields.H" #include "inletOutletFvPatchFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -61,13 +61,16 @@ namespace incompressible
class turbulentMixingLengthFrequencyInletFvPatchScalarField class turbulentMixingLengthFrequencyInletFvPatchScalarField
: :
public fixedValueFvPatchScalarField public inletOutletFvPatchScalarField
{ {
// Private data // Private data
//- Turbulent length scale //- Turbulent length scale
scalar mixingLength_; scalar mixingLength_;
//- Name of the flux field
word phiName_;
//- Name of the turbulent kinetic energy field //- Name of the turbulent kinetic energy field
word kName_; word kName_;