34template<
class FaceList,
class Po
intField>
38 if (boundaryPointsPtr_)
42 <<
"boundaryPoints already calculated"
51 <<
"Calculating boundary points from existing addressing"
54 bp.resize(4*nBoundaryEdges());
56 for (
const edge&
e : boundaryEdges())
59 bp.insert(
e.second());
65 <<
"Calculating boundary points with manual edge addressing"
74 const List<face_type>& locFcs = localFaces();
78 for (
const auto&
f : locFcs)
80 edgeCount +=
f.nEdges();
84 HashTable<label, edge, Hash<edge>> knownEdges(2*edgeCount);
86 for (
const auto&
f : locFcs)
88 const label numEdges =
f.nEdges();
90 for (label edgei = 0; edgei < numEdges; ++edgei)
92 ++ knownEdges(
f.edge(edgei));
106 bp.resize(4*edgeCount);
110 const edge&
e = iter.key();
114 bp.insert(
e.first());
115 bp.insert(
e.second());
120 boundaryPointsPtr_.reset(
new labelList(bp.sortedToc()));
A list of faces which address into the list of points.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
#define DebugInfo
Report an information message using Foam::Info.
#define DebugInFunction
Report an information message using Foam::Info.
List< label > labelList
A List of labels.
errorManip< error > abort(error &err)
HashSet< label, Hash< label > > labelHashSet
A HashSet of labels, uses label hasher.
constexpr char nl
The newline '\n' character (0x0a)
#define forAllConstIters(container, iter)
Iterate across all elements of the container object with const access.