35 template<
class FaceList,
class Po
intField>
48 <<
"edge loops already calculated" 52 const edgeList& patchEdges = edges();
53 label nIntEdges = nInternalEdges();
54 label nBdryEdges = patchEdges.size() - nIntEdges;
83 label currentEdgeI = -1;
85 for (
label edgeI = nIntEdges; edgeI < patchEdges.size(); edgeI++)
87 if (loopNumber[edgeI-nIntEdges] == -1)
94 if (currentEdgeI == -1)
101 DynamicList<label> loop(nBdryEdges);
104 label currentVertI = patchEdges[currentEdgeI].start();
108 loop.append(currentVertI);
110 loopNumber[currentEdgeI - nIntEdges] = loopI;
113 currentVertI = patchEdges[currentEdgeI].otherVertex(currentVertI);
116 const labelList& curEdges = patchPointEdges[currentVertI];
122 label edgeI = curEdges[pI];
124 if (edgeI >= nIntEdges && (loopNumber[edgeI - nIntEdges] == -1))
127 currentEdgeI = edgeI;
133 while (currentEdgeI != -1);
136 edgeLoops[loopI].transfer(loop);
141 edgeLoops.setSize(loopI);
150 template<
class FaceList,
class Po
intField>
159 return *edgeLoopsPtr_;
List< labelList > labelListList
A List of labelList.
#define forAll(list, i)
Loop across all elements in list.
FvWallInfoData< WallInfo, label > label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Ostream & endl(Ostream &os)
Add newline and flush stream.
const labelListList & edgeLoops() const
Return list of closed loops of boundary vertices.
A list of faces which address into the list of points.
List< label > labelList
A List of labels.
errorManip< error > abort(error &err)
#define InfoInFunction
Report an information message using Foam::Info.