"GLLBSC error: HOMO is higher than LUMO. ": Metallicity check too early in the scf loop
Dear Developers,
I was using GLLBSC functional to calculate the band gap of TiO2 (a wide band gap semiconductor). I got an error message of
"GLLBSC error: HOMO is higher than LUMO.
Are you using `xc='GLLBSC'` for a metallic system?
If yes, try using `xc='GLLBSCM'` instead."
It seems that this (homo > lumo) check,
# Check that homo and lumo are reasonable
if homo > lumo:
m = ("GLLBSC error: HOMO is higher than LUMO. "
"Are you using `xc='GLLBSC'` for a metallic system? "
"If yes, try using `xc='GLLBSCM'` instead.")
raise RuntimeError(m)
(file: gpaw/gpaw/xc/gllb/coefficients.py : line 130) is being done at every scf step. And in my case it stops after the 3rd scf step with this error. This is most likely due to system being in metallic state temporarily before scf convergence. The calculation finishes just fine when I remove the above mentioned check and gives a reasonable band gap for TiO2. But I think this check will be necessary for a true metallic system and maybe can be done at the end of the scf cycle after convergence is reached? Thank you very much.