From 51303739e521203d7e66744cc27f98a34be141b8 Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Wed, 14 May 2014 15:27:31 +0000
Subject: [PATCH] Use the new methods VectorCommunicator::reduceAdd and
 ...::reduceCopy

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

diff --git a/dune/gfe/riemanniantrsolver.cc b/dune/gfe/riemanniantrsolver.cc
index 46eb6c58..322d6053 100644
--- a/dune/gfe/riemanniantrsolver.cc
+++ b/dune/gfe/riemanniantrsolver.cc
@@ -95,10 +95,8 @@ setup(const GridType& grid,
 
     // Transfer all Dirichlet data to the master processor
     VectorCommunicator<GUIndex, Dune::BitSetVector<blocksize> > vectorComm(*guIndex_, 0);
-    vectorComm.transferVector(dirichletNodes);
     Dune::BitSetVector<blocksize>* globalDirichletNodes = NULL;
-    if (rank==0)
-        globalDirichletNodes = new Dune::BitSetVector<blocksize>(vectorComm.copyIntoGlobalVector());
+    globalDirichletNodes = new Dune::BitSetVector<blocksize>(vectorComm.reduceCopy(dirichletNodes));
 
     // Make pre and postsmoothers
     TrustRegionGSStep<MatrixType, CorrectionType>* presmoother  = new TrustRegionGSStep<MatrixType, CorrectionType>;
@@ -346,14 +344,11 @@ void RiemannianTrustRegionSolver<GridType,TargetSpace>::solve()
             matrixComm.transferMatrix(*hessianMatrix_);
 
             // Transfer vector data
-            vectorComm.transferVector(rhs);
+            rhs_global = vectorComm.reduceAdd(rhs);
 
             if (rank ==0) {
               // Create global stiffnessMatrix
               stiffnessMatrix = matrixComm.createGlobalMatrix();
-
-              // Create global right hand side
-              rhs_global = vectorComm.createGlobalVector();
             }
 
             recomputeGradientHessian = false;
-- 
GitLab