ENH: autoLayerDriver: better layering information message
[OpenFOAM-2.0.x.git] / applications / utilities / preProcessing / wallFunctionTable / tabulatedWallFunction / general / general.H
blobc61cc356d6744bd4864e2e6b2901bdf5cc53efb7
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::tabulatedWallFunctions::general
27 Description
28     Computes U+ as a function of Reynolds number by inverting table of
29     y+ vs U+
31     Example dictionary specification:
33         tabulatedWallFunction general;
35         // Output table info
36         tableName       uPlusWallFunctionData; // Output table name
37         log10           yes;                // Re interpreted as log10(Rey)
38         dx              0.2;                // Interval log10(Rey)
39         x0              -3;                 // Minimum log10(Rey)
40         xMax            7;                  // Maximum log10(Rey)
42         generalCoeffs
43         {
44             interpType      linear;         // Interpolation method
45             log10YPlus      true;           // y+ values defined as log10(y+)
46             log10UPlus      true;           // U+ values defined as log10(y+)
47             inputTable
48             (
49                 (yPlusValue0    uPlusValue0)
50                 ...
51                 (yPlusValueN    uPlusValueN)
52             );
54         }
57 SourceFiles
58     general.C
60 \*---------------------------------------------------------------------------*/
62 #ifndef general_H
63 #define general_H
65 #include "tabulatedWallFunction.H"
66 #include "NamedEnum.H"
67 #include "Switch.H"
69 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
71 namespace Foam
73 namespace tabulatedWallFunctions
76 /*---------------------------------------------------------------------------*\
77                         Class general Declaration
78 \*---------------------------------------------------------------------------*/
80 class general
82     public tabulatedWallFunction
84 public:
86     // Public data types
88         //- Enumeration listing available interpolation types
89         enum interpolationType
90         {
91             itLinear
92         };
94         static const NamedEnum<interpolationType, 1> interpolationTypeNames_;
97 protected:
99     // Protected data
101         //- Type of interpolation to apply when inverting the data set
102         interpolationType interpType_;
104         //- Input y+ values
105         List<scalar> yPlus_;
107         //- Input U+ values
108         List<scalar> uPlus_;
110         //- Are y+ values entered as log10(y+)?
111         Switch log10YPlus_;
113         //- Are U+ values entered as log10(U+)?
114         Switch log10UPlus_;
117     // Protected Member Functions
119         //- Invert the table
120         virtual void invertTable();
122         //- Interpolate
123         virtual scalar interpolate
124         (
125             const scalar xi,
126             const scalarList& x,
127             const scalarList& fx
128         ) const;
131 public:
133     //- Run-time type information
134     TypeName("general");
137     // Constructors
138     general(const dictionary& dict, const polyMesh& mesh);
140     //- Destructor
141     virtual ~general();
144     // Member Functions
146         // Access
148             //- Return y+ as a function of u+
149             virtual scalar yPlus(const scalar uPlus) const;
151             //- Return Reynolds number as a function of u+
152             virtual scalar Re(const scalar uPlus) const;
155         // I-O
157             //- Write to Ostream
158             virtual void writeData(Ostream& os) const;
162 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
164 } // End namespace tabulatedWallFunctions
165 } // End namespace Foam
167 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
169 #endif
171 // ************************************************************************* //