FieldI.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) 2018-2021 OpenCFD Ltd.
9 -------------------------------------------------------------------------------
10 License
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 // * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * //
29 
30 template<class Type>
32 {
33  return NullObjectRef<Field<Type>>();
34 }
35 
36 
37 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
38 
39 template<class Type>
41 :
42  List<Type>()
43 {}
44 
45 
46 template<class Type>
47 inline Foam::Field<Type>::Field(const label len)
48 :
49  List<Type>(len)
50 {}
51 
52 
53 template<class Type>
54 inline Foam::Field<Type>::Field(const label len, const Type& val)
55 :
56  List<Type>(len, val)
57 {}
58 
59 
60 template<class Type>
61 inline Foam::Field<Type>::Field(const label len, const Foam::zero)
62 :
63  List<Type>(len, Foam::zero{})
64 {}
65 
66 
67 template<class Type>
68 inline Foam::Field<Type>::Field(const Foam::one, const Type& val)
69 :
70  List<Type>(Foam::one{}, val)
71 {}
72 
73 
74 template<class Type>
75 inline Foam::Field<Type>::Field(const Foam::one, Type&& val)
76 :
77  List<Type>(Foam::one{}, std::move(val))
78 {}
79 
80 
81 template<class Type>
83 :
84  List<Type>(Foam::one{}, Foam::zero{})
85 {}
86 
87 
88 template<class Type>
90 :
91  List<Type>(fld)
92 {}
93 
94 
95 template<class Type>
96 inline Foam::Field<Type>::Field(const UList<Type>& list)
97 :
98  List<Type>(list)
99 {}
100 
101 
102 template<class Type>
103 template<class Addr>
105 :
106  List<Type>(list)
107 {}
108 
109 
110 template<class Type>
112 :
113  List<Type>(std::move(static_cast<List<Type>&>(fld)))
114 {}
115 
116 
117 template<class Type>
119 :
120  List<Type>(std::move(list))
121 {}
122 
123 
124 template<class Type>
125 template<int SizeMin>
127 :
128  List<Type>()
129 {
130  List<Type>::transfer(list);
131 }
132 
133 
134 template<class Type>
136 :
137  List<Type>(fld, reuse)
138 {}
139 
140 
141 template<class Type>
142 inline Foam::Field<Type>::Field(const tmp<Field<Type>>& tfld)
143 :
144  List<Type>(tfld.constCast(), tfld.movable())
145 {
146  tfld.clear();
147 }
148 
149 
150 template<class Type>
152 :
153  List<Type>(is)
154 {}
155 
156 
157 template<class Type>
159 {
160  return tmp<Field<Type>>::New(*this);
161 }
162 
163 
164 // * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
165 
166 template<class Type>
168 {
170 }
171 
172 
173 template<class Type>
174 inline void Foam::Field<Type>::operator=(const SubField<Type>& rhs)
175 {
177 }
178 
179 
180 template<class Type>
181 template<class Addr>
182 inline void Foam::Field<Type>::operator=
183 (
185 )
186 {
188 }
189 
190 
191 template<class Type>
193 {
195 }
196 
197 
198 template<class Type>
199 inline void Foam::Field<Type>::operator=(List<Type>&& rhs)
200 {
202 }
203 
204 
205 template<class Type>
206 template<int SizeMin>
208 {
210 }
211 
212 
213 template<class Type>
214 inline void Foam::Field<Type>::operator=(const Type& val)
215 {
217 }
218 
219 
220 template<class Type>
221 inline void Foam::Field<Type>::operator=(const Foam::zero)
222 {
224 }
225 
226 
227 // ************************************************************************* //
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Definition: BitOps.H:56
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
Definition: Istream.H:57
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tf1, const word &name, const dimensionSet &dimensions, const bool initCopy=false)
Global function forwards to reuseTmpDimensionedField::New.
SubField is a Field obtained as a section of another Field, without its own allocation. SubField is derived from a SubList rather than a List.
Definition: Field.H:63
Base for lists with indirect addressing, templated on the list contents type and the addressing type...
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects...
Definition: DynamicList.H:51
Generic templated field type.
Definition: Field.H:62
void clear()
Clear the list, i.e. set size to zero.
Definition: ListI.H:137
tmp< Field< Type > > clone() const
Clone.
Definition: FieldI.H:151
const direction noexcept
Definition: Scalar.H:258
void operator=(const Field< Type > &)
Copy assignment.
Definition: Field.C:747
gmvFile<< "tracers "<< particles.size()<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().x()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().y()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().z()<< ' ';}gmvFile<< nl;for(const word &name :lagrangianScalarNames){ IOField< scalar > fld(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
static const Field< Type > & null()
Return nullObject reference Field.
Definition: FieldI.H:24
A class representing the concept of 0 (zero) that can be used to avoid manipulating objects known to ...
Definition: zero.H:57
constexpr Field() noexcept
Default construct.
Definition: FieldI.H:33
A class for managing temporary objects.
Definition: HashPtrTable.H:50
A non-counting (dummy) refCount.
Definition: refCount.H:55
Namespace for OpenFOAM.
A class representing the concept of 1 (one) that can be used to avoid manipulating objects known to b...
Definition: one.H:56