From 943c6c44d1936796804d08203d0d2ce81b05b73b Mon Sep 17 00:00:00 2001
From: Elias Pipping <elias.pipping@fu-berlin.de>
Date: Thu, 15 Mar 2012 17:25:44 +0100
Subject: [PATCH] Break FPI if the correction gets too small

---
 src/one-body-sample.cc | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc
index 9f98c2b1..3896cd57 100644
--- a/src/one-body-sample.cc
+++ b/src/one-body-sample.cc
@@ -249,6 +249,7 @@ int main(int argc, char *argv[]) {
           auto multigridStep = mySolver.getSolver();
           multigridStep->setProblem(u4_diff, myBlockProblem);
 
+          VectorType const u4_diff_old = u4_diff;
           LoopSolver<VectorType> overallSolver(
               multigridStep, parset.get<size_t>("solver.tnnmg.maxiterations"),
               solver_tolerance, &energyNorm, verbosity,
@@ -270,6 +271,8 @@ int main(int argc, char *argv[]) {
               (*s4_new)[i] = compute_state_update(h, unorm, L, s4_old[i]);
             }
           }
+          if (energyNorm.diff(u4_diff_old, u4_diff) < 1e-14) // TODO
+            break;
         }
 
         if (parset.get<bool>("printEvolution"))
-- 
GitLab