From 50c35bfeb2dde2951595889603c0d00e2d8d4d2f Mon Sep 17 00:00:00 2001 From: Pauli Virtanen <pauli.t.virtanen@jyu.fi> Date: Thu, 25 Apr 2024 11:54:55 +0300 Subject: [PATCH] solver: fix cpr vs. singlet & solver reset --- usadelndsoc/solver.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/usadelndsoc/solver.py b/usadelndsoc/solver.py index 0004506..6e9af73 100644 --- a/usadelndsoc/solver.py +++ b/usadelndsoc/solver.py @@ -1155,6 +1155,7 @@ def _self_consistent_Delta_f( mask = mask1 & mask2 solver.Delta[mask] = singlet_m(Delta[mask]) + solver.reset() if workers is not None: jobs = [] @@ -1406,11 +1407,11 @@ def cpr( # Corrector def constraint_fun(phi, Delta): # Pseudoarclength constraint - Delta[phase_mask] = Delta_00[phase_mask] * np.exp(1j * phi) + Delta[phase_mask] = singlet(Delta_00[phase_mask]) * np.exp(1j * phi) m = solver.mask == MASK_NONE dsa = theta * np.real( - np.vdot(dDelta[m], Delta[m] - state.Deltas[-1][m]) + np.vdot(singlet(dDelta[m]), Delta[m] - singlet(state.Deltas[-1][m])) ) dsb = (1 - theta) * dphi * (phi - state.phis[-1]) dstot = dsa + dsb -- GitLab