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

greyMeanAbsorptionEmission.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) 2008-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::radiation::greyMeanAbsorptionEmission
00026 
00027 Description
00028     greyMeanAbsorptionEmission radiation absorption and emission coefficients
00029     for continuous phase
00030 
00031     The coefficients for the species in the Look up table have to be specified
00032     for use in moles x P [atm], i.e. (k[i] = species[i]*p*9.869231e-6).
00033 
00034     The coefficients for CO and soot or any other added are multiplied by the
00035     respective mass fraction being solved
00036 
00037     All the species in the dictionary need either to be in the look-up table or
00038     being solved. Conversely, all the species solved do not need to be included
00039     in the calculation of the absorption coefficient
00040 
00041     The names of the species in the absorption dictionary must match exactly the
00042     name in the look-up table or the name of the field being solved
00043 
00044     The look-up table ("speciesTable") file should be in constant
00045 
00046     i.e. dictionary
00047 
00048     LookUpTableFileName     "speciesTable";
00049 
00050     EhrrCoeff                0.0;
00051 
00052     CO2
00053     {
00054         Tcommon         300.;   // Common Temp
00055         invTemp         true;   // Is the polynomial using inverse temperature?
00056         Tlow            300.;   // Low Temp
00057         Thigh           2500.;  // High Temp
00058 
00059         loTcoeffs       // coeffs for T < Tcommon
00060         (
00061             0           //  a0            +
00062             0           //  a1*T          +
00063             0           //  a2*T^(+/-)2   +
00064             0           //  a3*T^(+/-)3   +
00065             0           //  a4*T^(+/-)4   +
00066             0           //  a5*T^(+/-)5   +
00067         );
00068         hiTcoeffs       // coeffs for T > Tcommon
00069         (
00070             18.741
00071             -121.31e3
00072             273.5e6
00073             -194.05e9
00074             56.31e12
00075             -5.8169e15
00076         );
00077 
00078     }
00079 
00080 SourceFiles
00081     greyMeanAbsorptionEmission.C
00082 
00083 \*---------------------------------------------------------------------------*/
00084 
00085 #ifndef greyMeanAbsorptionEmission_H
00086 #define greyMeanAbsorptionEmission_H
00087 
00088 #include <radiation/interpolationLookUpTable.H>
00089 #include <radiation/absorptionEmissionModel.H>
00090 #include <OpenFOAM/HashTable.H>
00091 #include <radiation/absorptionCoeffs.H>
00092 #include <basicThermophysicalModels/basicThermo.H>
00093 
00094 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00095 
00096 namespace Foam
00097 {
00098 namespace radiation
00099 {
00100 
00101 /*---------------------------------------------------------------------------*\
00102                  Class greyMeanAbsorptionEmission Declaration
00103 \*---------------------------------------------------------------------------*/
00104 
00105 class greyMeanAbsorptionEmission
00106 :
00107     public absorptionEmissionModel
00108 {
00109 public:
00110 
00111     // Public data
00112 
00113         // - Maximum number of species considered for absorptivity
00114         static const int nSpecies_ = 5;
00115 
00116         //  Absorption Coefficients
00117         absorptionCoeffs coeffs_[nSpecies_];
00118 
00119 
00120 private:
00121 
00122     // Private data
00123 
00124         //- Absorption model dictionary
00125         dictionary coeffsDict_;
00126 
00127         //- Hash table of species names
00128         HashTable<label> speciesNames_;
00129 
00130         // Indices of species in the look-up table
00131         FixedList<label, nSpecies_> specieIndex_;
00132 
00133         // Look-up table of species related to ft
00134         mutable interpolationLookUpTable<scalar> lookUpTable_;
00135 
00136         // Thermo package
00137         const basicThermo& thermo_;
00138 
00139         //- Emission constant coefficient
00140         const scalar EhrrCoeff_;
00141 
00142         //- Pointer list of species in the registry involved in the absorption
00143         UPtrList<volScalarField> Yj_;
00144 
00145 
00146 public:
00147 
00148     //- Runtime type information
00149     TypeName("greyMeanAbsorptionEmission");
00150 
00151 
00152     // Constructors
00153 
00154         //- Construct from components
00155         greyMeanAbsorptionEmission
00156         (
00157             const dictionary& dict,
00158             const fvMesh& mesh
00159         );
00160 
00161 
00162     // Destructor
00163     virtual ~greyMeanAbsorptionEmission();
00164 
00165 
00166     // Member Operators
00167 
00168         // Access
00169 
00170             // Absorption coefficient
00171 
00172                 //- Absorption coefficient for continuous phase
00173                 tmp<volScalarField> aCont(const label bandI = 0) const;
00174 
00175 
00176             // Emission coefficient
00177 
00178                 //- Emission coefficient for continuous phase
00179                 tmp<volScalarField> eCont(const label bandI = 0) const;
00180 
00181 
00182             // Emission contribution
00183 
00184                 //- Emission contribution for continuous phase
00185                 tmp<volScalarField> ECont(const label bandI = 0) const;
00186 
00187 
00188     // Member Functions
00189 
00190         inline bool isGrey() const
00191         {
00192             return true;
00193         }
00194 };
00195 
00196 
00197 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00198 
00199 } // End namespace radiation
00200 } // End namespace Foam
00201 
00202 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00203 
00204 #endif
00205 
00206 // ************************ vim: set sw=4 sts=4 et: ************************ //
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines