initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / turbulenceModels / compressible / RAS / derivedFvPatchFields / wallFunctions / kqRWallFunctions / kqRWallFunction / kqRWallFunctionFvPatchField.H
blob7d1954f982c596483cf97314c49baabf79264766
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2008-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 Class
26     Foam::compressible::RASModels::kqRWallFunctionFvPatchField
28 Description
29     Boundary condition for turbulence k, Q, and R when using wall functions.
30     Simply acts as a zero gradient condition.
32 SourceFiles
33     kqRWallFunctionFvPatchField.C
35 \*---------------------------------------------------------------------------*/
37 #ifndef compressiblekqRWallFunctionFvPatchField_H
38 #define compressiblekqRWallFunctionFvPatchField_H
40 #include "zeroGradientFvPatchField.H"
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
44 namespace Foam
46 namespace compressible
48 namespace RASModels
51 /*---------------------------------------------------------------------------*\
52                 Class kqRWallFunctionFvPatchField Declaration
53 \*---------------------------------------------------------------------------*/
55 template<class Type>
56 class kqRWallFunctionFvPatchField
58     public zeroGradientFvPatchField<Type>
61     // Private member functions
63         //- Check the type of the patch
64         void checkType();
67 public:
69     //- Runtime type information
70     TypeName("compressible::kqRWallFunction");
73     // Constructors
75         //- Construct from patch and internal field
76         kqRWallFunctionFvPatchField
77         (
78             const fvPatch&,
79             const DimensionedField<Type, volMesh>&
80         );
82         //- Construct from patch, internal field and dictionary
83         kqRWallFunctionFvPatchField
84         (
85             const fvPatch&,
86             const DimensionedField<Type, volMesh>&,
87             const dictionary&
88         );
90         //- Construct by mapping given
91         // kqRWallFunctionFvPatchField
92         //  onto a new patch
93         kqRWallFunctionFvPatchField
94         (
95             const kqRWallFunctionFvPatchField&,
96             const fvPatch&,
97             const DimensionedField<Type, volMesh>&,
98             const fvPatchFieldMapper&
99         );
101         //- Construct as copy
102         kqRWallFunctionFvPatchField
103         (
104             const kqRWallFunctionFvPatchField&
105         );
107         //- Construct and return a clone
108         virtual tmp<fvPatchField<Type> > clone() const
109         {
110             return tmp<fvPatchField<Type> >
111             (
112                 new kqRWallFunctionFvPatchField(*this)
113             );
114         }
116         //- Construct as copy setting internal field reference
117         kqRWallFunctionFvPatchField
118         (
119             const kqRWallFunctionFvPatchField&,
120             const DimensionedField<Type, volMesh>&
121         );
123         //- Construct and return a clone setting internal field reference
124         virtual tmp<fvPatchField<Type> > clone
125         (
126             const DimensionedField<Type, volMesh>& iF
127         ) const
128         {
129             return tmp<fvPatchField<Type> >
130             (
131                 new kqRWallFunctionFvPatchField(*this, iF)
132             );
133         }
136     // Member functions
138         // Evaluation functions
140             //- Evaluate the patchField
141             virtual void evaluate
142             (
143                 const Pstream::commsTypes commsType=Pstream::Pstream::blocking
144             );
147         // I-O
149             //- Write
150             void write(Ostream&) const;
154 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
156 } // End namespace RASModels
157 } // End namespace compressible
158 } // End namespace Foam
160 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
162 #ifdef NoRepository
163 #   include "kqRWallFunctionFvPatchField.C"
164 #endif
166 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
168 #endif
170 // ************************************************************************* //