OpenFOAM
v2506
The open source CFD toolbox
IOmapDistributePolyMesh.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) 2015 OpenFOAM Foundation
9
Copyright (C) 2022-2025 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
Class
28
Foam::IOmapDistributePolyMesh
29
30
Description
31
IOmapDistributePolyMesh is derived from mapDistributePolyMesh and
32
IOobject to give the mapDistributePolyMesh
33
automatic IO functionality via the objectRegistry.
34
35
SourceFiles
36
IOmapDistributePolyMesh.C
37
38
\*---------------------------------------------------------------------------*/
39
40
#ifndef Foam_IOmapDistributePolyMesh_H
41
#define Foam_IOmapDistributePolyMesh_H
42
43
#include "
mapDistributePolyMesh.H
"
44
#include "
regIOobject.H
"
45
46
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47
48
namespace
Foam
49
{
50
51
/*---------------------------------------------------------------------------*\
52
Class IOmapDistributePolyMesh Declaration
53
\*---------------------------------------------------------------------------*/
54
55
class
IOmapDistributePolyMesh
56
:
57
public
regIOobject
,
58
public
mapDistributePolyMesh
59
{
60
// Private Member Functions
61
62
//- Read if IOobject flags set. Return true if read.
63
bool
readIOcontents();
64
65
public
:
66
67
//- Runtime type information
68
TypeName
(
"mapDistributePolyMesh"
);
69
70
71
// Constructors
72
73
//- Construct from IOobject
74
explicit
IOmapDistributePolyMesh
(
const
IOobject
&
io
);
75
76
//- Construct from IOobject, copying mapDistributePolyMesh contents
77
IOmapDistributePolyMesh
78
(
79
const
IOobject
&
io
,
80
const
mapDistributePolyMesh
& map
81
);
82
83
//- Construct from IOobject, moving mapDistributePolyMesh contents
84
IOmapDistributePolyMesh
85
(
86
const
IOobject
&
io
,
87
mapDistributePolyMesh
&& map
88
);
89
90
91
// Factory Methods
92
93
//- Write contents. The IOobject is never registered.
94
// Uses IOmapDistributePolyMeshRef internally.
95
static
void
writeContents
96
(
97
const
IOobject
&
io
,
98
const
mapDistributePolyMesh
& map
99
);
100
101
102
//- Destructor
103
virtual
~IOmapDistributePolyMesh
() =
default
;
104
105
106
// Member Functions
107
108
//- The readData method for regIOobject read operation
109
virtual
bool
readData
(
Istream
& is);
110
111
//- The writeData method for regIOobject write operation
112
virtual
bool
writeData
(
Ostream
&
os
)
const
;
113
};
114
115
116
/*---------------------------------------------------------------------------*\
117
Class IOmapDistributePolyMeshRef Declaration
118
\*---------------------------------------------------------------------------*/
119
120
//- A IOmapDistributePolyMesh wrapper for using referenced external data.
121
class
IOmapDistributePolyMeshRef
122
:
123
public
regIOobject
124
{
125
// Private Data
126
127
//- Reference to the external content
128
refPtr<mapDistributePolyMesh>
contentRef_;
129
130
public
:
131
132
//- Type is identical to IOmapDistributePolyMesh
133
virtual
const
word
&
type
()
const
134
{
135
return
IOmapDistributePolyMesh::typeName;
136
}
137
138
139
// Generated Methods
140
141
//- No default construct
142
IOmapDistributePolyMeshRef
() =
delete
;
143
144
//- No copy construct
145
IOmapDistributePolyMeshRef
(
const
IOmapDistributePolyMeshRef
&) =
delete
;
146
147
//- No copy assignment
148
void
operator=
(
const
IOmapDistributePolyMeshRef
&) =
delete
;
149
150
151
// Constructors
152
153
//- Construct from IOobject and const data reference
154
IOmapDistributePolyMeshRef
155
(
156
const
IOobject
&
io
,
157
const
mapDistributePolyMesh
& map
158
);
159
160
161
//- Destructor
162
virtual
~IOmapDistributePolyMeshRef
() =
default
;
163
164
165
// Member Functions
166
167
//- Allow cast to const content
168
// Fatal if content is not set
169
operator
const
mapDistributePolyMesh
&()
const
170
{
171
return
contentRef_.
cref
();
172
}
173
174
//- The readData method for regIOobject read operation
175
// Fatal if content is constant (or not set)
176
virtual
bool
readData
(
Istream
& is);
177
178
//- The writeData method for regIOobject write operation
179
// Fatal if content is not set
180
virtual
bool
writeData
(
Ostream
&
os
)
const
;
181
};
182
183
184
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
185
186
}
// End namespace Foam
187
188
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
189
190
#endif
191
192
// ************************************************************************* //
Foam::IOmapDistributePolyMesh::readData
virtual bool readData(Istream &is)
The readData method for regIOobject read operation.
Definition:
IOmapDistributePolyMesh.C:140
Foam::IOmapDistributePolyMeshRef::readData
virtual bool readData(Istream &is)
The readData method for regIOobject read operation.
Definition:
IOmapDistributePolyMesh.C:154
Foam::Istream
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
Definition:
Istream.H:57
Foam::IOmapDistributePolyMeshRef::operator=
void operator=(const IOmapDistributePolyMeshRef &)=delete
No copy assignment.
mapDistributePolyMesh.H
Foam::mapDistributePolyMesh
Class containing mesh-to-mesh mapping information after a mesh distribution where we send parts of me...
Definition:
mapDistributePolyMesh.H:65
Foam::refPtr::cref
const T & cref() const
Return const reference to the object or to the contents of a (non-null) managed pointer.
Definition:
refPtrI.H:216
Foam::IOmapDistributePolyMeshRef
A IOmapDistributePolyMesh wrapper for using referenced external data.
Definition:
IOmapDistributePolyMesh.H:137
Foam::IOmapDistributePolyMeshRef::IOmapDistributePolyMeshRef
IOmapDistributePolyMeshRef()=delete
No default construct.
Foam::refPtr
A class for managing references or pointers (no reference counting)
Definition:
HashPtrTable.H:49
Foam::IOmapDistributePolyMesh::~IOmapDistributePolyMesh
virtual ~IOmapDistributePolyMesh()=default
Destructor.
Foam::IOmapDistributePolyMeshRef::writeData
virtual bool writeData(Ostream &os) const
The writeData method for regIOobject write operation.
Definition:
IOmapDistributePolyMesh.C:161
Foam::word
A class for handling words, derived from Foam::string.
Definition:
word.H:63
Foam::IOmapDistributePolyMesh
IOmapDistributePolyMesh is derived from mapDistributePolyMesh and IOobject to give the mapDistributeP...
Definition:
IOmapDistributePolyMesh.H:50
Foam::Ostream
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Definition:
Ostream.H:56
Foam::IOmapDistributePolyMeshRef::type
virtual const word & type() const
Type is identical to IOmapDistributePolyMesh.
Definition:
IOmapDistributePolyMesh.H:153
Foam::IOmapDistributePolyMeshRef::~IOmapDistributePolyMeshRef
virtual ~IOmapDistributePolyMeshRef()=default
Destructor.
os
OBJstream os(runTime.globalPath()/outputName)
Foam::IOmapDistributePolyMesh::TypeName
TypeName("mapDistributePolyMesh")
Runtime type information.
regIOobject.H
Foam::IOmapDistributePolyMesh::writeData
virtual bool writeData(Ostream &os) const
The writeData method for regIOobject write operation.
Definition:
IOmapDistributePolyMesh.C:147
Foam::regIOobject
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
Definition:
regIOobject.H:68
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::IOmapDistributePolyMesh::writeContents
static void writeContents(const IOobject &io, const mapDistributePolyMesh &map)
Write contents. The IOobject is never registered.
Definition:
IOmapDistributePolyMesh.C:123
Foam::IOmapDistributePolyMesh::IOmapDistributePolyMesh
IOmapDistributePolyMesh(const IOobject &io)
Construct from IOobject.
Definition:
IOmapDistributePolyMesh.C:49
Foam
Namespace for OpenFOAM.
Definition:
atmBoundaryLayer.C:26
src
OpenFOAM
meshes
polyMesh
mapPolyMesh
mapDistribute
IOmapDistributePolyMesh.H
Generated by
1.8.14