Difference between revisions of "Non self-consistent calculations: Band structures and Density Of States"

From Wiki Max
Jump to navigation Jump to search
Line 16: Line 16:
 
In the Quantum ESPRESSO input file one has to set:
 
In the Quantum ESPRESSO input file one has to set:
  
     calculation="nscf"     # kpts sampling BZ
+
     calculation="nscf"   # kpts sampling BZ
 
or
 
or
 
     calculation="bands"  # kpts along lines
 
     calculation="bands"  # kpts along lines
  
K-points (and number of bands if relevant) need to be specified according to the specific needs. See below for bands and DOS.
+
Some comments:
 +
* <code>bands</code> is also a nscf-calculation strictly speaking (i.e. the charge density is clearly not updated).
 +
* It differs from <code>calculation="nscf"</code> since there is not even the requirement of a uniform k-sampling (k-points can be computed along special directions, or just at any place in the BZ).
 +
* In this perspective, <code>nscf</code> runs can evaluate integrated quantities like an update of the Fermi energy.
 +
* During nscf (as well as bands) KS eigenvalues are diagonal to full accuracy (<code>diago_full_acc=.true.</code> by default), at variance with scf calculations, where accuracy is lowered for empty states (not relevant to compute the density not the total energy).
 +
* While one could set <code>diago_full_acc=.true.</code> in scf runs, it is anyway highly recommended to run a second nscf calculation to perform BZ refinements or increase the number of state for plotting or inspection.
 +
* K-points (and number of bands if relevant) need to be specified according to the specific needs. See below for bands and DOS.
  
===DOS===
+
 
 +
==DOS==
  
 
In this case a uniform k-point sampling is needed, similarly to scf calculations.  
 
In this case a uniform k-point sampling is needed, similarly to scf calculations.  
Line 37: Line 44:
 
Setting <code>calculation="nscf"</code> is a good choice.
 
Setting <code>calculation="nscf"</code> is a good choice.
  
===Band structure===
+
Once the KS data have been produced by using <code>pw.x</code>, we can take advantage of a post-processing utility of QE,
 +
<code>dos.x</code> to compute the actual DOS
 +
 
 +
  $>  dos.x < dos.in > dos.out
 +
 
 +
where a typical input file contains the following information: 
 +
  $>  cat dos.in
 +
 
 +
  &DOS
 +
      prefix = 'diamond'
 +
      outdir = './SCRATCH/'
 +
     
 +
      degauss=0.01  !  [Ry]  broadening parameter
 +
     
 +
  [  Emin=val      !  min/max/step of the energy grid
 +
      Emax=val
 +
      deltaE=val
 +
  ]
 +
      fildos = 'dos.diamond.dat'
 +
  / 
 +
 
 +
The output file can then be visualised using some standard tools as described in [[Plotting and visualization tools]].
 +
 
 +
 
 +
==Band structure==
 
Input example (pw.x) to obtain band data:
 
Input example (pw.x) to obtain band data:
  
Line 52: Line 83:
 
K_POINTS {automatic}
 
K_POINTS {automatic}
 
20 20 20  0 0 0
 
20 20 20  0 0 0
 +
 +
 +
==Examples and Exercises==

Revision as of 08:02, 16 December 2020

Prev: LabQSM#Lecture 1: Basic DFT calculations and Convergences


Non self-consistent calculations: Intro

Silicon band structure. Originals from [https://www.tf.uni-kiel.de/matwis/amat/td_kin_ii/index.html Thermodynamics and Kinetics II, Dr. J. Carstensen, Univ. Kiel]

Once the charge density has been obtained in a scf run, more calculations can be performed at fixed density (non-scf). Among these:

  • calculations of Kohn-Sham energies and orbitals on any given set of k-points (i.e. without specific aim of represent a reasonable sampling of the BZ);
  • calculations as above, also increasing the number of computed (= diagonalized) bands (incl the calculation of empty Kohn-Sham states);
  • Importantly, nscf calculations are typically done to plot KS bands or compute the DOS,
  • but also as a preliminary step to other calculations (e.g. uniform k-point samplings and large amounts of empty states are using in GW and other many-body perturbation theory algorithms implemented with sum-over-states techniques)

In the Quantum ESPRESSO input file one has to set:

   calculation="nscf"    # kpts sampling BZ

or

   calculation="bands"   # kpts along lines

Some comments:

  • bands is also a nscf-calculation strictly speaking (i.e. the charge density is clearly not updated).
  • It differs from calculation="nscf" since there is not even the requirement of a uniform k-sampling (k-points can be computed along special directions, or just at any place in the BZ).
  • In this perspective, nscf runs can evaluate integrated quantities like an update of the Fermi energy.
  • During nscf (as well as bands) KS eigenvalues are diagonal to full accuracy (diago_full_acc=.true. by default), at variance with scf calculations, where accuracy is lowered for empty states (not relevant to compute the density not the total energy).
  • While one could set diago_full_acc=.true. in scf runs, it is anyway highly recommended to run a second nscf calculation to perform BZ refinements or increase the number of state for plotting or inspection.
  • K-points (and number of bands if relevant) need to be specified according to the specific needs. See below for bands and DOS.


DOS

In this case a uniform k-point sampling is needed, similarly to scf calculations.

A proper sampling of the BZ is then performed, but the density is not updated.

Input example (pw.x executable) to prepare for DOS calculations:

 [...]
 K_POINTS {automatic}
 20 20 20   0 0 0

By doing this we are de fact performing a refinement of the BZ sampling.

Setting calculation="nscf" is a good choice.

Once the KS data have been produced by using pw.x, we can take advantage of a post-processing utility of QE, dos.x to compute the actual DOS

 $>  dos.x < dos.in > dos.out

where a typical input file contains the following information:

 $>  cat dos.in
 &DOS
     prefix = 'diamond'
     outdir = './SCRATCH/'
     
     degauss=0.01  !  [Ry]  broadening parameter
     
  [  Emin=val      !  min/max/step of the energy grid
     Emax=val
     deltaE=val
  ]
     fildos = 'dos.diamond.dat'
  /  

The output file can then be visualised using some standard tools as described in Plotting and visualization tools.


Band structure

Input example (pw.x) to obtain band data:

K_POINTS {crystal_b} 6

 0.500  0.500  0.000   40    # X 
 0.000  0.000  0.000   40    # G 
 0.500  0.500  0.500   40    # L 
 0.750  0.500  0.250   40    # W 
 0.750  0.375  0.375   40    # K 
 0.000  0.000  0.000    1    # G 

Input example (pw.x) to obtain dos data: K_POINTS {automatic} 20 20 20 0 0 0


Examples and Exercises