Skip to content
Discussion options

You must be logged in to vote

Hey there,
Positive news. We found the bug which was causing the not-positive definite issue. In the lswt.py, we replaced the

self.B2[nu][alphas[0], alphas[1]] = (
    0.5
    * np.sqrt(self.spins[alphas[0]] * self.spins[alphas[1]])
    * (
        np.conjugate(self.p[alphas[0]])
        @ parameter
        @ np.conjugate(self.p[alphas[1]])
    )
)

block with

self.B2[nu][alphas[0], alphas[1]] = (
    0.5
    * np.sqrt(self.spins[alphas[0]] * self.spins[alphas[1]])
    * (
        self.p[alphas[0]]
        @ parameter
        @ self.p[alphas[1]]
    )
)

after which, the problem is completely gone. I think the issue was related to a non-collinear spins having a phase between them. Please …

Replies: 3 comments 10 replies

Comment options

You must be logged in to vote
2 replies
@prinsmag
Comment options

@adrybakov
Comment options

Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
8 replies
@adrybakov
Comment options

@prinsmag
Comment options

@adrybakov
Comment options

@prinsmag
Comment options

Answer selected by adrybakov
@adrybakov
Comment options

@adrybakov
Comment options

@prinsmag
Comment options

@adrybakov
Comment options

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants
Converted from issue

This discussion was converted from issue #111 on June 05, 2026 12:24.