Local Modified Becke-Johnson Pontential resulting in a band gap of 0
I am attempting to calculate a band gap in GaN with a N vacancy using the local modified becke-johnson potential; however, in post processing (using pymatgen) the band gap is consistently 0.0 eV. I believe, the post-processing result is due to the fermi energy adjusted to the bottom of the CBM. Pymatgen automatically returns Eg = 0 eV if the material is identified as a metal, i.e. the fermi level overlaps the band value.
Initially i thought this was due to using the tetrahedral method (ISMEAR=-5) and how vasp calculates the fermi energy, which was changed in 6.1, https://www.vasp.at/forum/viewtopic.php ... ral#p19779. So I tried setting ISMEAR=0 and SIGMA=0.05, but I got the same result. So investigating a little more, I found that vasp 6.4 implemented a new keyword, EFERMI=MIDGAP, to correct this issue, see https://www.vasp.at/forum/viewtopic.php?f=4&t=18201. Using ISMEAR=-5 and EFERMI=MIDGAP resulted in the same, Eg=0 eV.
Looking at the DOS plots, you can see that a band gap should exist. So in post-processing, using pymatgen, I set the fermi level to the same fermi level of a pristine GaN structure. Then I got a band gap > 0.0. However, I would prefer to not subjectively assign a fermi level in post processing to get a band gap.
Based on all this does anyone have an idea on how to get vasp to correctly assign the fermi level.
Also, i am using the local mBJ functional as the normal mBJ does not perform well for heterogenous structures.
Attached are the input files for the band gap calculation using ISMEAR=-5 and EFERMI=MIDGAP. I am using vasp 6.4.3. Thanks for any assistance!