Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
VASP 6.1+ sometimes puts the Fermi level just inside a valence or conduction band. This is related to a change in VASP tetrahedron which is described here: https://www.vasp.at/forum/viewtopic.php?f=4&t=17981
There is already logic inside pymatgen to try and catch this bug, unfortunately it is not reliable and after some discussion with @mkhorton, we are not sure it can ever work.
I've made a new implementation that checks whether the Fermi level is just inside of band (controlled by a tolerance, by default set to 1 meV) and next to a band gap. If so, this is likely an error on VASPs part. In my testing I found this method much more reliable.
I'll note this is not enabled by default and is only included when calling
Vasprun.get_band_structure(efermi="smart")
.@rkingsbury this may be relevant to you.