absorptionEmissionModel.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2011-2015 OpenFOAM Foundation
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 Class
27  Foam::radiation::absorptionEmissionModel
28 
29 Description
30  Model to supply absorption and emission coefficients for radiation
31  modelling
32 
33 \*---------------------------------------------------------------------------*/
34 
35 #ifndef radiation_absorptionEmissionModel_H
36 #define radiation_absorptionEmissionModel_H
37 
38 #include "IOdictionary.H"
39 #include "autoPtr.H"
40 #include "runTimeSelectionTables.H"
41 #include "volFields.H"
42 #include "Vector2D.H"
43 
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 
46 namespace Foam
47 {
48 namespace radiation
49 {
50 
51 /*---------------------------------------------------------------------------*\
52  Class absorptionEmissionModel Declaration
53 \*---------------------------------------------------------------------------*/
54 
56 {
57 
58 protected:
59 
60  // Protected data
61 
62  //- Radiation model dictionary
63  const dictionary dict_;
64 
65  //- Reference to the fvMesh
66  const fvMesh& mesh_;
67 
68 
69 public:
70 
71  //- Runtime type information
72  TypeName("absorptionEmissionModel");
73 
74  //- Declare runtime constructor selection table
75 
77  (
78  autoPtr,
80  dictionary,
81  (
82  const dictionary& dict,
83  const fvMesh& mesh
84  ),
85  (dict, mesh)
86  );
87 
88 
89  // Constructors
90 
91  //- Construct from components
93  (
94  const dictionary& dict,
95  const fvMesh& mesh
96  );
97 
98 
99  //- Selector
101  (
102  const dictionary& dict,
103  const fvMesh& mesh
104  );
105 
106 
107  //- Destructor
108  virtual ~absorptionEmissionModel();
109 
110 
111  // Member Functions
112 
113  // Access
114 
115  //- Reference to the mesh
116  inline const fvMesh& mesh() const
117  {
118  return mesh_;
119  }
120 
121  //- Reference to the dictionary
122  inline const dictionary& dict() const
123  {
124  return dict_;
125  }
126 
127 
128  // Absorption coefficient
129 
130  //- Absorption coefficient (net)
131  virtual tmp<volScalarField> a(const label bandI = 0) const;
132 
133  //- Absorption coefficient for continuous phase
134  virtual tmp<volScalarField> aCont(const label bandI = 0) const;
135 
136  //- Absorption coefficient for dispersed phase
137  virtual tmp<volScalarField> aDisp(const label bandI = 0) const;
138 
139 
140  // Emission coefficient
141 
142  //- Emission coefficient (net)
143  virtual tmp<volScalarField> e(const label bandI = 0) const;
144 
145  //- Return emission coefficient for continuous phase
146  virtual tmp<volScalarField> eCont(const label bandI = 0) const;
147 
148  //- Return emission coefficient for dispersed phase
149  virtual tmp<volScalarField> eDisp(const label bandI = 0) const;
150 
151 
152  // Emission contribution
153 
154  //- Emission contribution (net)
155  virtual tmp<volScalarField> E(const label bandI = 0) const;
156 
157  //- Emission contribution for continuous phase
158  virtual tmp<volScalarField> ECont(const label bandI = 0) const;
159 
160  //- Emission contribution for dispersed phase
161  virtual tmp<volScalarField> EDisp(const label bandI = 0) const;
162 
163 
164  //- Const access to the number of bands - defaults to 1 for grey
165  // absorption/emission
166  virtual label nBands() const;
167 
168  //- Const access to the bands - defaults to Vector2D::one for grey
169  // absorption/emission
170  virtual const Vector2D<scalar>& bands(const label n) const;
171 
172  //- Flag for whether the absorption/emission is for a grey gas
173  virtual bool isGrey() const;
174 
175  //- Correct absorption coefficients
176  virtual void correct
177  (
178  volScalarField& a,
180  ) const;
181 };
182 
183 
184 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
185 
186 } // End namespace radiation
187 } // End namespace Foam
188 
189 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
190 
191 #endif
192 
193 // ************************************************************************* //
Foam::radiation::absorptionEmissionModel::nBands
virtual label nBands() const
Const access to the number of bands - defaults to 1 for grey.
Definition: absorptionEmissionModel.C:221
volFields.H
Foam::radiation::absorptionEmissionModel::New
static autoPtr< absorptionEmissionModel > New(const dictionary &dict, const fvMesh &mesh)
Selector.
Definition: absorptionEmissionModelNew.C:36
Foam::radiation::absorptionEmissionModel::E
virtual tmp< volScalarField > E(const label bandI=0) const
Emission contribution (net)
Definition: absorptionEmissionModel.C:169
Foam::radiation::absorptionEmissionModel::dict
const dictionary & dict() const
Reference to the dictionary.
Definition: absorptionEmissionModel.H:121
Foam::radiation::absorptionEmissionModel::e
virtual tmp< volScalarField > e(const label bandI=0) const
Emission coefficient (net)
Definition: absorptionEmissionModel.C:116
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:61
Foam::radiation::absorptionEmissionModel::aDisp
virtual tmp< volScalarField > aDisp(const label bandI=0) const
Absorption coefficient for dispersed phase.
Definition: absorptionEmissionModel.C:93
Foam::radiation::absorptionEmissionModel::mesh
const fvMesh & mesh() const
Reference to the mesh.
Definition: absorptionEmissionModel.H:115
Foam::radiation::absorptionEmissionModel::absorptionEmissionModel
absorptionEmissionModel(const dictionary &dict, const fvMesh &mesh)
Construct from components.
Definition: absorptionEmissionModel.C:44
Foam::Vector2D< scalar >
Foam::radiation::absorptionEmissionModel::TypeName
TypeName("absorptionEmissionModel")
Runtime type information.
Foam::radiation::absorptionEmissionModel::~absorptionEmissionModel
virtual ~absorptionEmissionModel()
Destructor.
Definition: absorptionEmissionModel.C:56
n
label n
Definition: TABSMDCalcMethod2.H:31
Vector2D.H
Foam::radiation::absorptionEmissionModel::aCont
virtual tmp< volScalarField > aCont(const label bandI=0) const
Absorption coefficient for continuous phase.
Definition: absorptionEmissionModel.C:70
Foam::radiation::absorptionEmissionModel::ECont
virtual tmp< volScalarField > ECont(const label bandI=0) const
Emission contribution for continuous phase.
Definition: absorptionEmissionModel.C:176
Foam::PtrList
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
Definition: List.H:59
radiation
autoPtr< radiation::radiationModel > radiation(radiation::radiationModel::New(T))
Foam::radiation::absorptionEmissionModel::eCont
virtual tmp< volScalarField > eCont(const label bandI=0) const
Return emission coefficient for continuous phase.
Definition: absorptionEmissionModel.C:123
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:123
Foam::fvMesh
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:85
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::radiation::absorptionEmissionModel::declareRunTimeSelectionTable
declareRunTimeSelectionTable(autoPtr, absorptionEmissionModel, dictionary,(const dictionary &dict, const fvMesh &mesh),(dict, mesh))
Declare runtime constructor selection table.
Foam::radiation::absorptionEmissionModel::dict_
const dictionary dict_
Radiation model dictionary.
Definition: absorptionEmissionModel.H:62
IOdictionary.H
Foam::autoPtr
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition: HashPtrTable.H:53
Foam::radiation::absorptionEmissionModel::isGrey
virtual bool isGrey() const
Flag for whether the absorption/emission is for a grey gas.
Definition: absorptionEmissionModel.C:234
Foam::radiation::absorptionEmissionModel::mesh_
const fvMesh & mesh_
Reference to the fvMesh.
Definition: absorptionEmissionModel.H:65
runTimeSelectionTables.H
Macros to ease declaration of run-time selection tables.
Foam::radiation::absorptionEmissionModel::a
virtual tmp< volScalarField > a(const label bandI=0) const
Absorption coefficient (net)
Definition: absorptionEmissionModel.C:63
Foam::radiation::absorptionEmissionModel::eDisp
virtual tmp< volScalarField > eDisp(const label bandI=0) const
Return emission coefficient for dispersed phase.
Definition: absorptionEmissionModel.C:146
Foam::radiation::absorptionEmissionModel::correct
virtual void correct(volScalarField &a, PtrList< volScalarField > &aj) const
Correct absorption coefficients.
Definition: absorptionEmissionModel.C:241
Foam::radiation::absorptionEmissionModel
Model to supply absorption and emission coefficients for radiation modelling.
Definition: absorptionEmissionModel.H:54
Foam::GeometricField< scalar, fvPatchField, volMesh >
Foam::radiation::absorptionEmissionModel::bands
virtual const Vector2D< scalar > & bands(const label n) const
Const access to the bands - defaults to Vector2D::one for grey.
Definition: absorptionEmissionModel.C:228
Foam::radiation::absorptionEmissionModel::EDisp
virtual tmp< volScalarField > EDisp(const label bandI=0) const
Emission contribution for dispersed phase.
Definition: absorptionEmissionModel.C:199
autoPtr.H