37 template<
class FaceList,
class Po
intField>
47 <<
"edge loops already calculated" 51 const edgeList& patchEdges = edges();
52 const label nIntEdges = nInternalEdges();
53 const label nBdryEdges = patchEdges.size() - nIntEdges;
57 auto& edgeLoops = *edgeLoopsPtr_;
80 label currentEdgeI = -1;
82 for (label edgeI = nIntEdges; edgeI < patchEdges.size(); edgeI++)
84 if (loopNumber[edgeI-nIntEdges] == -1)
91 if (currentEdgeI == -1)
98 DynamicList<label> loop(nBdryEdges);
101 label currentVertI = patchEdges[currentEdgeI].start();
105 loop.append(currentVertI);
107 loopNumber[currentEdgeI - nIntEdges] = loopI;
110 currentVertI = patchEdges[currentEdgeI].otherVertex(currentVertI);
113 const labelList& curEdges = patchPointEdges[currentVertI];
119 label edgeI = curEdges[pI];
121 if (edgeI >= nIntEdges && (loopNumber[edgeI - nIntEdges] == -1))
124 currentEdgeI = edgeI;
130 while (currentEdgeI != -1);
133 edgeLoops[loopI].transfer(loop);
138 edgeLoops.setSize(loopI);
144 template<
class FaceList,
class Po
intField>
153 return *edgeLoopsPtr_;
List< labelList > labelListList
A List of labelList.
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
constexpr char nl
The newline '\n' character (0x0a)
Ostream & endl(Ostream &os)
Add newline and flush stream.
const labelListList & edgeLoops() const
Return list of closed loops of boundary vertices.
#define forAll(list, i)
Loop across all elements in list.
A list of faces which address into the list of points.
List< edge > edgeList
A List of edges.
#define DebugInFunction
Report an information message using Foam::Info.
errorManip< error > abort(error &err)
List< label > labelList
A List of labels.