From 76b268c73044bb986dd92b204c82872fb8c93652 Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Wed, 14 May 2014 15:08:34 +0000
Subject: [PATCH] Argg, can't use FE basis size in parallel...

[[Imported from SVN: r9729]]
---
 dune/gfe/riemanniantrsolver.cc | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/dune/gfe/riemanniantrsolver.cc b/dune/gfe/riemanniantrsolver.cc
index 2f006349..46eb6c58 100644
--- a/dune/gfe/riemanniantrsolver.cc
+++ b/dune/gfe/riemanniantrsolver.cc
@@ -213,7 +213,14 @@ setup(const GridType& grid,
     if (rank==0)
     {
         hasObstacle_.resize(numLevels);
+
+#if defined THIRD_ORDER || defined SECOND_ORDER
+        // This does not work in parallel
         hasObstacle_.back().resize(basis.size(), true);
+#else
+        // This does not work for higher-order FE
+        hasObstacle_.back().resize(guIndex_->nGlobalEntity(), true);
+#endif
         // If there is more than one level use the transfer operators to determine the correct coarse level system sizes
         for (int i=0; i<hasObstacle_.size()-1; i++)
             hasObstacle_[i].resize(dynamic_cast<TruncatedCompressedMGTransfer<CorrectionType>* >(mmgStep->mgTransfer_[i])->getMatrix().M(),true);
@@ -350,7 +357,7 @@ void RiemannianTrustRegionSolver<GridType,TargetSpace>::solve()
             }
 
             recomputeGradientHessian = false;
-            
+
         }
 
         if (rank==0)
-- 
GitLab