Go to the documentation of this file.
28 #include "primitiveMesh.H"
29 #include "primitiveMesh.H"
72 if (!faceSizeMatch(faces, myFaces))
84 label numVert = calcLocalFaces(faces, myFaces);
86 if (numVert != vertPerCell)
92 calcEdgeAddressing(numVert);
98 vertLabels_.setSize(vertPerCell);
99 faceLabels_.setSize(facePerCell);
106 const face& face3 = localFaces_[face3I];
107 label face3vert0 = 0;
114 vertLabels_[0] = pointMap_[face3[face3vert0]];
115 faceLabels_[3] = faceMap_[face3I];
123 !(owner[faceMap_[face3I]] == cellI)
125 vertLabels_[1] = pointMap_[face3[face3vert1]];
133 !(owner[faceMap_[face3I]] == cellI)
135 vertLabels_[2] = pointMap_[face3[face3vert2]];
146 faceLabels_[2] = faceMap_[face2I];
157 faceLabels_[0] = faceMap_[face0I];
168 faceLabels_[1] = faceMap_[face1I];
169 const face& face1 = localFaces_[face1I];
172 label face1vert0 = pointFaceIndex_[face3[face3vert0]][face1I];
180 (owner[faceMap_[face1I]] == cellI)
182 vertLabels_[3] = pointMap_[face1[face1vert3]];
200 if (myFaces.
size() != 4)
207 label size = faces[myFaces[myFaceI]].
size();
264 shape =
cellShape(model(), vertLabels());
virtual bool matchShape(const bool checkOnly, const faceList &faces, const labelList &faceOwner, const label cellI, const labelList &myFaces)
Low level shape recognition. Return true if matches.
virtual label faceHashValue() const
Hash value of all face sizes of this shape. Can be used for.
List< label > labelList
A List of labels.
#define forAll(list, i)
Loop across all elements in list.
const cellList & cells() const
Base class for cellshape matchers (hexMatch, prismMatch, etc.). These are classes which given a mesh ...
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
virtual const labelList & faceOwner() const
Return face owner.
labelList identity(const label len)
Create identity map (map[i] == i) of given length.
static const label facePerCell
An analytical geometric cellShape.
virtual bool faceSizeMatch(const faceList &, const labelList &) const
Check whether number of face sizes match the shape.
virtual const faceList & faces() const
Return raw faces.
static const label vertPerCell
Constants for this shape.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
virtual bool isA(const primitiveMesh &mesh, const label cellI)
Exact match. Uses faceSizeMatch.
static const label maxVertPerFace
A face is a list of labels corresponding to mesh vertices.
Various functions to operate on Lists.
virtual bool matches(const primitiveMesh &mesh, const label cellI, cellShape &shape)
Like isA but also constructs a cellShape (if shape matches)
void size(const label)
Override size to be inconsistent with allocated storage.
tetMatcher()
Construct null.
Cell-face mesh analysis engine.