From 6896f75e2e49b217a3d928b38cf3809d7ac79ba7 Mon Sep 17 00:00:00 2001
From: Nils-Arne Dreier <n.dreier@uni-muenster.de>
Date: Thu, 20 Jan 2022 10:50:52 +0100
Subject: [PATCH] [SIMD] Check the convergence criterion for every lane
 independendly.

---
 dune/istl/solver.hh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/dune/istl/solver.hh b/dune/istl/solver.hh
index 0e100512..3a239736 100644
--- a/dune/istl/solver.hh
+++ b/dune/istl/solver.hh
@@ -470,13 +470,13 @@ namespace Dune
         }
         _def = def;
         _i = i;
-        _res.converged = (Simd::allTrue(def<_def0*_parent._reduction) || Simd::max(def)<1E-30);    // convergence check
+        _res.converged = (Simd::allTrue(def<_def0*_parent._reduction || def<1E-30));    // convergence check
         return _res.converged;
       }
 
     protected:
       void finalize(){
-        _res.converged = (Simd::allTrue(_def<_def0*_parent._reduction) || Simd::max(_def)<1E-30);
+        _res.converged = (Simd::allTrue(_def<_def0*_parent._reduction || _def<1E-30));
         _res.iterations = _i;
         _res.reduction = static_cast<double>(Simd::max(_def/_def0));
         _res.conv_rate  = pow(_res.reduction,1.0/_i);
-- 
GitLab