diff --git a/dune/solvers/solvers/loopsolver.cc b/dune/solvers/solvers/loopsolver.cc index bf98e04248096da3f38505d62402b529637c262b..075c760ae4f4ea20014de65deaef330c8b16c64e 100644 --- a/dune/solvers/solvers/loopsolver.cc +++ b/dune/solvers/solvers/loopsolver.cc @@ -16,6 +16,12 @@ void ::LoopSolver<VectorType, BitVectorType>::check() const IterativeSolver<VectorType,BitVectorType>::check(); } +template <class VectorType, class BitVectorType> +void LoopSolver<VectorType, BitVectorType>::preprocess() +{ + this->iterationStep_->preprocess(); +} + template <class VectorType, class BitVectorType> void LoopSolver<VectorType, BitVectorType>::solve() { @@ -25,8 +31,6 @@ void LoopSolver<VectorType, BitVectorType>::solve() // Check whether the solver is set up properly this->check(); - this->iterationStep_->preprocess(); - if (this->verbosity_ != NumProc::QUIET) std::cout << "--- LoopSolver ---\n"; diff --git a/dune/solvers/solvers/loopsolver.hh b/dune/solvers/solvers/loopsolver.hh index 7bb4185bedc757e7270c1ceefb5068687fc416b4..8312704b28f5f688b7882b400b1f0c31f45b842b 100644 --- a/dune/solvers/solvers/loopsolver.hh +++ b/dune/solvers/solvers/loopsolver.hh @@ -37,6 +37,8 @@ public: */ virtual void check() const; + virtual void preprocess(); + /** \brief Loop, call the iteration procedure * and monitor convergence */