From 9e957e8965be2a08fd36ae7f877570a26a66f4b6 Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Wed, 16 Jul 2014 09:11:06 +0000
Subject: [PATCH] Use the TwoNorm to monitor convergence of the Gauss-Seidel
 base solver

Previously the energy norm was used, but as we are solving non-convex
problems the Hessians may be indefinite, and then the EnergyNorm is not
a norm.

[[Imported from SVN: r9835]]
---
 dune/gfe/riemanniantrsolver.cc | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/dune/gfe/riemanniantrsolver.cc b/dune/gfe/riemanniantrsolver.cc
index 1403c64a..a0806ccb 100644
--- a/dune/gfe/riemanniantrsolver.cc
+++ b/dune/gfe/riemanniantrsolver.cc
@@ -22,7 +22,7 @@
 #include <dune/solvers/solvers/iterativesolver.hh>
 #include "maxnormtrustregion.hh"
 
-#include <dune/solvers/norms/energynorm.hh>
+#include <dune/solvers/norms/twonorm.hh>
 #include <dune/solvers/norms/h1seminorm.hh>
 
 #include <dune/gfe/parallel/matrixcommunicator.hh>
@@ -81,12 +81,13 @@ setup(const GridType& grid,
     // First create a Gauss-seidel base solver
     TrustRegionGSStep<MatrixType, CorrectionType>* baseSolverStep = new TrustRegionGSStep<MatrixType, CorrectionType>;
 
-    EnergyNorm<MatrixType, CorrectionType>* baseEnergyNorm = new EnergyNorm<MatrixType, CorrectionType>(*baseSolverStep,1e-3);
+    // Hack: the two-norm may not scale all that well, but it is fast!
+    TwoNorm<CorrectionType>* baseNorm = new TwoNorm<CorrectionType>;
 
     ::LoopSolver<CorrectionType>* baseSolver = new ::LoopSolver<CorrectionType>(baseSolverStep,
                                                                             baseIterations,
                                                                             baseTolerance,
-                                                                            baseEnergyNorm,
+                                                                            baseNorm,
                                                                             Solver::QUIET);
 #endif
 
-- 
GitLab