diff --git a/usadelndsoc/solver.py b/usadelndsoc/solver.py index f9d7f7f1e766898015edbba6f63554f8442686b7..3ca19edff08df177d5beb22defc9142668a3245e 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