Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / src / immersedBoundary / immersedBoundaryTurbulence / wallFunctions / immersedBoundaryOmegaWallFunctions / immersedBoundaryOmegaWallFunctionFvPatchScalarField.H
blob0ee5e32c5c8cbb68a1e895dfef75dc5b4c9bc97b
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend 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 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::incompressible::RASModels::
26     immersedBoundaryOmegaWallFunctionFvPatchScalarField
28 Description
29     Provides a wall function boundary condition/constraint on omega
31     Computed value is:
33         omega = sqrt(omega_vis^2 + omega_log^2)
35     where
36         omega_vis = omega in viscous region
37         omega_log = omega in logarithmic region
39     Model described by Eq.(15) of:
40     @verbatim
41         Menter, F., Esch, T.
42         "Elements of Industrial Heat Transfer Prediction"
43         16th Brazilian Congress of Mechanical Engineering (COBEM),
44         Nov. 2001
45     @endverbatim
47 SourceFiles
48     immersedBoundaryOmegaWallFunctionFvPatchScalarField.C
50 \*---------------------------------------------------------------------------*/
52 #ifndef immersedBoundaryOmegaWallFunctionFvPatchScalarField_H
53 #define immersedBoundaryOmegaWallFunctionFvPatchScalarField_H
55 #include "immersedBoundaryWallFunctionFvPatchFields.H"
57 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
59 namespace Foam
61 namespace incompressible
63 namespace RASModels
66 /*---------------------------------------------------------------------------*\
67      Class immersedBoundaryOmegaWallFunctionFvPatchScalarField Declaration
68 \*---------------------------------------------------------------------------*/
70 class immersedBoundaryOmegaWallFunctionFvPatchScalarField
72     public immersedBoundaryWallFunctionFvPatchScalarField
74     // Private data
76         //- Name of velocity field
77         word UName_;
79         //- Name of turbulence kinetic energy field
80         word kName_;
82         //- Name of turbulence generation field
83         word GName_;
85         //- Name of laminar viscosity field
86         word nuName_;
88         //- Name of turbulent viscosity field
89         word nutName_;
91         //- Cmu coefficient
92         scalar Cmu_;
94         //- Von Karman constant
95         scalar kappa_;
97         //- E coefficient
98         scalar E_;
100         //- beta1 coefficient
101         scalar beta1_;
104 public:
106     //- Runtime type information
107     TypeName("immersedBoundaryOmegaWallFunction");
110     // Constructors
112         //- Construct from patch and internal field
113         immersedBoundaryOmegaWallFunctionFvPatchScalarField
114         (
115             const fvPatch&,
116             const DimensionedField<scalar, volMesh>&
117         );
119         //- Construct from patch, internal field and dictionary
120         immersedBoundaryOmegaWallFunctionFvPatchScalarField
121         (
122             const fvPatch&,
123             const DimensionedField<scalar, volMesh>&,
124             const dictionary&
125         );
127         //- Construct by mapping given
128         //  immersedBoundaryOmegaWallFunctionFvPatchScalarField
129         //  onto a new patch
130         immersedBoundaryOmegaWallFunctionFvPatchScalarField
131         (
132             const immersedBoundaryOmegaWallFunctionFvPatchScalarField&,
133             const fvPatch&,
134             const DimensionedField<scalar, volMesh>&,
135             const fvPatchFieldMapper&
136         );
138         //- Construct as copy
139         immersedBoundaryOmegaWallFunctionFvPatchScalarField
140         (
141             const immersedBoundaryOmegaWallFunctionFvPatchScalarField&
142         );
144         //- Construct and return a clone
145         virtual tmp<fvPatchScalarField> clone() const
146         {
147             return tmp<fvPatchScalarField>
148             (
149                 new immersedBoundaryOmegaWallFunctionFvPatchScalarField
150                 (
151                     *this
152                 )
153             );
154         }
156         //- Construct as copy setting internal field reference
157         immersedBoundaryOmegaWallFunctionFvPatchScalarField
158         (
159             const immersedBoundaryOmegaWallFunctionFvPatchScalarField&,
160             const DimensionedField<scalar, volMesh>&
161         );
163         //- Construct and return a clone setting internal field reference
164         virtual tmp<fvPatchScalarField> clone
165         (
166             const DimensionedField<scalar, volMesh>& iF
167         ) const
168         {
169             return tmp<fvPatchScalarField>
170             (
171                 new immersedBoundaryOmegaWallFunctionFvPatchScalarField
172                 (
173                     *this,
174                     iF
175                 )
176             );
177         }
180     //- Destructor
181     virtual ~immersedBoundaryOmegaWallFunctionFvPatchScalarField()
182     {}
185     // Member functions
187         // Evaluation functions
189             //- Update the coefficients associated with the patch field
190             virtual void updateCoeffs();
192             //- Evaluate the patchField
193             virtual void evaluate
194             (
195                 const Pstream::commsTypes  = Pstream::blocking
196             );
199         // I-O
201             //- Write
202             void write(Ostream&) const;
206 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
208 } // End namespace RASModels
209 } // End namespace incompressible
210 } // End namespace Foam
212 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
214 #endif
216 // ************************************************************************* //