35 template<
class FaceList,
class Po
intField>
40 const label startFacei,
41 const label startEdgeI,
47 if (!pFacesHad[index])
50 pFacesHad[index] =
true;
53 const labelList& fEdges = faceEdges()[startFacei];
59 label edgeI = fEdges[i];
61 const edge& e = edges()[edgeI];
63 if (edgeI != startEdgeI && (e[0] == pointi || e[1] == pointi))
74 <<
"Problem: cannot find edge out of " << fEdges
75 <<
"on face " << startFacei <<
" that uses point " << pointi
80 const labelList& eFaces = edgeFaces()[nextEdgeI];
84 if (eFaces[i] != startFacei)
102 template<
class FaceList,
class Po
intField>
121 if (nNbrs < 1 || nNbrs > 2)
144 template<
class FaceList,
class Po
intField>
162 bool illegalTopo =
false;
168 if (nNbrs < 1 || nNbrs > 2)
174 Info<<
"Edge " << edgeI <<
" with vertices:" << edges()[edgeI]
175 <<
" has " << nNbrs <<
" face neighbours" 181 const edge& e = edges()[edgeI];
198 template<
class FaceList,
class Po
intField>
212 bool foundError =
false;
223 label startEdgeI = pEdges[0];
225 const labelList& eFaces = ef[startEdgeI];
231 this->visitPointRegion
250 label meshPointi = mp[pointi];
254 setPtr->
insert(meshPointi);
259 Info<<
"Point " << meshPointi
260 <<
" uses faces which are not connected through an edge" 262 <<
"This means that the surface formed by this patched" 263 <<
" is multiply connected at this point" <<
nl 264 <<
"Connected (patch) faces:" <<
nl;
274 Info<< nl <<
"Unconnected (patch) faces:" <<
nl;
#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.
void size(const label)
Override size to be inconsistent with allocated storage.
Ostream & endl(Ostream &os)
Add newline and flush stream.
bool checkPointManifold(const bool report=false, labelHashSet *setPtr=nullptr) const
Checks primitivePatch for faces sharing point but not edge.
bool insert(const Key &key)
Insert a new entry.
bool checkTopology(const bool report=false, labelHashSet *setPtr=nullptr) const
Check surface formed by patch for manifoldness (see above).
Various functions to operate on Lists.
List< bool > boolList
Bool container classes.
A list of faces which address into the list of points.
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
surfaceTopo surfaceType() const
Calculate surface type formed by patch.
const dimensionedScalar mp
Proton mass.
List< label > labelList
A List of labels.
errorManip< error > abort(error &err)
label findIndex(const ListType &, typename ListType::const_reference, const label start=0)
Find first occurrence of given element and return index,.
label end() const
Return end vertex label.
label start() const
Return start vertex label.
#define InfoInFunction
Report an information message using Foam::Info.