diff --git a/src/scheme/LoadBalancer.cpp b/src/scheme/LoadBalancer.cpp index edee4f9801b71a88c62c1fa92c66ac9b9c0d77b1..ae49d645316d20331f16852894c58d10f3b350ff 100644 --- a/src/scheme/LoadBalancer.cpp +++ b/src/scheme/LoadBalancer.cpp @@ -23,56 +23,30 @@ LoadBalancer::balance(const std::vector<std::shared_ptr<const DiscreteFunctionVa auto p_balanced_mesh_v = mesh_balancer.mesh(); - if (parallel::size() == 1) { - std::visit( - [&balanced_discrete_function_list, &discrete_function_list](auto&& p_balanced_mesh) { - for (size_t i_discrete_function = 0; i_discrete_function < discrete_function_list.size(); - ++i_discrete_function) { - std::visit( - [&balanced_discrete_function_list, p_balanced_mesh](auto&& discrete_function) { - using DiscreteFunctionT = std::decay_t<decltype(discrete_function)>; - if constexpr (is_discrete_function_P0_v<DiscreteFunctionT>) { - balanced_discrete_function_list.push_back(std::make_shared<DiscreteFunctionVariant>( - DiscreteFunctionT{p_balanced_mesh, discrete_function.cellValues()})); - } else { - balanced_discrete_function_list.push_back(std::make_shared<DiscreteFunctionVariant>( - DiscreteFunctionT{p_balanced_mesh, discrete_function.cellArrays()})); - } - }, - discrete_function_list[i_discrete_function]->discreteFunction()); - } - }, - p_balanced_mesh_v->variant()); - } else { - // This macro test is used to avoid none reachable code for serial builds of pugs -#ifdef PUGS_HAS_MPI - std::visit( - [&mesh_balancer, &balanced_discrete_function_list, &discrete_function_list](auto&& p_balanced_mesh) { - using MeshType = mesh_type_t<decltype(p_balanced_mesh)>; - constexpr size_t Dimension = MeshType::Dimension; - const auto& dispatcher = mesh_balancer.connectivityDispatcher()->get<Dimension>(); - - for (size_t i_discrete_function = 0; i_discrete_function < discrete_function_list.size(); - ++i_discrete_function) { - std::visit( - [&balanced_discrete_function_list, &dispatcher, &p_balanced_mesh](auto&& discrete_function) { - using DiscreteFunctionT = std::decay_t<decltype(discrete_function)>; - if constexpr (is_discrete_function_P0_v<DiscreteFunctionT>) { - const auto& dispatched_cell_value = dispatcher->template dispatch(discrete_function.cellValues()); - balanced_discrete_function_list.push_back( - std::make_shared<DiscreteFunctionVariant>(DiscreteFunctionT{p_balanced_mesh, dispatched_cell_value})); - } else { - const auto& dispatched_cell_array = dispatcher->template dispatch(discrete_function.cellArrays()); - balanced_discrete_function_list.push_back( - std::make_shared<DiscreteFunctionVariant>(DiscreteFunctionT{p_balanced_mesh, dispatched_cell_array})); - } - }, - discrete_function_list[i_discrete_function]->discreteFunction()); - } - }, - p_balanced_mesh_v->variant()); -#endif // PUGS_HAS_MPI - } + std::visit( + [&mesh_balancer, &balanced_discrete_function_list, &discrete_function_list](auto&& p_balanced_mesh) { + using MeshType = mesh_type_t<decltype(p_balanced_mesh)>; + constexpr size_t Dimension = MeshType::Dimension; + const auto& dispatcher = mesh_balancer.connectivityDispatcher()->get<Dimension>(); + + for (size_t i_discrete_function = 0; i_discrete_function < discrete_function_list.size(); ++i_discrete_function) { + std::visit( + [&balanced_discrete_function_list, &dispatcher, &p_balanced_mesh](auto&& discrete_function) { + using DiscreteFunctionT = std::decay_t<decltype(discrete_function)>; + if constexpr (is_discrete_function_P0_v<DiscreteFunctionT>) { + const auto& dispatched_cell_value = dispatcher->dispatch(discrete_function.cellValues()); + balanced_discrete_function_list.push_back( + std::make_shared<DiscreteFunctionVariant>(DiscreteFunctionT{p_balanced_mesh, dispatched_cell_value})); + } else { + const auto& dispatched_cell_array = dispatcher->dispatch(discrete_function.cellArrays()); + balanced_discrete_function_list.push_back( + std::make_shared<DiscreteFunctionVariant>(DiscreteFunctionT{p_balanced_mesh, dispatched_cell_array})); + } + }, + discrete_function_list[i_discrete_function]->discreteFunction()); + } + }, + p_balanced_mesh_v->variant()); return balanced_discrete_function_list; }