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-------------------------------------------------------------------------------
10License
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
26Class
27 Foam::radiation::opaqueDiffusive
28
29Description
30 Radiation boundary model for opaque diffusive walls. It requires to
31 specify a wallAbsorptionEmissionModel in boundaryRadiationProperties
32 file.
33
34Usage
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
56namespace Foam
57{
58namespace radiation
59{
60
61/*---------------------------------------------------------------------------*\
62 Class opaqueDiffusive Declaration
63\*---------------------------------------------------------------------------*/
66:
68{
69
70protected:
71
72 // Protected data
73
74 //- Reference to the polyPatch
75 const polyPatch& pp_;
76
77
78public:
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,
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,
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,
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,
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 ,
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// ************************************************************************* //
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
A patch is a list of labels that address the faces in the global face list.
Definition: polyPatch.H:75
Radiation boundary model for opaque diffusive walls. It requires to specify a wallAbsorptionEmissionM...
virtual bool isGrey() const
Is Grey.
virtual tmp< scalarField > a(const label bandI, vectorField *incomingDirection, scalarField *T) const
Return absorptivity on patch.
const polyPatch & pp_
Reference to the polyPatch.
virtual tmp< scalarField > t(const label bandI, vectorField *incomingDirection, scalarField *T) const
Return transmissivity on patch.
virtual label nBands() const
Number of bands.
TypeName("opaqueDiffusive")
Runtime type information.
virtual tmp< scalarField > rSpec(const label bandI, vectorField *incomingDirection, scalarField *T) const
Return specular reflectivity on patch.
virtual tmp< scalarField > rDiff(const label bandI, vectorField *incomingDirection, scalarField *T) const
Return diffusive reflectivity on patch.
virtual ~opaqueDiffusive()=default
Destructor.
A class for managing temporary objects.
Definition: tmp.H:65
const volScalarField & T
autoPtr< radiation::radiationModel > radiation(radiation::radiationModel::New(T))
Namespace for OpenFOAM.
dictionary dict
volScalarField & e
Definition: createFields.H:11
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73