initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / turbulenceModels / incompressible / RAS / laminar / laminar.C
blob6f400a1c9a7ffd9eb2f3b9e33e7b37f8fe76ec24
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
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 the
13     Free Software Foundation; either version 2 of the License, or (at your
14     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, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 \*---------------------------------------------------------------------------*/
27 #include "laminar.H"
28 #include "addToRunTimeSelectionTable.H"
30 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
32 namespace Foam
34 namespace incompressible
36 namespace RASModels
39 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
41 defineTypeNameAndDebug(laminar, 0);
42 addToRunTimeSelectionTable(RASModel, laminar, dictionary);
44 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
46 laminar::laminar
48     const volVectorField& U,
49     const surfaceScalarField& phi,
50     transportModel& lamTransportModel
53     RASModel(typeName, U, phi, lamTransportModel)
57 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
59 tmp<volScalarField> laminar::nut() const
61     return tmp<volScalarField>
62     (
63         new volScalarField
64         (
65             IOobject
66             (
67                 "nut",
68                 runTime_.timeName(),
69                 mesh_,
70                 IOobject::NO_READ,
71                 IOobject::NO_WRITE
72             ),
73             mesh_,
74             dimensionedScalar("nut", nu().dimensions(), 0.0)
75         )
76     );
80 tmp<volScalarField> laminar::k() const
82     return tmp<volScalarField>
83     (
84         new volScalarField
85         (
86             IOobject
87             (
88                 "k",
89                 runTime_.timeName(),
90                 mesh_,
91                 IOobject::NO_READ,
92                 IOobject::NO_WRITE
93             ),
94             mesh_,
95             dimensionedScalar("k", sqr(U_.dimensions()), 0.0)
96         )
97     );
101 tmp<volScalarField> laminar::epsilon() const
103     return tmp<volScalarField>
104     (
105         new volScalarField
106         (
107             IOobject
108             (
109                 "epsilon",
110                 runTime_.timeName(),
111                 mesh_,
112                 IOobject::NO_READ,
113                 IOobject::NO_WRITE
114             ),
115             mesh_,
116             dimensionedScalar
117             (
118                 "epsilon", sqr(U_.dimensions())/dimTime, 0.0
119             )
120         )
121     );
125 tmp<volSymmTensorField> laminar::R() const
127     return tmp<volSymmTensorField>
128     (
129         new volSymmTensorField
130         (
131             IOobject
132             (
133                 "R",
134                 runTime_.timeName(),
135                 mesh_,
136                 IOobject::NO_READ,
137                 IOobject::NO_WRITE
138             ),
139             mesh_,
140             dimensionedSymmTensor
141             (
142                 "R", sqr(U_.dimensions()), symmTensor::zero
143             )
144         )
145     );
149 tmp<volSymmTensorField> laminar::devReff() const
151     return tmp<volSymmTensorField>
152     (
153         new volSymmTensorField
154         (
155             IOobject
156             (
157                 "devRhoReff",
158                 runTime_.timeName(),
159                 mesh_,
160                 IOobject::NO_READ,
161                 IOobject::NO_WRITE
162             ),
163            -nu()*dev(twoSymm(fvc::grad(U_)))
164         )
165     );
169 tmp<fvVectorMatrix> laminar::divDevReff(volVectorField& U) const
171     return
172     (
173       - fvm::laplacian(nuEff(), U)
174       - fvc::div(nuEff()*dev(fvc::grad(U)().T()))
175     );
179 bool laminar::read()
181     return RASModel::read();
185 void laminar::correct()
187     turbulenceModel::correct();
191 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
193 } // End namespace RASModels
194 } // End namespace incompressible
195 } // End namespace Foam
197 // ************************************************************************* //