From 30faea84f5258d507a6c569d093b38056840908f Mon Sep 17 00:00:00 2001 From: Christian Glusa Date: Tue, 4 Dec 2018 17:15:00 -0700 Subject: [PATCH 1/2] MueLu RefMaxwell: Add missing ZoltanInterface header --- packages/muelu/adapters/xpetra/MueLu_RefMaxwell_decl.hpp | 1 + packages/muelu/adapters/xpetra/MueLu_RefMaxwell_def.hpp | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/muelu/adapters/xpetra/MueLu_RefMaxwell_decl.hpp b/packages/muelu/adapters/xpetra/MueLu_RefMaxwell_decl.hpp index 44d6a4c9e826..344bbbe4743b 100644 --- a/packages/muelu/adapters/xpetra/MueLu_RefMaxwell_decl.hpp +++ b/packages/muelu/adapters/xpetra/MueLu_RefMaxwell_decl.hpp @@ -66,6 +66,7 @@ #include "MueLu_UncoupledAggregationFactory_kokkos_fwd.hpp" #endif +#include "MueLu_ZoltanInterface_fwd.hpp" #include "MueLu_Zoltan2Interface_fwd.hpp" #include "MueLu_RepartitionHeuristicFactory_fwd.hpp" #include "MueLu_RepartitionFactory_fwd.hpp" diff --git a/packages/muelu/adapters/xpetra/MueLu_RefMaxwell_def.hpp b/packages/muelu/adapters/xpetra/MueLu_RefMaxwell_def.hpp index bffed69a5e99..4e2ba6b5e472 100644 --- a/packages/muelu/adapters/xpetra/MueLu_RefMaxwell_def.hpp +++ b/packages/muelu/adapters/xpetra/MueLu_RefMaxwell_def.hpp @@ -82,6 +82,7 @@ #include #endif +#include "MueLu_ZoltanInterface.hpp" #include "MueLu_Zoltan2Interface.hpp" #include "MueLu_RepartitionHeuristicFactory.hpp" #include "MueLu_RepartitionFactory.hpp" From 880de80550323d6d4c211a98ced72015aff7ddd9 Mon Sep 17 00:00:00 2001 From: Christian Glusa Date: Wed, 5 Dec 2018 17:13:47 -0700 Subject: [PATCH 2/2] MueLu: Fix 'export data' Addresses Issue #3991 --- packages/muelu/src/Interface/MueLu_HierarchyManager.hpp | 4 ++-- .../src/Rebalancing/MueLu_RebalanceTransferFactory_def.hpp | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/muelu/src/Interface/MueLu_HierarchyManager.hpp b/packages/muelu/src/Interface/MueLu_HierarchyManager.hpp index d28e3949c437..62ed03f4247e 100644 --- a/packages/muelu/src/Interface/MueLu_HierarchyManager.hpp +++ b/packages/muelu/src/Interface/MueLu_HierarchyManager.hpp @@ -339,9 +339,9 @@ namespace MueLu { if (data[i] < H.GetNumLevels()) { RCP L = H.GetLevel(data[i]); - if (data[i] < levelManagers_.size() && L->IsAvailable(name,&*levelManagers_[i]->GetFactory(name))) { + if (data[i] < levelManagers_.size() && L->IsAvailable(name,&*levelManagers_[data[i]]->GetFactory(name))) { // Try generating factory - RCP M = L->template Get< RCP >(name,&*levelManagers_[i]->GetFactory(name)); + RCP M = L->template Get< RCP >(name,&*levelManagers_[data[i]]->GetFactory(name)); if (!M.is_null()) { Xpetra::IO::Write(fileName,* M); } diff --git a/packages/muelu/src/Rebalancing/MueLu_RebalanceTransferFactory_def.hpp b/packages/muelu/src/Rebalancing/MueLu_RebalanceTransferFactory_def.hpp index 6acbf8122626..82a133cfcdc2 100644 --- a/packages/muelu/src/Rebalancing/MueLu_RebalanceTransferFactory_def.hpp +++ b/packages/muelu/src/Rebalancing/MueLu_RebalanceTransferFactory_def.hpp @@ -263,6 +263,9 @@ namespace MueLu { if (pL.isParameter("repartition: use subcommunicators") == true && pL.get("repartition: use subcommunicators") == true) permutedCoords->replaceMap(permutedCoords->getMap()->removeEmptyProcesses()); + if (permutedCoords->getMap() == Teuchos::null) + permutedCoords = Teuchos::null; + Set(coarseLevel, "Coordinates", permutedCoords); std::string fileName = "rebalanced_coordinates_level_" + toString(coarseLevel.GetLevelID()) + ".m"; @@ -282,6 +285,9 @@ namespace MueLu { if (pL.get("repartition: use subcommunicators") == true) permutedNullspace->replaceMap(permutedNullspace->getMap()->removeEmptyProcesses()); + if (permutedNullspace->getMap() == Teuchos::null) + permutedNullspace = Teuchos::null; + Set(coarseLevel, "Nullspace", permutedNullspace); }