greyMeanSolidAbsorptionEmission.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
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.
15 
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
19  for more details.
20 
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/>.
23 
24 Class
25  Foam::radiation::greyMeanSolidAbsorptionEmission
26 
27 Description
28  greyMeanSolidAbsorptionEmission radiation absorption and emission
29  coefficients for continuous phase
30 
31  The coefficients for the species in the Look up table have to be specified
32  for use in moles x P [atm], i.e. (k[i] = species[i]*p*9.869231e-6).
33 
34  The coefficients for CO and soot or any other added are multiplied by the
35  respective mass fraction being solved
36 
37  All the species in the dictionary need either to be in the look-up table or
38  being solved. Conversely, all the species solved do not need to be included
39  in the calculation of the absorption coefficient
40 
41  The names of the species in the absorption dictionary must match exactly the
42  name in the look-up table or the name of the field being solved
43 
44 SourceFiles
45  greyMeanSolidAbsorptionEmission.C
46 
47 \*---------------------------------------------------------------------------*/
48 
49 #ifndef greyMeanSolidAbsorptionEmission_H
50 #define greyMeanSolidAbsorptionEmission_H
51 
53 #include "solidThermo.H"
54 #include "basicSpecieMixture.H"
55 
56 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
57 
58 namespace Foam
59 {
60 namespace radiation
61 {
62 
63 /*---------------------------------------------------------------------------*\
64  Class greyMeanSolidAbsorptionEmission Declaration
65 \*---------------------------------------------------------------------------*/
66 
68 :
70 {
71 
72 private:
73 
74  // Private data
75 
76  //- Enumering of radiative properties
77  enum radiativeProperties
78  {
79  absorptivity,
80  emissivity
81  };
82 
83  //- Absorption model dictionary
84  dictionary coeffsDict_;
85 
86  //- SLG thermo package
87  const solidThermo& thermo_;
88 
89  //- Hash table of species names
90  HashTable<label> speciesNames_;
91 
92  //- Basic multicomponent mixture
93  const basicSpecieMixture& mixture_;
94 
95  //- List of solid species data
96  List<FixedList<scalar, 2>> solidData_;
97 
98 
99  // Private member functions
100 
101  //- Calculate the volumetric fraction of Yj
102  tmp<scalarField> X(const word specie) const;
103 
104  //- Calculate the property mixing
105  tmp<volScalarField> calc(const label) const;
106 
107 
108 public:
109 
110  //- Runtime type information
111  TypeName("greyMeanSolidAbsorptionEmission");
112 
113 
114  // Constructors
115 
116  //- Construct from components
118  (
119  const dictionary& dict,
120  const fvMesh& mesh
121  );
122 
123 
124  //- Destructor
126 
127 
128  // Member Functions
129 
130  // Access
131 
132  // Absorption coefficient
133 
134  //- Absorption coefficient for continuous phase
135  tmp<volScalarField> aCont(const label bandI = 0) const;
136 
137 
138  // Emission coefficient
139 
140  //- Emission coefficient for continuous phase
141  tmp<volScalarField> eCont(const label bandI = 0) const;
142 
143 
144  // Member Functions
146  inline bool isGrey() const
147  {
148  return true;
149  }
150 };
151 
152 
153 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
154 
155 } // End namespace radiation
156 } // End namespace Foam
157 
158 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
159 
160 #endif
161 
162 // ************************************************************************* //
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:137
greyMeanSolidAbsorptionEmission(const dictionary &dict, const fvMesh &mesh)
Construct from components.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Definition: HashTable.H:60
greyMeanSolidAbsorptionEmission radiation absorption and emission coefficients for continuous phase ...
const fvMesh & mesh() const
Reference to the mesh.
const dictionary & dict() const
Reference to the dictionary.
Specialization of basicMultiComponentMixture for a mixture consisting of a number for molecular speci...
Base class of the thermophysical property types.
Definition: specie.H:65
Model to supply absorption and emission coefficients for radiation modelling.
tmp< volScalarField > eCont(const label bandI=0) const
Emission coefficient for continuous phase.
A class for handling words, derived from string.
Definition: word.H:59
TypeName("greyMeanSolidAbsorptionEmission")
Runtime type information.
Fundamental solid thermodynamic properties.
Definition: solidThermo.H:48
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:78
bool isGrey() const
Flag for whether the absorption/emission is for a grey gas.
tmp< volScalarField > aCont(const label bandI=0) const
Absorption coefficient for continuous phase.
A class for managing temporary objects.
Definition: PtrList.H:53
autoPtr< radiation::radiationModel > radiation(radiation::radiationModel::New(T))
Namespace for OpenFOAM.