diff --git a/ProcessLib/DeactivatedSubdomain.cpp b/ProcessLib/DeactivatedSubdomain.cpp
index f12fed951df21b51ed6522c456b1cff665db24a6..d66c037c3d28d9d2e00386a4544162c71547a5e7 100644
--- a/ProcessLib/DeactivatedSubdomain.cpp
+++ b/ProcessLib/DeactivatedSubdomain.cpp
@@ -80,28 +80,15 @@ static std::unique_ptr<DeactivetedSubdomainMesh> createDeactivatedSubdomainMesh(
             const auto& connected_elements = n->getElements();
 
             // Check whether this node is in an activated element.
-            if (std::find_if(connected_elements.begin(),
-                             connected_elements.end(),
-                             [&](auto const* const connected_elem) -> bool {
-                                 return is_active(connected_elem);
-                             }) != connected_elements.end())
-            {
-                return false;
-            }
-            return true;
+            return std::all_of(begin(connected_elements),
+                               end(connected_elements), is_active);
         });
 
     auto const& elements = mesh.getElements();
     std::vector<MeshLib::Element*> deactivated_elements;
-    for (auto const& element : elements)
-    {
-        if (is_active(element))
-        {
-            continue;
-        }
-
-        deactivated_elements.push_back(const_cast<MeshLib::Element*>(element));
-    }
+    std::copy_if(begin(elements), end(elements),
+                 back_inserter(deactivated_elements),
+                 [&](auto const e) { return is_active(e); });
 
     auto bc_mesh = MeshLib::createMeshFromElementSelection(
         "deactivate_subdomain_" + std::to_string(material_id),