From 78f60b77e983f3dd29e3009adfb7be5638c4f58f Mon Sep 17 00:00:00 2001
From: Thomas Fischer <thomas.fischer@ufz.de>
Date: Fri, 24 Jan 2020 09:33:42 +0100
Subject: [PATCH] [MeL] createSfcElementVector -> copyElementVector.

Use the existing functionality.
---
 MeshLib/MeshSurfaceExtraction.cpp | 54 ++++---------------------------
 1 file changed, 6 insertions(+), 48 deletions(-)

diff --git a/MeshLib/MeshSurfaceExtraction.cpp b/MeshLib/MeshSurfaceExtraction.cpp
index dd2dee63142..5e5b6810200 100644
--- a/MeshLib/MeshSurfaceExtraction.cpp
+++ b/MeshLib/MeshSurfaceExtraction.cpp
@@ -122,21 +122,6 @@ bool createSfcMeshProperties(MeshLib::Mesh& sfc_mesh,
     return true;
 }
 
-std::vector<MeshLib::Element*> createSfcElementVector(
-    std::vector<MeshLib::Element*> const& sfc_elements,
-    std::vector<MeshLib::Node*> const& sfc_nodes,
-    std::vector<std::size_t> const& node_id_map)
-{
-    std::vector<MeshLib::Element*> new_elements;
-    new_elements.reserve(sfc_elements.size());
-    for (auto sfc_element : sfc_elements)
-    {
-        new_elements.push_back(
-            MeshLib::copyElement(sfc_element, sfc_nodes, &node_id_map));
-    }
-    return new_elements;
-}
-
 std::tuple<std::vector<MeshLib::Node*>, std::vector<std::size_t>>
 createNodesAndIDMapFromElements(std::vector<MeshLib::Element*> const& elements,
                                 std::size_t const n_all_nodes)
@@ -237,23 +222,8 @@ MeshLib::Mesh* MeshSurfaceExtraction::getMeshSurface(
 
     // create new elements vector with newly created nodes (and delete
     // temp-elements)
-    std::vector<MeshLib::Element*> new_elements;
-    try
-    {
-        new_elements =
-            createSfcElementVector(sfc_elements, sfc_nodes, node_id_map);
-    }
-    catch (std::runtime_error const& err)
-    {
-        ERR("MeshSurfaceExtraction; could not create new surface "
-            "elements:\n%s.",
-            err.what());
-        std::for_each(sfc_elements.begin(), sfc_elements.end(),
-                      [](MeshLib::Element* e) { delete e; });
-        std::for_each(sfc_nodes.begin(), sfc_nodes.end(),
-                      [](MeshLib::Node* n) { delete n; });
-        return nullptr;
-    }
+    auto new_elements =
+        MeshLib::copyElementVector(sfc_elements, sfc_nodes, &node_id_map);
     std::for_each(sfc_elements.begin(), sfc_elements.end(),
                   [](MeshLib::Element* e) { delete e; });
 
@@ -458,24 +428,12 @@ std::unique_ptr<MeshLib::Mesh> getBoundaryElementsAsMesh(
         boundary_elements, bulk_mesh.getNumberOfNodes());
 
     // create new elements using newly created nodes and delete temp-elements
-    std::vector<MeshLib::Element*> new_elements;
-    try
-    {
-        new_elements = createSfcElementVector(surface_elements, surface_nodes,
-                                              node_id_map);
-    }
-    catch (std::runtime_error const& err)
+    auto new_elements = MeshLib::copyElementVector(
+        boundary_elements, boundary_nodes, &node_id_map);
+    for (auto* e : boundary_elements)
     {
-        ERR("BoundaryExtraction; could not create new boundary elements:\n%s.",
-            err.what());
-        std::for_each(surface_elements.begin(), surface_elements.end(),
-                      [](MeshLib::Element* e) { delete e; });
-        std::for_each(surface_nodes.begin(), surface_nodes.end(),
-                      [](MeshLib::Node* n) { delete n; });
-        return nullptr;
+        delete e;
     }
-    std::for_each(surface_elements.begin(), surface_elements.end(),
-                  [](MeshLib::Element* e) { delete e; });
 
     std::vector<std::size_t> nodes_to_bulk_nodes_id_map;
     nodes_to_bulk_nodes_id_map.reserve(boundary_nodes.size());
-- 
GitLab