From b8c3fd03dd060a9f038d99b75395c7aba8eac477 Mon Sep 17 00:00:00 2001
From: AlexanderMueller <mueller@ibb.uni-stuttgart.de>
Date: Fri, 13 Nov 2020 12:32:57 +0100
Subject: [PATCH] fix in mixedriemanniantrsolver from 3 to blocksize and
 scaling fix

---
 dune/gfe/mixedriemanniantrsolver.cc |  2 +-
 dune/gfe/mixedriemanniantrsolver.hh | 10 +++++-----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/dune/gfe/mixedriemanniantrsolver.cc b/dune/gfe/mixedriemanniantrsolver.cc
index 6a88c894..3a0931c3 100644
--- a/dune/gfe/mixedriemanniantrsolver.cc
+++ b/dune/gfe/mixedriemanniantrsolver.cc
@@ -100,7 +100,7 @@ setup(const GridType& grid,
                                                                                    baseNorm0,
                                                                                    Solver::QUIET);
 
-    ::LoopSolver<CorrectionType0>* baseSolver1 = new ::LoopSolver<CorrectionType1>(baseSolverStep1,
+    ::LoopSolver<CorrectionType1>* baseSolver1 = new ::LoopSolver<CorrectionType1>(baseSolverStep1,
                                                                                    baseIterations,
                                                                                    baseTolerance,
                                                                                    baseNorm1,
diff --git a/dune/gfe/mixedriemanniantrsolver.hh b/dune/gfe/mixedriemanniantrsolver.hh
index 19738878..aafe7b3f 100644
--- a/dune/gfe/mixedriemanniantrsolver.hh
+++ b/dune/gfe/mixedriemanniantrsolver.hh
@@ -82,11 +82,11 @@ public:
 
     void setScaling(const Dune::FieldVector<double,blocksize0+blocksize1>& scaling)
     {
-      for (int i=0; i<3; i++)
-      {
+      for (int i=0; i<blocksize0; i++)
         std::get<0>(scaling_)[i] = scaling[i];
-        std::get<1>(scaling_)[i] = scaling[i+3];
-      }
+
+      for (int i=0; i<blocksize1; i++)
+        std::get<1>(scaling_)[i] = scaling[i+blocksize0];
     }
 
 #if 0
@@ -124,7 +124,7 @@ protected:
     double initialTrustRegionRadius_;
 
     /** \brief Trust-region norm scaling */
-    std::tuple<Dune::FieldVector<double,3>, Dune::FieldVector<double,3> > scaling_;
+    std::tuple<Dune::FieldVector<double,blocksize0>, Dune::FieldVector<double,blocksize1> > scaling_;
 
     /** \brief Maximum number of trust-region steps */
     int maxTrustRegionSteps_;
-- 
GitLab