ENH: patchCloud: return pTraits<Type>::max for unfound points
[OpenFOAM-1.7.x.git] / applications / solvers / combustion / PDRFoam / XiModels / XiEqModels / XiEqModel / XiEqModel.H
blob6f80ab8bc463ce3a6d14f870f15d8d2fc9c4ca50
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-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::XiEqModel
27 Description
28     Base-class for all XiEq models used by the b-XiEq combustion model.
29     The available models are :
30                                 \link basicXiSubXiEq.H \endlink
31                                 \link Gulder.H \endlink
32                                 \link instabilityXiEq.H \endlink
33                                 \link SCOPEBlendXiEq.H \endlink
34                                 \link SCOPEXiEq.H \endlink
36 SourceFiles
37     XiEqModel.C
39 \*---------------------------------------------------------------------------*/
41 #ifndef XiEqModel_H
42 #define XiEqModel_H
44 #include "IOdictionary.H"
45 #include "hhuCombustionThermo.H"
46 #include "RASModel.H"
47 #include "runTimeSelectionTables.H"
49 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
51 namespace Foam
54 /*---------------------------------------------------------------------------*\
55                           Class XiEqModel Declaration
56 \*---------------------------------------------------------------------------*/
58 class XiEqModel
61 protected:
63     // Protected data
65         dictionary XiEqModelCoeffs_;
67         const hhuCombustionThermo& thermo_;
68         const compressible::RASModel& turbulence_;
69         const volScalarField& Su_;
72 private:
74     // Private Member Functions
76         //- Disallow copy construct
77         XiEqModel(const XiEqModel&);
79         //- Disallow default bitwise assignment
80         void operator=(const XiEqModel&);
83 public:
85     //- Runtime type information
86     TypeName("XiEqModel");
89     // Declare run-time constructor selection table
91         declareRunTimeSelectionTable
92         (
93             autoPtr,
94             XiEqModel,
95             dictionary,
96             (
97                 const dictionary& XiEqProperties,
98                 const hhuCombustionThermo& thermo,
99                 const compressible::RASModel& turbulence,
100                 const volScalarField& Su
101             ),
102             (
103                 XiEqProperties,
104                 thermo,
105                 turbulence,
106                 Su
107             )
108         );
111     // Selectors
113         //- Return a reference to the selected XiEq model
114         static autoPtr<XiEqModel> New
115         (
116             const dictionary& XiEqProperties,
117             const hhuCombustionThermo& thermo,
118             const compressible::RASModel& turbulence,
119             const volScalarField& Su
120         );
123     // Constructors
125         //- Construct from components
126         XiEqModel
127         (
128             const dictionary& XiEqProperties,
129             const hhuCombustionThermo& thermo,
130             const compressible::RASModel& turbulence,
131             const volScalarField& Su
132         );
135     // Destructor
137         virtual ~XiEqModel();
140     // Member Functions
142         //- Return the flame-wrinking XiEq
143         virtual tmp<volScalarField> XiEq() const
144         {
145             return turbulence_.muEff();
146         }
148         //- Update properties from given dictionary
149         virtual bool read(const dictionary& XiEqProperties) = 0;
153 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
155 } // End namespace Foam
157 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
159 #endif
161 // ************************************************************************* //