1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 1991-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::absorptionEmissionModel
29 Model to supply absorption and emission coefficients for radiation
32 \*---------------------------------------------------------------------------*/
34 #ifndef radiationAbsorptionEmissionModel_H
35 #define radiationAbsorptionEmissionModel_H
37 #include "IOdictionary.H"
39 #include "runTimeSelectionTables.H"
40 #include "volFields.H"
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50 /*---------------------------------------------------------------------------*\
51 Class absorptionEmissionModel Declaration
52 \*---------------------------------------------------------------------------*/
54 class absorptionEmissionModel
61 //- Radiation model dictionary
62 const dictionary dict_;
64 //- Reference to the fvMesh
70 //- Runtime type information
71 TypeName("absorptionEmissionModel");
73 //- Declare runtime constructor selection table
75 declareRunTimeSelectionTable
78 absorptionEmissionModel,
81 const dictionary& dict,
90 //- Construct from components
91 absorptionEmissionModel
93 const dictionary& dict,
99 static autoPtr<absorptionEmissionModel> New
101 const dictionary& dict,
107 virtual ~absorptionEmissionModel();
114 //- Reference to the mesh
115 inline const fvMesh& mesh() const
120 //- Reference to the dictionary
121 inline const dictionary& dict() const
127 // Absorption coefficient
129 //- Absorption coefficient (net)
130 virtual tmp<volScalarField> a(const label bandI = 0) const;
132 //- Absorption coefficient for continuous phase
133 virtual tmp<volScalarField> aCont(const label bandI = 0) const;
135 //- Absorption coefficient for dispersed phase
136 virtual tmp<volScalarField> aDisp(const label bandI = 0) const;
139 // Emission coefficient
141 //- Emission coefficient (net)
142 virtual tmp<volScalarField> e(const label bandI = 0) const;
144 //- Return emission coefficient for continuous phase
145 virtual tmp<volScalarField> eCont(const label bandI = 0) const;
147 //- Return emission coefficient for dispersed phase
148 virtual tmp<volScalarField> eDisp(const label bandI = 0) const;
151 // Emission contribution
153 //- Emission contribution (net)
154 virtual tmp<volScalarField> E(const label bandI = 0) const;
156 //- Emission contribution for continuous phase
157 virtual tmp<volScalarField> ECont(const label bandI = 0) const;
159 //- Emission contribution for dispersed phase
160 virtual tmp<volScalarField> EDisp(const label bandI = 0) const;
163 //- Const access to the number of bands - defaults to 1 for grey
164 // absorption/emission
165 virtual label nBands() const;
167 //- Const access to the bands - defaults to Vector2D::one for grey
168 // absorption/emission
169 virtual const Vector2D<scalar>& bands(const label n) const;
171 //- Flag for whether the absorption/emission is for a grey gas
172 virtual bool isGrey() const;
174 //- Add radiative intensity for ray i
175 virtual tmp<volScalarField> addIntensity
178 const volScalarField& ILambda
181 //- Correct absorption coefficients
185 PtrList<volScalarField>& aj
190 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
192 } // End namespace radiation
193 } // End namespace Foam
195 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
199 // ************************************************************************* //