From caffa4e1fe3a2b83412322eefb2c9959256b1c33 Mon Sep 17 00:00:00 2001
From: Dominik Kern <dominik.kern.ifgt@gmail.com>
Date: Thu, 5 Aug 2021 11:41:22 +0200
Subject: [PATCH] Staggered: check all processes for convergence in coupling
 iterations

---
 ProcessLib/TimeLoop.cpp | 20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/ProcessLib/TimeLoop.cpp b/ProcessLib/TimeLoop.cpp
index d7e5947d2c2..9962a31de22 100644
--- a/ProcessLib/TimeLoop.cpp
+++ b/ProcessLib/TimeLoop.cpp
@@ -768,7 +768,6 @@ TimeLoop::solveCoupledEquationSystemsByStaggeredScheme(
     {
         // TODO(wenqing): use process name
         coupling_iteration_converged = true;
-        int const last_process_id = _per_process_data.size() - 1;
         _xdot_vector_ids.resize(_per_process_data.size());
         std::size_t cnt = 0;
         for (auto& process_data : _per_process_data)
@@ -815,17 +814,14 @@ TimeLoop::solveCoupledEquationSystemsByStaggeredScheme(
             if (global_coupling_iteration > 0)
             {
                 MathLib::LinAlg::axpy(x_old, -1.0, x);  // save dx to x_old
-                if (process_id == last_process_id)
-                {
-                    INFO(
-                        "------- Checking convergence criterion for coupled "
-                        "solution  -------");
-                    _global_coupling_conv_crit[process_id]->checkDeltaX(x_old,
-                                                                        x);
-                    coupling_iteration_converged =
-                        coupling_iteration_converged &&
-                        _global_coupling_conv_crit[process_id]->isSatisfied();
-                }
+                INFO(
+                    "------- Checking convergence criterion for coupled "
+                    "solution of process #{:d} -------",
+                    process_id);
+                _global_coupling_conv_crit[process_id]->checkDeltaX(x_old, x);
+                coupling_iteration_converged =
+                    coupling_iteration_converged &&
+                    _global_coupling_conv_crit[process_id]->isSatisfied();
             }
             MathLib::LinAlg::copy(x, x_old);
         }  // end of for (auto& process_data : _per_process_data)
-- 
GitLab