From 1b75c53f85b6b96efab673bc31a55a154745d59b Mon Sep 17 00:00:00 2001 From: JordiManyer Date: Wed, 30 Aug 2023 14:49:49 +1000 Subject: [PATCH 1/2] Generalize how the infinite norm is computed in non-linear solvers --- src/Algebra/NLSolvers.jl | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/Algebra/NLSolvers.jl b/src/Algebra/NLSolvers.jl index c83a044ea..3990e5543 100644 --- a/src/Algebra/NLSolvers.jl +++ b/src/Algebra/NLSolvers.jl @@ -77,21 +77,13 @@ function _solve_nr!(x,A,b,dx,ns,nls,op) end function _check_convergence(nls,b) - m0 = _inf_norm(b) - (false, m0) + m0 = maximum(abs,b) + return (false, m0) end function _check_convergence(nls,b,m0) - m = _inf_norm(b) - m < nls.tol * m0 -end - -function _inf_norm(b) - m = 0 - for bi in b - m = max(m,abs(bi)) - end - m + m = maximum(abs,b) + return m < nls.tol * m0 end # Default concrete implementation From 6f7d8e383605d64870b3d02d52c0382fe43be103 Mon Sep 17 00:00:00 2001 From: JordiManyer Date: Wed, 30 Aug 2023 15:42:14 +1000 Subject: [PATCH 2/2] Updated NEWS.md --- NEWS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/NEWS.md b/NEWS.md index c0c7612ec..1f817e990 100644 --- a/NEWS.md +++ b/NEWS.md @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Using Broadcasting(\circ) instead of \circ in one of the lazy_maps used to transform a coarse field into a fine field. Since PR [#938](https://github.com/gridap/Gridap.jl/pull/938). +- Better infinite norm computation in `Algebra._check_convergence`. Now works for any `AbstractArray` type, including `PVector`. Since PR [#940](https://github.com/gridap/Gridap.jl/pull/940). ## [0.17.19] - 2023-08-23