24 typedef typename uindirectPrimitivePatch::surfaceTopo TopoType;
26 const polyBoundaryMesh&
pbm =
mesh.boundaryMesh();
52 for (
const label facei :
pbm[patchi].
range())
77 else if (UPstream::parRun())
96 nEdgeConnections[meshEdges[edgei]] = edgeFaces[edgei].size();
100 syncTools::syncEdgeList
108 label labelTyp = TopoType::MANIFOLD;
111 const label meshEdgei = meshEdges[edgei];
112 const label numNbrs = nEdgeConnections[meshEdgei];
116 labelTyp =
max(labelTyp, TopoType::OPEN);
118 else if (numNbrs == 0 || numNbrs > 2)
122 labelTyp =
max(labelTyp, TopoType::ILLEGAL);
125 reduce(labelTyp, maxOp<label>());
146 mesh.time().globalPath()
147 / (
"faMesh-construct.illegalEdges")
159 <<
" bad edges: " <<
writer.output().name() <<
nl;
const polyBoundaryMesh & pbm
const labelList patchIDs(pbm.patchSet(polyPatchNames, false, true).sortedToc())
IOdictionary & meshDefDict
vtk::lineWriter writer(edgeCentres, edgeList::null(), fileName(aMesh.time().globalPath()/"finiteArea-edgesCentres"))
List< edge > edgeList
List of edge.
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
constexpr char nl
The newline '\n' character (0x0a)
labelList faceLabels(nFaceLabels)
T returnReduce(const T &value, const BinaryOp &bop, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
Perform reduction on a copy, using specified binary operation.
List< labelList > labelListList
List of labelList.
labelHashSet badEdges(pp.nEdges()/20)
#define forAll(list, i)
Loop across all elements in list.
HashSet< label, Hash< label > > labelHashSet
A HashSet of labels, uses label hasher.
bool returnReduceAnd(const bool value, const label comm=UPstream::worldComm)
Perform logical (and) MPI Allreduce on a copy. Uses UPstream::reduceAnd.
labelHashSet * pointSetPtr
labelHashSet * badEdgesPtr
PrimitivePatch< UIndirectList< face >, const pointField & > uindirectPrimitivePatch
A PrimitivePatch with UIndirectList for the faces, const reference for the point field.
void reduce(const List< UPstream::commsStruct > &comms, T &value, const BinaryOp &bop, const int tag, const label comm)
Reduce inplace (cf. MPI Allreduce) using specified communication schedule.
messageStream Info
Information stream (stdout output on master, null elsewhere)
List< label > labelList
A List of labels.
uindirectPrimitivePatch pp(UIndirectList< face >(mesh.faces(), faceLabels), mesh.points())
static constexpr const zero Zero
Global zero (0)