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