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