From c28b8cf343350248f416b678cb094e6a8ae9d6e8 Mon Sep 17 00:00:00 2001 From: Rebecca Neumann <rebecca@dune-project.org> Date: Fri, 13 May 2011 10:09:46 +0000 Subject: [PATCH] add additional communication needed for ALU [[Imported from SVN: r1476]] --- dune/istl/paamg/globalaggregates.hh | 5 +++++ dune/istl/repartition.hh | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/dune/istl/paamg/globalaggregates.hh b/dune/istl/paamg/globalaggregates.hh index 65ba082d9..ee7ab5ece 100644 --- a/dune/istl/paamg/globalaggregates.hh +++ b/dune/istl/paamg/globalaggregates.hh @@ -159,6 +159,11 @@ namespace Dune typedef Dune::Amg::GlobalAggregatesMap<Vertex,IndexSet> GlobalMap; GlobalMap gmap(aggregates, globalLookup); pinfo.copyOwnerToAll(gmap,gmap); + // communication only needed for ALU + // (ghosts with same global id as owners on the same process) + if (pinfo.getSolverCategory() == + static_cast<int>(SolverCategory::nonoverlapping)) + pinfo.copyCopyToAll(gmap,gmap); typedef typename ParallelInformation::RemoteIndices::const_iterator Lists; Lists lists = pinfo.remoteIndices().find(pinfo.communicator().rank()); diff --git a/dune/istl/repartition.hh b/dune/istl/repartition.hh index f0228b545..96f6dadde 100644 --- a/dune/istl/repartition.hh +++ b/dune/istl/repartition.hh @@ -1416,6 +1416,11 @@ namespace Dune delete[] part; oocomm.copyOwnerToAll(setPartition, setPartition); + // communication only needed for ALU + // (ghosts with same global id as owners on the same process) + if (oocomm.getSolverCategory() == + static_cast<int>(SolverCategory::nonoverlapping)) + oocomm.copyCopyToAll(setPartition, setPartition); bool ret = buildCommunication(graph, setPartition, oocomm, outcomm, redistInf, verbose); if(verbose) { -- GitLab