1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | foam-extend: Open Source CFD
4 \\ / O peration | Version: 3.2
5 \\ / A nd | Web: http://www.foam-extend.org
6 \\/ M anipulation | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
9 This file is part of foam-extend.
11 foam-extend 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 3 of the License, or (at your
14 option) any later version.
16 foam-extend is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 General Public License for more details.
21 You should have received a copy of the GNU General Public License
22 along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
25 Foam::radiation::greyMeanAbsorptionEmission
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 LookUpTable 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);
81 loTcoeffs (0 0 0 0 0 0) ;
82 hiTcoeffs (.1 0 0 0 0 0);
91 loTcoeffs (0 0 0 0 0 0) ;
92 hiTcoeffs (.1 0 0 0 0 0);
99 wideBandAbsorptionEmission.C
101 \*---------------------------------------------------------------------------*/
103 #ifndef wideBandAbsorptionEmission_H
104 #define wideBandAbsorptionEmission_H
106 #include "interpolationLookUpTable.H"
107 #include "absorptionEmissionModel.H"
108 #include "HashTable.H"
109 #include "absorptionCoeffs.H"
110 #include "basicThermo.H"
112 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
119 /*---------------------------------------------------------------------------*\
120 Class wideBandAbsorptionEmission Declaration
121 \*---------------------------------------------------------------------------*/
123 class wideBandAbsorptionEmission
125 public absorptionEmissionModel
131 //- Maximum number of species considered for absorptivity
132 static const int nSpecies_ = 5;
134 //- Maximum number of bands
135 static const int maxBands_ = 10;
137 //- Absorption coefficients
138 FixedList<FixedList<absorptionCoeffs, nSpecies_>, maxBands_> coeffs_;
145 //- Absorption model dictionary
146 dictionary coeffsDict_;
148 //- Hash table with species names
149 HashTable<label> speciesNames_;
151 //- Indices of species in the look-up table
152 FixedList<label, nSpecies_> specieIndex_;
155 FixedList<Vector2D<scalar>, maxBands_> iBands_;
157 //- Proportion of the heat released rate emitted
158 FixedList<scalar, maxBands_> iEhrrCoeffs_;
160 //- Look-up table of species related to ft
161 mutable interpolationLookUpTable<scalar> lookUpTable_;
164 const basicThermo& thermo_;
169 //- Pointer list of species being solved involved in the absorption
170 UPtrList<volScalarField> Yj_;
172 // Total wave length covered by the bands
173 scalar totalWaveLength_;
178 //- Runtime type information
179 TypeName("wideBandAbsorptionEmission");
184 //- Construct from components
185 wideBandAbsorptionEmission
187 const dictionary& dict,
193 virtual ~wideBandAbsorptionEmission();
200 // Absorption coefficient
202 //- Absorption coefficient for continuous phase
203 tmp<volScalarField> aCont(const label bandI = 0) const;
206 // Emission coefficient
208 //- Emission coefficient for continuous phase
209 tmp<volScalarField> eCont(const label bandI = 0) const;
212 // Emission contribution
214 //- Emission contribution for continuous phase
215 tmp<volScalarField> ECont(const label bandI = 0) const;
218 inline bool isGrey() const
224 inline label nBands() const
229 //- Lower and upper limit of band i
230 inline const Vector2D<scalar>& bands(const label i) const
238 PtrList<volScalarField>& aLambda
243 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
245 } // End namespace radiation
246 } // End namespace Foam
248 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
252 // ************************************************************************* //