Transferred copyright to the OpenFOAM Foundation
[OpenFOAM-2.0.x.git] / src / turbulenceModels / incompressible / RAS / derivedFvPatchFields / wallFunctions / omegaWallFunctions / omegaWallFunction / omegaWallFunctionFvPatchScalarField.H
blobdd3d7fd48292902982b61704b69869b0029d13b7
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::incompressible::RASModels::omegaWallFunctionFvPatchScalarField
27 Description
28     Provides a wall function boundary condition/constraint on omega
30     Computed value is:
32         omega = sqrt(omega_vis^2 + omega_log^2)
34     where
35         omega_vis = omega in viscous region
36         omega_log = omega in logarithmic region
38     Model described by Eq.(15) of:
39     \verbatim
40         Menter, F., Esch, T.
41         "Elements of Industrial Heat Transfer Prediction"
42         16th Brazilian Congress of Mechanical Engineering (COBEM),
43         Nov. 2001
44     \endverbatim
46 SourceFiles
47     omegaWallFunctionFvPatchScalarField.C
49 \*---------------------------------------------------------------------------*/
51 #ifndef omegaWallFunctionFvPatchScalarField_H
52 #define omegaWallFunctionFvPatchScalarField_H
54 #include "fixedInternalValueFvPatchField.H"
56 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
58 namespace Foam
60 namespace incompressible
62 namespace RASModels
65 /*---------------------------------------------------------------------------*\
66            Class omegaWallFunctionFvPatchScalarField Declaration
67 \*---------------------------------------------------------------------------*/
69 class omegaWallFunctionFvPatchScalarField
71     public fixedInternalValueFvPatchField<scalar>
73 protected:
75     // Protected data
77         //- Name of turbulence generation field
78         word GName_;
80         //- Cmu coefficient
81         scalar Cmu_;
83         //- Von Karman constant
84         scalar kappa_;
86         //- E coefficient
87         scalar E_;
89         //- beta1 coefficient
90         scalar beta1_;
92         //- Y+ at the edge of the laminar sublayer
93         scalar yPlusLam_;
96     // Protected Member Functions
98         //- Check the type of the patch
99         virtual void checkType();
101         //- Calculate the Y+ at the edge of the laminar sublayer
102         virtual scalar calcYPlusLam(const scalar kappa, const scalar E) const;
104         //- Write local wall function variables
105         virtual void writeLocalEntries(Ostream&) const;
108 public:
110     //- Runtime type information
111     TypeName("omegaWallFunction");
114     // Constructors
116         //- Construct from patch and internal field
117         omegaWallFunctionFvPatchScalarField
118         (
119             const fvPatch&,
120             const DimensionedField<scalar, volMesh>&
121         );
123         //- Construct from patch, internal field and dictionary
124         omegaWallFunctionFvPatchScalarField
125         (
126             const fvPatch&,
127             const DimensionedField<scalar, volMesh>&,
128             const dictionary&
129         );
131         //- Construct by mapping given
132         // omegaWallFunctionFvPatchScalarField
133         //  onto a new patch
134         omegaWallFunctionFvPatchScalarField
135         (
136             const omegaWallFunctionFvPatchScalarField&,
137             const fvPatch&,
138             const DimensionedField<scalar, volMesh>&,
139             const fvPatchFieldMapper&
140         );
142         //- Construct as copy
143         omegaWallFunctionFvPatchScalarField
144         (
145             const omegaWallFunctionFvPatchScalarField&
146         );
148         //- Construct and return a clone
149         virtual tmp<fvPatchScalarField> clone() const
150         {
151             return tmp<fvPatchScalarField>
152             (
153                 new omegaWallFunctionFvPatchScalarField(*this)
154             );
155         }
157         //- Construct as copy setting internal field reference
158         omegaWallFunctionFvPatchScalarField
159         (
160             const omegaWallFunctionFvPatchScalarField&,
161             const DimensionedField<scalar, volMesh>&
162         );
164         //- Construct and return a clone setting internal field reference
165         virtual tmp<fvPatchScalarField> clone
166         (
167             const DimensionedField<scalar, volMesh>& iF
168         ) const
169         {
170             return tmp<fvPatchScalarField>
171             (
172                 new omegaWallFunctionFvPatchScalarField(*this, iF)
173             );
174         }
177     // Member functions
179         // Evaluation functions
181             //- Update the coefficients associated with the patch field
182             virtual void updateCoeffs();
185         // I-O
187             //- Write
188             virtual void write(Ostream&) const;
192 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
194 } // End namespace RASModels
195 } // End namespace incompressible
196 } // End namespace Foam
198 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
200 #endif
202 // ************************************************************************* //