# How to get the HOMO/LUMO from spin up/down eigenvalues?

I'm working with OpenMX and see that I have eigenvalues in the output in two columns: one for spin up and one for spin down. How would I know what the total eigenvalue is? Would I just add them together? Also, the data looks like below:

  286   -0.02008501314452  -0.02008501314452
287   -0.01559740498122  -0.01559740498122
288   -0.01243830320899  -0.01243830320899
289   -0.01220124445157  -0.01220124445157
290   -0.00578203878459  -0.00578203878459
291   -0.00371042282201  -0.00371042282201
292   -0.00331216783551  -0.00331216783551
293   -0.00118189095836  -0.00118189095836
294    0.00408542561654   0.00408542561654
295    0.00507831640267   0.00507831640267
296    0.00891684168499   0.00891684168499
297    0.01154985410456   0.01154985410456
298    0.01401015272980   0.01401015272980
299    0.01600696638805   0.01600696638805
300    0.01788534275125   0.01788534275125
301    0.01850894866304   0.01850894866304
302    0.02039668066291   0.02039668066291
303    0.02140787080479   0.02140787080479
304    0.02331225608436   0.02331225608436
305    0.02387109420448   0.02387109420448
306    0.02530373611739   0.02530373611739


Would the HOMO/LUMO bound be at 293/294? If so, this does not match the value I had gotten from a VASP calculation that showed the HOMO/LUMO to be at 236/237. What would cause this discrepancy?

*For reference, the above data is in the "Eigenvalue" section, which has the following heading:

***********************************************************
***********************************************************
Eigenvalues (Hartree) of SCF KS-eq.
***********************************************************
***********************************************************

Chemical Potential (Hartree) =  -0.16158758016502
Number of States             = 512.00000000000000
Eigenvalues
Up-spin           Down-spin

kloop=0
k1=  -0.25000 k2=  -0.25000 k3=   0.00000
$$$$
`

If you want to have eigenvalues for each spin, you need to run a spin polarized calculations. This will set the program to treat both spins differently. After that, you could obtain different values of eigenvalues for each state if your system present spin polarization.

In both cases (with spin polarization on/off), you will have one eigenvalue per spin. Looking close to your result, both values are the same, indicating that your system is not spin-polarized. Then, what you have is a degenerate state: one eigenvalue for two states (spin-up/spin-down). There is no such thing of "total eigenvalue".

About your second question related to HOMO/LUMO. You need to look for the eigenvalues around the Fermi energy (chemical potential), not when they change signs. In this case, the Fermi energy is equal to $$-0.16158758016502$$. The results shown, are far from the Fermi energy, so, all of them are virtual states (energy greater than the LUMO)

• If you know you have an insulator at zero temperature, you can also find the HOMO by counting electrons: starting from the lowest energy, the $N_e$th eigenvalue will be the highest-occupied one. Feb 14 at 16:52
• That works, but I don't know if it is more efficient that just look for the Fermi energy. If your system is big, could be a source of error.
– Camps
Feb 14 at 19:46
• Thank you for your detailed response, I had incorrectly assumed the Fermi energy was automatically at 0. When following what you said, that brings my HOMO/LUMO to be 256/257, but in VASP when I look at the occupation in the PROCAR files, I get 236/237. Is this incorrect? Feb 15 at 21:43
• The output you share state that the Fermi energy was not shifted. In this case, I can not tell more because it is out of range (it should be below 286). If the Fermi level was shifted to zero, then the levels 293/294 are correct.
– Camps
Feb 16 at 13:55