Sunteți pe pagina 1din 5

File: /home/abhi/OpenFOAM/inHouseTu/RAS/kkLOmega30x/kkLOmega30x.

H
/*---------------------------------------------------------------------------*\
=========
|
\\
/ F ield
| OpenFOAM: The Open Source CFD Toolbox
\\
/
O peration
|
\\ /
A nd
| Copyright (C) 2011-2015 OpenFOAM Foundation
\\/
M anipulation |
------------------------------------------------------------------------------License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::RASModels::kkLOmega30x
Group
grpRASTurbulence
Description
Low Reynolds-number k-kl-omega turbulence model for incompressible and
compressible flows.
This turbulence model is described in:
\verbatim
Walters, D. K., & Cokljat, D. (2008).
A three-equation eddy-viscosity model for Reynolds-averaged
NavierStokes simulations of transitional flow.
Journal of Fluids Engineering, 130(12), 121401.
\endverbatim
however the paper contains several errors which must be corrected for the
model to operation correctly as explained in
\verbatim
Furst, J. (2013).
Numerical simulation of transitional flows with laminar kinetic energy.
Engineering MECHANICS, 20(5), 379-388.
\endverbatim
All these corrections and updates are included in this implementation.
The default model coefficients are
\verbatim
kkLOmegaCoeffs
{
A0
4.04
As
2.12
Av
6.75
Abp
0.6
Anat
200
Ats
200
CbpCrit
1.2
Cnc
0.1
CnatCrit
1250
Cint
0.75
CtsCrit
1000
CrNat
0.02
C11
3.4e-6
C12
1.0e-10
CR
0.12
CalphaTheta
0.035

Page 1 of 5

File: /home/abhi/OpenFOAM/inHouseTu/RAS/kkLOmega30x/kkLOmega30x.H
Css
CtauL
Cw1
Cw2
Cw3
CwR
Clambda
CmuStd
Prtheta
Sigmak
Sigmaw

1.5
4360
0.44
0.92
0.3
1.5
2.495
0.09
0.85
1
1.17

}
\endverbatim
SourceFiles
kkLOmega30x.C
\*---------------------------------------------------------------------------*/
#ifndef kkLOmega30x_H
#define kkLOmega30x_H
#include "RASModel.H"
#include "eddyViscosity.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
namespace RASModels
{
/*---------------------------------------------------------------------------*\
Class kkLOmega30x Declaration
\*---------------------------------------------------------------------------*/
template<class BasicTurbulenceModel>
class kkLOmega30x
:
public eddyViscosity<RASModel<BasicTurbulenceModel> >
{
protected:
// Protected data
// Model coefficients
dimensionedScalar
dimensionedScalar
dimensionedScalar
dimensionedScalar
dimensionedScalar
dimensionedScalar
dimensionedScalar
dimensionedScalar
dimensionedScalar
dimensionedScalar
dimensionedScalar
dimensionedScalar
dimensionedScalar
dimensionedScalar
dimensionedScalar
dimensionedScalar
dimensionedScalar
dimensionedScalar
dimensionedScalar
dimensionedScalar
dimensionedScalar
dimensionedScalar
dimensionedScalar

A0_;
As_;
Av_;
Abp_;
Anat_;
Ats_;
CbpCrit_;
Cnc_;
CnatCrit_;
Cint_;
CtsCrit_;
CrNat_;
C11_;
C12_;
CR_;
CalphaTheta_;
Css_;
CtauL_;
Cw1_;
Cw2_;
Cw3_;
CwR_;
Clambda_;

Page 2 of 5

File: /home/abhi/OpenFOAM/inHouseTu/RAS/kkLOmega30x/kkLOmega30x.H
dimensionedScalar
dimensionedScalar
dimensionedScalar
dimensionedScalar

CmuStd_;
Prtheta_;
Sigmak_;
Sigmaw_;

// Fields
//- Turbulent kinetic energy
volScalarField kt_;
//- Laminar kinetic energy
volScalarField kl_;
//- Turbulence specific dissipation rate
volScalarField omega_;
//- Farfield isotropic dissipation rate
volScalarField epsilon_;
//- Wall distance
// Note: different to wall distance in parent RASModel
// which is for near-wall cells only
const volScalarField& y_;
// Protected Member Functions
virtual void correctNut();
tmp<volScalarField> fv(const volScalarField& Ret) const;
tmp<volScalarField> fINT() const;
tmp<volScalarField> fSS(const volScalarField& omega) const;
tmp<volScalarField> Cmu(const volScalarField& S) const;
tmp<volScalarField> BetaTS(const volScalarField& ReOmega) const;
tmp<volScalarField> fTaul
(
const volScalarField& lambdaEff,
const volScalarField& ktL,
const volScalarField& omega
) const;
tmp<volScalarField> alphaT
(
const volScalarField& lambdaEff,
const volScalarField& fv,
const volScalarField& ktS
) const;
tmp<volScalarField> fOmega
(
const volScalarField& lambdaEff,
const volScalarField& lambdaT
) const;
tmp<volScalarField> phiBP(const volScalarField& omega) const;
tmp<volScalarField> phiNAT
(
const volScalarField& ReOmega,
const volScalarField& fNatCrit
) const;
tmp<volScalarField> D(const volScalarField& k) const;

Page 3 of 5

File: /home/abhi/OpenFOAM/inHouseTu/RAS/kkLOmega30x/kkLOmega30x.H

Page 4 of 5

public:
typedef typename BasicTurbulenceModel::alphaField alphaField;//
***********************************************NEWLY ADDED FOR CONVERSION FROM OLD FRAMEWORK TO NEW
FRAMEWORK IN OF 3.0.X
typedef typename BasicTurbulenceModel::rhoField rhoField;//
***************************************************NEWLY ADDED FOR CONVERSION FROM OLD FRAMEWORK TO
NEW FRAMEWORK IN OF 3.0.X
typedef typename BasicTurbulenceModel::transportModel transportModel;//
***************************************NEWLY ADDED FOR CONVERSION FROM OLD FRAMEWORK TO NEW FRAMEWORK
IN OF 3.0.X
//- Runtime type information
TypeName("kkLOmega30x");
// Constructors
//- Construct from components
kkLOmega30x
(
const alphaField& alpha,//
****************************************************************************NEWLY ADDED FOR CONVERSION
FROM OLD FRAMEWORK TO NEW FRAMEWORK IN OF 3.0.X
const rhoField& rho,//
********************************************************************************NEWLY ADDED FOR
CONVERSION FROM OLD FRAMEWORK TO NEW FRAMEWORK IN OF 3.0.X
const volVectorField& U,
const surfaceScalarField& alphaRhoPhi,
const surfaceScalarField& phi,
const transportModel& transport,
const word& propertiesName = turbulenceModel::propertiesName,
const word& type = typeName
);
//- Destructor
virtual ~kkLOmega30x()
{}
// Member Functions
//- Read RASProperties dictionary
virtual bool read();
//- Return the effective diffusivity for k
tmp<volScalarField> DkEff(const volScalarField& alphaT) const
{
return tmp<volScalarField>
(
new volScalarField("DkEff", alphaT/Sigmak_ + this->nu())
);
}
//- Return the effective diffusivity for omega
tmp<volScalarField> DomegaEff(const volScalarField& alphaT) const
{
return tmp<volScalarField>
(
new volScalarField("DomegaEff", alphaT/Sigmaw_ + this->nu())
);
}
//- Return the laminar kinetic energy
virtual tmp<volScalarField> kl() const
{
return kl_;
}
//- Return the turbulence kinetic energy

File: /home/abhi/OpenFOAM/inHouseTu/RAS/kkLOmega30x/kkLOmega30x.H

Page 5 of 5

virtual tmp<volScalarField> kt() const


{
return kt_;
}
//- Return the turbulence specific dissipation rate
virtual tmp<volScalarField> omega() const
{
return omega_;
}
//- Return the total fluctuation kinetic energy
virtual tmp<volScalarField> k() const
{
return tmp<volScalarField>
(
new volScalarField
(
IOobject
(
"k",
this->mesh_.time().timeName(),
this->mesh_
),
kt_ + kl_,
omega_.boundaryField().types()
)
);
}
//- Return the total fluctuation kinetic energy dissipation rate
virtual tmp<volScalarField> epsilon() const
{
return epsilon_;
}
//- Solve the turbulence equations and correct the turbulence viscosity
virtual void correct();
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace RASModels
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

#ifdef NoRepository//
***********************************************************************************NEWLY ADDED FOR
CONVERSION FROM OLD FRAMEWORK TO NEW FRAMEWORK IN OF 3.0.X
#
include "kkLOmega30x.C"
#endif//
***********************************************************************************************************
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

S-ar putea să vă placă și