You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When performing denseblocks on a DiagBlockSparse tensor, the output is a tensor, which in general does not conserve QNs and thus has no well-defined flux.
Minimal code demonstrating the bug or unexpected behavior
The output, however, is nonzero.
The reason for that is that T conserves the QNs. However, denseblocks(T) does not, which can be seen from the block-structure. ITensors, however, still asigns denseblocks(T) and x a flux QN(), even though their flux is not well-defined.
I suspect the problem is related to how NDTensors stores a diagblocksparse tensor internally, as it only stores one matrix element. When performing denseblocks, it probably does not check which flux was used in the constructor delta([::Type{ElT} = Float64, ][flux::QN = QN(), ]is)
Description of bug
When performing denseblocks on a DiagBlockSparse tensor, the output is a tensor, which in general does not conserve QNs and thus has no well-defined flux.
Minimal code demonstrating the bug or unexpected behavior
Expected output or behavior
The code should output 0.
Actual output or behavior
The output, however, is nonzero.
The reason for that is that T conserves the QNs. However, denseblocks(T) does not, which can be seen from the block-structure. ITensors, however, still asigns denseblocks(T) and x a flux QN(), even though their flux is not well-defined.
I suspect the problem is related to how NDTensors stores a diagblocksparse tensor internally, as it only stores one matrix element. When performing denseblocks, it probably does not check which flux was used in the constructor
delta([::Type{ElT} = Float64, ][flux::QN = QN(), ]is)
Version information
versioninfo()
:using Pkg; Pkg.status("ITensors")
:The text was updated successfully, but these errors were encountered: