24 typedef typename uindirectPrimitivePatch::surfaceTopo TopoType;
26 const polyBoundaryMesh&
pbm =
mesh.boundaryMesh();
47 for (
const label facei :
pbm[patchi].
range())
72 else if (UPstream::parRun())
91 nEdgeConnections[meshEdges[edgei]] = edgeFaces[edgei].size();
95 syncTools::syncEdgeList
103 label labelTyp = TopoType::MANIFOLD;
106 const label meshEdgei = meshEdges[edgei];
107 const label numNbrs = nEdgeConnections[meshEdgei];
111 labelTyp =
max(labelTyp, TopoType::OPEN);
113 else if (numNbrs == 0 || numNbrs > 2)
117 labelTyp =
max(labelTyp, TopoType::ILLEGAL);
120 reduce(labelTyp, maxOp<label>());
141 mesh.time().globalPath()
142 / (
"faMesh-construct.illegalEdges")
154 <<
" bad edges: " <<
writer.output().name() <<
nl;
const labelList patchIDs(pbm.indices(polyPatchNames, true))
const polyBoundaryMesh & pbm
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)
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.
return returnReduce(nRefine-oldNRefine, sumOp< label >())
messageStream Info
Information stream (stdout output on master, null elsewhere)
List< label > labelList
A List of labels.
void reduce(T &value, const BinaryOp &bop, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
Reduce inplace (cf. MPI Allreduce) using linear/tree communication schedule.
uindirectPrimitivePatch pp(UIndirectList< face >(mesh.faces(), faceLabels), mesh.points())
static constexpr const zero Zero
Global zero (0)