diff --git a/dune/solvers/iterationsteps/obstacletnnmgstep.hh b/dune/solvers/iterationsteps/obstacletnnmgstep.hh index dec535cab1aae5854b4c2a187675f466d2eb0164..2efefd926491307cb172dbe6f2f8be103f6db92f 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);