Skip to content

S_xx, S_yy with U1Irrep symmetry #57

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?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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