Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / src / turbulenceModels / incompressible / RAS / derivedFvPatchFields / wallFunctions / nutWallFunctions / nutUWallFunction / nutUWallFunctionFvPatchScalarField.H
blobdd8fa04f894c87d70f5ab8a29215cf2a3a164387
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2004-2010 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
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::nutUWallFunctionFvPatchScalarField
27 Description
28     Wall function boundary condition for walls, based on velocity.
30 SourceFiles
31     nutUWallFunctionFvPatchScalarField.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef nutUWallFunctionFvPatchScalarField_H
36 #define nutUWallFunctionFvPatchScalarField_H
38 #include "nutkWallFunctionFvPatchScalarField.H"
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 namespace Foam
44 namespace incompressible
46 namespace RASModels
49 /*---------------------------------------------------------------------------*\
50   Class nutUWallFunctionFvPatchScalarField Declaration
51 \*---------------------------------------------------------------------------*/
53 class nutUWallFunctionFvPatchScalarField
55     public nutkWallFunctionFvPatchScalarField
57 protected:
59     // Protected Member Functions
61         //- Calculate yPLus
62         virtual tmp<scalarField> calcYPlus(const scalarField& magUp) const;
64         //- Calculate the turbulence viscosity
65         virtual tmp<scalarField> calcNut() const;
68 public:
70     //- Runtime type information
71     TypeName("nutUWallFunction");
74     // Constructors
76         //- Construct from patch and internal field
77         nutUWallFunctionFvPatchScalarField
78         (
79             const fvPatch&,
80             const DimensionedField<scalar, volMesh>&
81         );
83         //- Construct from patch, internal field and dictionary
84         nutUWallFunctionFvPatchScalarField
85         (
86             const fvPatch&,
87             const DimensionedField<scalar, volMesh>&,
88             const dictionary&
89         );
91         //- Construct by mapping given
92         //  nutUWallFunctionFvPatchScalarField
93         //  onto a new patch
94         nutUWallFunctionFvPatchScalarField
95         (
96             const nutUWallFunctionFvPatchScalarField&,
97             const fvPatch&,
98             const DimensionedField<scalar, volMesh>&,
99             const fvPatchFieldMapper&
100         );
102         //- Construct as copy
103         nutUWallFunctionFvPatchScalarField
104         (
105             const nutUWallFunctionFvPatchScalarField&
106         );
108         //- Construct and return a clone
109         virtual tmp<fvPatchScalarField> clone() const
110         {
111             return tmp<fvPatchScalarField>
112             (
113                 new nutUWallFunctionFvPatchScalarField(*this)
114             );
115         }
117         //- Construct as copy setting internal field reference
118         nutUWallFunctionFvPatchScalarField
119         (
120             const nutUWallFunctionFvPatchScalarField&,
121             const DimensionedField<scalar, volMesh>&
122         );
124         //- Construct and return a clone setting internal field reference
125         virtual tmp<fvPatchScalarField> clone
126         (
127             const DimensionedField<scalar, volMesh>& iF
128         ) const
129         {
130             return tmp<fvPatchScalarField>
131             (
132                 new nutUWallFunctionFvPatchScalarField(*this, iF)
133             );
134         }
137     // Member functions
139         // Evaluation functions
141             //- Calculate and return the yPlus at the boundary
142             virtual tmp<scalarField> yPlus() const;
145         // I-O
147             //- Write
148             virtual void write(Ostream& os) const;
152 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
154 } // End namespace RASModels
155 } // End namespace incompressible
156 } // End namespace Foam
158 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
160 #endif
162 // ************************************************************************* //