44 nbrPatchIDs_(nbrPatchIDs),
57 for (
const label nbrPatchi : nbrPatchIDs_)
65 EdgeMap<label> nbrEdges(2*nBnd);
67 for (
const label nbrPatchi : nbrPatchIDs_)
69 const polyPatch& nbrPatch = patch_.
boundaryMesh()[nbrPatchi];
70 const labelList& nbrMp = nbrPatch.meshPoints();
74 label edgeI = nbrPatch.nInternalEdges();
75 edgeI < nbrPatch.nEdges();
79 const edge&
e = nbrPatch.edges()[edgeI];
80 const edge meshE = edge(nbrMp[
e[0]], nbrMp[
e[1]]);
81 nbrEdges.insert(meshE, nbrPatchi);
89 patch_.boundaryMesh().mesh(),
96 List<patchEdgeFaceInfo> allEdgeInfo(patch_.nEdges());
100 label nBndEdges = patch_.nEdges() - patch_.nInternalEdges();
101 DynamicList<label> initialEdges(2*nBndEdges);
102 DynamicList<patchEdgeFaceInfo> initialEdgesInfo(2*nBndEdges);
111 label edgeI = patch_.nInternalEdges();
112 edgeI < patch_.nEdges();
116 const edge&
e = patch_.edges()[edgeI];
117 const edge meshE = edge(mp[
e[0]], mp[
e[1]]);
119 if (nbrEdges.found(meshE))
121 initialEdges.append(edgeI);
122 initialEdgesInfo.append
126 e.centre(patch_.localPoints()),
141 patch_.boundaryMesh().mesh(),
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
void append(const T &val)
Copy append an element to the end of this list.
Map from edge (expressed as its endpoints) to value. Hashing (and ==) on an edge is symmetric.
bool found(const Key &key) const
Same as contains().
bool insert(const Key &key, const T &obj)
Copy insert a new entry, not overwriting existing entries.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Wave propagation of information along patch. Every iteration information goes through one layer of fa...
label nEdges() const
Number of edges in patch.
const edgeList & edges() const
Return list of edges, address into LOCAL point list.
label nInternalEdges() const
Number of internal edges.
const labelList & meshPoints() const
Return labelList of mesh points in patch.
scalar & operator[](const label i)
An edge is a list of two vertex labels. This can correspond to a directed graph edge or an edge on a ...
virtual void correct()
Correct for mesh geom/topo changes.
patchPatchDist(const polyPatch &pp, const labelHashSet &nbrPatchIDs)
Construct from patch and neighbour patches.
A patch is a list of labels that address the faces in the global face list.
const polyBoundaryMesh & boundaryMesh() const noexcept
Return boundaryMesh reference.
List< wallPoints > allFaceInfo(mesh_.nFaces())
const dimensionedScalar mp
Proton mass.
List< label > labelList
A List of labels.
HashSet< label, Hash< label > > labelHashSet
A HashSet of labels, uses label hasher.
PrimitivePatch< SubList< face >, const pointField & > primitivePatch
A PrimitivePatch with a SubList addressing for the faces, const reference for the point field.
T returnReduce(const T &value, BinaryOp bop, const int tag=UPstream::msgType(), const int communicator=UPstream::worldComm)
Perform reduction on a copy, using specified binary operation.
dimensionedScalar sqrt(const dimensionedScalar &ds)
points setSize(newPointi)
#define forAll(list, i)
Loop across all elements in list.