33 template<
class FaceList,
class Po
intField>
36 const FaceList& faces,
44 boundaryPointsPtr_(nullptr),
45 faceFacesPtr_(nullptr),
46 edgeFacesPtr_(nullptr),
47 faceEdgesPtr_(nullptr),
48 pointEdgesPtr_(nullptr),
49 pointFacesPtr_(nullptr),
50 localFacesPtr_(nullptr),
51 meshPointsPtr_(nullptr),
52 meshPointMapPtr_(nullptr),
53 edgeLoopsPtr_(nullptr),
54 localPointsPtr_(nullptr),
55 localPointOrderPtr_(nullptr),
56 faceCentresPtr_(nullptr),
57 faceAreasPtr_(nullptr),
58 magFaceAreasPtr_(nullptr),
59 faceNormalsPtr_(nullptr),
60 pointNormalsPtr_(nullptr)
64 template<
class FaceList,
class Po
intField>
71 FaceList(
std::move(faces)),
75 boundaryPointsPtr_(nullptr),
76 faceFacesPtr_(nullptr),
77 edgeFacesPtr_(nullptr),
78 faceEdgesPtr_(nullptr),
79 pointEdgesPtr_(nullptr),
80 pointFacesPtr_(nullptr),
81 localFacesPtr_(nullptr),
82 meshPointsPtr_(nullptr),
83 meshPointMapPtr_(nullptr),
84 edgeLoopsPtr_(nullptr),
85 localPointsPtr_(nullptr),
86 localPointOrderPtr_(nullptr),
87 faceCentresPtr_(nullptr),
88 faceAreasPtr_(nullptr),
89 magFaceAreasPtr_(nullptr),
90 faceNormalsPtr_(nullptr),
91 pointNormalsPtr_(nullptr)
95 template<
class FaceList,
class Po
intField>
103 FaceList(faces, reuse),
107 boundaryPointsPtr_(nullptr),
108 faceFacesPtr_(nullptr),
109 edgeFacesPtr_(nullptr),
110 faceEdgesPtr_(nullptr),
111 pointEdgesPtr_(nullptr),
112 pointFacesPtr_(nullptr),
113 localFacesPtr_(nullptr),
114 meshPointsPtr_(nullptr),
115 meshPointMapPtr_(nullptr),
116 edgeLoopsPtr_(nullptr),
117 localPointsPtr_(nullptr),
118 localPointOrderPtr_(nullptr),
119 faceCentresPtr_(nullptr),
120 faceAreasPtr_(nullptr),
121 magFaceAreasPtr_(nullptr),
122 faceNormalsPtr_(nullptr),
123 pointNormalsPtr_(nullptr)
127 template<
class FaceList,
class Po
intField>
137 boundaryPointsPtr_(nullptr),
138 faceFacesPtr_(nullptr),
139 edgeFacesPtr_(nullptr),
140 faceEdgesPtr_(nullptr),
141 pointEdgesPtr_(nullptr),
142 pointFacesPtr_(nullptr),
143 localFacesPtr_(nullptr),
144 meshPointsPtr_(nullptr),
145 meshPointMapPtr_(nullptr),
146 edgeLoopsPtr_(nullptr),
147 localPointsPtr_(nullptr),
148 localPointOrderPtr_(nullptr),
149 faceCentresPtr_(nullptr),
150 faceAreasPtr_(nullptr),
151 magFaceAreasPtr_(nullptr),
152 faceNormalsPtr_(nullptr),
153 pointNormalsPtr_(nullptr)
159 template<
class FaceList,
class Po
intField>
168 template<
class FaceList,
class Po
intField>
181 template<
class FaceList,
class Po
intField>
194 template<
class FaceList,
class Po
intField>
203 template<
class FaceList,
class Po
intField>
212 template<
class FaceList,
class Po
intField>
221 return nInternalEdges_;
225 template<
class FaceList,
class Po
intField>
230 return (allEdges.
size() - this->nInternalEdges());
234 template<
class FaceList,
class Po
intField>
238 if (!boundaryPointsPtr_)
243 return *boundaryPointsPtr_;
247 template<
class FaceList,
class Po
intField>
256 return *faceFacesPtr_;
260 template<
class FaceList,
class Po
intField>
269 return *edgeFacesPtr_;
273 template<
class FaceList,
class Po
intField>
282 return *faceEdgesPtr_;
286 template<
class FaceList,
class Po
intField>
295 return *pointEdgesPtr_;
299 template<
class FaceList,
class Po
intField>
308 return *pointFacesPtr_;
312 template<
class FaceList,
class Po
intField>
324 return *localFacesPtr_;
328 template<
class FaceList,
class Po
intField>
337 return *meshPointsPtr_;
341 template<
class FaceList,
class Po
intField>
345 if (!meshPointMapPtr_)
350 return *meshPointMapPtr_;
354 template<
class FaceList,
class Po
intField>
361 if (!localPointsPtr_)
366 return *localPointsPtr_;
370 template<
class FaceList,
class Po
intField>
374 if (!localPointOrderPtr_)
376 calcLocalPointOrder();
379 return *localPointOrderPtr_;
383 template<
class FaceList,
class Po
intField>
391 return meshPointMap().lookup(gp, -1);
395 template<
class FaceList,
class Po
intField>
402 if (!faceCentresPtr_)
407 return *faceCentresPtr_;
411 template<
class FaceList,
class Po
intField>
423 return *faceAreasPtr_;
427 template<
class FaceList,
class Po
intField>
431 if (!magFaceAreasPtr_)
436 return *magFaceAreasPtr_;
440 template<
class FaceList,
class Po
intField>
447 if (!faceNormalsPtr_)
452 return *faceNormalsPtr_;
456 template<
class FaceList,
class Po
intField>
463 if (!pointNormalsPtr_)
468 return *pointNormalsPtr_;
474 template<
class FaceList,
class Po
intField>
488 FaceList::shallowCopy(rhs);
494 template<
class FaceList,
class Po
intField>
508 FaceList::operator=(std::move(rhs));
const labelListList & pointEdges() const
Return point-edge addressing.
const Field< point_type > & faceAreas() const
Return face area vectors for patch.
std::remove_reference< PointField >::type::value_type point_type
The point type.
const List< face_type > & localFaces() const
Return patch faces addressing into local point list.
void size(const label n)
Older name for setAddressableSize.
const Field< point_type > & localPoints() const
Return pointField of points in patch.
const labelList & boundaryPoints() const
Return list of boundary points, address into LOCAL point list.
Ostream & endl(Ostream &os)
Add newline and flush stream.
label nInternalEdges() const
Number of internal edges.
const Field< scalar > & magFaceAreas() const
Return face area magnitudes for patch.
std::remove_reference< FaceList >::type::value_type face_type
The face type.
const edgeList::subList boundaryEdges() const
Return sub-list of boundary edges, address into LOCAL point list.
const labelList & meshPoints() const
Return labelList of mesh points in patch.
const labelList & localPointOrder() const
Return orders the local points for most efficient search.
For every point on the patch find the closest face on the target side. Return a target face label for...
virtual void movePoints(const Field< point_type > &)
Correct patch after moving points.
const Field< point_type > & faceNormals() const
Return face unit normals for patch.
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.
A List obtained as a section of another List.
const labelListList & faceFaces() const
Return face-face addressing.
const Map< label > & meshPointMap() const
Mesh point map.
PrimitivePatch(const FaceList &faces, const PointField &points)
Construct from components.
Generic templated field type.
const edgeList::subList internalEdges() const
Return sub-list of internal edges, address into LOCAL point list.
#define DebugInFunction
Report an information message using Foam::Info.
const Field< point_type > & faceCentres() const
Return face centres for patch.
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...
label nBoundaryEdges() const
Number of boundary edges == (nEdges() - nInternalEdges())
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.
const Field< point_type > & pointNormals() const
Return point normals for patch.
Checks topology of the patch.
Orders the local points on the patch for most efficient search.
const labelListList & faceEdges() const
Return face-edge addressing.
A HashTable to objects of type <T> with a label key.