diff --git a/src/OpenFOAM/meshes/primitiveMesh/primitiveMesh.H b/src/OpenFOAM/meshes/primitiveMesh/primitiveMesh.H index 28057107c48f58e968def9a62b7f445e90f265ca..23dd4193495c1a94400ae2eb4121210d8ff0347b 100644 --- a/src/OpenFOAM/meshes/primitiveMesh/primitiveMesh.H +++ b/src/OpenFOAM/meshes/primitiveMesh/primitiveMesh.H @@ -822,6 +822,7 @@ public: const labelList& cellPoints ( const label celli, + labelHashSet&, DynamicList<label>& ) const; @@ -876,6 +877,7 @@ public: const labelList& cellEdges ( const label celli, + labelHashSet&, DynamicList<label>& ) const; diff --git a/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCellPoints.C b/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCellPoints.C index f7c0e4699a0b341442972dffb793ab54b8db7e0c..0f6b1ce4d36de7d40d27e5192690e0aeba982c15 100644 --- a/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCellPoints.C +++ b/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCellPoints.C @@ -58,6 +58,7 @@ const Foam::labelListList& Foam::primitiveMesh::cellPoints() const const Foam::labelList& Foam::primitiveMesh::cellPoints ( const label celli, + labelHashSet& set, DynamicList<label>& storage ) const { @@ -70,7 +71,7 @@ const Foam::labelList& Foam::primitiveMesh::cellPoints const faceList& fcs = faces(); const labelList& cFaces = cells()[celli]; - labelSet_.clear(); + set.clear(); forAll(cFaces, i) { @@ -78,17 +79,17 @@ const Foam::labelList& Foam::primitiveMesh::cellPoints forAll(f, fp) { - labelSet_.insert(f[fp]); + set.insert(f[fp]); } } storage.clear(); - if (labelSet_.size() > storage.capacity()) + if (set.size() > storage.capacity()) { - storage.setCapacity(labelSet_.size()); + storage.setCapacity(set.size()); } - forAllConstIter(labelHashSet, labelSet_, iter) + forAllConstIter(labelHashSet, set, iter) { storage.append(iter.key()); } @@ -100,7 +101,7 @@ const Foam::labelList& Foam::primitiveMesh::cellPoints const Foam::labelList& Foam::primitiveMesh::cellPoints(const label celli) const { - return cellPoints(celli, labels_); + return cellPoints(celli, labelSet_, labels_); } diff --git a/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshEdges.C b/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshEdges.C index 3cf689595ab870c71bd8f006206347c99894497b..4790af73c14ba408552deb2a86cbd0db5ffc78d4 100644 --- a/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshEdges.C +++ b/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshEdges.C @@ -630,6 +630,7 @@ const Foam::labelList& Foam::primitiveMesh::faceEdges(const label facei) const const Foam::labelList& Foam::primitiveMesh::cellEdges ( const label celli, + labelHashSet& set, DynamicList<label>& storage ) const { @@ -641,7 +642,7 @@ const Foam::labelList& Foam::primitiveMesh::cellEdges { const labelList& cFaces = cells()[celli]; - labelSet_.clear(); + set.clear(); forAll(cFaces, i) { @@ -649,18 +650,18 @@ const Foam::labelList& Foam::primitiveMesh::cellEdges forAll(fe, feI) { - labelSet_.insert(fe[feI]); + set.insert(fe[feI]); } } storage.clear(); - if (labelSet_.size() > storage.capacity()) + if (set.size() > storage.capacity()) { - storage.setCapacity(labelSet_.size()); + storage.setCapacity(set.size()); } - forAllConstIter(labelHashSet, labelSet_, iter) + forAllConstIter(labelHashSet, set, iter) { storage.append(iter.key()); } @@ -672,7 +673,7 @@ const Foam::labelList& Foam::primitiveMesh::cellEdges const Foam::labelList& Foam::primitiveMesh::cellEdges(const label celli) const { - return cellEdges(celli, labels_); + return cellEdges(celli, labelSet_, labels_); } diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/combineFaces.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/combineFaces.C index 10e5ee81c631ba9196338feb9cc2af0e2365a7a6..6499498e3e2438289ac3e88781b302d5a6c99144 100644 --- a/src/dynamicMesh/polyTopoChange/polyTopoChange/combineFaces.C +++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/combineFaces.C @@ -305,6 +305,7 @@ Foam::labelListList Foam::combineFaces::getMergeSets // Lists of faces that can be merged. DynamicList<labelList> allFaceSets(boundaryCells.size() / 10); // Storage for on-the-fly cell-edge addressing. + labelHashSet set; DynamicList<label> storage; // On all cells regionise the faces @@ -314,7 +315,7 @@ Foam::labelListList Foam::combineFaces::getMergeSets const cell& cFaces = mesh_.cells()[celli]; - const labelList& cEdges = mesh_.cellEdges(celli, storage); + const labelList& cEdges = mesh_.cellEdges(celli, set, storage); // Region per face Map<label> faceRegion(cFaces.size()); diff --git a/src/mesh/snappyHexMesh/meshRefinement/meshRefinementProblemCells.C b/src/mesh/snappyHexMesh/meshRefinement/meshRefinementProblemCells.C index d85faeb02c9bb3f120f5ffe953833279c82e1968..a197d0c223b7a73ab5ca9e28a93403d7525d10f8 100644 --- a/src/mesh/snappyHexMesh/meshRefinement/meshRefinementProblemCells.C +++ b/src/mesh/snappyHexMesh/meshRefinement/meshRefinementProblemCells.C @@ -718,10 +718,11 @@ Foam::labelList Foam::meshRefinement::markFacesOnProblemCells // On-the-fly addressing storage. DynamicList<label> dynFEdges; DynamicList<label> dynCPoints; + labelHashSet pSet; forAll(cellLevel, celli) { - const labelList& cPoints = mesh_.cellPoints(celli, dynCPoints); + const labelList& cPoints = mesh_.cellPoints(celli, pSet, dynCPoints); // Get number of anchor points (pointLevel <= cellLevel)