Role of occopt in generating DOS and band structure

Dear colleagues,

I am new to abinit DFT calculation. I was working on calculating spin density and I am lost at certain point regarding “occopt” option. I have noticed that occopt (0,1,2) is referring to insulator and occopt (3 to 8) points to the metallic case. Could you please someone help to understand these two different scenarios?

Does occopt=1 really mean that it is only for real insulating system and occopt=3 is for metallic one?
Or, do they means something else, e.g can I use occopt=3 for insulator with large band gap?

Another point I would like to ask about Fermi energy. Using Siesta for my compound I get negative Fermi energy but using ABINIT I get always positive even for the other system. Is it somehow a relative quantity ?

I have also noticed that the band structure is not calculated above some positive energy. Something between (-80 to 0.5 Ha), How can I expand the positive side something up to 2 Ha? I tried to increase the band number but it does help that much.

Many thanks for your support.


Hi again,

You have to separate the nature of the system and it’s bands (is there a gap?) from the way you occupy those bands (occopt). The main issue is getting the density right: if your system is metallic, you will need partial occupations (occopt >= 3) because some bands are not fully filled. For semiconductors and insulators you can use any occopt (3 is even the physically correct one at finite T) but if you use too large a smearing (tsmear) you may get an incorrect density, then the bands will be distorted (typically tsmear has to be much smaller than the gap).

Note that occopt 1 means constant occupations (either 2 or 0) for a given band for all k, which is not the same as metallic occupations with tsmear 0 (Fermi → step function) which still occupies bands differently at different k-points.

The Fermi energy is fixed by charge conservation, what is relative is the absolute position of your eigenvalues, which depend on

  1. the pseudopotential reference energies and
  2. the reference electrostatic potential energy (see usepotzero)

Increasing the band number is your solution, but depending how packed they are it may not increase the maximum energy very quickly. You may need many bands to get up to 1 or 2 Ha. At some point you hit the vacuum level and a continuum of DOS: you should have infinitely dense continuous bands. This will not be exactly the case in practice, as the vacuum states are quantized by the G vectors and finite unit cell box, but still, the maximum energy will increase very slowly.