From 6e185d82c733cc3881b1a2a821bb34f5870892f4 Mon Sep 17 00:00:00 2001
From: Oliver Sander <oliver.sander@tu-dresden.de>
Date: Tue, 15 Mar 2016 14:31:05 +0100
Subject: [PATCH] Use DefaultBitVector_t

... instead of explicitly hard-wiring BitSetVector.  With this change, vectors
of arbitrary nesting depth can be used.
---
 dune/solvers/iterationsteps/lineariterationstep.hh | 3 ++-
 dune/solvers/solvers/loopsolver.hh                 | 4 ++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/dune/solvers/iterationsteps/lineariterationstep.hh b/dune/solvers/iterationsteps/lineariterationstep.hh
index 5791782d..41a8ea45 100644
--- a/dune/solvers/iterationsteps/lineariterationstep.hh
+++ b/dune/solvers/iterationsteps/lineariterationstep.hh
@@ -10,11 +10,12 @@
 #include <dune/common/shared_ptr.hh>
 
 #include <dune/solvers/common/preconditioner.hh>
+#include <dune/solvers/common/defaultbitvector.hh>
 
 #include "iterationstep.hh"
 
 //! Base class for iteration steps being called by an iterative linear solver
-template<class MatrixType, class VectorType, class BitVectorType = Dune::BitSetVector<VectorType::block_type::dimension> >
+template<class MatrixType, class VectorType, class BitVectorType = Dune::Solvers::DefaultBitVector_t<VectorType> >
 class LinearIterationStep : public IterationStep<VectorType, BitVectorType>,
                             public Dune::Solvers::Preconditioner<MatrixType,
                                                                  VectorType,
diff --git a/dune/solvers/solvers/loopsolver.hh b/dune/solvers/solvers/loopsolver.hh
index 57e28cd8..b81b08a3 100644
--- a/dune/solvers/solvers/loopsolver.hh
+++ b/dune/solvers/solvers/loopsolver.hh
@@ -7,7 +7,7 @@
 #include <dune/solvers/iterationsteps/iterationstep.hh>
 #include <dune/solvers/norms/norm.hh>
 #include <dune/solvers/solvers/criterion.hh>
-
+#include <dune/solvers/common/defaultbitvector.hh>
 
 
 /** \brief A solver which consists of a single loop
@@ -15,7 +15,7 @@
   *  This class basically implements a loop that calls an iteration procedure
   *  (which is to be supplied by the user).  It also monitors convergence.
   */
-template <class VectorType, class BitVectorType = Dune::BitSetVector<VectorType::block_type::dimension> >
+template <class VectorType, class BitVectorType = Dune::Solvers::DefaultBitVector_t<VectorType> >
 class LoopSolver : public IterativeSolver<VectorType, BitVectorType>
 {
     typedef typename VectorType::field_type field_type;
-- 
GitLab