From c7fa9269705fc6a82fa6e149f9546c3ce48315e1 Mon Sep 17 00:00:00 2001 From: Oliver Sander <oliver.sander@tu-dresden.de> Date: Wed, 9 May 2018 10:48:57 +0200 Subject: [PATCH] getIterationStep returns a shared_ptr now --- dune/solvers/iterationsteps/mmgstep.cc | 4 ++-- dune/solvers/iterationsteps/multigridstep.cc | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dune/solvers/iterationsteps/mmgstep.cc b/dune/solvers/iterationsteps/mmgstep.cc index 4ed55d96..a9d5f8ca 100644 --- a/dune/solvers/iterationsteps/mmgstep.cc +++ b/dune/solvers/iterationsteps/mmgstep.cc @@ -66,8 +66,8 @@ preprocess() typedef ProjectedBlockGSStep<MatrixType, VectorType> SmootherType; - dynamic_cast<SmootherType*>(&loopBaseSolver->getIterationStep())->hasObstacle_ = hasObstacleHierarchy_[0].get(); - dynamic_cast<SmootherType*>(&loopBaseSolver->getIterationStep())->obstacles_ = obstacleHierarchy_[0].get(); + std::dynamic_pointer_cast<SmootherType>(loopBaseSolver->getIterationStep())->hasObstacle_ = hasObstacleHierarchy_[0].get(); + std::dynamic_pointer_cast<SmootherType>(loopBaseSolver->getIterationStep())->obstacles_ = obstacleHierarchy_[0].get(); #if HAVE_IPOPT } else if (typeid(*this->basesolver_) == typeid(QuadraticIPOptSolver<MatrixType,VectorType>)) { diff --git a/dune/solvers/iterationsteps/multigridstep.cc b/dune/solvers/iterationsteps/multigridstep.cc index af839dc1..ad4523a1 100644 --- a/dune/solvers/iterationsteps/multigridstep.cc +++ b/dune/solvers/iterationsteps/multigridstep.cc @@ -154,10 +154,10 @@ void MultigridStep<MatrixType, VectorType, BitVectorType>::preprocess() DuneSolversLoopSolver* loopBaseSolver = dynamic_cast<DuneSolversLoopSolver*> (this->basesolver_.get()); - assert(dynamic_cast<SmootherType*>(&loopBaseSolver->getIterationStep())); + assert(std::dynamic_pointer_cast<SmootherType>(loopBaseSolver->getIterationStep())); - dynamic_cast<SmootherType*>(&loopBaseSolver->getIterationStep())->setProblem(*(this->matrixHierarchy_[0]), *this->xHierarchy_[0], this->rhsHierarchy_[0]); - dynamic_cast<SmootherType*>(&loopBaseSolver->getIterationStep())->setIgnore(*ignoreNodesHierarchy_[0]); + std::dynamic_pointer_cast<SmootherType>(loopBaseSolver->getIterationStep())->setProblem(*(this->matrixHierarchy_[0]), *this->xHierarchy_[0], this->rhsHierarchy_[0]); + std::dynamic_pointer_cast<SmootherType>(loopBaseSolver->getIterationStep())->setIgnore(*ignoreNodesHierarchy_[0]); } else if (dynamic_cast<LinearSolverType*>(this->basesolver_.get())) { -- GitLab