Charge Info for Z3 symmetry in 3-state Potts Model

How do I use this algorithm? What does that parameter do?
Post Reply
nsherman
Posts: 9
Joined: 21 Apr 2021, 00:16

Charge Info for Z3 symmetry in 3-state Potts Model

Post by nsherman »

Hi,

I'm trying to implement the 3-state Potts Model, with Hamiltonian

H = \(\sum_i \Omega^{\dagger}_i\Omega_{i+1} + \Omega_i\Omega^{\dagger}_{i+1} + \sum_i [\Gamma_i^{(1)} + \Gamma_i^{(2)}]\)
with
\(\Omega_i = diag(1, e^{i2\pi/3}, e^{-i2\pi/3})\)
And \(\Gamma_i^{(1)}\) is a cyclic permutation of the 3 basis states, and \(\Gamma_i^{(2)}\) is the other cyclic permutation (not sure how to make matrices in HTML, hopefully what I'm saying is clear.)

This model has a \(\mathbb{Z}_3\) symmetry generated by \(\Gamma_i^{(1)}\), this is the generalization of the TFIM which has a \(\mathbb{Z}_2\) symmetry.

I'm confused on how to properly implement the charge conservation for this \(\mathbb{Z}_3\) symmetry. I don't fully understand the charge conservation idea in TeNPy. I defined a class

Code: Select all

class PottsSite(Site):

    def __init__(self, conserve='Z3'):
        if not conserve:
            conserve = 'None'
        if conserve not in ['None','Z3']:
            raise ValueError("invalid `conserve`: " + repr(conserve))

        qcharges = np.array([0,1,2])
        Omega = [[1,0,0],[0,np.exp(1j*2*np.pi/3),0],[0,0,np.exp(-1j*2*np.pi/3)]]
        Omegadag = [[1,0,0],[0,np.exp(-1j*2*np.pi/3),0],[0,0,np.exp(1j*2*np.pi/3)]]
        Gamma1 = [[0,1,0],[0,0,1],[1,0,0]]
        Gamma2 = [[0,0,1],[1,0,0],[0,1,0]]
        ops = dict(Omega=Omega, Omegadag=Omegadag, Gamma1=Gamma1, Gamma2=Gamma2)
        if conserve == 'Z3':
            chinfo = npc.ChargeInfo([3], ['Z3_potts'])
            leg = npc.LegCharge.from_qflat(chinfo, np.array(qcharges, dtype=np.int64))
        else:
            leg = npc.LegCharge.from_trivial(d)
        self.conserve = conserve
        names = [str(i) for i in range(3)]
        Site.__init__(self, leg, names, **ops)
When I use this to implement the above Hamiltonian, I get the error

Code: Select all

ValueError: Arrays can't have different `qtotal`!
I think it's because of how I defined qcharges possibly? As I said, I don't fully understand the charge conservation aspect, so any guidance would be appreciated.

Best,
Nick
User avatar
Johannes
Site Admin
Posts: 324
Joined: 21 Jul 2018, 12:52
Location: TU Munich

Re: Charge Info for Z3 symmetry in 3-state Potts Model

Post by Johannes »

TeNPy tries to preserve local, diagonal symmetries, in your case the Z3 symmetry \((\sum_i Q_i \mod 3)\) where \(Q_i = diag(0, 1, 2)\) are the charge values you define. However, the Hamiltonian does not preserve these symmetries, since the \(\Gamma^{(1,2)}_i\) don't commute with this symmetry.
Instead, you need to perform a local basis rotation making the Gammas diagonal, but the Omega offdiagonal. Then your approach would be correct.
See e.g. the Appendix A of @aeberharter's recent paper arXiv:2106.15462 for more details. Alexander has a working implementation of the Potts model; if he's willing to share it, I'd be happy to include it as a model into TeNPy!

Note that the 2-state Potts model reduces to the Transverse field ising model. For the latter, TeNPy also writes
\(H= \sum_i X_i X_{i+1} + g \sum_i Z_i\) for exactly the same reason: if you would write the "usual" \(H'= \sum_i Z_i Z_{i+1} + g \sum_i X_i\), the Z_2 symmetry would not be diagonal in the local basis.
nsherman
Posts: 9
Joined: 21 Apr 2021, 00:16

Re: Charge Info for Z3 symmetry in 3-state Potts Model

Post by nsherman »

Great, thank you Johannes!
ahenry
Posts: 2
Joined: 21 Jul 2021, 01:45

Re: Charge Info for Z3 symmetry in 3-state Potts Model

Post by ahenry »

I have played around with various Zn models using Tenpy. You can usually find an equivalent model which has a nice diagonal symmetry by interchanging Z and X (or Omega and Gamma). I believe interchanging Z and X can be described as a local coordinate transformation, and doesn't affect the physics.
Edit: that's exactly what Johannes is saying, somehow I missed it
Post Reply