From fd5f4f4b7b972ee0209fd79468018c63eee8bb0c Mon Sep 17 00:00:00 2001
From: Dmitri Naumov <github@naumov.de>
Date: Wed, 13 Sep 2023 23:41:33 +0200
Subject: [PATCH] [PL/LIE] Replace for-loop with transform algorithm

---
 .../SmallDeformationLocalAssemblerFracture-impl.h     | 11 +++++++----
 ...DeformationLocalAssemblerMatrixNearFracture-impl.h | 11 +++++++----
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerFracture-impl.h b/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerFracture-impl.h
index 84ad8e6353c..787293cebdc 100644
--- a/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerFracture-impl.h
+++ b/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerFracture-impl.h
@@ -11,6 +11,8 @@
 #pragma once
 
 #include <Eigen/Core>
+#include <range/v3/range/conversion.hpp>
+#include <range/v3/view/transform.hpp>
 
 #include "MathLib/LinAlg/Eigen/EigenMapTools.h"
 #include "NumLib/Fem/InitShapeMatrices.h"
@@ -62,10 +64,11 @@ SmallDeformationLocalAssemblerFracture<ShapeFunction, DisplacementDim>::
         _fracture_props.push_back(&_process_data.fracture_properties[fid]);
     }
 
-    for (auto jid : process_data._vec_ele_connected_junctionIDs[e.getID()])
-    {
-        _junction_props.push_back(&_process_data.junction_properties[jid]);
-    }
+    _junction_props = process_data._vec_ele_connected_junctionIDs[e.getID()] |
+                      ranges::views::transform(
+                          [&](auto const jid)
+                          { return &_process_data.junction_properties[jid]; }) |
+                      ranges::to<std::vector>;
 
     ParameterLib::SpatialPosition x_position;
     x_position.setElementID(_element.getID());
diff --git a/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerMatrixNearFracture-impl.h b/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerMatrixNearFracture-impl.h
index aeccadf93cd..c363987da19 100644
--- a/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerMatrixNearFracture-impl.h
+++ b/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerMatrixNearFracture-impl.h
@@ -11,6 +11,8 @@
 #pragma once
 
 #include <Eigen/Core>
+#include <range/v3/range/conversion.hpp>
+#include <range/v3/view/transform.hpp>
 #include <valarray>
 #include <vector>
 
@@ -107,10 +109,11 @@ SmallDeformationLocalAssemblerMatrixNearFracture<ShapeFunction,
         _fracture_props.push_back(&_process_data.fracture_properties[fid]);
     }
 
-    for (auto jid : process_data._vec_ele_connected_junctionIDs[e.getID()])
-    {
-        _junction_props.push_back(&_process_data.junction_properties[jid]);
-    }
+    _junction_props = process_data._vec_ele_connected_junctionIDs[e.getID()] |
+                      ranges::views::transform(
+                          [&](auto const jid)
+                          { return &_process_data.junction_properties[jid]; }) |
+                      ranges::to<std::vector>;
 }
 
 template <typename ShapeFunction, int DisplacementDim>
-- 
GitLab