Skip to content
Snippets Groups Projects
Commit caaaf7d5 authored by Jonathan Youett's avatar Jonathan Youett
Browse files

Don't use deprecated LoopSolver constructor taking raw pointers

parent 32f6b81c
No related branches found
No related tags found
No related merge requests found
...@@ -112,7 +112,7 @@ class ObstacleTNNMGStep ...@@ -112,7 +112,7 @@ class ObstacleTNNMGStep
linearSmoother_(Dune::Solvers::BlockGS::LocalSolvers::gs()), linearSmoother_(Dune::Solvers::BlockGS::LocalSolvers::gs()),
baseSolverStep_(Dune::Solvers::BlockGS::LocalSolvers::gs()), baseSolverStep_(Dune::Solvers::BlockGS::LocalSolvers::gs()),
baseSolverNorm_(baseSolverStep_), baseSolverNorm_(baseSolverStep_),
baseSolver_(&baseSolverStep_, 100, 1e-8, &baseSolverNorm_, LinearBaseSolver::QUIET), baseSolver_(baseSolverStep_, 100, 1e-8, baseSolverNorm_, LinearBaseSolver::QUIET),
preSmoothingSteps_(3), preSmoothingSteps_(3),
postSmoothingSteps_(3), postSmoothingSteps_(3),
linearIterationSteps_(1), linearIterationSteps_(1),
...@@ -158,7 +158,7 @@ class ObstacleTNNMGStep ...@@ -158,7 +158,7 @@ class ObstacleTNNMGStep
linearMGStep_.setTransferOperators(transfer_); linearMGStep_.setTransferOperators(transfer_);
linearMGStep_.setSmoother(&linearSmoother_); linearMGStep_.setSmoother(&linearSmoother_);
linearMGStep_.basesolver_ = &baseSolver_; linearMGStep_.setBaseSolver(baseSolver_);
linearMGStep_.setMGType(1, linearPreSmoothingSteps_, linearPostSmoothingSteps_); linearMGStep_.setMGType(1, linearPreSmoothingSteps_, linearPostSmoothingSteps_);
hasObstacle_.resize(x_->size()); hasObstacle_.resize(x_->size());
......
...@@ -83,7 +83,7 @@ struct CGTestSuite ...@@ -83,7 +83,7 @@ struct CGTestSuite
cgStep(p.A, u_copy, rhs_copy); cgStep(p.A, u_copy, rhs_copy);
cgStep.setIgnore(p.ignore); cgStep.setIgnore(p.ignore);
::LoopSolver<typename Problem::Vector> solver( ::LoopSolver<typename Problem::Vector> solver(
&cgStep, maxIterations, stepTol, &p.twoNorm, Solver::QUIET, cgStep, maxIterations, stepTol, p.twoNorm, Solver::QUIET,
relativeErrors, &p.u_ex); relativeErrors, &p.u_ex);
solver.check(); solver.check();
solver.preprocess(); solver.preprocess();
...@@ -115,7 +115,7 @@ struct CGTestSuite ...@@ -115,7 +115,7 @@ struct CGTestSuite
if (withIgnore) if (withIgnore)
cgStep.setIgnore(p.ignore); cgStep.setIgnore(p.ignore);
::LoopSolver<typename Problem::Vector> solver( ::LoopSolver<typename Problem::Vector> solver(
&cgStep, maxIterations, stepTol, &p.twoNorm, verbosity, cgStep, maxIterations, stepTol, p.twoNorm, verbosity,
relativeErrors, &p.u_ex); relativeErrors, &p.u_ex);
solver.check(); solver.check();
timer.reset(); timer.reset();
...@@ -143,7 +143,7 @@ struct CGTestSuite ...@@ -143,7 +143,7 @@ struct CGTestSuite
if (withIgnore) if (withIgnore)
cgStep.setIgnore(p.ignore); cgStep.setIgnore(p.ignore);
::LoopSolver<typename Problem::Vector> solver( ::LoopSolver<typename Problem::Vector> solver(
&cgStep, maxIterations, stepTol, &p.twoNorm, verbosity, cgStep, maxIterations, stepTol, p.twoNorm, verbosity,
relativeErrors, &p.u_ex); relativeErrors, &p.u_ex);
solver.check(); solver.check();
timer.reset(); timer.reset();
...@@ -167,7 +167,7 @@ struct CGTestSuite ...@@ -167,7 +167,7 @@ struct CGTestSuite
typename Problem::Vector> typename Problem::Vector>
cgStep(p.A, u_copy, rhs_copy, ilu0); cgStep(p.A, u_copy, rhs_copy, ilu0);
::LoopSolver<typename Problem::Vector> solver( ::LoopSolver<typename Problem::Vector> solver(
&cgStep, maxIterations, stepTol, &p.twoNorm, verbosity, cgStep, maxIterations, stepTol, p.twoNorm, verbosity,
relativeErrors, &p.u_ex); relativeErrors, &p.u_ex);
solver.check(); solver.check();
timer.reset(); timer.reset();
...@@ -189,7 +189,7 @@ struct CGTestSuite ...@@ -189,7 +189,7 @@ struct CGTestSuite
typename Problem::Vector> typename Problem::Vector>
cgStep(p.A, u_copy, rhs_copy, ssor); cgStep(p.A, u_copy, rhs_copy, ssor);
::LoopSolver<typename Problem::Vector> solver( ::LoopSolver<typename Problem::Vector> solver(
&cgStep, maxIterations, stepTol, &p.twoNorm, verbosity, cgStep, maxIterations, stepTol, p.twoNorm, verbosity,
relativeErrors, &p.u_ex); relativeErrors, &p.u_ex);
solver.check(); solver.check();
timer.reset(); timer.reset();
...@@ -211,7 +211,7 @@ struct CGTestSuite ...@@ -211,7 +211,7 @@ struct CGTestSuite
typename Problem::Vector> typename Problem::Vector>
cgStep(p.A, u_copy, rhs_copy, ssor); cgStep(p.A, u_copy, rhs_copy, ssor);
::LoopSolver<typename Problem::Vector> solver( ::LoopSolver<typename Problem::Vector> solver(
&cgStep, maxIterations, stepTol, &p.twoNorm, verbosity, cgStep, maxIterations, stepTol, p.twoNorm, verbosity,
relativeErrors, &p.u_ex); relativeErrors, &p.u_ex);
solver.check(); solver.check();
timer.reset(); timer.reset();
...@@ -233,7 +233,7 @@ struct CGTestSuite ...@@ -233,7 +233,7 @@ struct CGTestSuite
typename Problem::Vector> typename Problem::Vector>
cgStep(p.A, u_copy, rhs_copy, ssor); cgStep(p.A, u_copy, rhs_copy, ssor);
::LoopSolver<typename Problem::Vector> solver( ::LoopSolver<typename Problem::Vector> solver(
&cgStep, maxIterations, stepTol, &p.twoNorm, verbosity, cgStep, maxIterations, stepTol, p.twoNorm, verbosity,
relativeErrors, &p.u_ex); relativeErrors, &p.u_ex);
solver.check(); solver.check();
timer.reset(); timer.reset();
...@@ -255,7 +255,7 @@ struct CGTestSuite ...@@ -255,7 +255,7 @@ struct CGTestSuite
typename Problem::Vector> typename Problem::Vector>
cgStep(p.A, u_copy, rhs_copy, ssor); cgStep(p.A, u_copy, rhs_copy, ssor);
::LoopSolver<typename Problem::Vector> solver( ::LoopSolver<typename Problem::Vector> solver(
&cgStep, maxIterations, stepTol, &p.twoNorm, verbosity, cgStep, maxIterations, stepTol, p.twoNorm, verbosity,
relativeErrors, &p.u_ex); relativeErrors, &p.u_ex);
solver.check(); solver.check();
timer.reset(); timer.reset();
......
...@@ -54,7 +54,7 @@ struct GSTestSuite { ...@@ -54,7 +54,7 @@ struct GSTestSuite {
step->setProblem(p.A, u_init, p.rhs); step->setProblem(p.A, u_init, p.rhs);
step->setIgnore(p.ignore); step->setIgnore(p.ignore);
LoopSolver solver(step, maxIterations, stepTol, &p.energyNorm, verbosity, LoopSolver solver(*step, maxIterations, stepTol, p.energyNorm, verbosity,
relativeErrors); relativeErrors);
solver.check(); solver.check();
solver.preprocess(); solver.preprocess();
......
...@@ -42,10 +42,10 @@ void solveObstacleProblemByMMGSolver(const GridType& grid, const MatrixType& mat ...@@ -42,10 +42,10 @@ void solveObstacleProblemByMMGSolver(const GridType& grid, const MatrixType& mat
EnergyNorm<MatrixType, VectorType> baseEnergyNorm(baseSolverStep); EnergyNorm<MatrixType, VectorType> baseEnergyNorm(baseSolverStep);
::LoopSolver<VectorType> baseSolver(&baseSolverStep, ::LoopSolver<VectorType> baseSolver(baseSolverStep,
100, // base iterations 100, // base iterations
1e-8, // tolerance 1e-8, // tolerance
&baseEnergyNorm, baseEnergyNorm,
Solver::QUIET); Solver::QUIET);
// Make pre and postsmoothers // Make pre and postsmoothers
...@@ -58,7 +58,7 @@ void solveObstacleProblemByMMGSolver(const GridType& grid, const MatrixType& mat ...@@ -58,7 +58,7 @@ void solveObstacleProblemByMMGSolver(const GridType& grid, const MatrixType& mat
mmgStep.setIgnore(ignore); mmgStep.setIgnore(ignore);
mmgStep.setBaseSolver(baseSolver); mmgStep.setBaseSolver(baseSolver);
mmgStep.setSmoother(&smoother); mmgStep.setSmoother(&smoother);
mmgStep.setObstacleRestrictor(std::make_shared<MandelObstacleRestrictor<VectorType> >()); mmgStep.setObstacleRestrictor(MandelObstacleRestrictor<VectorType>());
Dune::BitSetVector<blockSize> hasObstacle(x.size(),true); Dune::BitSetVector<blockSize> hasObstacle(x.size(),true);
mmgStep.hasObstacle_ = &hasObstacle; mmgStep.hasObstacle_ = &hasObstacle;
...@@ -84,10 +84,10 @@ void solveObstacleProblemByMMGSolver(const GridType& grid, const MatrixType& mat ...@@ -84,10 +84,10 @@ void solveObstacleProblemByMMGSolver(const GridType& grid, const MatrixType& mat
EnergyNorm<MatrixType,VectorType> h1SemiNorm(mat); EnergyNorm<MatrixType,VectorType> h1SemiNorm(mat);
::LoopSolver<VectorType> solver (&mmgStep, ::LoopSolver<VectorType> solver (mmgStep,
maxIterations, // iterations maxIterations, // iterations
tolerance, // tolerance tolerance, // tolerance
&h1SemiNorm, h1SemiNorm,
Solver::REDUCED); Solver::REDUCED);
// solve problem // solve problem
solver.preprocess(); solver.preprocess();
......
...@@ -75,7 +75,7 @@ struct MultigridTestSuite ...@@ -75,7 +75,7 @@ struct MultigridTestSuite
typename Problem::Norm basenorm(basesolver_step); 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 // create iteration step and set all kinds of data
MGStep mgStep; MGStep mgStep;
...@@ -87,7 +87,7 @@ struct MultigridTestSuite ...@@ -87,7 +87,7 @@ struct MultigridTestSuite
mgStep.setBaseSolver(basesolver); mgStep.setBaseSolver(basesolver);
// create loop solver // create loop solver
Solver solver(&mgStep, maxIterations, tol, &p.energyNorm, Solver::FULL); Solver solver(mgStep, maxIterations, tol, p.energyNorm, Solver::FULL);
// solve problem // solve problem
solver.preprocess(); solver.preprocess();
......
...@@ -78,7 +78,7 @@ void solveObstacleProblemByTNNMG(const GridType& grid, const MatrixType& mat, Ve ...@@ -78,7 +78,7 @@ void solveObstacleProblemByTNNMG(const GridType& grid, const MatrixType& mat, Ve
tnnmgStep.nestedIteration(); tnnmgStep.nestedIteration();
// cretae loop solver // cretae loop solver
Solver solver(&tnnmgStep, maxIterations, tolerance, &norm, Solver::FULL); Solver solver(tnnmgStep, maxIterations, tolerance, norm, Solver::FULL);
// solve problem // solve problem
solver.solve(); solver.solve();
......
...@@ -43,10 +43,10 @@ bool solveObstacleProblemByProjectedGradientSolver(const MatrixType& mat, Vector ...@@ -43,10 +43,10 @@ bool solveObstacleProblemByProjectedGradientSolver(const MatrixType& mat, Vector
//projGrad.iterate(); //projGrad.iterate();
EnergyNorm<MatrixType,VectorType>* h1SemiNorm = new EnergyNorm<MatrixType,VectorType>(mat); EnergyNorm<MatrixType,VectorType>* h1SemiNorm = new EnergyNorm<MatrixType,VectorType>(mat);
::LoopSolver<VectorType> solver (&projGradStep, ::LoopSolver<VectorType> solver (projGradStep,
maxIterations, // iterations maxIterations, // iterations
tolerance, // tolerance tolerance, // tolerance
h1SemiNorm, *h1SemiNorm,
Solver::REDUCED); Solver::REDUCED);
solver.solve(); solver.solve();
x = projGradStep.getSol(); x = projGradStep.getSol();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment