30 template<
class FaceList,
class Po
intField>
33 const FaceList& faces,
41 boundaryPointsPtr_(
nullptr),
42 faceFacesPtr_(
nullptr),
43 edgeFacesPtr_(
nullptr),
44 faceEdgesPtr_(
nullptr),
45 pointEdgesPtr_(
nullptr),
46 pointFacesPtr_(
nullptr),
47 localFacesPtr_(
nullptr),
48 meshPointsPtr_(
nullptr),
49 meshPointMapPtr_(
nullptr),
50 edgeLoopsPtr_(
nullptr),
51 localPointsPtr_(
nullptr),
52 localPointOrderPtr_(
nullptr),
53 faceCentresPtr_(
nullptr),
54 faceNormalsPtr_(
nullptr),
55 pointNormalsPtr_(
nullptr)
59 template<
class FaceList,
class Po
intField>
66 FaceList(move(faces)),
67 points_(move(points)),
70 boundaryPointsPtr_(
nullptr),
71 faceFacesPtr_(
nullptr),
72 edgeFacesPtr_(
nullptr),
73 faceEdgesPtr_(
nullptr),
74 pointEdgesPtr_(
nullptr),
75 pointFacesPtr_(
nullptr),
76 localFacesPtr_(
nullptr),
77 meshPointsPtr_(
nullptr),
78 meshPointMapPtr_(
nullptr),
79 edgeLoopsPtr_(
nullptr),
80 localPointsPtr_(
nullptr),
81 localPointOrderPtr_(
nullptr),
82 faceCentresPtr_(
nullptr),
83 faceNormalsPtr_(
nullptr),
84 pointNormalsPtr_(
nullptr)
88 template<
class FaceList,
class Po
intField>
95 FaceList(move(faces)),
96 points_(move(points)),
99 boundaryPointsPtr_(
nullptr),
100 faceFacesPtr_(
nullptr),
101 edgeFacesPtr_(
nullptr),
102 faceEdgesPtr_(
nullptr),
103 pointEdgesPtr_(
nullptr),
104 pointFacesPtr_(
nullptr),
105 localFacesPtr_(
nullptr),
106 meshPointsPtr_(
nullptr),
107 meshPointMapPtr_(
nullptr),
108 edgeLoopsPtr_(
nullptr),
109 localPointsPtr_(
nullptr),
110 localPointOrderPtr_(
nullptr),
111 faceCentresPtr_(
nullptr),
112 faceNormalsPtr_(
nullptr),
113 pointNormalsPtr_(
nullptr)
117 template<
class FaceList,
class Po
intField>
125 FaceList(faces, reuse),
126 points_(points, reuse),
129 boundaryPointsPtr_(
nullptr),
130 faceFacesPtr_(
nullptr),
131 edgeFacesPtr_(
nullptr),
132 faceEdgesPtr_(
nullptr),
133 pointEdgesPtr_(
nullptr),
134 pointFacesPtr_(
nullptr),
135 localFacesPtr_(
nullptr),
136 meshPointsPtr_(
nullptr),
137 meshPointMapPtr_(
nullptr),
138 edgeLoopsPtr_(
nullptr),
139 localPointsPtr_(
nullptr),
140 localPointOrderPtr_(
nullptr),
141 faceCentresPtr_(
nullptr),
142 faceNormalsPtr_(
nullptr),
143 pointNormalsPtr_(
nullptr)
147 template<
class FaceList,
class Po
intField>
153 PrimitivePatchName(),
158 boundaryPointsPtr_(
nullptr),
159 faceFacesPtr_(
nullptr),
160 edgeFacesPtr_(
nullptr),
161 faceEdgesPtr_(
nullptr),
162 pointEdgesPtr_(
nullptr),
163 pointFacesPtr_(
nullptr),
164 localFacesPtr_(
nullptr),
165 meshPointsPtr_(
nullptr),
166 meshPointMapPtr_(
nullptr),
167 edgeLoopsPtr_(
nullptr),
168 localPointsPtr_(
nullptr),
169 localPointOrderPtr_(
nullptr),
170 faceCentresPtr_(
nullptr),
171 faceNormalsPtr_(
nullptr),
172 pointNormalsPtr_(
nullptr)
176 template<
class FaceList,
class Po
intField>
182 PrimitivePatchName(),
184 points_(move(pp.points_)),
187 boundaryPointsPtr_(
nullptr),
188 faceFacesPtr_(
nullptr),
189 edgeFacesPtr_(
nullptr),
190 faceEdgesPtr_(
nullptr),
191 pointEdgesPtr_(
nullptr),
192 pointFacesPtr_(
nullptr),
193 localFacesPtr_(
nullptr),
194 meshPointsPtr_(
nullptr),
195 meshPointMapPtr_(
nullptr),
196 edgeLoopsPtr_(
nullptr),
197 localPointsPtr_(
nullptr),
198 localPointOrderPtr_(
nullptr),
199 faceCentresPtr_(
nullptr),
200 faceNormalsPtr_(
nullptr),
201 pointNormalsPtr_(
nullptr)
205 template<
class FaceList,
class Po
intField>
216 boundaryPointsPtr_(
nullptr),
217 faceFacesPtr_(
nullptr),
218 edgeFacesPtr_(
nullptr),
219 faceEdgesPtr_(
nullptr),
220 pointEdgesPtr_(
nullptr),
221 pointFacesPtr_(
nullptr),
222 localFacesPtr_(
nullptr),
223 meshPointsPtr_(
nullptr),
224 meshPointMapPtr_(
nullptr),
225 edgeLoopsPtr_(
nullptr),
226 localPointsPtr_(
nullptr),
227 localPointOrderPtr_(
nullptr),
228 faceCentresPtr_(
nullptr),
229 faceNormalsPtr_(
nullptr),
230 pointNormalsPtr_(
nullptr)
236 template<
class FaceList,
class Po
intField>
245 template<
class FaceList,
class Po
intField>
253 Pout<<
"PrimitivePatch<FaceList, PointField>::" 255 <<
"recalculating PrimitivePatch geometry following mesh motion" 263 template<
class FaceList,
class Po
intField>
275 template<
class FaceList,
class Po
intField>
283 return nInternalEdges_;
287 template<
class FaceList,
class Po
intField>
291 if (!boundaryPointsPtr_)
296 return *boundaryPointsPtr_;
300 template<
class FaceList,
class Po
intField>
310 return *faceFacesPtr_;
314 template<
class FaceList,
class Po
intField>
323 return *edgeFacesPtr_;
327 template<
class FaceList,
class Po
intField>
336 return *faceEdgesPtr_;
340 template<
class FaceList,
class Po
intField>
349 return *pointEdgesPtr_;
353 template<
class FaceList,
class Po
intField>
362 return *pointFacesPtr_;
366 template<
class FaceList,
class Po
intField>
378 return *localFacesPtr_;
382 template<
class FaceList,
class Po
intField>
391 return *meshPointsPtr_;
395 template<
class FaceList,
class Po
intField>
399 if (!meshPointMapPtr_)
404 return *meshPointMapPtr_;
408 template<
class FaceList,
class Po
intField>
415 if (!localPointsPtr_)
420 return *localPointsPtr_;
424 template<
class FaceList,
class Po
intField>
428 if (!localPointOrderPtr_)
430 calcLocalPointOrder();
433 return *localPointOrderPtr_;
437 template<
class FaceList,
class Po
intField>
445 if (fnd != meshPointMap().end())
457 template<
class FaceList,
class Po
intField>
464 if (!faceCentresPtr_)
469 return *faceCentresPtr_;
473 template<
class FaceList,
class Po
intField>
480 if (!faceNormalsPtr_)
485 return *faceNormalsPtr_;
489 template<
class FaceList,
class Po
intField>
496 if (!pointNormalsPtr_)
501 return *pointNormalsPtr_;
507 template<
class FaceList,
class Po
intField>
508 void Foam::PrimitivePatch<FaceList, PointField>::operator=
515 FaceList::shallowCopy(pp);
519 template<
class FaceList,
class Po
intField>
520 void Foam::PrimitivePatch<FaceList, PointField>::operator=
527 FaceList::operator=(move(pp));
const labelListList & pointEdges() const
Return point-edge addressing.
virtual void movePoints(const Field< PointType > &)
Correct patch after moving points.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
const Field< PointType > & faceCentres() const
Return face centres for patch.
PrimitivePatch(const FaceList &faces, const Field< PointType > &points)
Construct from components.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
const labelList & boundaryPoints() const
Return list of boundary points,.
Ostream & endl(Ostream &os)
Add newline and flush stream.
label nInternalEdges() const
Number of internal edges.
const Field< PointType > & localPoints() const
Return pointField of points in patch.
const labelList & meshPoints() const
Return labelList of mesh points in patch. They are constructed.
const labelList & localPointOrder() const
Return orders the local points for most efficient search.
iterator find(const Key &)
Find and return an iterator set at the hashedEntry.
For every point on the patch find the closest face on the target side. Return a target face label for...
This function calculates the list of patch edges, defined on the list of points supporting the patch...
A list of faces which address into the list of points.
const labelListList & faceFaces() const
Return face-face addressing.
const Map< label > & meshPointMap() const
Mesh point map. Given the global point index find its.
const labelListList & edgeFaces() const
Return edge-face addressing.
const edgeList & edges() const
Return list of edges, address into LOCAL point list.
Create the list of loops of outside vertices. Goes wrong on multiply connected edges (loops will be u...
const Field< PointType > & faceNormals() const
Return face normals for patch.
Point addressing on the patch: pointEdges and pointFaces.
label whichPoint(const label gp) const
Given a global point index, return the local point index.
const labelListList & pointFaces() const
Return point-face addressing.
Checks topology of the patch.
virtual ~PrimitivePatch()
Destructor.
const Field< PointType > & pointNormals() const
Return point normals for patch.
Orders the local points on the patch for most efficient search.
std::remove_reference< FaceList >::type::value_type FaceType
prefixOSstream Pout(cout, "Pout")
const List< FaceType > & localFaces() const
Return patch faces addressing into local point list.
const labelListList & faceEdges() const
Return face-edge addressing.
std::remove_reference< PointField >::type::value_type PointType
A HashTable to objects of type <T> with a label key.