solidAbsorption.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) 2015-2018 OpenCFD Ltd.
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::solidAbsorption
28 
29 Description
30  Radiation absorptivity-emissivity model to be used on walls on
31  inter-region patches when the solid opaque radiation model is used
32  in the solid and the wall emissivity and absorptivity are taken from
33  the solid radiation properties
34 
35 Usage
36  Example usage
37  \verbatim
38  wallAbsorptionEmissionModel
39  {
40  type solidAbsorption;
41  };
42  \endverbatim
43 
44 
45 SourceFiles
46  solidAbsorption.C
47 
48 \*---------------------------------------------------------------------------*/
49 
50 #ifndef Foam_radiation_solidAbsorption_H
51 #define Foam_radiation_solidAbsorption_H
52 
54 #include "fvMesh.H"
55 
56 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
57 
58 namespace Foam
59 {
60 namespace radiation
61 {
62 
63 /*---------------------------------------------------------------------------*\
64  Class solidAbsorption Declaration
65 \*---------------------------------------------------------------------------*/
66 
67 class solidAbsorption
68 :
70 {
71 
72  // Private members
73 
74  //- Nbr region
75  const fvMesh& nbrRegion() const;
76 
77  //- Nbr index patch
78  label nbrPatchIndex() const;
79 
80 public:
81 
82  //- Runtime type information
83  TypeName("solidAbsorption");
84 
85 
86  // Constructors
87 
88  //- Construct from components
89  solidAbsorption(const dictionary& dict, const polyPatch& pp);
90 
91 
92  //- Destructor
93  virtual ~solidAbsorption();
94 
95 
96  // Member Functions
97 
98  //- absorptivity coefficient
100  (
101  const label bandI = 0,
102  const vectorField* incomingDirection = nullptr,
103  const scalarField* T = nullptr
104  ) const;
105 
106  //- Return absorptivity on face
107  scalar a
108  (
109  const label faceI,
110  const label bandI = 0,
111  const vector dir = Zero,
112  const scalar T = 0
113  ) const;
114 
115  //- Return emission coefficient
117  (
118  const label bandI = 0,
119  const vectorField* incomingDirection = nullptr,
120  const scalarField* T = nullptr
121  ) const;
122 
123  //- Return emission coefficient
124  scalar e
125  (
126  const label faceI,
127  const label bandI = 0,
128  const vector dir = Zero,
129  const scalar T = 0
130  ) const;
131 
132 
133  //- Is Grey
134  inline bool isGrey() const
135  {
136  return true;
137  }
138 
139  //- Number of bands
140  inline label nBands() const;
141 };
142 
143 
144 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
145 
146 } // End namespace radiation
147 } // End namespace Foam
148 
149 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
150 
151 #endif
152 
153 // ************************************************************************* //
Based class for wall absorption emission models.
dictionary dict
tmp< scalarField > a(const label bandI=0, const vectorField *incomingDirection=nullptr, const scalarField *T=nullptr) const
absorptivity coefficient
virtual ~solidAbsorption()
Destructor.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Definition: dictionary.H:129
solidAbsorption(const dictionary &dict, const polyPatch &pp)
Construct from components.
label nBands() const
Number of bands.
TypeName("solidAbsorption")
Runtime type information.
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
tmp< scalarField > e(const label bandI=0, const vectorField *incomingDirection=nullptr, const scalarField *T=nullptr) const
Return emission coefficient.
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:78
A class for managing temporary objects.
Definition: HashPtrTable.H:50
A patch is a list of labels that address the faces in the global face list.
Definition: polyPatch.H:69
autoPtr< radiation::radiationModel > radiation(radiation::radiationModel::New(T))
uindirectPrimitivePatch pp(UIndirectList< face >(mesh.faces(), faceLabels), mesh.points())
Namespace for OpenFOAM.
Radiation absorptivity-emissivity model to be used on walls on inter-region patches when the solid op...
static constexpr const zero Zero
Global zero (0)
Definition: zero.H:127