Page 1 of 1

Cannot reproduce Ni d-orbital LDOS in NiO LSDA+U tutorial

Posted: Wed Apr 15, 2026 7:33 pm
by reynaldo.putra

Hello,

As the title says, I am trying to reproduce the LDOS plot as shown in the NiO LSDA+U tutorial page, but to no avail: the tutorial shows an asymmetric spin up and down Ni d orbital t2g and eg (top), and yet my plotted orbitals are symmetrical (bottom)
I used exactly the input files provided as is using VASP 6.4.2, and I used the VASPKIT module to sum the t2g (dxy, dyz, dxz) and eg (dz2, dx2-y2) orbitals into the .dat file.

tutorial_example.png
NiO_d_t2g-eg.png

I've provided the relevant input and output files in the attachments.

Thank you for your attention!


Re: Cannot reproduce Ni d-orbital LDOS in NiO LSDA+U tutorial

Posted: Thu Apr 16, 2026 9:30 am
by max_liebetreu

Hello reynaldo,

Thanks for reaching out to us on the VASP Forum!
I've taken a closer look at your calculation and noticed that your LDAUPRINT=2, but the valid set of values is {0,1}. In the original INCAR, it is set (correctly) to 1.
I noticed the text under the INCAR panel incorrectly suggested LDAUPRINT=2 - that might be the source of your setting. I have corrected the text on the wiki; thanks for bringing this to our attention.

Changing this to LDAUPRINT=1 should hopefully allow you to produce the desired plot!

As a general note, there's newer tutorials available on our dedicated Tutorials page (for magnetism, check here and here) - although these use py4vasp and the vaspout.h5 for plotting.

Hope this helps, let me know if changing the setting resolves the issue!

Best regards,
Max


Re: Cannot reproduce Ni d-orbital LDOS in NiO LSDA+U tutorial

Posted: Mon Apr 27, 2026 3:42 pm
by reynaldo.putra

Dear Max,

Thank you for your suggestion! I have tried LDAUPRINT=1, however the resulting DOS plot remain virtually unchanged. I have also ensured that the right orbitals are assigned to the t2g (dxy, dyz, dxz) and eg (dz2, dx2-y2) orbitals.

NiO_d_t2g-eg_rerun.png

To check whether there might be an issue unrelated to the LDAUPRINT tag, I tried the 4.2 NiO DFT tutorial and found the same issue of plotting t2g and eg; the small band gap is as expected from a DFT calculation without the U parameter.

4_2niot2g_eg.png

And below are the calculated TDOS, and it is symmetric with a similar band gap as the tutorial TDOS, which confirms that at least on the level of TDOS the calculation worked properly.

4_2nioTDOS.png

Would you have any suggestions on the next steps? Or how important it is to replicate the t2g and eg DOS plots to ensure that I have physically accurate/meaningful results for future NiO models (e.g., supercells, surfaces, defected cells, etc.)? Frankly, this is my chief concern!

Thank you!

p.s., is there a limit to the number of image attachments allowed? I tried uploading more figures directly from the tutorial pages but I couldn't get it to work.


Re: Cannot reproduce Ni d-orbital LDOS in NiO LSDA+U tutorial

Posted: Tue Apr 28, 2026 12:07 pm
by max_liebetreu

Hello Reynaldo,

We have discussed your question and internally, and are confident that the asymmetry in the tutorial plot comes from only one site being considered for that plot (antiferromagnetic material), whereas the new tutorials plot the whole system, which is consistent with the symmetric plots you are seeing. We may relabel the old tutorial plot to clarify the matter for future users, but in regards to your inquiry: Your calculation looks correct to us and matches the behavior we'd expect, and the plots generated in the new tutorials.

In the new tutorials, we can get something similar to the old plot by disabling the Ni2:

Screenshot 2026-04-28 140227.png

But the old plot is mostly undocumented, and unclear what exactly is being plotted, and how - that's one of (many) reasons why we recommend following the new tutorials instead.

Either way, what you are describing is no indication, in our opinion, that your calculation is in some way unreliable; it looks consistent to us.
And with regards to your P.S. - thank you, we do have a limit of three images per post; unfortunately, phpbb seems to be unclear on communicating that limit.

Best regards,
Max


Re: Cannot reproduce Ni d-orbital LDOS in NiO LSDA+U tutorial

Posted: Wed Apr 29, 2026 4:12 pm
by reynaldo.putra

Dear Max,

Thank you very much for the clarification! I have some questions regarding the plotting using py4vasp, but I am unsure whether it is an issue of py4vasp, of JupyterLab, or of the Python installation in my PC itself, hence my hesitation to try it. Now I am giving it a try and I am running into some issues.

1) Could I know the lines of code used to plot the selected orbitals of the specific atoms as you showed in the picture? I found the explanation of the syntax in the manual, but I could not figure out how to implement them.

Code: Select all

calculation.dos.selections()
{'dos': ['default', 'kpoints_opt'], 'atom': [...], 'orbital': [...], 'spin': [...]}

Thank you for your continued help!

Best,
Reynaldo

P.s., also please let me know if I need to start a new thread since the topic has shifted from the initial question. Thank you!


Re: Cannot reproduce Ni d-orbital LDOS in NiO LSDA+U tutorial

Posted: Thu Apr 30, 2026 10:16 am
by max_liebetreu

Dear Reynaldo,

That specific plot is created using the following command:

Code: Select all

dos = mycalc.dos.read("1(dz2, dx2y2) 2(dz2, dx2y2)") 
(
     py4vasp.plot(dos["energies"], dos["Ni_1_dz2_up"] + dos["Ni_1_dx2y2_up"], "Ni 1 eg up")+
     py4vasp.plot(dos["energies"], -dos["Ni_1_dz2_down"] - dos["Ni_1_dx2y2_down"], "Ni 1 eg down")+
     py4vasp.plot(dos["energies"], dos["Ni_2_dz2_up"] + dos["Ni_2_dx2y2_up"], "Ni 2 eg up")+
     py4vasp.plot(dos["energies"], -dos["Ni_2_dz2_down"] - dos["Ni_2_dx2y2_down"], "Ni 2 eg down")
)

You can check the tutorial here to see the full workflow.
Hope that helps! No need to open a new topic, this is still sufficiently related.

Best,
Max