ground state of a kondo problem with DMRG

Dear ITensors developing team,

I am new to the ITensors package and many thanks for developing it.

I have a problem in finding the ground state with DMRG, julia version of ITensors. I was trying to reproduce the result of a paper: PhysRevB.70.132404.

Background

The system is a cluster of a N-site non-interacting Hubbard ring (c electron) on top of another ring of same size (f electron). The Hamiltonian is

H=\overbrace{t\sum_{<ij>\sigma}c_{i\sigma}^\dagger c_{j\sigma}}^{H_c} +\overbrace{\sum_{i\sigma}\epsilon_f^if_{i\sigma}^\dagger f_{i\sigma}+\sum_iU_if_{i\uparrow}^\dagger f_{i\uparrow}f_{i\downarrow}^\dagger f_{i\downarrow}}^{H_f} +\overbrace{\sum_{i\sigma}V(f_{i\sigma}^\dagger c_{i\sigma}+c_{i\sigma}^\dagger f_{i\sigma})}^{H_I},

where H_c is the nearest neighbor hopping in the c electron layer, H_f is the orbital energy and the Coulomb energy in the f electron layer, and H_I is the inter-layer interaction. In the paper, they did N=6 case, which I reproduced with ED. I want to do larger N, which cannot be done with ED. So I try to use ITensors DMRG.

What I do:

I map the system to an electron chain,

sites = siteinds("Electron", N2; conserve_qns=true)

where the odd (even) sites correspond to the c (f) electrons, N_2=2N. I worked at half-filling, so the electron number is also 2N. And I also fixed the number of up and down spins, so N electrons up and N electrons down.

state = [isodd(n) ? "Up" : "Dn" for n in 1:N2]
psi0 = randomMPS(sites, state, 10)

I setup the dmrg parameters as (based on Preventing-DMRG-from-getting-stuck-in-a-local-minimum and the example codes hubbard_conserve_particles)

nsweeps = 80
maxdim = [32, 50, 50, 100, 200, 400, 800, 1600]
noise = [1E-4, 1E-5, 1E-6, 1E-7, 1E-8, 1E-10, 0.0]
cutoff = [1E-10]

with observer

obs = DMRGObserver(; energy_tol=1e-9)

What confuses me:

  1. I started with homogeneous case with N=4,t=1,\epsilon_f^i=-3,U_i=6,V=0.25. Then I compared the ground state (gs) energy and gs expectation values from DMRG with ED. The DMRG outcomes were like
After sweep 19 energy=-16.1479714024833  maxlinkdim=215 maxerr=8.94E-11 time=0.679
After sweep 20 energy=-16.14817580521682  maxlinkdim=211 maxerr=8.00E-11 time=0.685
After sweep 21 energy=-16.148322597419632  maxlinkdim=210 maxerr=9.16E-11 time=0.670

and after 80 sweeps, it gave gs energy

E_0 = -16.148683513218568.

The lowest eigenenergies from ED are

E_0=-16.14868536 \\ E_1=-16.14849189.

So I assumed the DMRG code managed to capture the gs. However, the gs expectation values are a bit strange. The system is homogeneous for each layer, so the electron density at each site in the same layer should be the same. Actually ED also gives

\langle c_{i\uparrow}^\dagger c_{i\uparrow}\rangle_{ED}=\langle c_{i\downarrow}^\dagger c_{i\downarrow}\rangle_{ED}=0.5\\ \langle f_{i\uparrow}^\dagger f_{i\uparrow}\rangle_{ED}=\langle f_{i\downarrow}^\dagger f_{i\downarrow}\rangle_{ED}=0.5.

But, the gs expectation values from DMRG is site dependent

\langle c_{1\uparrow}^\dagger c_{1\uparrow}\rangle_{DMRG}= 0.48392223675793333\\ \langle c_{2\uparrow}^\dagger c_{2\uparrow}\rangle_{DMRG}=0.5160770737858886\\ \langle f_{1\uparrow}^\dagger f_{1\uparrow}\rangle_{DMRG}=0.5642206292594506\\ \langle f_{2\uparrow}^\dagger f_{2\uparrow}\rangle_{DMRG}=0.4356382121466979.
  1. Then I did another test, with one impurity in the f layer, so \epsilon_f^1=-2,U_1=1 and \epsilon_f^{i=2,3,4}=-3,U_{i=2,3,4}=6, and other parameters remain the same as in 1. This time the lowest eigenenergies from ED are
E_0=-16.16148181,\\ E_1=-16.16132063,

and DMRG gave (after 80 sweeps)

After sweep 78 energy=-16.16132571151096  maxlinkdim=170 maxerr=9.53E-11 time=0.574
After sweep 79 energy=-16.161325749034507  maxlinkdim=170 maxerr=9.55E-11 time=0.578
After sweep 80 energy=-16.161325799241418  maxlinkdim=170 maxerr=9.49E-11 time=0.568

And I felt it did not converge to the correct gs.

My question:

With the 2 tests above, I guess my setup of DMRG parameters can be problematic and thus the DMRG code did not converge to the gs. I would appreciate it if you could give me some advice on how to get the gs for such system.

Best regards,
Zhen

Hi Zhen,
I could see how this would be a tough system to study with DMRG. Fortunately you have done all the right things so far and thanks for studying the FAQ about preventing DMRG from getting stuck.

I think the main reason this system is hard to converge is that there is no hopping term between the f electrons. That’s just the nature of this system and the way it is defined, of course, but it can be helpful to start there.

Here are some things you could try, in the order that I would try them.

  1. the first is to also pass the parameter eigsolve_krylovdim to the dmrg function and set the value of this parameter to something like 8 or 10 (the default is 3). It can sometimes make a big difference to DMRG on harder problems to set this to a higher value.

  2. the second idea is bit unusual, but could work well. This idea is to do two separate DMRG calculations, one following the other. In the first, you could define H to include a small nearest-neighbor hopping t' between the f electrons as well and converge DMRG for that system. Then take the MPS that is returned and use it to initialize a second DMRG calculation with the original Hamiltonian (now t'=0) and do some number of sweeps until that converges. If the first value of t' is small and all goes well, you may need very few sweeps of the second run of DMRG to get good results, since I believe the physics may be quite similar.

  3. if neither of the two above approaches help, there are some more things that can be tried but they might be more involved. One of them would be to do three-site DMRG rather than two-site, which can precisely help for problems like this where the unit cell along the MPS path is larger than two sites and when the Hamiltonian does not “naturally” mix degrees of freedom within a single unit cell (e.g. the f electrons only really mix with each other through their hybridization with the c electrons)

Hope that helps and please let me know how it goes. We can discuss more if some of the initial ideas don’t work –

1 Like

Hi Miles,

Many thanks for the fast and detailed reply, and it works!

  1. I added eigsolve_krylovdim=10 to both the homogeneous and impurity cases. The DMRG gs energy for the impurity case got closer to ED. The gs expectation values were still pretty different from ED values for both cases.

  2. Then I added f electron hopping term t'=0.01. Still similar results for both cases: DMRG is not stopped early by the observer, and gs expectation values not good.

  3. I changed to t'=0.1. This time the first DMRG for system with t' got stopped by the observer after 10 sweeps. The second DMRG with t'=0 also converged after 6 sweeps. And the gs energy and expectation values were all close to ED, for both cases.

So my problem is solved and I really appreciate it. I don’t want to bother you more, but I get curious about what you mentioned:

and have several questions:

  1. It seems that I need to “connect” or “mix” the unit cells (A: c electron + B: f electron) by giving a not-too-small t'. And if I have (A: spin-1/2 + B: spin-1) unit cell like DMRG-Calculation-with-Mixed-Local-Hilbert-Space-Types or (A: spin + B: electron) unit cell like mixed-site-set-with-quantum-number-conservation, should I start with a system where A- and B-type sites are connected and then use the output MPS as input for the actual system?

  2. I am not familiar with the 3-site DMRG. Does the 3-site mean that for each dmrg sweep, 3 site tensors are updated at a time? I guess the 3-site DMRG can be good if I have 3 sites in the unit cell, like (A: c electron + B: f electron + C: d electron). It seems that the codes in the example/dmrg folder are all 2-site dmrg. How can I initialize a 3-site calculation?

Thanks again for your help!

Best,
Zhen

Hi Zhen,
I understand Miles’ point about the limitation of 2sites DMRG in capturing entanglement between f electrons via c electrons, potentially leading to local minimum issues due to the absence of 3sites information. I recommend referring to the Projector formalism for kept and discarded spaces of matrix product states for a comprehensive understanding.
Regarding 3sites DMRG, in my solution to the Kondo problem, merging neighboring MPS effectively makes 2DMRG a 3DMRG, but I’m unsure if it’s a good solution for your model.
Best,
Swan

Hi Swan,

Thanks for the explanations and the literature. I will think about it.

Best,
Zhen