From 42d9c764d07a38b89520f3290c85afcd6195560f Mon Sep 17 00:00:00 2001
From: podlesny <podlesny@zedat.fu-berlin.de>
Date: Tue, 9 Feb 2021 00:47:56 +0100
Subject: [PATCH] new program_state and fixpointiterator with makeLinearSolver,
 FunctionalFactory, NonlinearSolver working as intended

---
 dune/tectonic/spatial-solving/makelinearsolver.hh | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/dune/tectonic/spatial-solving/makelinearsolver.hh b/dune/tectonic/spatial-solving/makelinearsolver.hh
index ada00835..3c5fc029 100644
--- a/dune/tectonic/spatial-solving/makelinearsolver.hh
+++ b/dune/tectonic/spatial-solving/makelinearsolver.hh
@@ -57,8 +57,8 @@ auto makeLinearSolver(const Dune::ParameterTree& parset, const ContactNetwork& c
         auto linearSolver = std::make_shared<LinearSolver>(cgStep, parset_.template get<int>("solver.tnnmg.main.multi"), parset_.template get<double>("solver.tnnmg.preconditioner.basesolver.tolerance"), norm, Solver::QUIET);
         */
 
-        // set multigrid solver
-        auto smoother = TruncatedBlockGSStep<Matrix, Vector>();
+
+
 
         // transfer operators need to be recomputed on change due to setDeformation()
         using TransferOperator = NBodyContactTransfer<ContactNetwork, Vector>;
@@ -76,11 +76,9 @@ auto makeLinearSolver(const Dune::ParameterTree& parset, const ContactNetwork& c
 
         auto linearMultigridStep = std::make_shared<Dune::Solvers::MultigridStep<Matrix, Vector> >();
         linearMultigridStep->setMGType(1, 3, 3);
-        linearMultigridStep->setSmoother(smoother);
+        linearMultigridStep->setSmoother(TruncatedBlockGSStep<Matrix, Vector>());
         linearMultigridStep->setTransferOperators(transfer);
 
-        Norm norm(*linearMultigridStep);
-
-        return std::make_shared<LinearSolver>(linearMultigridStep, parset.template get<int>("solver.tnnmg.main.multi"), parset.template get<double>("solver.tnnmg.preconditioner.basesolver.tolerance"), norm, Solver::QUIET);
+        return std::make_shared<LinearSolver>(linearMultigridStep, parset.template get<int>("solver.tnnmg.main.multi"), parset.template get<double>("solver.tnnmg.preconditioner.basesolver.tolerance"), Norm(*linearMultigridStep), Solver::QUIET);
     }
 #endif
-- 
GitLab