DMRG not converging for FHM in SC phase

ITensor team,

I am trying to measure various observables of the extended fermi hubbard model’s ground state in the singlet superconducting phase. I’m having a simple but puzzling problem: DMRG is not converging, and the mps bond dimension is plummeting to 1 after 4 or 5 sweeps. A minimal code example:

using ITensors, ITensorMPS

L = 20
U = -2.0
V = -0.3
t = 1.0

matState = [isodd(i) ? "Up" : "Dn" for i in 1:L]
s = [siteind("Electron", i) for i in 1:L]
psiInit = MPS(s, matState)

function build_hamiltonian(s, L, t, U, V)
    os = OpSum()
    for j = 1:L-1
        os -= t, "c†↑", j,   "c↑",  j+1
        os -= t, "c†↑", j+1, "c↑",  j
        os -= t, "c†↓", j,   "c↓",  j+1
        os -= t, "c†↓", j+1, "c↓",  j
    end
    for j = 1:L
        os += U, "n↑",  j, "n↓", j
    end
    for j = 1:L-1
        os += V, "ntot", j, "ntot", j+1
    end
    return MPO(os, s)
end

H = build_hamiltonian(s, L, t, U, V)

ctf    = [1e-16]
maxdim = [8,20,50,100,200,400,400,800]
etol   = 1e-14

energy, psiMPS = dmrg(H, psiInit;
            maxdim           = maxdim,
            cutoff           = ctf,
            nsweeps          = 500,
)

Among other things, I’ve tried the previously recommended slowly-increasing sweep routine

maxdim = [2,2,2,2,2,8,8,8,8,8,20,20,20,20,20,50,50,50,50,50,100,100,200,200,400]

introducing noise, a custom observer struct, increasing the krylov dimension, and various initial states. The exact same code also converges nicely for other regions of the same phase diagram.

Thanks in advance for your help!

1 Like

It seems the lowest state is just double occupation everywhere (the “BEC” phase). Did you check that this isn’t the correct solution for a small system with ED?

I second Ryan’s intuition. What if the attraction is just making the particles doubly occupy each site and form a product state?

2 Likes