Closed Shovan-Physics closed 3 months ago
Hi, thanks for your interest in the block2
package. I have updated the documentation with an example of the t-J model, implemented using custom non-Abelian symmetry group syntax: https://block2.readthedocs.io/en/latest/tutorial/custom-hamiltonians.html#SU(2)-t-J-Model .
Note that in target=Q(N_ELEC, TWO_S, TWO_S)
the target spin quantum number must be repeated, which is related to a technical detail for treating SU(2) symmetry. The two TWO_S
values has to be the same.
The minimal block2
version to support this feature is 0.5.3rc16
.
Excellent, thanks! Just so I understand, why does the annihilation operator "D" have a factor of \sqrt{2}?
The CG factor for creation and annihilation operators can be computed as:
from block2 import SU2CG
print('C operator CG: <S[ket]=0,Sz[ket]=0; S[op]=1/2,Sz[op]=1/2 | S[bra]=1/2,Sz[bra]=1/2> = ', SU2CG().cg(0, 1, 1, 0, 1, 1))
print('D operator CG: <S[ket]=1/2,Sz[ket]=1/2; S[op]=1/2,Sz[op]=-1/2 | S[bra]=0,Sz[bra]=0> = ', SU2CG().cg(1, 1, 0, 1, -1, 0))
which will print $1$ and $1/\sqrt{2}$, for C and D operators respectively. So $\sqrt{2}$ is needed to compensate for this factor.
I see, thanks.
Thanks for the very efficient package!
In the documentation you give examples of how to set up custom site basis and site operators for Abelian symmetries such as SZ. Is there a way to do this for SU(2) symmetry?
We want to study the t-J model, in which the maximum occupation of each site is 1, in different total spin sectors. One way to do this is to set the interaction U much larger than the hopping t in the SU(2) Hubbard model, but this gives very slow convergence. It would be more efficient to use the SU(2) operators "(C+D)0" but within the site basis {0, up, down}.
Many thanks, Shovan