Can someone explain to me please how am I supposed to get this:

enter image description here

From this:

enter image description here

I'm a little bit confused because in my calculations using Quantum ESPRESSO I found that:

Highest occupied level (ev): 8.400 eV computed in scf

The Fermi energy is 10.0082 ev computed in nscf

I was thinking that CB from the table above is the same as the highest occupied level computed in the output of scf calculation.


3 Answers 3


From the graph you presented:

  • Select the Brillouin $\Gamma$ point, $G$ in the graph (this is for a direct gap system).
  • Look for where the Fermi level is. In the graph, it is indicated by the red horizontal dashed line. Be aware that the graph show a shifted to zero Fermi level and top valence band!
  • Look for the minimum value of the first band above the Fermi level at the $\Gamma$ point. This will be the value for $CB$.
  • Look for the maximum value of the first band below the Fermi level at the $\Gamma$ point. This will be the value for $VB$.
  • The gap is then calculated as $CB-VB$.

As mentioned before, in the graph, the Fermi level was shifted. This means that, from the graph:

  • $CB=2.420\,eV$
  • $VB=0\,eV$
  • Fermi level = $0\,eV$
  • Gap = $2.420\,eV$
  • $\begingroup$ But in the table the values of CB, VB and fermi level are different. How can you explain that? I don't see how did they get the values in the table? $\endgroup$
    – Camilla
    Sep 26, 2023 at 19:40
  • $\begingroup$ They mixed the data! The data in the table is before shifting the Fermi level, where the graph is after the shift. They shouldn't use two reference systems indeed. $\endgroup$
    – Camps
    Sep 27, 2023 at 13:21
  • $\begingroup$ When I do the scf calculation I always get positive values like I mentioned in the post, however in the literature they always have small negative values and they use them to align the layers of solar cells. How can I get like the values used in the literature using Quantum ESPRESSO? $\endgroup$
    – Camilla
    Sep 27, 2023 at 14:23

I would recommend to obtain VB top and CB bottom energy values from the output file. The occupation numbers are listed if 'verbose' mode is active. In any output mode the energies should be printed out for every k-point.

For example:

    End of self-consistent calculation

          k = 0.0000 0.0000 0.0000 ( 51347 PWs)   bands (ev):

   -41.2118 -41.2117 -41.2117 -41.2117 -41.2117 -41.2117 -41.2116 -41.2116
     3.0299   3.0299   3.1717   3.1717   3.4488   3.4488   3.9082   3.9082
     5.5990   5.5990   6.3247   6.3247   7.0692   7.0692   7.2538   7.2538
     7.4689   7.4689   7.6844   7.6844   9.0266   9.0266   9.2530   9.2530
     9.4975   9.4975   9.8699   9.8699

In this example Fermi energy is 5.125 eV, so that VB top is 3.908 eV and CB bottom is 5.599 eV. Note, these values are for Gamma point k = 0,0,0. You may need to consider many k-points to obtain the global values.

Note 1. The exact energy values depend from many factors, the most important is the used pseudopotentials (pps). So that you may have them both positive or negative - there is no error. Instead of the absolute values the residuals (like band gap CB-VB) should be compared when different software codes / pps are used.

Note 2. I would not recommend to use the Fermi level value from nscf calculation in QE, it looks strange. The scf one should be more reasonable.

  • $\begingroup$ In this example you provided CB is 5.59 eV not 5.6 eV .No ? $\endgroup$
    – Camilla
    Oct 14, 2023 at 12:15
  • $\begingroup$ Yes, you are right, @Camilla. Edited answer to have the same precision of the numbers $\endgroup$
    – Leon A
    Nov 12, 2023 at 7:01

To obtain both the VB and CB you will have to run scf calculation by using the nbnd command (the number of Kohn-Sham states) with a value basically the same as the number of electrons in the system. Both energy levels will appear in the SCF output file.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .