FreeFOAM The Cross-Platform CFD Toolkit
Hosted by SourceForge:
Get FreeFOAM at SourceForge.net.
            Fast, secure and Free Open Source software downloads

XiGModel.H

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------------*\
00002   =========                 |
00003   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
00004    \\    /   O peration     |
00005     \\  /    A nd           | Copyright (C) 1991-2010 OpenCFD Ltd.
00006      \\/     M anipulation  |
00007 -------------------------------------------------------------------------------
00008 License
00009     This file is part of OpenFOAM.
00010 
00011     OpenFOAM is free software: you can redistribute it and/or modify it
00012     under the terms of the GNU General Public License as published by
00013     the Free Software Foundation, either version 3 of the License, or
00014     (at your option) any later version.
00015 
00016     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
00017     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00018     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
00019     for more details.
00020 
00021     You should have received a copy of the GNU General Public License
00022     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
00023 
00024 Class
00025     Foam::XiGModel
00026 
00027 Description
00028     Base-class for all Xi generation models used by the b-Xi combustion model.
00029     See Technical Report SH/RE/01R for details on the PDR modelling. For details
00030     on the use of XiGModel see \link XiModel.H \endlink. The model available is
00031     \link instabilityG.H \endlink
00032 
00033 SourceFiles
00034     XiGModel.C
00035 
00036 \*---------------------------------------------------------------------------*/
00037 
00038 #ifndef XiGModel_H
00039 #define XiGModel_H
00040 
00041 #include <OpenFOAM/IOdictionary.H>
00042 #include <reactionThermophysicalModels/hhuCombustionThermo.H>
00043 #include <compressibleRASModels/RASModel.H>
00044 #include <OpenFOAM/runTimeSelectionTables.H>
00045 
00046 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00047 
00048 namespace Foam
00049 {
00050 
00051 /*---------------------------------------------------------------------------*\
00052                           Class XiGModel Declaration
00053 \*---------------------------------------------------------------------------*/
00054 
00055 class XiGModel
00056 {
00057 
00058 protected:
00059 
00060     // Protected data
00061 
00062         dictionary XiGModelCoeffs_;
00063 
00064         const hhuCombustionThermo& thermo_;
00065         const compressible::RASModel& turbulence_;
00066         const volScalarField& Su_;
00067 
00068 
00069 private:
00070 
00071     // Private Member Functions
00072 
00073         //- Disallow copy construct
00074         XiGModel(const XiGModel&);
00075 
00076         //- Disallow default bitwise assignment
00077         void operator=(const XiGModel&);
00078 
00079 
00080 public:
00081 
00082     //- Runtime type information
00083     TypeName("XiGModel");
00084 
00085 
00086     // Declare run-time constructor selection table
00087 
00088         declareRunTimeSelectionTable
00089         (
00090             autoPtr,
00091             XiGModel,
00092             dictionary,
00093             (
00094                 const dictionary& XiGProperties,
00095                 const hhuCombustionThermo& thermo,
00096                 const compressible::RASModel& turbulence,
00097                 const volScalarField& Su
00098             ),
00099             (
00100                 XiGProperties,
00101                 thermo,
00102                 turbulence,
00103                 Su
00104             )
00105         );
00106 
00107 
00108     // Selectors
00109 
00110         //- Return a reference to the selected XiG model
00111         static autoPtr<XiGModel> New
00112         (
00113             const dictionary& XiGProperties,
00114             const hhuCombustionThermo& thermo,
00115             const compressible::RASModel& turbulence,
00116             const volScalarField& Su
00117         );
00118 
00119 
00120     // Constructors
00121 
00122         //- Construct from components
00123         XiGModel
00124         (
00125             const dictionary& XiGProperties,
00126             const hhuCombustionThermo& thermo,
00127             const compressible::RASModel& turbulence,
00128             const volScalarField& Su
00129         );
00130 
00131 
00132     // Destructor
00133 
00134         virtual ~XiGModel();
00135 
00136 
00137     // Member Functions
00138 
00139         //- Return the flame-wrinking genration rate
00140         virtual tmp<volScalarField> G() const = 0;
00141 
00142         //- Return the flame diffusivity
00143         virtual tmp<volScalarField> Db() const
00144         {
00145             return turbulence_.muEff();
00146         }
00147 
00148         //- Update properties from given dictionary
00149         virtual bool read(const dictionary& XiGProperties) = 0;
00150 };
00151 
00152 
00153 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00154 
00155 } // End namespace Foam
00156 
00157 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00158 
00159 #endif
00160 
00161 // ************************ vim: set sw=4 sts=4 et: ************************ //
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines