From d7410cac5faba6427038fc94e10f32d2acea8513 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Carsten=20Gr=C3=A4ser?= <graeser@mi.fu-berlin.de>
Date: Sun, 10 Mar 2013 21:09:22 +0000
Subject: [PATCH] Remove setNumberOfLevels, fix nested iteration for single
 level grids

[[Imported from SVN: r8216]]
---
 dune/solvers/iterationsteps/obstacletnnmgstep.hh | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/dune/solvers/iterationsteps/obstacletnnmgstep.hh b/dune/solvers/iterationsteps/obstacletnnmgstep.hh
index dec535ca..2efefd92 100644
--- a/dune/solvers/iterationsteps/obstacletnnmgstep.hh
+++ b/dune/solvers/iterationsteps/obstacletnnmgstep.hh
@@ -150,7 +150,6 @@ class ObstacleTNNMGStep
             coarseCorrection_.resize(x_->size());
             temp_.resize(x_->size());
 
-            linearMGStep_.setNumberOfLevels(transfer_.size()+1);
             linearMGStep_.setTransferOperators(transfer_);
             linearMGStep_.setSmoother(&linearSmoother_);
             linearMGStep_.basesolver_ = &baseSolver_;
@@ -359,6 +358,11 @@ class ObstacleTNNMGStep
         void nestedIteration(int coarseIterationSteps=2)
         {
             int maxLevel = transfer_.size();
+            if (maxLevel==0)
+            {
+                *x_ = 0.0;
+                return;
+            }
 
             std::vector<Matrix> coarseMatrix(maxLevel);
             std::vector<Vector> coarseSolution(maxLevel);
-- 
GitLab