BUG: UListIO: byteSize overflowing on really big faceLists
[OpenFOAM-2.0.x.git] / src / turbulenceModels / compressible / turbulenceModel / laminar / laminar.H
blobf7cb6bec8ff279001b1cda4ed1b449dad3d5abba
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by
13     the Free Software Foundation, either version 3 of the License, or
14     (at your option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::compressible::laminar
27 Description
28     Turbulence model for laminar compressible flow.
30 SourceFiles
31     laminar.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef compressibleLaminar_H
36 #define compressibleLaminar_H
38 #include "turbulenceModel.H"
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 namespace Foam
44 namespace compressible
47 /*---------------------------------------------------------------------------*\
48                            Class laminar Declaration
49 \*---------------------------------------------------------------------------*/
51 class laminar
53     public turbulenceModel
56 public:
58     //- Runtime type information
59     TypeName("laminar");
61     // Constructors
63         //- Construct from components
64         laminar
65         (
66             const volScalarField& rho,
67             const volVectorField& U,
68             const surfaceScalarField& phi,
69             const basicThermo& thermophysicalModel,
70             const word& turbulenceModelName = turbulenceModel::typeName
71         );
74     // Selectors
76         //- Return a reference to the selected turbulence model
77         static autoPtr<laminar> New
78         (
79             const volScalarField& rho,
80             const volVectorField& U,
81             const surfaceScalarField& phi,
82             const basicThermo& thermophysicalModel,
83             const word& turbulenceModelName = turbulenceModel::typeName
84         );
87     //- Destructor
88     virtual ~laminar()
89     {}
92     // Member Functions
94         //- Return the turbulence viscosity, i.e. 0 for laminar flow
95         virtual tmp<volScalarField> mut() const;
97         //- Return the effective viscosity, i.e. the laminar viscosity
98         virtual tmp<volScalarField> muEff() const
99         {
100             return tmp<volScalarField>(new volScalarField("muEff", mu()));
101         }
103         //- Return the turbulence thermal diffusivity, i.e. 0 for laminar flow
104         virtual tmp<volScalarField> alphat() const;
106         //- Return the effective turbulent thermal diffusivity,
107         //  i.e. the laminar thermal diffusivity
108         virtual tmp<volScalarField> alphaEff() const
109         {
110             return tmp<volScalarField>(new volScalarField("alphaEff", alpha()));
111         }
113         //- Return the effective turbulent thermal diffusivity for a patch,
114         //  i.e. the laminar thermal diffusivity
115         virtual tmp<scalarField> alphaEff(const label patchI) const
116         {
117             return alpha().boundaryField()[patchI];
118         }
120         //- Return the turbulence kinetic energy, i.e. 0 for laminar flow
121         virtual tmp<volScalarField> k() const;
123         //- Return the turbulence kinetic energy dissipation rate,
124         //  i.e. 0 for laminar flow
125         virtual tmp<volScalarField> epsilon() const;
127         //- Return the Reynolds stress tensor, i.e. 0 for laminar flow
128         virtual tmp<volSymmTensorField> R() const;
130         //- Return the effective stress tensor, i.e. the laminar stress
131         virtual tmp<volSymmTensorField> devRhoReff() const;
133         //- Return the source term for the momentum equation
134         virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const;
136         //- Correct the laminar viscosity
137         virtual void correct();
139         //- Read turbulenceProperties dictionary
140         virtual bool read();
144 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
146 } // End namespace incompressible
147 } // End namespace Foam
149 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
151 #endif
153 // ************************************************************************* //