diff --git a/dune/solvers/iterationsteps/blockgssteps.hh b/dune/solvers/iterationsteps/blockgssteps.hh index 9e7f769cd2cb309950212b3c4b18b0419a0f528d..18614d87c7092deb08cc32aefd2278b12385a9d4 100644 --- a/dune/solvers/iterationsteps/blockgssteps.hh +++ b/dune/solvers/iterationsteps/blockgssteps.hh @@ -99,8 +99,7 @@ static constexpr double defaultCgTol = 1e-15; template <class MBlock, class VBlock> VBlock cg(const MBlock& m, VBlock r, size_t maxIter = defaultCgMaxIter, double tol = defaultCgTol) { - VBlock x; - x = 0; + VBlock x(0); VBlock p = r; auto q = r; auto rOldSquared = r * r; @@ -140,11 +139,11 @@ namespace LocalSolverFromLinearSolver { */ template <class LinearSolver> auto truncate(LinearSolver&& linearSolver) { - return [&, localSolver = std::move(linearSolver) ]( + return [linearSolver = std::move(linearSolver) ]( const auto& m, const auto& b, const auto& ignore) { using Return = typename std::result_of<LinearSolver(decltype(m), decltype(b))>::type; if (ignore.all()) - return Return{0}; + return Return(0); if (ignore.none()) return linearSolver(m, b); diff --git a/dune/solvers/test/gssteptest.cc b/dune/solvers/test/gssteptest.cc index 89ce86973e6711fd9d552b54062a2cc7c58504b4..ca94625d6c884330bdfcf0a6e577b4661fcc462c 100644 --- a/dune/solvers/test/gssteptest.cc +++ b/dune/solvers/test/gssteptest.cc @@ -140,7 +140,7 @@ struct GSTestSuite { type, reg ? "regularized" : ""); test(&gsStep1, gsString1); test(gsStep2Ptr.get(), gsString2); - diffTest(&gsStep1, gsString1, gsStep2Ptr.get(), gsString2, 1e-7); + diffTest(&gsStep1, gsString1, gsStep2Ptr.get(), gsString2, 1e-9); } } }