diff --git a/dune-solvers/iterationsteps/multigridstep.cc b/dune-solvers/iterationsteps/multigridstep.cc index c09f7a465fefd81d9025deb1b7681c1a652ec685..9faddf9b7805918ddd3420ac3edcd767ef4b2ac9 100644 --- a/dune-solvers/iterationsteps/multigridstep.cc +++ b/dune-solvers/iterationsteps/multigridstep.cc @@ -65,8 +65,7 @@ void MultigridStep<OperatorType, VectorType, BitVectorType>::preprocess() delete(this->mat_[i]); this->mat_[i] = NULL; } -// int nDofs = this->mgTransfer_[i]->getMatrix().M(); -// this->mat_[i] = new OperatorType(nDofs, nDofs, OperatorType::row_wise); + this->mat_[i] = new OperatorType; // Compute which entries are present in the (sparse) coarse grid stiffness @@ -110,9 +109,11 @@ void MultigridStep<OperatorType, VectorType, BitVectorType>::preprocess() if (this->basesolver_ == NULL) DUNE_THROW(SolverError, "You have not provided a base solver!"); - if (typeid(*this->basesolver_) == typeid(LoopSolver<VectorType>)) { + typedef ::LoopSolver<VectorType> DuneSolversLoopSolver; + + if (typeid(*this->basesolver_) == typeid(DuneSolversLoopSolver)) { - LoopSolver<VectorType>* loopBaseSolver = dynamic_cast<LoopSolver<VectorType>* > (this->basesolver_); + DuneSolversLoopSolver* loopBaseSolver = dynamic_cast<DuneSolversLoopSolver*> (this->basesolver_); typedef LinearIterationStep<OperatorType, VectorType> SmootherType; assert(dynamic_cast<SmootherType*>(loopBaseSolver->iterationStep_)); diff --git a/dune-solvers/solvers/loopsolver.cc b/dune-solvers/solvers/loopsolver.cc index 2e027f4c7188427f772a232a20f0165f466f3495..72c4f303eea7961a0d577cb8a8b76ba91c4cc4b5 100644 --- a/dune-solvers/solvers/loopsolver.cc +++ b/dune-solvers/solvers/loopsolver.cc @@ -4,7 +4,7 @@ #include <iomanip> template <class VectorType, class BitVectorType> -void LoopSolver<VectorType, BitVectorType>::check() const +void ::LoopSolver<VectorType, BitVectorType>::check() const { if (!iterationStep_) DUNE_THROW(SolverError, "You need to supply an iteration step to an iterative solver!"); @@ -16,7 +16,7 @@ void LoopSolver<VectorType, BitVectorType>::check() const } template <class VectorType, class BitVectorType> -void LoopSolver<VectorType, BitVectorType>::solve() +void ::LoopSolver<VectorType, BitVectorType>::solve() { int i;