diff --git a/applications/OptimizationApplication/custom_utilities/filtering/filter_utils.cpp b/applications/OptimizationApplication/custom_utilities/filtering/filter_utils.cpp index 0efb627d198f..0d5e3d5076fe 100644 --- a/applications/OptimizationApplication/custom_utilities/filtering/filter_utils.cpp +++ b/applications/OptimizationApplication/custom_utilities/filtering/filter_utils.cpp @@ -24,24 +24,6 @@ namespace Kratos { -template<> -const ModelPart::NodesContainerType& FilterUtils::GetContainer(const ModelPart& rModelPart) -{ - return rModelPart.Nodes(); -} - -template<> -const ModelPart::ConditionsContainerType& FilterUtils::GetContainer(const ModelPart& rModelPart) -{ - return rModelPart.Conditions(); -} - -template<> -const ModelPart::ElementsContainerType& FilterUtils::GetContainer(const ModelPart& rModelPart) -{ - return rModelPart.Elements(); -} - std::vector> FilterUtils::GetComponentWiseDampedModelParts( Model& rModel, Parameters Settings, diff --git a/applications/OptimizationApplication/custom_utilities/filtering/filter_utils.h b/applications/OptimizationApplication/custom_utilities/filtering/filter_utils.h index 82024652b421..b6b29e4e50a9 100644 --- a/applications/OptimizationApplication/custom_utilities/filtering/filter_utils.h +++ b/applications/OptimizationApplication/custom_utilities/filtering/filter_utils.h @@ -15,6 +15,7 @@ // System includes #include #include +#include // Project includes #include "containers/model.h" @@ -67,7 +68,19 @@ class KRATOS_API(OPTIMIZATION_APPLICATION) FilterUtils { const IndexType NumberOfComponents); template - static const TContainerType& GetContainer(const ModelPart& rModelPart); + static const TContainerType& GetContainer(const ModelPart& rModelPart) + { + if constexpr(std::is_same_v) { + return rModelPart.Nodes(); + } else if constexpr(std::is_same_v) { + return rModelPart.Conditions(); + } else if constexpr(std::is_same_v) { + return rModelPart.Elements(); + } else { + static_assert(!std::is_same_v, "Unsupported TContainerType"); + return TContainerType{}; + } + } template static ContainerExpression ComputeDampingCoefficientsBasedOnNearestEntity(