38 template<
class>
class FaceList,
48 const label startFacei,
49 const label startEdgeI,
55 if (!pFacesHad[index])
58 pFacesHad[index] =
true;
61 const labelList& fEdges = faceEdges()[startFacei];
67 label edgeI = fEdges[i];
69 const edge& e = edges()[edgeI];
71 if (edgeI != startEdgeI && (e[0] == pointi || e[1] == pointi))
82 <<
"Problem: cannot find edge out of " << fEdges
83 <<
"on face " << startFacei <<
" that uses point " << pointi
88 const labelList& eFaces = edgeFaces()[nextEdgeI];
92 if (eFaces[i] != startFacei)
113 template<
class>
class FaceList,
135 if (nNbrs < 1 || nNbrs > 2)
161 template<
class>
class FaceList,
182 bool illegalTopo =
false;
188 if (nNbrs < 1 || nNbrs > 2)
194 Info<<
"Edge " << edgeI <<
" with vertices:" << edges()[edgeI]
195 <<
" has " << nNbrs <<
" face neighbours" 201 const edge& e = edges()[edgeI];
221 template<
class>
class FaceList,
238 bool foundError =
false;
249 label startEdgeI = pEdges[0];
251 const labelList& eFaces = ef[startEdgeI];
257 this->visitPointRegion
276 label meshPointi = mp[pointi];
280 setPtr->
insert(meshPointi);
285 Info<<
"Point " << meshPointi
286 <<
" uses faces which are not connected through an edge" 288 <<
"This means that the surface formed by this patched" 289 <<
" is multiply connected at this point" <<
nl 290 <<
"Connected (patch) faces:" <<
nl;
300 Info<< nl <<
"Unconnected (patch) faces:" <<
nl;
label end() const
Return end vertex label.
#define forAll(list, i)
Loop across all elements in list.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
surfaceTopo
Enumeration defining the surface type. Used in check routines.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
bool checkTopology(const bool report=false, labelHashSet *setPtr=NULL) const
Check surface formed by patch for manifoldness (see above).
void size(const label)
Override size to be inconsistent with allocated storage.
surfaceTopo surfaceType() const
Calculate surface type formed by patch.
Ostream & endl(Ostream &os)
Add newline and flush stream.
bool insert(const Key &key)
Insert a new entry.
Various functions to operate on Lists.
List< bool > boolList
Bool container classes.
A list of faces which address into the list of points.
bool checkPointManifold(const bool report=false, labelHashSet *setPtr=NULL) const
Checks primitivePatch for faces sharing point but not edge.
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
List< label > labelList
A List of labels.
errorManip< error > abort(error &err)
label start() const
Return start vertex label.
label findIndex(const ListType &, typename ListType::const_reference, const label start=0)
Find first occurence of given element and return index,.
const dimensionedScalar mp
Proton mass.
#define InfoInFunction
Report an information message using Foam::Info.