Page 1 of 1
Integrating over electron DOS to conserve the number of atoms
Posted: Wed Nov 19, 2025 9:56 pm
by nigel_hew
I computed the electron DOS using ISMEAR = -5 for a 12-atom supercell of Fe3Pt using the following INCAR settings:
ALGO = Fast
EDIFF = 1e-06
EDIFFG = -0.01
ENCUT = 520
GGA = Pe
IBRION = -1
ISIF = 4
ISMEAR = -5
ISPIN = 2
KPAR = 4
LCHARG = True
LORBIT = 11
LREAL = False
LWAVE = False
MAGMOM = 1*2.821 1*2.818 1*2.821 1*2.82 2*2.819 1*2.821 1*2.818 1*2.821 1*0.293 2*0.294
NEDOS = 10001
NELM = 200
NSW = 0
PREC = Accurate
SIGMA = 0.2
The number of electrons (NELECT) is equal to 156. However, when I integrate over the electron DOS (spin up + spin down) and the Fermi-Dirac distribution, the number of electrons is not 156; it overshoots to 176. However, when I calculate the DOS by taking the difference in the integrated DOS (spin up + spin down) between two pins and performing the same integration, I get 156 electrons.
My question is, am I right in doing this? Because, according to the VASP Wiki (https://vasp.at/wiki/DOSCAR), using the pins to calculate the DOS is valid only for (ISMEAR>0) and (ISMEAR=-1).
Thanks,
Nigel
Re: Integrating over electron DOS to conserve the number of atoms
Posted: Thu Nov 20, 2025 11:03 am
by fabien_tran1
Hi,
Could you please provide the OUTCAR and DOSCAR files, such that we can inspect them. More details about how you integrate the DOS would also be helpful.
Re: Integrating over electron DOS to conserve the number of atoms
Posted: Thu Nov 20, 2025 6:34 pm
by nigel_hew
Hi,
Thank you for your reply.
I've attached the OUTCAR and DOSCAR files for your inspection.
To integrate the DOS, I basically added DOS(up) and DOS(dwn) to get the total DOS. Then I used total DOS * Fermi distribution function as the integrand and did numerical integration with energy on the x-axis. I've attached some Python functions I used if interested. If I do it that way, I get num_electrons=176, which doesn't match NELECT=156.
But I noticed that if I calculated the total DOS using the integrated DOS for the integration, I get num_electrons=156. That is, I added integrated DOS(up) and integrated DOS(dwn) and then used n(ei) = (N(ei) - N(ei-1))/delta_e (https://vasp.at/wiki/DOSCAR) to obtain the total DOS, and used that for the integration.
Thank you for your help!
Re: Integrating over electron DOS to conserve the number of atoms
Posted: Fri Nov 21, 2025 4:55 pm
by fabien_tran1
Hi,
Indeed, the integration of the DOS (sum of 2nd and 3rd columns until the Fermi energy) gives about 176 electrons instead of 156. This is probably due to the inaccurate integration in the region ranging from -46 to -41 eV that contains two sharp peaks and requires a denser mesh of points. You can test this by increasing NEDOS. Note that you can also set EMIN and EMAX if you want to consider only the problematic region for the test.
Re: Integrating over electron DOS to conserve the number of atoms
Posted: Sun Nov 23, 2025 12:25 am
by nigel_hew
Yes, that certainly was the case. I think find I had to increase NEDOS all the way up to 400,001 for the number of electrons to equal 156.6. Thanks for your help.