39 template<
class>
class FaceList,
49 const label startFaceI,
50 const label startEdgeI,
56 if (!pFacesHad[index])
59 pFacesHad[index] =
true;
62 const labelList& fEdges = faceEdges()[startFaceI];
68 label edgeI = fEdges[i];
70 const edge& e = edges()[edgeI];
72 if (edgeI != startEdgeI && (e[0] == pointI || e[1] == pointI))
84 "PrimitivePatch<Face, FaceList, PointField, PointType>::" 86 ) <<
"Problem: cannot find edge out of " << fEdges
87 <<
"on face " << startFaceI <<
" that uses point " << pointI
92 const labelList& eFaces = edgeFaces()[nextEdgeI];
96 if (eFaces[i] != startFaceI)
117 template<
class>
class FaceList,
128 Info<<
"PrimitivePatch<Face, FaceList, PointField, PointType>::" 130 "calculating patch topology" 142 if (nNbrs < 1 || nNbrs > 2)
158 Info<<
"PrimitivePatch<Face, FaceList, PointField, PointType>::" 160 "finished calculating patch topology" 171 template<
class>
class FaceList,
185 Info<<
"PrimitivePatch<Face, FaceList, PointField, PointType>::" 186 "checkTopology(const bool, labelHashSet&) : " 187 "checking patch topology" 201 if (nNbrs < 1 || nNbrs > 2)
203 surfaceType = ILLEGAL;
207 Info<<
"Edge " << edgeI <<
" with vertices:" << edges()[edgeI]
208 <<
" has " << nNbrs <<
" face neighbours" 214 const edge& e = edges()[edgeI];
228 Info<<
"PrimitivePatch<Face, FaceList, PointField, PointType>::" 229 "checkTopology(const bool, labelHashSet&) : " 230 "finished checking patch topology" 234 return surfaceType == ILLEGAL;
241 template<
class>
class FaceList,
258 bool foundError =
false;
269 label startEdgeI = pEdges[0];
271 const labelList& eFaces = ef[startEdgeI];
277 this->visitPointRegion
296 label meshPointI = mp[pointI];
300 setPtr->
insert(meshPointI);
305 Info<<
"Point " << meshPointI
306 <<
" uses faces which are not connected through an edge" 308 <<
"This means that the surface formed by this patched" 309 <<
" is multiply connected at this point" <<
nl 310 <<
"Connected (patch) faces:" <<
nl;
320 Info<< nl <<
"Unconnected (patch) faces:" <<
nl;
label findIndex(const ListType &, typename ListType::const_reference, const label start=0)
Find first occurence of given element and return index,.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
void size(const label)
Override size to be inconsistent with allocated storage.
Various functions to operate on Lists.
const dimensionedScalar mp
Proton mass.
bool checkTopology(const bool report=false, labelHashSet *setPtr=NULL) const
Check surface formed by patch for manifoldness (see above).
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
Ostream & endl(Ostream &os)
Add newline and flush stream.
bool checkPointManifold(const bool report=false, labelHashSet *setPtr=NULL) const
Checks primitivePatch for faces sharing point but not edge.
errorManip< error > abort(error &err)
#define FatalErrorIn(functionName)
Report an error message using Foam::FatalError.
A list of faces which address into the list of points.
label end() const
Return end vertex label.
List< label > labelList
A List of labels.
surfaceTopo
Enumeration defining the surface type. Used in check routines.
surfaceTopo surfaceType() const
Calculate surface type formed by patch.
label start() const
Return start vertex label.
List< bool > boolList
Bool container classes.
bool insert(const Key &key)
Insert a new entry.