1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
7 -------------------------------------------------------------------------------
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
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/>.
25 Foam::radiation::wideBandAbsorptionEmission
29 wideBandAbsorptionEmission radiation absorption and emission coefficients
32 All the bands should have the same number of species and have to be entered
35 There is no check of continuity of the bands. They should not ovelap or
38 The emission constant proportionality is specified per band (EhrrCoeff).
40 The coefficients for the species in the lookup table have to be specified
41 for use in moles x P [atm].i.e. (k[i] = species[i]*p*9.869231e-6).
43 The coefficients for CO and soot or any other added are multiplied by the
44 respective mass fraction being solved.
46 The look Up table file should be in the constant directory.
52 bandLimits (1.0e-6 2.63e-6);
62 loTcoeffs (0 0 0 0 0 0) ;
63 hiTcoeffs (.1 0 0 0 0 0);
71 loTcoeffs (0 0 0 0 0 0) ;
72 hiTcoeffs (.1 0 0 0 0 0);
80 loTcoeffs (0 0 0 0 0 0) ;
81 hiTcoeffs (.1 0 0 0 0 0);
89 loTcoeffs (0 0 0 0 0 0) ;
90 hiTcoeffs (.1 0 0 0 0 0);
98 wideBandAbsorptionEmission.C
100 \*---------------------------------------------------------------------------*/
102 #ifndef wideBandAbsorptionEmission_H
103 #define wideBandAbsorptionEmission_H
105 #include "interpolationLookUpTable.H"
106 #include "absorptionEmissionModel.H"
107 #include "HashTable.H"
108 #include "absorptionCoeffs.H"
109 #include "basicThermo.H"
111 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
118 /*---------------------------------------------------------------------------*\
119 Class wideBandAbsorptionEmission Declaration
120 \*---------------------------------------------------------------------------*/
122 class wideBandAbsorptionEmission
124 public absorptionEmissionModel
130 //- Maximum number of species considered for absorptivity
131 static const int nSpecies_ = 5;
133 //- Maximum number of bands
134 static const int maxBands_ = 10;
136 //- Absorption coefficients
137 FixedList<FixedList<absorptionCoeffs, nSpecies_>, maxBands_> coeffs_;
144 //- Absorption model dictionary
145 dictionary coeffsDict_;
147 //- Hash table with species names
148 HashTable<label> speciesNames_;
150 //- Indices of species in the look-up table
151 FixedList<label, nSpecies_> specieIndex_;
154 FixedList<Vector2D<scalar>, maxBands_> iBands_;
156 //- Proportion of the heat released rate emitted
157 FixedList<scalar, maxBands_> iEhrrCoeffs_;
159 //- Lookup table of species related to ft
160 mutable interpolationLookUpTable<scalar> lookUpTable_;
163 const basicThermo& thermo_;
168 //- Pointer list of species being solved involved in the absorption
169 UPtrList<volScalarField> Yj_;
171 // Total wave length covered by the bands
172 scalar totalWaveLength_;
177 //- Runtime type information
178 TypeName("wideBandAbsorptionEmission");
183 //- Construct from components
184 wideBandAbsorptionEmission
186 const dictionary& dict,
192 virtual ~wideBandAbsorptionEmission();
199 // Absorption coefficient
201 //- Absorption coefficient for continuous phase
202 tmp<volScalarField> aCont(const label bandI = 0) const;
205 // Emission coefficient
207 //- Emission coefficient for continuous phase
208 tmp<volScalarField> eCont(const label bandI = 0) const;
211 // Emission contribution
213 //- Emission contribution for continuous phase
214 tmp<volScalarField> ECont(const label bandI = 0) const;
217 inline bool isGrey() const
223 inline label nBands() const
228 //- Lower and upper limit of band i
229 inline const Vector2D<scalar>& bands(const label i) const
234 //- Add contribution of ILambda to the total radiative intensity in
236 tmp<volScalarField> addIntensity
239 const volScalarField& ILambda
245 PtrList<volScalarField>& aLambda
250 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
252 } // End namespace radiation
253 } // End namespace Foam
255 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
259 // ************************************************************************* //