From 5be3f00ee8bfe8d3c506905bf22966b077856d4c Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 19 Nov 2025 15:17:13 -0500 Subject: [PATCH 1/2] added error message --- src/festim/problem.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/festim/problem.py b/src/festim/problem.py index 5fbe6a0fe..ea9f47dbe 100644 --- a/src/festim/problem.py +++ b/src/festim/problem.py @@ -251,7 +251,9 @@ def iterate(self): elif Version(dolfinx.__version__) > Version("0.9.0"): _ = self.solver.solve() converged_reason = self.solver.solver.getConvergedReason() - assert converged_reason > 0 + assert converged_reason > 0, ( + f"Non-linear solver did not converge. Reason code: {converged_reason}. \n See https://petsc.org/release/manualpages/SNES/SNESConvergedReason/ for more information." + ) nb_its = self.solver.solver.getIterationNumber() # post processing From 6e69c971e1e70a394142fc099b62afa7c0d9eed8 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 19 Nov 2025 15:18:03 -0500 Subject: [PATCH 2/2] added unlimited snes div tol --- src/festim/problem.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/festim/problem.py b/src/festim/problem.py index ea9f47dbe..8cd086172 100644 --- a/src/festim/problem.py +++ b/src/festim/problem.py @@ -181,6 +181,7 @@ def create_solver(self): "snes_atol": self.settings.atol, "snes_rtol": self.settings.rtol, "snes_max_it": self.settings.max_iterations, + "snes_divergence_tolerance": "PETSC_UNLIMITED", "ksp_type": "preonly", "pc_type": "lu", "pc_factor_mat_solver_type": linear_solver,