OpenFOAM
v2406
The open source CFD toolbox
readFieldsTemplates.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-2016 OpenFOAM Foundation
9
Copyright (C) 2015-2024 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 "
readFields.H
"
30
#include "
volFields.H
"
31
#include "
surfaceFields.H
"
32
#include "
Time.H
"
33
34
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
35
36
template
<
class
FieldType>
37
bool
Foam::functionObjects::readFields::loadAndStore
(
const
IOobject
&
io
)
38
{
39
if
(
io
.isHeaderClass<FieldType>())
40
{
41
// Store field on mesh database
42
Log
<<
" Reading "
<<
io
.name()
43
<<
" ("
<<
io
.headerClassName() <<
')'
<<
endl
;
44
45
regIOobject::store
(
new
FieldType(
io
,
mesh_
));
46
return
true
;
47
}
48
49
return
false
;
50
}
51
52
53
template
<
class
Type>
54
bool
Foam::functionObjects::readFields::loadField
(
const
IOobject
&
io
)
55
{
56
typedef
GeometricField<Type, fvPatchField, volMesh>
VolFieldType;
57
typedef
typename
VolFieldType::Internal IntVolFieldType;
58
typedef
GeometricField<Type, fvsPatchField, surfaceMesh>
SurfaceFieldType;
59
60
return
61
(
62
loadAndStore<VolFieldType>(
io
)
63
|| loadAndStore<IntVolFieldType>(
io
)
64
|| loadAndStore<SurfaceFieldType>(
io
)
65
);
66
}
67
68
69
// ************************************************************************* //
surfaceFields.H
Foam::surfaceFields.
Time.H
Foam::functionObjects::readFields::loadField
bool loadField(const IOobject &io)
Forward to loadAndStore for supported types.
Definition:
readFieldsTemplates.C:47
readFields.H
Foam::endl
Ostream & endl(Ostream &os)
Add newline and flush stream.
Definition:
Ostream.H:531
Foam::regIOobject::store
bool store()
Register object with its registry and transfer ownership to the registry.
Definition:
regIOobjectI.H:36
Foam::GeometricField
Generic GeometricField class.
Definition:
pointMVCWeight.H:58
Log
#define Log
Definition:
PDRblock.C:28
volFields.H
io
IOobject io("surfaceFilmProperties", mesh.time().constant(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE, IOobject::NO_REGISTER)
Foam::IOobject
Defines the attributes of an object for which implicit objectRegistry management is supported...
Definition:
IOobject.H:180
Foam::functionObjects::fvMeshFunctionObject::mesh_
const fvMesh & mesh_
Reference to the fvMesh.
Definition:
fvMeshFunctionObject.H:71
Foam::functionObjects::readFields::loadAndStore
bool loadAndStore(const IOobject &io)
Attempt load from io, store on database if successful.
Definition:
readFieldsTemplates.C:30
src
functionObjects
field
readFields
readFieldsTemplates.C
Generated by
1.8.14