Hey all,
I am running a TEBD code and I have incurred a bug. The error flagged is as follows: LoadError: Eigen currently only supports block diagonal matrices.
The core of the bug is because of the following:
I first construct a product state of two bell states (up to normalization),
My code seems to behave so far. However, when I act on this state by applying Z
gates to construct the following state
it spits out the error I mentioned on the first line of the post. I also tried to construct the state in a brute force way just to be sure:
let
s = siteinds("S=1/2", 4, conserve_qns = true)
upupupup = productMPS(s, ["Up", "Up", "Up", "Up"])
upupdndn = productMPS(s, ["Up", "Up", "Dn", "Dn"])
dndnupup = productMPS(s, ["Dn", "Dn", "Up", "Up"])
dndndndn = productMPS(s, ["Dn", "Dn", "Dn", "Dn"])
bellproduct = upupupup-upupdndn-dndnupup+dndndndn
@show bellproduct
@show flux(upupupup-upupdndn-dndnupup+dndndndn)
end
I run into the same error (ie Eigen currently only supports block diagonal matrices.
) on the line bellproduct = upupupup-upupdndn-dndnupup+dndndndn
. I think this has to do with me enforcing conserve_qns = true
.
I have a couple of questions:
-
I get how the flux of the first state \ket{\psi_0} is 4 (using this) . But why is the flux not evaluating the total
Sz
of the state and instead something else altogether that I do not understand. -
Why is there an error as soon as I construct state \ket{\psi_1} ?
Please let me know!