opaqueDiffusive.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) 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::opaqueDiffusive
28 
29 Description
30  Radiation boundary model for opaque diffusive walls. It requires to
31  specify a wallAbsorptionEmissionModel in boundaryRadiationProperties
32  file.
33 
34 Usage
35  \verbatim
36 
37  type opaqueDiffusive;
38  wallAbsorptionEmissionModel
39  {
40  type multiBandAbsorption;
41  absorptivity (0.3 0.7);
42  emissivity (0.3 0.7);
43  };
44 
45  \endverbatim
46 
47 \*---------------------------------------------------------------------------*/
48 
49 #ifndef opaqueDiffusive_H
50 #define opaqueDiffusive_H
51 
53 
54 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
55 
56 namespace Foam
57 {
58 namespace radiation
59 {
60 
61 /*---------------------------------------------------------------------------*\
62  Class opaqueDiffusive Declaration
63 \*---------------------------------------------------------------------------*/
64 
65 class opaqueDiffusive
66 :
68 {
69 
70 protected:
71 
72  // Protected data
73 
74  //- Reference to the polyPatch
75  const polyPatch& pp_;
76 
77 
78 public:
79 
80  //- Runtime type information
81  TypeName("opaqueDiffusive");
82 
83  // Constructors
84 
85  //- Construct from components
86  opaqueDiffusive(const dictionary& dict, const polyPatch& pp);
87 
88 
89  //- Destructor
90  virtual ~opaqueDiffusive() = default;
91 
92 
93  // Member Functions
94 
95  //- Return emissivity
96  virtual tmp<scalarField> e
97  (
98  const label bandI,
99  vectorField* incomingDirection,
100  scalarField* T
101  ) const;
102 
103  //- Return emissivity on face
104  virtual scalar e
105  (
106  const label faceI,
107  const label bandI,
108  const vector& dir,
109  const scalar T
110  ) const;
111 
112  //- Return absorptivity on patch
113  virtual tmp<scalarField> a
114  (
115  const label bandI,
116  vectorField* incomingDirection,
117  scalarField* T
118  ) const;
119 
120  //- Return absorptivity on face
121  virtual scalar a
122  (
123  const label faceI,
124  const label bandI,
125  const vector& dir,
126  const scalar T
127  ) const;
128 
129  //- Return transmissivity on patch
130  virtual tmp<scalarField> t
131  (
132  const label bandI,
133  vectorField* incomingDirection,
134  scalarField* T
135  ) const;
136 
137  //- Return transmissivity on face
138  virtual scalar t
139  (
140  const label faceI,
141  const label bandI,
142  const vector& dir,
143  const scalar T
144  ) const;
145 
146  //- Return specular reflectivity on patch
147  virtual tmp<scalarField> rSpec
148  (
149  const label bandI,
150  vectorField* incomingDirection,
151  scalarField* T
152  ) const;
153 
154  //- Return specular reflectivity on face
155  virtual scalar rSpec
156  (
157  const label faceI,
158  const label bandI,
159  const vector& dir,
160  const scalar T
161  ) const;
162 
163  //- Return diffusive reflectivity on patch
164  virtual tmp<scalarField> rDiff
165  (
166  const label bandI,
167  vectorField* incomingDirection ,
168  scalarField* T
169  ) const;
170 
171  //- Return diffusive reflectivity on face
172  virtual scalar rDiff
173  (
174  const label faceI,
175  const label bandI,
176  const vector& dir,
177  const scalar T
178  ) const;
179 
180  //- Is Grey
181  virtual bool isGrey() const;
182 
183  //- Number of bands
184  virtual label nBands() const;
185 };
186 
187 
188 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
189 
190 } // End namespace radiation
191 } // End namespace Foam
192 
193 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
194 
195 #endif
196 
197 // ************************************************************************* //
Foam::radiation::opaqueDiffusive
Radiation boundary model for opaque diffusive walls. It requires to specify a wallAbsorptionEmissionM...
Definition: opaqueDiffusive.H:64
Foam::radiation::boundaryRadiationPropertiesPatch
Definition: boundaryRadiationPropertiesPatch.H:56
Foam::radiation::opaqueDiffusive::a
virtual tmp< scalarField > a(const label bandI, vectorField *incomingDirection, scalarField *T) const
Return absorptivity on patch.
Definition: opaqueDiffusive.C:96
boundaryRadiationPropertiesPatch.H
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:61
Foam::radiation::opaqueDiffusive::~opaqueDiffusive
virtual ~opaqueDiffusive()=default
Destructor.
Foam::radiation::opaqueDiffusive::nBands
virtual label nBands() const
Number of bands.
Definition: opaqueDiffusive.C:194
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::radiation::opaqueDiffusive::pp_
const polyPatch & pp_
Reference to the polyPatch.
Definition: opaqueDiffusive.H:74
Foam::T
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
Definition: FieldFieldFunctions.C:58
Foam::radiation::opaqueDiffusive::rDiff
virtual tmp< scalarField > rDiff(const label bandI, vectorField *incomingDirection, scalarField *T) const
Return diffusive reflectivity on patch.
Definition: opaqueDiffusive.C:166
radiation
autoPtr< radiation::radiationModel > radiation(radiation::radiationModel::New(T))
dict
dictionary dict
Definition: searchingEngine.H:14
Foam::radiation::opaqueDiffusive::t
virtual tmp< scalarField > t(const label bandI, vectorField *incomingDirection, scalarField *T) const
Return transmissivity on patch.
Definition: opaqueDiffusive.C:119
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:123
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::radiation::opaqueDiffusive::e
virtual tmp< scalarField > e(const label bandI, vectorField *incomingDirection, scalarField *T) const
Return emissivity.
Definition: opaqueDiffusive.C:72
Foam::radiation::opaqueDiffusive::isGrey
virtual bool isGrey() const
Is Grey.
Definition: opaqueDiffusive.C:188
Foam::radiation::opaqueDiffusive::rSpec
virtual tmp< scalarField > rSpec(const label bandI, vectorField *incomingDirection, scalarField *T) const
Return specular reflectivity on patch.
Definition: opaqueDiffusive.C:143
Foam::Vector< scalar >
Foam::radiation::opaqueDiffusive::opaqueDiffusive
opaqueDiffusive(const dictionary &dict, const polyPatch &pp)
Construct from components.
Definition: opaqueDiffusive.C:51
Foam::radiation::opaqueDiffusive::TypeName
TypeName("opaqueDiffusive")
Runtime type information.