Skip to content

S_xx, S_yy with U1Irrep symmetry #57

@Yue-Zhengyuan

Description

@Yue-Zhengyuan

We (with @pbrehmer @leburgel) found that the sub-lattice rotated J1-J2 Hamiltonian with U(1) spin symmetry evaluates without error. It turns out that in MPSKitModels S_xx, S_yy both evaluates with U1Irrep. But upon a closer look, the results do not look right. For example, compare the Trivial and U1Irrep version of S_xx:

julia> using Pkg, TensorKit, MPSKitModels

julia> Pkg.status("MPSKitModels")
Status `~/.julia/environments/v1.11/Project.toml`
  [ca635005] MPSKitModels v0.4.3

julia> Pkg.status("TensorKit")
Status `~/.julia/environments/v1.11/Project.toml`
⌃ [07d1fe3e] TensorKit v0.14.9
Info Packages marked with ⌃ have new versions available and may be upgradable.

julia> S_xx(Trivial)
TensorMap((ℂ^2 ^2)  (ℂ^2 ^2)):
[:, :, 1, 1] =
 0.0 + 0.0im   0.0 + 0.0im
 0.0 + 0.0im  0.25 + 0.0im

[:, :, 2, 1] =
 0.0 + 0.0im  0.25 + 0.0im
 0.0 + 0.0im   0.0 + 0.0im

[:, :, 1, 2] =
  0.0 + 0.0im  0.0 + 0.0im
 0.25 + 0.0im  0.0 + 0.0im

[:, :, 2, 2] =
 0.25 + 0.0im  0.0 + 0.0im
  0.0 + 0.0im  0.0 + 0.0im


julia> S_xx(U1Irrep)
TensorMap((Rep[U₁](1/2=>1, -1/2=>1)  Rep[U₁](1/2=>1, -1/2=>1))  (Rep[U₁](1/2=>1, -1/2=>1)  Rep[U₁](1/2=>1, -1/2=>1))):
* Data for sector (Irrep[U₁](-1/2), Irrep[U₁](1/2))  (Irrep[U₁](-1/2), Irrep[U₁](1/2)):
[:, :, 1, 1] =
 0.0 + 0.0im
* Data for sector (Irrep[U₁](1/2), Irrep[U₁](-1/2))  (Irrep[U₁](-1/2), Irrep[U₁](1/2)):
[:, :, 1, 1] =
 0.25 + 0.0im
* Data for sector (Irrep[U₁](-1/2), Irrep[U₁](1/2))  (Irrep[U₁](1/2), Irrep[U₁](-1/2)):
[:, :, 1, 1] =
 0.25 + 0.0im
* Data for sector (Irrep[U₁](1/2), Irrep[U₁](-1/2))  (Irrep[U₁](1/2), Irrep[U₁](-1/2)):
[:, :, 1, 1] =
 0.0 + 0.0im
* Data for sector (Irrep[U₁](1/2), Irrep[U₁](1/2))  (Irrep[U₁](1/2), Irrep[U₁](1/2)):
[:, :, 1, 1] =
 0.0 + 0.0im
* Data for sector (Irrep[U₁](-1/2), Irrep[U₁](-1/2))  (Irrep[U₁](-1/2), Irrep[U₁](-1/2)):
[:, :, 1, 1] =
 0.0 + 0.0im

In the Trivial version, there are 4 nonzero elements, corresponding to

[2, 2, 1, 1]:   |↓↓⟩ ← |↑↑⟩
[1, 2, 2, 1]:   |↑↓⟩ ← |↓↑⟩
[2, 1, 1, 2]:   |↓↑⟩ ← |↑↓⟩
[1, 1, 2, 2]:   |↑↑⟩ ← |↓↓⟩

But the U1Irrep version of S_xx appears to be obtained by projecting out the part that does not preserve z-components of the total spin, removing the elements corresponding to |↓↓⟩ ← |↑↑⟩ and |↑↑⟩ ← |↓↓⟩, with only 2 nonzero elements left. @lkdvos Is this an error when generating 2-spin functions, or an intended design?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions