From 23d6ef00e5a049ec7f7c134a8b2ab5ee398f6f1f Mon Sep 17 00:00:00 2001
From: Pauli Virtanen <pauli.t.virtanen@jyu.fi>
Date: Wed, 21 Sep 2022 16:44:48 +0300
Subject: [PATCH] solver: tweak for performance

---
 usadelndsoc/solver.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/usadelndsoc/solver.py b/usadelndsoc/solver.py
index f9d7f7f..3ca19ed 100644
--- a/usadelndsoc/solver.py
+++ b/usadelndsoc/solver.py
@@ -188,7 +188,7 @@ class Solver:
         skip_precond = 0
 
         if solver is None:
-            solver = "lgmres"
+            solver = "gcrotmk"
 
         if A_size > 40000:
             _log_solve.debug(
@@ -561,8 +561,13 @@ class Solver:
         self._t_solve_min = np.inf
         self._M = None
         self._Phi[...] = 0
+        prev_omega = None
 
         for j in js:
+            if prev_omega is not None and prev_omega < 0 and omega[j] > 0:
+                self._M = None
+                self._Phi[...] = 0
+            prev_omega = omega[j]
             self.solve(omega=omega[j], **kw)
             Phi_prev = self._Phi.copy()
             Phi[j] = self._Phi
-- 
GitLab