Transferred copyright to the OpenFOAM Foundation
[OpenFOAM-2.0.x.git] / src / turbulenceModels / incompressible / RAS / derivedFvPatchFields / wallFunctions / nutWallFunctions / nutURoughWallFunction / nutURoughWallFunctionFvPatchScalarField.H
blobf615fdd87901441280d0e37721c8da9bddecca3d
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::nutURoughWallFunctionFvPatchScalarField
27 Description
28     Wall function boundary condition for rough walls, based on velocity.
30 SourceFiles
31     nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef nutURoughWallFunctionFvPatchScalarField_H
36 #define nutURoughWallFunctionFvPatchScalarField_H
38 #include "nutkWallFunctionFvPatchScalarField.H"
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 namespace Foam
44 namespace incompressible
46 namespace RASModels
49 /*---------------------------------------------------------------------------*\
50           Class nutURoughWallFunctionFvPatchScalarField Declaration
51 \*---------------------------------------------------------------------------*/
53 class nutURoughWallFunctionFvPatchScalarField
55     public nutkWallFunctionFvPatchScalarField
57     // Private data
59         // Roughness model parameters
61             //- Height
62             scalar roughnessHeight_;
64             //- Constant
65             scalar roughnessConstant_;
67             //- Scale factor
68             scalar roughnessFactor_;
71     // Protected Member Functions
73         //- Calculate yPLus
74         virtual tmp<scalarField> calcYPlus(const scalarField& magUp) const;
76         //- Calculate the turbulence viscosity
77         virtual tmp<scalarField> calcNut() const;
80 public:
82     //- Runtime type information
83     TypeName("nutURoughWallFunction");
86     // Constructors
88         //- Construct from patch and internal field
89         nutURoughWallFunctionFvPatchScalarField
90         (
91             const fvPatch&,
92             const DimensionedField<scalar, volMesh>&
93         );
95         //- Construct from patch, internal field and dictionary
96         nutURoughWallFunctionFvPatchScalarField
97         (
98             const fvPatch&,
99             const DimensionedField<scalar, volMesh>&,
100             const dictionary&
101         );
103         //- Construct by mapping given
104         //  nutURoughWallFunctionFvPatchScalarField
105         //  onto a new patch
106         nutURoughWallFunctionFvPatchScalarField
107         (
108             const nutURoughWallFunctionFvPatchScalarField&,
109             const fvPatch&,
110             const DimensionedField<scalar, volMesh>&,
111             const fvPatchFieldMapper&
112         );
114         //- Construct as copy
115         nutURoughWallFunctionFvPatchScalarField
116         (
117             const nutURoughWallFunctionFvPatchScalarField&
118         );
120         //- Construct and return a clone
121         virtual tmp<fvPatchScalarField> clone() const
122         {
123             return tmp<fvPatchScalarField>
124             (
125                 new nutURoughWallFunctionFvPatchScalarField(*this)
126             );
127         }
129         //- Construct as copy setting internal field reference
130         nutURoughWallFunctionFvPatchScalarField
131         (
132             const nutURoughWallFunctionFvPatchScalarField&,
133             const DimensionedField<scalar, volMesh>&
134         );
136         //- Construct and return a clone setting internal field reference
137         virtual tmp<fvPatchScalarField> clone
138         (
139             const DimensionedField<scalar, volMesh>& iF
140         ) const
141         {
142             return tmp<fvPatchScalarField>
143             (
144                 new nutURoughWallFunctionFvPatchScalarField(*this, iF)
145             );
146         }
149     // Member functions
151         // Access
153             //- Return the roughness height
154             scalar roughnessHeight() const
155             {
156                 return roughnessHeight_;
157             }
159             //- Return reference to the roughness height to allow adjustment
160             scalar& roughnessHeight()
161             {
162                 return roughnessHeight_;
163             }
166             //- Return the roughness constant scale
167             scalar roughnessConstant() const
168             {
169                 return roughnessConstant_;
170             }
172             //- Return reference to the roughness constant to allow adjustment
173             scalar& roughnessConstant()
174             {
175                 return roughnessConstant_;
176             }
178             //- Return the roughness scale factor
179             scalar roughnessFactor() const
180             {
181                 return roughnessFactor_;
182             }
184             //- Return reference to the roughness scale factor to allow
185             //  adjustment
186             scalar& roughnessFactor()
187             {
188                 return roughnessFactor_;
189             }
192     // I-O
194         // Evaluation functions
196             //- Calculate and return the yPlus at the boundary
197             virtual tmp<scalarField> yPlus() const;
200         // I-O
202             //- Write
203             virtual void write(Ostream& os) const;
207 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
209 } // End namespace RASModels
210 } // End namespace incompressible
211 } // End namespace Foam
213 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
215 #endif
217 // ************************************************************************* //