QuantumKitHub / MPSKitModels.jl

MIT License
15 stars 13 forks source link

Add a spin irreducible operator in a spinful fermionic system with U(1) charge and SU(2) spin symmetry #23

Closed ZongYongyue closed 1 month ago

ZongYongyue commented 1 month ago

Hi Lukas,

Thanks for your package! I suggest to add a spin irreducible operator $\hat{S}=\sum{\sigma\sigma'}f^\dagger\sigma\vec{\sigma}f_{\sigma'}=(-S^{+}/\sqrt{2},S^{z},S^{-}/\sqrt{2})$ in a spinful fermionic system with U(1) charge and SU(2) spin symmetry. This could be beneficial as we consider magnetic properties in electronic systems. With Wigner–Eckart theorem, we have

$$\langle 0; 1/2, -1/2| S^{-} /\sqrt{2}|0;1/2,1/2\rangle = C^{1/2}_{1/2,1}[2,1,1]\langle 0;1/2|S^{0;1}|0;1/2\rangle $$

where the quantum number are labeled as $(q_n; S, Sz)$ and $C^{1/2}{1/2,1}$ is the CG coefficients with dimension $=2\times 3 \times 2.$ The other two equations about $S^{z}$ and $S^{+}$ are equivalent with this one because the reduced matrix element $\langle 0;1/2|S^{0;1}|0;1/2\rangle$ is independent of quantum number $S_z$. Here, we have $\langle 0,1/2|S^{0;1}|0;1/2\rangle = \sqrt{3}/2$ .

We can construct the spin irreducible operator $\hat{S}$ as

#S operator
P = Vect[fℤ₂ ⊠ SU2Irrep ⊠ U1Irrep]((0,0,-1)=>1, (1,1//2,0)=>1, (0,0,1)=>1)
V = Vect[fℤ₂ ⊠ SU2Irrep ⊠ U1Irrep]((0, 1, 0) => 1)
S = TensorMap(zeros, ComplexF64, P ← P ⊗ V)
blocks(S)[fℤ₂(1) ⊠ SU2Irrep(1 // 2) ⊠ U1Irrep(0)].= sqrt(3)/2
#S^2 operator
@planar S²[-1; -2] := S[-1; 1 2] * S'[1 2; -2]

Thank you again for your nice package!

Sincerely yours Yong-Yue Zong

lkdvos commented 1 month ago

Hi Yong-Yue Zong,

Thanks for the suggestion! I am definitely very happy to add this, would you have a suggestion for a good name? In hindsight, naming these functions with a single letter is probably not very future-proof, as S could be many different things...

Best, Lukas

ZongYongyue commented 1 month ago

How about Sₑ$\to\hat{S}$ , Sₑ²$\to\hat{S}^2$ and Sₑ_exchange$\to\hat{S}_i \cdot \hat{S}_j$? Where e has considered the style in MPSKitModels that indicates a spin 1/2 fermionic system and Sₑ can be used to distinguish from the spin operators such as Sˣ, S⁺, S_exchange in spin systems.

lkdvos commented 1 month ago

I would also need a non-unicode version, as there still are some systems (terminals, editors, ...) where these are very hard to type.

I don't have too much time the next week, any chance you could file a PR with this?

ZongYongyue commented 1 month ago

Of course