diff --git a/dune-solvers/iterationsteps/multigridstep.hh b/dune-solvers/iterationsteps/multigridstep.hh index 32436cde1e4aa1d20797c318e65a337bfefc201d..2ce4cf9e26d2045d5c789a52a84ff2bcf0142ea7 100644 --- a/dune-solvers/iterationsteps/multigridstep.hh +++ b/dune-solvers/iterationsteps/multigridstep.hh @@ -169,10 +169,24 @@ */ virtual void setMGType(int mu, int nu1, int nu2); + /** \brief Set the smoother iteration step */ + virtual void setSmoother(LinearIterationStep<OperatorType, VectorType>* smoother) { + presmoother_ = postsmoother_ = smoother; + } + + /** \brief Set pre- and post smoothers individually */ + virtual void setSmoother(LinearIterationStep<OperatorType, VectorType>* preSmoother, + LinearIterationStep<OperatorType, VectorType>* postSmoother) { + presmoother_ = preSmoother; + postsmoother_ = postSmoother; + } + + protected: LinearIterationStep<OperatorType, VectorType>* presmoother_; LinearIterationStep<OperatorType, VectorType>* postsmoother_; + public: Solver* basesolver_; protected: