Loading...
Searching...
No Matches
GlobalIOField.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 OpenFOAM Foundation
9 Copyright (C) 2016-2024 OpenCFD Ltd.
10-------------------------------------------------------------------------------
11License
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 "GlobalIOField.H"
30
31// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
32
33template<class Type>
35:
37{
38 // Check for MUST_READ_IF_MODIFIED
40
42}
43
44
45template<class Type>
47:
49{
50 // Check for MUST_READ_IF_MODIFIED
52
54 {
56 }
57}
58
59
60template<class Type>
62(
63 const IOobject& io,
64 const UList<Type>& content
65)
66:
67 regIOobject(io)
68{
69 // Check for MUST_READ_IF_MODIFIED
71
73 {
75 }
76}
77
78
79template<class Type>
81(
82 const IOobject& io,
83 Field<Type>&& content
84)
85:
86 regIOobject(io)
87{
88 // Check for MUST_READ_IF_MODIFIED
90
92
94}
95
96
97template<class Type>
99(
100 const IOobject& io,
101 const tmp<Field<Type>>& tfld
102)
103:
105{
106 // Check for MUST_READ_IF_MODIFIED
108
109 const bool reuse = tfld.movable();
110
111 if (reuse)
112 {
113 Field<Type>::transfer(tfld.ref());
114 }
115
117 {
119 }
120
121 tfld.clear();
122}
123
124
125// * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * //
126
127template<class Type>
129{
132 {
134 }
135 rio.resetHeader();
136
137 // The object is global
138 rio.globalObject(true);
139
140 GlobalIOField<Type> reader(rio);
141
142 return Field<Type>(std::move(static_cast<Field<Type>&>(reader)));
143}
144
145
146// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
147
148template<class Type>
151 is >> *this;
152 return is.good();
153}
154
155
156template<class Type>
158{
160 return os.good();
161}
162
163
164// ************************************************************************* //
Generic templated field type that is much like a Foam::List except that it is expected to hold numeri...
Definition Field.H:172
void operator=(const Field< Type > &)
Copy assignment.
Definition Field.C:781
constexpr Field() noexcept
Default construct.
Definition FieldI.H:24
bool writeData(Ostream &os) const
The writeData method for regIOobject write operation.
static Field< Type > readContents(const IOobject &io)
Read and return contents. The IOobject is never registered.
virtual bool readData(Istream &is)
The readData method for regIOobject read operation.
GlobalIOField(const GlobalIOField &)=default
Default copy construct.
@ NO_REGISTER
Do not request registration (bool: false).
bool globalObject() const noexcept
True if object is treated the same for all processors.
readOption readOpt() const noexcept
Get the read option.
@ MUST_READ
Reading required.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
Definition IOobject.H:191
void warnNoRereading() const
Helper: warn that type does not support re-reading.
void resetHeader(const word &newName=word::null)
Clear various bits (headerClassName, note, sizeof...) that would be obtained when reading from a file...
Definition IOobject.C:644
bool good() const noexcept
True if next operation might succeed.
Definition IOstream.H:281
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
Definition Istream.H:60
void transfer(List< Type > &list)
void resize(const label len)
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition Ostream.H:59
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
Definition UList.H:89
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
Definition regIOobject.H:71
regIOobject(const IOobject &io, const bool isTimeObject=false)
Construct from IOobject. The optional flag adds special handling if the object is the top-level regIO...
Definition regIOobject.C:43
bool readHeaderOk(const IOstreamOption::streamFormat fmt, const word &typeName)
Helper: check readOpt flags and read if necessary.
A class for managing temporary objects.
Definition tmp.H:75
OBJstream os(runTime.globalPath()/outputName)
const auto & io
const word GlobalIOList< Tuple2< scalar, vector > >::typeName("scalarVectorTable")