From 773884ad550d15976e244f4ffb89577704e92a0a Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Tue, 27 May 2014 15:03:16 +0000
Subject: [PATCH] [bugfix] h1SemiNorm matrix needs to be transfered to the
 master process, too.

[[Imported from SVN: r9771]]
---
 dune/gfe/riemanniantrsolver.cc | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/dune/gfe/riemanniantrsolver.cc b/dune/gfe/riemanniantrsolver.cc
index e6223d01..0d65e6d5 100644
--- a/dune/gfe/riemanniantrsolver.cc
+++ b/dune/gfe/riemanniantrsolver.cc
@@ -118,13 +118,17 @@ setup(const GridType& grid,
 
     LaplaceAssembler<GridType, typename BasisType::LocalFiniteElement, typename BasisType::LocalFiniteElement> laplaceStiffness;
     typedef Dune::BCRSMatrix<Dune::FieldMatrix<double,1,1> > ScalarMatrixType;
-    ScalarMatrixType* A = new ScalarMatrixType;
+    ScalarMatrixType localA;
 
-    operatorAssembler.assemble(laplaceStiffness, *A);
+    operatorAssembler.assemble(laplaceStiffness, localA);
 
     if (h1SemiNorm_)
         delete h1SemiNorm_;
 
+
+    MatrixCommunicator<GUIndex, ScalarMatrixType> matrixComm(*guIndex_, 0);
+    ScalarMatrixType* A = new ScalarMatrixType(matrixComm.reduceAdd(localA));
+
     h1SemiNorm_ = new H1SemiNorm<CorrectionType>(*A);
 
     innerSolver_ = std::shared_ptr<LoopSolver<CorrectionType> >(new ::LoopSolver<CorrectionType>(mmgStep,
-- 
GitLab