Hello everyone, I have been working on my two-dimensional asymmetric Hubbard model and have noticed that the computation speed is very slow, and it consistently fails to converge. I would like to ask if this issue might be caused by my program. Below are my parameters:
let
Ny = 6
Nx = 6
U=2
tupup=1
tdndn=0.2
N = Nx * Ny
sites = siteinds("Electron",N; conserve_sz=true)
lattice = square_lattice(Nx, Ny; yperiodic=false)
os = OpSum()
for b in lattice
os += tupup, "Cdagup", b.s1, "Cup", b.s2
os += tupup, "Cup", b.s1, "Cdagup", b.s2
os += tdndn, "Cdagdn", b.s1, "Cdn", b.s2
os += tdndn, "Cdn", b.s1, "Cdagdn", b.s2
os += U, "Nup", b.s1, "Ndn", b.s1
end
H = MPO(os, sites)
state = [isodd(n) ? "Up" : "Dn" for n in 1:N]
psi0 = random_mps(sites, state; linkdims=30)
nsweeps = 20
maxdim = [ 400, 800, 1600, 1800 ,2000 ,2200]
cutoff = [1E-8]
noise = [1E-5 ,1E-6, 1E-7, 1E-8, 0.0]
energy, psi = dmrg(H, psi0; nsweeps, maxdim, cutoff, noise)
H2 = inner(H,psi,H,psi)
E = inner(psi',H,psi)
var = H2-E^2
@show var
return nothing
H = t_{\uparrow} \sum_{\langle i,j \rangle} \left( C_{i\uparrow}^{\dagger} C_{j\uparrow} + C_{j\uparrow}^{\dagger} C_{i\uparrow} \right)+t_{\downarrow} \sum_{\langle i,j \rangle} \left( C_{i\downarrow}^{\dagger} C_{j\downarrow} + C_{j\downarrow}^{\dagger} C_{i\downarrow} \right) + U \sum_{i} n_{i\uparrow} n_{i\downarrow}
Could everyone please help me verify if my Hamiltonian for the two-dimensional DMRG is correct? Feel free to adjust any part of it!