/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2013-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 . Class Foam::turbulenceModel Group grpTurbulence Description Abstract base class for turbulence models (RAS, LES and laminar). SourceFiles turbulenceModel.C \*---------------------------------------------------------------------------*/ #ifndef turbulenceModel_H #define turbulenceModel_H #include "IOdictionary.H" #include "primitiveFieldsFwd.H" #include "volFieldsFwd.H" #include "surfaceFieldsFwd.H" #include "fvMatricesFwd.H" #include "nearWallDist.H" #include "geometricOneField.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { // Forward declarations class fvMesh; /*---------------------------------------------------------------------------*\ Class turbulenceModel Declaration \*---------------------------------------------------------------------------*/ class turbulenceModel : public IOdictionary { protected: // Protected data const Time& runTime_; const fvMesh& mesh_; const volVectorField& U_; const surfaceScalarField& alphaRhoPhi_; const surfaceScalarField& phi_; //- Near wall distance boundary field nearWallDist y_; private: // Private Member Functions //- Disallow default bitwise copy construct turbulenceModel(const turbulenceModel&); //- Disallow default bitwise assignment void operator=(const turbulenceModel&); public: //- Runtime type information TypeName("turbulenceModel"); //- Default name of the turbulence properties dictionary static const word propertiesName; // Constructors //- Construct from components turbulenceModel ( const volVectorField& U, const surfaceScalarField& alphaRhoPhi, const surfaceScalarField& phi, const word& propertiesName ); //- Destructor virtual ~turbulenceModel() {} // Member Functions //- Read model coefficients if they have changed virtual bool read() = 0; const Time& time() const { return runTime_; } const fvMesh& mesh() const { return mesh_; } //- Const access to the coefficients dictionary virtual const dictionary& coeffDict() const = 0; //- Helper function to return the nam eof the turbulence G field inline word GName() const { return word(type() + ":G"); } //- Access function to velocity field inline const volVectorField& U() const { return U_; } //- Access function to phase flux field inline const surfaceScalarField& alphaRhoPhi() const { return alphaRhoPhi_; } //- Return the volumetric flux field virtual tmp phi() const; //- Return the near wall distances const nearWallDist& y() const { return y_; } //- Return the laminar viscosity virtual tmp nu() const = 0; //- Return the laminar viscosity on patch virtual tmp nu(const label patchi) const = 0; //- Return the turbulence viscosity virtual tmp nut() const = 0; //- Return the turbulence viscosity on patch virtual tmp nut(const label patchi) const = 0; //- Return the effective viscosity virtual tmp nuEff() const = 0; //- Return the effective viscosity on patch virtual tmp nuEff(const label patchi) const = 0; //- Return the laminar dynamic viscosity virtual tmp mu() const = 0; //- Return the laminar dynamic viscosity on patch virtual tmp mu(const label patchi) const = 0; //- Return the turbulence dynamic viscosity virtual tmp mut() const = 0; //- Return the turbulence dynamic viscosity on patch virtual tmp mut(const label patchi) const = 0; //- Return the effective dynamic viscosity virtual tmp muEff() const = 0; //- Return the effective dynamic viscosity on patch virtual tmp muEff(const label patchi) const = 0; //- Return the turbulence kinetic energy virtual tmp k() const = 0; //- Return the turbulence kinetic energy dissipation rate virtual tmp epsilon() const = 0; //- Return the Reynolds stress tensor virtual tmp R() const = 0; //- Solve the turbulence equations and correct the turbulence viscosity virtual void correct() = 0; }; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif // ************************************************************************* //