Skip to content
Snippets Groups Projects
Commit d0e63490 authored by lh1887's avatar lh1887
Browse files

Let MultigridStep work with derived base solvers

When the preprocess method was updated in 3c1a1b4e, one could no longer
supply e.g. an UMFPackSolver as a base solver since it only derives from
LinearSolver but may have a different typeid.
parent 3c1a1b4e
Branches
No related tags found
No related merge requests found
Pipeline #
......@@ -146,7 +146,7 @@ void MultigridStep<MatrixType, VectorType, BitVectorType>::preprocess()
typedef ::LoopSolver<VectorType> DuneSolversLoopSolver;
if (typeid(*this->basesolver_) == typeid(DuneSolversLoopSolver)) {
if (dynamic_cast<DuneSolversLoopSolver*>(this->basesolver_)) {
DuneSolversLoopSolver* loopBaseSolver = dynamic_cast<DuneSolversLoopSolver*> (this->basesolver_);
......@@ -157,7 +157,7 @@ void MultigridStep<MatrixType, VectorType, BitVectorType>::preprocess()
dynamic_cast<SmootherType*>(loopBaseSolver->iterationStep_)->ignoreNodes_ = ignoreNodesHierarchy_[0];
}
else if (typeid(*this->basesolver_) == typeid(LinearSolver<MatrixType,VectorType>)) {
else if (dynamic_cast<LinearSolver<MatrixType, VectorType>*>(this->basesolver_)) {
LinearSolver<MatrixType,VectorType>* linearBaseSolver = dynamic_cast<LinearSolver<MatrixType,VectorType>*> (this->basesolver_);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment