Hi everyone. I am querying/in use of density of states (DOS) from the MP, and would also like to get the ‘NELECT’ number for this VASP calculation. I see I can integrate the DOS to get a number, which however somewhat deviates from the actual ‘NELECT’ of VASP calculations. Can anyone help suggest a way for getting the ‘NELECT’?
Thanks a lot!
Solution: The MP DOS carries a structure obj which I could use to get the NELECT using the MPRelaxSet.
Hi @Zhenkun_Yuan, the most straightforward way for getting NELECT
is by getting the task_id
for the DOS entry you want, and then querying the tasks endpoint directly.
Suppose you want the value of NELECT
for mp-149
:
from mp_api.client import MPRester
with MPRester("api_key") as mpr:
summary_doc = mpr.materials.summary.search(material_ids=["mp-149"])[0]
task_id = str(summary_doc.dos.total["1"].task_id)
task_doc = mpr.materials.tasks.search(task_ids=[task_id])[0]
print(task_doc.input.parameters.get("NELECT"))
Be aware that because the POTCARs we use in calculations has changed over time, the value of NELECT
is not always determined by the MPRelaxSet
. If a DOS was generated with r2SCAN, then the right set to use is MPScanRelaxSet
.
The method above circumvents this by letting you directly retrieve the value of NELECT
.
1 Like
Hi @Aaron_Kaplan , Thank you very much! This is very helpful!