Integrating over electron DOS to conserve the number of atoms

Queries about input and output files, running specific calculations, etc.


Moderators: Global Moderator, Moderator

Post Reply
Message
Author
nigel_hew
Newbie
Newbie
Posts: 7
Joined: Wed Jun 21, 2023 3:19 pm

Integrating over electron DOS to conserve the number of atoms

#1 Post by nigel_hew » Wed Nov 19, 2025 9:56 pm

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


fabien_tran1
Global Moderator
Global Moderator
Posts: 502
Joined: Mon Sep 13, 2021 11:02 am

Re: Integrating over electron DOS to conserve the number of atoms

#2 Post by fabien_tran1 » Thu Nov 20, 2025 11:03 am

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.


nigel_hew
Newbie
Newbie
Posts: 7
Joined: Wed Jun 21, 2023 3:19 pm

Re: Integrating over electron DOS to conserve the number of atoms

#3 Post by nigel_hew » Thu Nov 20, 2025 6:34 pm

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!

You do not have the required permissions to view the files attached to this post.

fabien_tran1
Global Moderator
Global Moderator
Posts: 502
Joined: Mon Sep 13, 2021 11:02 am

Re: Integrating over electron DOS to conserve the number of atoms

#4 Post by fabien_tran1 » Fri Nov 21, 2025 4:55 pm

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.


nigel_hew
Newbie
Newbie
Posts: 7
Joined: Wed Jun 21, 2023 3:19 pm

Re: Integrating over electron DOS to conserve the number of atoms

#5 Post by nigel_hew » Sun Nov 23, 2025 12:25 am

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.


Post Reply