OpenFOAM: API Guide
v2112
The open source CFD toolbox
radiationModelNew.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) 2011-2017 OpenFOAM Foundation
9
Copyright (C) 2019-2021 OpenCFD Ltd.
10
-------------------------------------------------------------------------------
11
License
12
This file is part of OpenFOAM.
13
14
OpenFOAM is free software: you can redistribute it and/or modify it
15
under the terms of the GNU General Public License as published by
16
the Free Software Foundation, either version 3 of the License, or
17
(at your option) any later version.
18
19
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22
for more details.
23
24
You should have received a copy of the GNU General Public License
25
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26
27
\*---------------------------------------------------------------------------*/
28
29
#include "
radiationModel.H
"
30
#include "
volFields.H
"
31
32
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
33
34
Foam::autoPtr<Foam::radiation::radiationModel>
35
Foam::radiation::radiationModel::New
36
(
37
const
volScalarField
&
T
38
)
39
{
40
word
modelType(
"none"
);
41
42
dictionary
dict
;
43
44
IOobject
io
45
(
46
"radiationProperties"
,
47
T
.
time
().
constant
(),
48
T
.
mesh
(),
49
IOobject::MUST_READ_IF_MODIFIED
,
50
IOobject::NO_WRITE
,
51
false
// Do not register
52
);
53
54
if
(
io
.
typeHeaderOk
<
IOdictionary
>(
true
))
55
{
56
IOdictionary
propDict(
io
);
57
58
dict
= std::move(propDict);
59
60
dict
.
readEntry
(
"radiationModel"
, modelType);
61
}
62
else
63
{
64
Info
<<
"Radiation model not active: radiationProperties not found"
65
<<
endl
;
66
}
67
68
Info
<<
"Selecting radiationModel "
<< modelType <<
endl
;
69
70
auto
* ctorPtr = TConstructorTable(modelType);
71
72
if
(!ctorPtr)
73
{
74
FatalIOErrorInLookup
75
(
76
dict
,
77
"radiationModel"
,
78
modelType,
79
*TConstructorTablePtr_
80
) <<
exit
(
FatalIOError
);
81
}
82
83
return
autoPtr<radiationModel>
(ctorPtr(
T
));
84
}
85
86
87
Foam::autoPtr<Foam::radiation::radiationModel>
88
Foam::radiation::radiationModel::New
89
(
90
const
dictionary
&
dict
,
91
const
volScalarField
&
T
92
)
93
{
94
const
word
modelType(
dict
.get<
word
>(
"radiationModel"
));
95
96
Info
<<
"Selecting radiationModel "
<< modelType <<
endl
;
97
98
auto
* ctorPtr = dictionaryConstructorTable(modelType);
99
100
if
(!ctorPtr)
101
{
102
FatalIOErrorInLookup
103
(
104
dict
,
105
"radiationModel"
,
106
modelType,
107
*dictionaryConstructorTablePtr_
108
) <<
exit
(
FatalIOError
);
109
}
110
111
return
autoPtr<radiationModel>
(ctorPtr(
dict
,
T
));
112
}
113
114
115
// ************************************************************************* //
Foam::DimensionedField::mesh
const Mesh & mesh() const
Return mesh.
Definition:
DimensionedFieldI.H:41
Foam::GeometricField< scalar, fvPatchField, volMesh >
Foam::IOdictionary
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
Definition:
IOdictionary.H:57
Foam::IOobject
Defines the attributes of an object for which implicit objectRegistry management is supported,...
Definition:
IOobject.H:170
Foam::IOobject::time
const Time & time() const
Return Time associated with the objectRegistry.
Definition:
IOobject.C:506
Foam::IOobject::typeHeaderOk
bool typeHeaderOk(const bool checkType=true, const bool search=true, const bool verbose=true)
Read header (uses typeFilePath to find file) and check its info.
Definition:
IOobjectTemplates.C:39
Foam::IOobject::NO_WRITE
@ NO_WRITE
Definition:
IOobject.H:187
Foam::IOobject::MUST_READ_IF_MODIFIED
@ MUST_READ_IF_MODIFIED
Definition:
IOobject.H:180
Foam::TimePaths::constant
const word & constant() const
Return constant name.
Definition:
TimePathsI.H:96
Foam::Time::New
static autoPtr< Time > New()
Construct (dummy) Time - no functionObjects or libraries.
Definition:
Time.C:717
Foam::autoPtr
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition:
autoPtr.H:66
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition:
dictionary.H:126
Foam::dictionary::readEntry
bool readEntry(const word &keyword, T &val, enum keyType::option matchOpt=keyType::REGEX, bool mandatory=true) const
Definition:
dictionaryTemplates.C:302
Foam::word
A class for handling words, derived from Foam::string.
Definition:
word.H:68
T
const volScalarField & T
Definition:
createFieldRefs.H:2
FatalIOErrorInLookup
#define FatalIOErrorInLookup(ios, lookupTag, lookupName, lookupTable)
Report an error message using Foam::FatalIOError.
Definition:
error.H:478
io
IOobject io("surfaceFilmProperties", mesh.time().constant(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE, false)
Foam::Info
messageStream Info
Information stream (stdout output on master, null elsewhere)
Foam::endl
Ostream & endl(Ostream &os)
Add newline and flush stream.
Definition:
Ostream.H:372
Foam::FatalIOError
IOerror FatalIOError
Foam::exit
errorManipArg< error, int > exit(error &err, const int errNo=1)
Definition:
errorManip.H:130
radiationModel.H
dict
dictionary dict
Definition:
searchingEngine.H:14
volFields.H
src
thermophysicalModels
radiation
radiationModels
radiationModel
radiationModelNew.C
Generated by
1.9.5
OPENFOAM® is a registered
trademark
of OpenCFD Ltd.