From caaaf7d599bec7d6c34ffee94739b1677596ee1c Mon Sep 17 00:00:00 2001
From: Jonathan Youett <youett@math.fu-berlin.de>
Date: Fri, 1 Sep 2017 11:59:40 +0200
Subject: [PATCH] Don't use deprecated LoopSolver constructor taking raw
 pointers

---
 dune/solvers/iterationsteps/obstacletnnmgstep.hh |  4 ++--
 dune/solvers/test/cgsteptest.cc                  | 16 ++++++++--------
 dune/solvers/test/gssteptest.cc                  |  2 +-
 dune/solvers/test/mmgtest.cc                     | 10 +++++-----
 dune/solvers/test/multigridtest.cc               |  4 ++--
 dune/solvers/test/obstacletnnmgtest.cc           |  2 +-
 dune/solvers/test/projectedgradienttest.cc       |  4 ++--
 7 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/dune/solvers/iterationsteps/obstacletnnmgstep.hh b/dune/solvers/iterationsteps/obstacletnnmgstep.hh
index f1a5b6b9..09e2db71 100644
--- a/dune/solvers/iterationsteps/obstacletnnmgstep.hh
+++ b/dune/solvers/iterationsteps/obstacletnnmgstep.hh
@@ -112,7 +112,7 @@ class ObstacleTNNMGStep
             linearSmoother_(Dune::Solvers::BlockGS::LocalSolvers::gs()),
             baseSolverStep_(Dune::Solvers::BlockGS::LocalSolvers::gs()),
             baseSolverNorm_(baseSolverStep_),
-            baseSolver_(&baseSolverStep_, 100, 1e-8, &baseSolverNorm_, LinearBaseSolver::QUIET),
+            baseSolver_(baseSolverStep_, 100, 1e-8, baseSolverNorm_, LinearBaseSolver::QUIET),
             preSmoothingSteps_(3),
             postSmoothingSteps_(3),
             linearIterationSteps_(1),
@@ -158,7 +158,7 @@ class ObstacleTNNMGStep
 
             linearMGStep_.setTransferOperators(transfer_);
             linearMGStep_.setSmoother(&linearSmoother_);
-            linearMGStep_.basesolver_ = &baseSolver_;
+            linearMGStep_.setBaseSolver(baseSolver_);
             linearMGStep_.setMGType(1, linearPreSmoothingSteps_, linearPostSmoothingSteps_);
 
             hasObstacle_.resize(x_->size());
diff --git a/dune/solvers/test/cgsteptest.cc b/dune/solvers/test/cgsteptest.cc
index 0ccc7372..f7540138 100644
--- a/dune/solvers/test/cgsteptest.cc
+++ b/dune/solvers/test/cgsteptest.cc
@@ -83,7 +83,7 @@ struct CGTestSuite
               cgStep(p.A, u_copy, rhs_copy);
           cgStep.setIgnore(p.ignore);
           ::LoopSolver<typename Problem::Vector> solver(
-              &cgStep, maxIterations, stepTol, &p.twoNorm, Solver::QUIET,
+              cgStep, maxIterations, stepTol, p.twoNorm, Solver::QUIET,
               relativeErrors, &p.u_ex);
           solver.check();
           solver.preprocess();
@@ -115,7 +115,7 @@ struct CGTestSuite
             if (withIgnore)
                 cgStep.setIgnore(p.ignore);
             ::LoopSolver<typename Problem::Vector> solver(
-                &cgStep, maxIterations, stepTol, &p.twoNorm, verbosity,
+                cgStep, maxIterations, stepTol, p.twoNorm, verbosity,
                 relativeErrors, &p.u_ex);
             solver.check();
             timer.reset();
@@ -143,7 +143,7 @@ struct CGTestSuite
             if (withIgnore)
                 cgStep.setIgnore(p.ignore);
             ::LoopSolver<typename Problem::Vector> solver(
-                &cgStep, maxIterations, stepTol, &p.twoNorm, verbosity,
+                cgStep, maxIterations, stepTol, p.twoNorm, verbosity,
                 relativeErrors, &p.u_ex);
             solver.check();
             timer.reset();
@@ -167,7 +167,7 @@ struct CGTestSuite
                                   typename Problem::Vector>
                 cgStep(p.A, u_copy, rhs_copy, ilu0);
             ::LoopSolver<typename Problem::Vector> solver(
-                &cgStep, maxIterations, stepTol, &p.twoNorm, verbosity,
+                cgStep, maxIterations, stepTol, p.twoNorm, verbosity,
                 relativeErrors, &p.u_ex);
             solver.check();
             timer.reset();
@@ -189,7 +189,7 @@ struct CGTestSuite
                                   typename Problem::Vector>
                 cgStep(p.A, u_copy, rhs_copy, ssor);
             ::LoopSolver<typename Problem::Vector> solver(
-                &cgStep, maxIterations, stepTol, &p.twoNorm, verbosity,
+                cgStep, maxIterations, stepTol, p.twoNorm, verbosity,
                 relativeErrors, &p.u_ex);
             solver.check();
             timer.reset();
@@ -211,7 +211,7 @@ struct CGTestSuite
                                   typename Problem::Vector>
                 cgStep(p.A, u_copy, rhs_copy, ssor);
             ::LoopSolver<typename Problem::Vector> solver(
-                &cgStep, maxIterations, stepTol, &p.twoNorm, verbosity,
+                cgStep, maxIterations, stepTol, p.twoNorm, verbosity,
                 relativeErrors, &p.u_ex);
             solver.check();
             timer.reset();
@@ -233,7 +233,7 @@ struct CGTestSuite
                                   typename Problem::Vector>
                 cgStep(p.A, u_copy, rhs_copy, ssor);
             ::LoopSolver<typename Problem::Vector> solver(
-                &cgStep, maxIterations, stepTol, &p.twoNorm, verbosity,
+                cgStep, maxIterations, stepTol, p.twoNorm, verbosity,
                 relativeErrors, &p.u_ex);
             solver.check();
             timer.reset();
@@ -255,7 +255,7 @@ struct CGTestSuite
                                   typename Problem::Vector>
                 cgStep(p.A, u_copy, rhs_copy, ssor);
             ::LoopSolver<typename Problem::Vector> solver(
-                &cgStep, maxIterations, stepTol, &p.twoNorm, verbosity,
+                cgStep, maxIterations, stepTol, p.twoNorm, verbosity,
                 relativeErrors, &p.u_ex);
             solver.check();
             timer.reset();
diff --git a/dune/solvers/test/gssteptest.cc b/dune/solvers/test/gssteptest.cc
index 2296fa9d..55385928 100644
--- a/dune/solvers/test/gssteptest.cc
+++ b/dune/solvers/test/gssteptest.cc
@@ -54,7 +54,7 @@ struct GSTestSuite {
       step->setProblem(p.A, u_init, p.rhs);
       step->setIgnore(p.ignore);
 
-      LoopSolver solver(step, maxIterations, stepTol, &p.energyNorm, verbosity,
+      LoopSolver solver(*step, maxIterations, stepTol, p.energyNorm, verbosity,
                         relativeErrors);
       solver.check();
       solver.preprocess();
diff --git a/dune/solvers/test/mmgtest.cc b/dune/solvers/test/mmgtest.cc
index af9bfccf..0288bab7 100644
--- a/dune/solvers/test/mmgtest.cc
+++ b/dune/solvers/test/mmgtest.cc
@@ -42,10 +42,10 @@ void solveObstacleProblemByMMGSolver(const GridType& grid, const MatrixType& mat
 
     EnergyNorm<MatrixType, VectorType> baseEnergyNorm(baseSolverStep);
 
-    ::LoopSolver<VectorType> baseSolver(&baseSolverStep,
+    ::LoopSolver<VectorType> baseSolver(baseSolverStep,
                                          100,   // base iterations
                                          1e-8,  // tolerance
-                                         &baseEnergyNorm,
+                                         baseEnergyNorm,
                                          Solver::QUIET);
 
     // Make pre and postsmoothers
@@ -58,7 +58,7 @@ void solveObstacleProblemByMMGSolver(const GridType& grid, const MatrixType& mat
     mmgStep.setIgnore(ignore);
     mmgStep.setBaseSolver(baseSolver);
     mmgStep.setSmoother(&smoother);
-    mmgStep.setObstacleRestrictor(std::make_shared<MandelObstacleRestrictor<VectorType> >());
+    mmgStep.setObstacleRestrictor(MandelObstacleRestrictor<VectorType>());
 
     Dune::BitSetVector<blockSize> hasObstacle(x.size(),true);
     mmgStep.hasObstacle_       = &hasObstacle;
@@ -84,10 +84,10 @@ void solveObstacleProblemByMMGSolver(const GridType& grid, const MatrixType& mat
 
     EnergyNorm<MatrixType,VectorType> h1SemiNorm(mat);
 
-    ::LoopSolver<VectorType> solver (&mmgStep,
+    ::LoopSolver<VectorType> solver (mmgStep,
                                    maxIterations,    // iterations
                                    tolerance,   // tolerance
-                                   &h1SemiNorm,
+                                   h1SemiNorm,
                                    Solver::REDUCED);
     // solve problem
     solver.preprocess();
diff --git a/dune/solvers/test/multigridtest.cc b/dune/solvers/test/multigridtest.cc
index a2aefae5..be4eb374 100644
--- a/dune/solvers/test/multigridtest.cc
+++ b/dune/solvers/test/multigridtest.cc
@@ -75,7 +75,7 @@ struct MultigridTestSuite
 
         typename Problem::Norm basenorm(basesolver_step);
 
-        Solver basesolver(&basesolver_step, 1, 1e-10, &basenorm, Solver::QUIET);
+        Solver basesolver(basesolver_step, 1, 1e-10, basenorm, Solver::QUIET);
 
         // create iteration step and set all kinds of data
         MGStep mgStep;
@@ -87,7 +87,7 @@ struct MultigridTestSuite
         mgStep.setBaseSolver(basesolver);
 
         // create loop solver
-        Solver solver(&mgStep, maxIterations, tol, &p.energyNorm, Solver::FULL);
+        Solver solver(mgStep, maxIterations, tol, p.energyNorm, Solver::FULL);
 
         // solve problem
         solver.preprocess();
diff --git a/dune/solvers/test/obstacletnnmgtest.cc b/dune/solvers/test/obstacletnnmgtest.cc
index 6321ca03..d7a55e48 100644
--- a/dune/solvers/test/obstacletnnmgtest.cc
+++ b/dune/solvers/test/obstacletnnmgtest.cc
@@ -78,7 +78,7 @@ void solveObstacleProblemByTNNMG(const GridType& grid, const MatrixType& mat, Ve
     tnnmgStep.nestedIteration();
 
     // cretae loop solver
-    Solver solver(&tnnmgStep, maxIterations, tolerance, &norm, Solver::FULL);
+    Solver solver(tnnmgStep, maxIterations, tolerance, norm, Solver::FULL);
 
     // solve problem
     solver.solve();
diff --git a/dune/solvers/test/projectedgradienttest.cc b/dune/solvers/test/projectedgradienttest.cc
index 7eeef5fd..131c73b0 100644
--- a/dune/solvers/test/projectedgradienttest.cc
+++ b/dune/solvers/test/projectedgradienttest.cc
@@ -43,10 +43,10 @@ bool solveObstacleProblemByProjectedGradientSolver(const MatrixType& mat, Vector
     //projGrad.iterate();
     EnergyNorm<MatrixType,VectorType>* h1SemiNorm = new EnergyNorm<MatrixType,VectorType>(mat);
 
-    ::LoopSolver<VectorType> solver (&projGradStep,
+    ::LoopSolver<VectorType> solver (projGradStep,
                                     maxIterations,    // iterations
                                     tolerance,   // tolerance
-                                    h1SemiNorm,
+                                    *h1SemiNorm,
                                     Solver::REDUCED);
     solver.solve();
     x = projGradStep.getSol();
-- 
GitLab