From b3be7658d656fb4174b4097ebd31b5bec8e0fef8 Mon Sep 17 00:00:00 2001 From: "Dmitry Yu. Naumov" <github@naumov.de> Date: Sat, 18 Jul 2015 15:40:00 +0000 Subject: [PATCH] [MeL] Comment on NodeSearch::searchByElementIDs. --- MeshLib/MeshSearch/NodeSearch.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/MeshLib/MeshSearch/NodeSearch.cpp b/MeshLib/MeshSearch/NodeSearch.cpp index ee765ac94a5..a51b460e52c 100644 --- a/MeshLib/MeshSearch/NodeSearch.cpp +++ b/MeshLib/MeshSearch/NodeSearch.cpp @@ -26,10 +26,11 @@ NodeSearch::NodeSearch(const MeshLib::Mesh &mesh) std::vector<std::size_t> NodeSearch::searchByElementIDsMatchAllConnectedElements(const std::vector<std::size_t> &elements) { - std::vector<std::size_t> connected_nodes; - + // Find out by how many elements a node would be removed. + // + // Note: If there are only few elements to be removed, using a different + // algorithm might be more memory efficient. std::vector<std::size_t> node_marked_counts(_mesh.getNNodes(), 0); - //this approach is not optimal for memory size for(std::size_t eid : elements) { @@ -39,6 +40,10 @@ std::vector<std::size_t> NodeSearch::searchByElementIDsMatchAllConnectedElements } } + + // Push back nodes which counts are equal to number of connected elements to + // that node. + std::vector<std::size_t> connected_nodes; for (std::size_t i=0; i<node_marked_counts.size(); i++) { if (node_marked_counts[i] == _mesh.getNode(i)->getElements().size()) -- GitLab