37template<
class FaceList,
class Po
intField>
47 <<
"edge loops already calculated"
51 const edgeList& patchEdges = edges();
53 const label nBdryEdges = patchEdges.size() -
nIntEdges;
57 auto& edgeLoops = *edgeLoopsPtr_;
80 label currentEdgeI = -1;
82 for (label edgeI =
nIntEdges; edgeI < patchEdges.size(); edgeI++)
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];
124 currentEdgeI = edgeI;
130 while (currentEdgeI != -1);
133 edgeLoops[loopI].transfer(loop);
138 edgeLoops.setSize(loopI);
144template<
class FaceList,
class Po
intField>
153 return *edgeLoopsPtr_;
A list of faces which address into the list of points.
const labelListList & edgeLoops() const
Return list of closed loops of boundary vertices.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
const labelList nIntEdges(UPstream::listGatherValues< label >(aMesh.nInternalEdges()))
#define DebugInFunction
Report an information message using Foam::Info.
List< label > labelList
A List of labels.
Ostream & endl(Ostream &os)
Add newline and flush stream.
List< labelList > labelListList
A List of labelList.
errorManip< error > abort(error &err)
List< edge > edgeList
A List of edges.
constexpr char nl
The newline '\n' character (0x0a)
#define forAll(list, i)
Loop across all elements in list.