Page 1 of 1

NUPDOWN = 1 makes Fermi-level go haywire

Posted: Wed Jun 08, 2022 5:44 am
by peter_deak1
Dear Experts,

recently I was studying a semiconductor with a shallow, singly occupied donor level, very near to the CBM. This was an odd electron system and I expected a spin doublet. When I set NUPDOWN = 1, the Fermi energy turned out to be in the lower half of the gap (between the VBM and the occupied donor level). Without setting it, it was where it should be, i.e., between the donor level and the CBM. Can you tell me why is that? (I am using VASP 5.4.4.)

Best regards

Peter Deák

Re: NUPDOWN = 1 makes Fermi-level go haywire

Posted: Wed Jun 08, 2022 7:14 am
by martin.schlipf
The Fermi level is not well defined when NUPDOWN is set. The way it is implemented, you have two separate Fermi levels, one for spin up and one for spin down. Each of them is calculated individually such that the number of electrons equates to desired number for that particular spin channel. However, this is implemented as a loop over these spin channels and the normal Fermi energy variable is reused for it. Therefore the Fermi energy printed to the output is actually the Fermi energy for the down spin channel.