Sergi Julià Farré

As an example, we perform a simple self-consistent algorithm of the unrestricted Hartree-Fock method to compare between site-nematic and quantum anomalous Hall phases.

t0, jax, jay, jbx, jby = -1, 0.5, -0.5, -0.5, 0.5 # We fix the hopping parameters of the Hamiltonian

Site-nematic phase

nx, ny = 12, 12

v1, v2 = 4., 1.
v3, v4 = Rydberg_v3v4(v1,v2)
un_mf = checkerboard_lattice_un(nx=nx,ny=ny,t0=-1, jax=jax, jay=jay, 
		                        jbx=jbx, jby=jby, v1=v1, v2=v2, v3=v3, v4=v4,
		                        beta=1E+5, cell_filling=1)
    

for i1 in progress_bar(range(0,100)):
    un_mf.iterate_mf()
    
100.00% [100/100 00:05<00:00]

We then plot the density and the energy spectrum (the color is the occupation of each state).

fig  = plt.figure(figsize=(10, 6/(1.68)))
gs0 = gridspec.GridSpec(1, 2, left=0.1, right=0.99, top=0.85, bottom=0.05, wspace=0.2)

ax = fig.add_subplot(gs0[0])
sc = ax.scatter(un_mf.pos[:,0].flatten(),
                un_mf.pos[:,1].flatten(), c=np.real(un_mf.mfden),  s=80)

ax.set_xlim(-1,2*un_mf.nx)
ax.set_ylim(-1,2*un_mf.ny)
ax.set_xlabel(r'$x$')
ax.set_ylabel(r'$y$')
ax.set_aspect('equal')
fig.colorbar(sc)
plt.title(r'$n(j)$')
ax2 = fig.add_subplot(gs0[1])

sc = ax2.scatter(np.arange(0,np.size(un_mf.energies)),un_mf.energies, c=un_mf.fermi_weights, cmap='viridis_r', s=10, norm=mpl.colors.LogNorm(vmin=1E-5))
plt.title(r'Fermi occupation')
fig.colorbar(sc)
ax2.set_xlabel(r'$\lambda$')
ax2.set_ylabel(r'$E_\lambda$')
plt.show()

Quantum Anomalous Hall phase

nx, ny = 12, 12
v1, v2 = 4., 2.5
v3, v4 = Rydberg_v3v4(v1,v2)


un_mf = checkerboard_lattice_un(nx=nx,ny=ny,t0=-1, jax=jax, jay=jay, 
                               jbx=jbx, jby=jby, v1=v1, v2=v2, v3=v3, v4=v4,
                                  beta=1E+5, cell_filling=1)

for i1 in progress_bar(range(0,50)):
    un_mf.iterate_mf()
100.00% [50/50 00:02<00:00]

We then plot the expectation value of the imaginary hopping and the energy spectrum.

fig  = plt.figure(figsize=(10, 6/(1.68)))
gs0 = gridspec.GridSpec(1, 2, left=0.1, right=0.99, top=0.85, bottom=0.05, wspace=0.2)

ax = fig.add_subplot(gs0[0])


xi_qah = np.zeros(un_mf.L_sites, dtype=float)
for i1 in range(0,un_mf.L_sites):
    sign = (-1)**((i1//(un_mf.nx))%2)
    xi_qah[i1] += 0.25*sign*np.imag(-un_mf.mfhop_nn[2*i1]+un_mf.mfhop_nn[(2*i1+1)%(2*un_mf.L_sites)]+un_mf.mfhop_nn[(2*i1+2*un_mf.nx)%(2*un_mf.L_sites)]-un_mf.mfhop_nn[(2*i1-2*un_mf.nx)])

sc = ax.scatter(un_mf.pos[:,0].flatten(),
                un_mf.pos[:,1].flatten(), c=xi_qah,  s=80, cmap='RdBu')
 
ax.set_xlim(-1,2*un_mf.nx)
ax.set_ylim(2,2*un_mf.ny-2)

ax.set_xlabel(r'$x$')
ax.set_ylabel(r'$y$')
fig.colorbar(sc)
ax.set_aspect('equal')
plt.title(r'$\xi_{QAH}$')

ax2 = fig.add_subplot(gs0[1])
sc2 = ax2.scatter(np.arange(0,np.size(un_mf.energies)),un_mf.energies, c=un_mf.fermi_weights, cmap='viridis_r', s=10, norm=mpl.colors.LogNorm(vmin=1E-5))
plt.title(r'Fermi occupation')
fig.colorbar(sc2)
ax2.set_xlabel(r'$\lambda$')
ax2.set_ylabel(r'$E_\lambda$')
plt.show()

Self-trapped polaron

For a finite hole/particle doping, the unrestricted Hartree-Fock method gives rise to localized solutions due to the appearance of states inside the gap. We here consider the case of one extra particle.

nx, ny = 12, 12
v1, v2 = 4., 2.5
v3, v4 = Rydberg_v3v4(v1,v2)

cf = (nx*ny+1)/(nx*ny)

un_mf = checkerboard_lattice_un(nx=nx,ny=ny,t0=-1, jax=jax, jay=jay, 
		                        jbx=jbx, jby=jby, v1=v1, v2=v2, v3=v3, v4=v4,
		                        beta=1E+5, cell_filling=cf)

for i1 in progress_bar(range(0,50)):
        un_mf.iterate_mf()
100.00% [50/50 00:03<00:00]

We then plot the expetation value of the imaginary hopping and the energy spectrum. We observe the appearance of a self-trapped polaron both in the analysis of the imaginary hopping and of the energy spetrum.

Topological domains

When increasing the number of particles from half filling, the system eventually generates two domains with opposite spontaneous breaking of the time-reversal symmetry

nx, ny = 24, 24
v1, v2 = 4., 2.5
v3, v4 = Rydberg_v3v4(v1,v2)

cf = (nx*ny+5)/(nx*ny)

un_mf = checkerboard_lattice_un(nx=nx,ny=ny,t0=-1, jax=jax, jay=jay, 
		                        jbx=jbx, jby=jby, v1=v1, v2=v2, v3=v3, v4=v4,
		                        beta=1E+5, cell_filling=cf)

for i1 in progress_bar(range(0,100)):
        un_mf.iterate_mf()
100.00% [100/100 03:16<00:00]

Effect of finite temperature

For increasing temperature the gap of the quantum anomalous Hall phase closes, and eventually the phase disappears. We first consider the effect of a small temperature $T/t=0.1$, for which no important changes are observed compared to the zero temperature case shown in the first example.

nx, ny = 12, 12
v1, v2 = 4., 2.5
v3, v4 = Rydberg_v3v4(v1,v2)


un_mf = checkerboard_lattice_un(nx=nx,ny=ny,t0=-1, jax=jax, jay=jay, 
		                        jbx=jbx, jby=jby, v1=v1, v2=v2, v3=v3, v4=v4,
		                        beta=10, cell_filling=1)

for i1 in progress_bar(range(0,50)):
        un_mf.iterate_mf()
100.00% [50/50 00:03<00:00]

The situation is different for $T/t=0.2$ where we observe that the upper band begins to have a finite population.

100.00% [50/50 00:02<00:00]

For $T/t=1$ the quantum anomalous Hall phase has disappeared: the system is not gapped at all and there is no spontaneous time-reversal symmetry breaking in the nearest-neighbors hoppings.

100.00% [50/50 00:03<00:00]