gkclab / libdmet_preview

A library of density matrix embedding theory (DMET).
GNU General Public License v3.0
28 stars 16 forks source link

How shall we deal with metallic system of which HOMO-LUMO gap == 0? #18

Open changsuc opened 1 year ago

changsuc commented 1 year ago

Hi Zhi-Hao, Thank you for your powerful package. Recently, I performed some tests on metallic systems using libdmet. The log file warns that "WARNING degenerate HOMO-LUMO, assign fractional occupation, xx electrons assigned to xx orbitals". I have some questions here:

  1. How to deal with the gapless system? By setting a finite beta parameter?
  2. What is the proper range of beta, for example, 1000?
  3. I wonder the role of beta. Does beta only allows fractional occupation and help the convergence of HF, or it turn on the finite temperature DMET where nbath will be larger than nimp?
zhcui commented 1 year ago

Thanks for considering the package.

Regarding your questions:

  1. In general, the functions for metallic systems are in the experimental stage, be careful about the results. I would like to use smearing (i.e., beta) for the mean-field.
  2. Depending on the gap of the system, 1/beta should be comparible to the gap (if your system is close to a metal). 1000 is a reasonable choice.
  3. beta is only for mean-field. The nbath is still fixed as nimp since we use SVD to get bath orbitals.
changsuc commented 1 year ago

Zhi-Hao, thank you a lot for your quick response. I checked my calculation carefully that the results of scf calculation in PySCF step still has a gap. Somehow in DMET calculation rho, Mu, res = dmet.HartreeFock(Lat, vcor, Filling, Mu, beta=beta, ires=True, symm=True) (where vcor is still zeros in the first cycle) the system becomes gapless after transferring from AO to LO. I think I had made something wrong while I had not figured it out yet.

changsuc commented 1 year ago

I will keep you updated if I found what happened.