BUG: UListIO: byteSize overflowing on really big faceLists
[OpenFOAM-2.0.x.git] / src / turbulenceModels / compressible / LES / derivedFvPatchFields / wallFunctions / alphaSgsWallFunctions / alphaSgsJayatillekeWallFunction / alphaSgsJayatillekeWallFunctionFvPatchScalarField.H
blob91a43d06c2e8bf5cee0b8839d08fc05316b68f7b
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     alphaSgsJayatillekeWallFunctionFvPatchScalarField
27 Description
28     Thermal wall function for turbulent thermal diffusivity based on the
29     Jayatilleke thermal wall function
31 SourceFiles
32     alphaSgsJayatillekeWallFunctionFvPatchScalarField.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef alphaSgsJayatillekeWallFunctionFvPatchScalarField_H
37 #define alphaSgsJayatillekeWallFunctionFvPatchScalarField_H
39 #include "fixedValueFvPatchFields.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
45 namespace compressible
47 namespace LESModels
50 /*---------------------------------------------------------------------------*\
51      Class alphaSgsJayatillekeWallFunctionFvPatchScalarField Declaration
52 \*---------------------------------------------------------------------------*/
54 class alphaSgsJayatillekeWallFunctionFvPatchScalarField
56     public fixedValueFvPatchScalarField
58     // Private data
60         //- Turbulent Prandtl number
61         scalar Prt_;
63         //- Von Karman constant
64         scalar kappa_;
66         //- E coefficient
67         scalar E_;
69         //- Name of (sensible/total) enthalpy field
70         word hsName_;
73         // Solution parameters
75             static scalar maxExp_;
76             static scalar tolerance_;
77             static label maxIters_;
80     // Private Member Functions
82         //- Check the type of the patch
83         void checkType();
85         //- `P' function
86         scalar Psmooth(const scalar Prat) const;
88         //- Calculate y+ at the edge of the thermal laminar sublayer
89         scalar yPlusTherm
90         (
91             const scalar P,
92             const scalar Prat
93         ) const;
96 public:
98     //- Runtime type information
99     TypeName("alphaSgsJayatillekeWallFunction");
102     // Constructors
104         //- Construct from patch and internal field
105         alphaSgsJayatillekeWallFunctionFvPatchScalarField
106         (
107             const fvPatch&,
108             const DimensionedField<scalar, volMesh>&
109         );
111         //- Construct from patch, internal field and dictionary
112         alphaSgsJayatillekeWallFunctionFvPatchScalarField
113         (
114             const fvPatch&,
115             const DimensionedField<scalar, volMesh>&,
116             const dictionary&
117         );
119         //- Construct by mapping given an
120         //  alphaSgsJayatillekeWallFunctionFvPatchScalarField
121         //  onto a new patch
122         alphaSgsJayatillekeWallFunctionFvPatchScalarField
123         (
124             const alphaSgsJayatillekeWallFunctionFvPatchScalarField&,
125             const fvPatch&,
126             const DimensionedField<scalar, volMesh>&,
127             const fvPatchFieldMapper&
128         );
130         //- Construct as copy
131         alphaSgsJayatillekeWallFunctionFvPatchScalarField
132         (
133             const alphaSgsJayatillekeWallFunctionFvPatchScalarField&
134         );
136         //- Construct and return a clone
137         virtual tmp<fvPatchScalarField> clone() const
138         {
139             return tmp<fvPatchScalarField>
140             (
141                 new alphaSgsJayatillekeWallFunctionFvPatchScalarField(*this)
142             );
143         }
145         //- Construct as copy setting internal field reference
146         alphaSgsJayatillekeWallFunctionFvPatchScalarField
147         (
148             const alphaSgsJayatillekeWallFunctionFvPatchScalarField&,
149             const DimensionedField<scalar, volMesh>&
150         );
152         //- Construct and return a clone setting internal field reference
153         virtual tmp<fvPatchScalarField> clone
154         (
155             const DimensionedField<scalar, volMesh>& iF
156         ) const
157         {
158             return tmp<fvPatchScalarField>
159             (
160                 new alphaSgsJayatillekeWallFunctionFvPatchScalarField
161                 (
162                     *this,
163                     iF
164                 )
165             );
166         }
169     // Member functions
171         // Evaluation functions
173             //- Evaluate the patchField
174             virtual void evaluate
175             (
176                 const Pstream::commsTypes commsType=Pstream::Pstream::blocking
177             );
180         // I-O
182             //- Write
183             void write(Ostream&) const;
187 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
189 } // End namespace LESModels
190 } // End namespace compressible
191 } // End namespace Foam
193 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
195 #endif
197 // ************************************************************************* //