Loading...
Searching...
No Matches
constantAbsorption.C
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, 2024 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
26\*---------------------------------------------------------------------------*/
27
28#include "constantAbsorption.H"
31// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
33namespace Foam
34{
35 namespace radiation
36 {
38
40 (
44 );
45 }
46}
47
48
49// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
50
52(
53 const dictionary& dict,
54 const polyPatch& pp
55)
56:
58 coeffsDict_(dict),
59 a_(Function1<scalar>::New("absorptivity", coeffsDict_)),
60 e_(Function1<scalar>::New("emissivity", coeffsDict_))
61{}
62
63
64// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
65
67(
68 const label bandI,
69 const vectorField* incomingDirection,
70 const scalarField* T
71) const
72{
73 if (a_->constant())
74 {
75 // Use arbitrary argument for a_
76 return tmp<scalarField>::New(pp_.size(), a_->value(0));
77 }
78
79 if (T)
80 {
81 return a_->value(*T);
82 }
83
85 << "Attempted to set 'a' using a non-uniform function of Temperature, "
86 << "but temperature field is unavailable"
87 << abort(FatalError);
88
89 return nullptr;
90}
91
92
94(
95 const label faceI,
96 const label bandI,
97 const vector dir,
98 const scalar T
99) const
100{
101 return a_->value(T);
102}
103
104
106(
107 const label bandI,
108 const vectorField* incomingDirection,
109 const scalarField* T
110) const
111{
112 if (e_->constant())
113 {
114 // Use arbitrary argument for e_
115 return tmp<scalarField>::New(pp_.size(), e_->value(0));
116 }
117
118 if (T)
119 {
120 return e_->value(*T);
121 }
122
124 << "Attempted to set 'e' using a non-uniform function of Temperature, "
125 << "but temperature field is unavailable"
126 << abort(FatalError);
127
128 return nullptr;
129}
130
131
133(
134 const label faceI,
135 const label bandI,
136 const vector dir,
137 const scalar T
138) const
139{
140 return e_->value(T);
141}
142
143
144// ************************************************************************* //
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
uindirectPrimitivePatch pp(UIndirectList< face >(mesh.faces(), faceLabels), mesh.points())
Top level data entry class for use in dictionaries. Provides a mechanism to specify a variable as a c...
Definition Function1.H:92
void size(const label n)
Older name for setAddressableSize.
Definition UList.H:118
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition dictionary.H:133
A patch is a list of labels that address the faces in the global face list.
Definition polyPatch.H:73
Constant radiation transmissivity coefficient.
constantAbsorption(const dictionary &dict, const polyPatch &pp)
Construct from components.
tmp< scalarField > a(const label bandI=0, const vectorField *incomingDirection=nullptr, const scalarField *T=nullptr) const
absorptivity coefficient
tmp< scalarField > e(const label bandI=0, const vectorField *incomingDirection=nullptr, const scalarField *T=nullptr) const
Return emission coefficient.
Based class for wall absorption emission models.
wallAbsorptionEmissionModel(const dictionary &dict, const polyPatch &pp)
Construct from components.
const polyPatch & pp_
Reference to the polyPatch.
static autoPtr< wallAbsorptionEmissionModel > New(const dictionary &dict, const polyPatch &pp)
A class for managing temporary objects.
Definition tmp.H:75
static tmp< T > New(Args &&... args)
Construct tmp with forwarding arguments.
Definition tmp.H:215
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
Definition className.H:142
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Definition error.H:600
Namespace for radiation modelling.
Namespace for OpenFOAM.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
errorManip< error > abort(error &err)
Definition errorManip.H:139
Field< vector > vectorField
Specialisation of Field<T> for vector.
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
Vector< scalar > vector
Definition vector.H:57
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
dictionary dict