diff --git a/dune/solvers/iterationsteps/amgstep.hh b/dune/solvers/iterationsteps/amgstep.hh index 3318585f0bb554ccaf7697b5e4e34789a259af41..fb077d09a7a7fc017abec9615aecb2a43fdd1075 100644 --- a/dune/solvers/iterationsteps/amgstep.hh +++ b/dune/solvers/iterationsteps/amgstep.hh @@ -7,6 +7,8 @@ \brief A wrapper class for the ISTL AMG implementation */ +#include <memory> + #include <dune/solvers/iterationsteps/lineariterationstep.hh> #include <dune/istl/paamg/amg.hh> @@ -43,8 +45,8 @@ public: { setProblem(*stiffnessMatrix, x, rhs); - fop_ = std::auto_ptr<Operator>(new Operator(*stiffnessMatrix)); - amg_ = std::auto_ptr<AMG>(new AMG(*fop_, coarseningCriterion, smootherArgs, 1, 1, 1, false)); + fop_ = std::unique_ptr<Operator>(new Operator(*stiffnessMatrix)); + amg_ = std::unique_ptr<AMG>(new AMG(*fop_, coarseningCriterion, smootherArgs, 1, 1, 1, false)); amg_->pre(*this->x_,*this->rhs_); } @@ -63,7 +65,7 @@ public: { LinearIterationStep<MatrixType, VectorType>::setProblem(stiffnessMatrix, x, rhs); - fop_ = std::auto_ptr<Operator>(new Operator(stiffnessMatrix)); + fop_ = std::unique_ptr<Operator>(new Operator(stiffnessMatrix)); } /** \brief Sets up an algebraic hierarchy @@ -85,16 +87,16 @@ public: private: /** \brief A matrix wrapper demanded by istl */ - std::auto_ptr<Operator> fop_; + std::unique_ptr<Operator> fop_; /** \brief The dune-istl AMG step */ - std::auto_ptr<AMG> amg_; + std::unique_ptr<AMG> amg_; }; template <class MatrixType, class VectorType> void AMGStep<MatrixType,VectorType>::preprocess() { - amg_ = std::auto_ptr<AMG>(new AMG(*fop_, coarseningCriterion_, smootherArgs_, 1, 1, 1, false)); + amg_ = std::unique_ptr<AMG>(new AMG(*fop_, coarseningCriterion_, smootherArgs_, 1, 1, 1, false)); amg_->pre(*this->x_,*this->rhs_); }