diff --git a/dune/solvers/iterationsteps/obstacletnnmgstep.hh b/dune/solvers/iterationsteps/obstacletnnmgstep.hh index ebe8eac2c8cb061cb34ae10e2f61ed2ad52755c5..04d232e5615c50470733559daa0a7da9cbdcf03d 100644 --- a/dune/solvers/iterationsteps/obstacletnnmgstep.hh +++ b/dune/solvers/iterationsteps/obstacletnnmgstep.hh @@ -13,7 +13,7 @@ // dune-solver includes #include <dune/solvers/iterationsteps/iterationstep.hh> -#include <dune/solvers/iterationsteps/truncatedblockgsstep.hh> +#include <dune/solvers/iterationsteps/blockgssteps.hh> #include <dune/solvers/iterationsteps/projectedblockgsstep.hh> #include <dune/solvers/iterationsteps/multigridstep.hh> @@ -72,7 +72,10 @@ class ObstacleTNNMGStep protected: typedef ProjectedBlockGSStep<Matrix, Vector> NonlinearSmoother; - typedef TruncatedBlockGSStep<Matrix, Vector> LinearSmoother; + typedef Dune::Solvers::BlockGSStep< + Matrix, Vector, Dune::Solvers::DefaultBitVector_t<Vector>, + decltype(Dune::Solvers::BlockGS::LocalSolvers::gs())> + LinearSmoother; typedef MultigridStep<Matrix, Vector, BitVector> LinearMultigridStep; typedef EnergyNorm<Matrix, Vector> LinearBaseSolverEnergyNorm; typedef ::LoopSolver<Vector> LinearBaseSolver; @@ -107,6 +110,8 @@ class ObstacleTNNMGStep transfer_(transfer), nonlinearSmoother_(mat_, *x_, rhs_), truncationTol_(truncationTol), + linearSmoother_(Dune::Solvers::BlockGS::LocalSolvers::gs()), + baseSolverStep_(Dune::Solvers::BlockGS::LocalSolvers::gs()), baseSolverNorm_(baseSolverStep_), baseSolver_(&baseSolverStep_, 100, 1e-8, &baseSolverNorm_, LinearBaseSolver::QUIET), preSmoothingSteps_(3),