1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 2008-2009 OpenCFD Ltd.
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 the
13 Free Software Foundation; either version 2 of the License, or (at your
14 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, write to the Free Software Foundation,
23 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 Foam::radiation::greyMeanAbsorptionEmission
30 wideBandAbsorptionEmission radiation absorption and emission coefficients
33 All the bands should have the same number of species and have to be entered
36 There is no check of continuity of the bands. They should not ovelap or
39 The emission constant proportionality is specified per band (EhrrCoeff).
41 The coefficients for the species in the LookUpTable have to be specified
42 for use in moles x P [atm].i.e. (k[i] = species[i]*p*9.869231e-6).
44 The coefficients for CO and soot or any other added are multiplied by the
45 respective mass fraction being solved.
47 The look Up table file should be in the constant directory.
53 bandLimits (1.0e-6 2.63e-6);
63 loTcoeffs (0 0 0 0 0 0) ;
64 hiTcoeffs (.1 0 0 0 0 0);
72 loTcoeffs (0 0 0 0 0 0) ;
73 hiTcoeffs (.1 0 0 0 0 0);
82 loTcoeffs (0 0 0 0 0 0) ;
83 hiTcoeffs (.1 0 0 0 0 0);
92 loTcoeffs (0 0 0 0 0 0) ;
93 hiTcoeffs (.1 0 0 0 0 0);
100 wideBandAbsorptionEmission.C
102 \*---------------------------------------------------------------------------*/
104 #ifndef wideBandAbsorptionEmission_H
105 #define wideBandAbsorptionEmission_H
107 #include "interpolationLookUpTable.H"
108 #include "absorptionEmissionModel.H"
109 #include "HashTable.H"
110 #include "absorptionCoeffs.H"
111 #include "basicThermo.H"
113 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
120 /*---------------------------------------------------------------------------*\
121 Class wideBandAbsorptionEmission Declaration
122 \*---------------------------------------------------------------------------*/
124 class wideBandAbsorptionEmission
126 public absorptionEmissionModel
132 //- Maximum number of species considered for absorptivity
133 static const int nSpecies_ = 5;
135 //- Maximum number of bands
136 static const int maxBands_ = 10;
138 //- Absorption coefficients
139 FixedList<FixedList<absorptionCoeffs, nSpecies_>, maxBands_> coeffs_;
146 //- Absorption model dictionary
147 dictionary coeffsDict_;
149 //- Hash table with species names
150 HashTable<label> speciesNames_;
152 //- Indices of species in the look-up table
153 FixedList<label, nSpecies_> specieIndex_;
156 FixedList<Vector2D<scalar>, maxBands_> iBands_;
158 //- Proportion of the heat released rate emitted
159 FixedList<scalar, maxBands_> iEhrrCoeffs_;
161 //- Look-up table of species related to ft
162 mutable interpolationLookUpTable<scalar> lookUpTable_;
165 const basicThermo& thermo_;
170 //- Pointer list of species being solved involved in the absorption
171 UPtrList<volScalarField> Yj_;
173 // Total wave length covered by the bands
174 scalar totalWaveLength_;
179 //- Runtime type information
180 TypeName("wideBandAbsorptionEmission");
185 //- Construct from components
186 wideBandAbsorptionEmission
188 const dictionary& dict,
194 virtual ~wideBandAbsorptionEmission();
201 // Absorption coefficient
203 //- Absorption coefficient for continuous phase
204 tmp<volScalarField> aCont(const label bandI = 0) const;
207 // Emission coefficient
209 //- Emission coefficient for continuous phase
210 tmp<volScalarField> eCont(const label bandI = 0) const;
213 // Emission contribution
215 //- Emission contribution for continuous phase
216 tmp<volScalarField> ECont(const label bandI = 0) const;
219 inline bool isGrey() const
225 inline label nBands() const
230 //- Lower and upper limit of band i
231 inline const Vector2D<scalar>& bands(const label i) const
236 //- Add contribution of ILambda to the total radiative intensity in
238 tmp<volScalarField> addIntensity
241 const volScalarField& ILambda
247 PtrList<volScalarField>& aLambda
252 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
254 } // End namespace radiation
255 } // End namespace Foam
257 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
261 // ************************************************************************* //