Band Structure
**************

BAND can calculate the band structure for the standard k-path in the
Brillouin zone [1] and saves the corresponding data to the binary file
RUNKF.

The band structure is best examined with the GUI module
**BandStructure** see:

* Advanced BAND tutorial: Calculation of Band Structure and COOP of
  CsPbBr3 with BAND

   BandStructure
      Enabled Yes/No
      Automatic Yes/No
      DeltaK float
      FatBands Yes/No
      UseSymmetry Yes/No
      EnergyAboveFermi float
      EnergyBelowFermi float
   End

"BandStructure"
   Type:
      Block

   Description:
      Options for the calculation of the band structure.

   "Enabled"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Calculate band structure

      Description:
         If True, Band will calculate the band structure and save it
         to file for visualization.

   "Automatic"
      Type:
         Bool

      Default value:
         Yes

      GUI name:
         Automatic generate path

      Description:
         If True, BAND will automatically generate the standard path
         through the Brillouin zone.                      If False
         BAND will use the user-defined path in BZPath.

   "DeltaK"
      Type:
         Float

      Default value:
         0.1

      Unit:
         1/Bohr

      GUI name:
         Interpolation delta-K

      Description:
         Step (in reciprocal space) for band structure interpolation.
         Using a smaller number (e.g. 0.03) will result in smoother
         band curves at the cost of an increased computation time.

   "FatBands"
      Type:
         Bool

      Default value:
         Yes

      GUI name:
         Calculate fatbands

      Description:
         If True, BAND will compute the fat bands (only if
         BandStructure%Enabled is True).                      The Fat
         Bands are the periodic equivalent of the Mulliken population
         analysis.

   "UseSymmetry"
      Type:
         Bool

      Default value:
         Yes

      GUI name:
         Use symmetry

      Description:
         If True, only the irreducible wedge of the Wigner-Seitz cell
         is sampled.                      If False, the whole
         (inversion-unique) Wigner-Seitz cell is sampled.
         Note: The Symmetry key does not influence the symmetry of the
         band structure sampling. Only available for Setyawan and
         Curtarolo convention (see "KPathFinderConvention").

   "EnergyAboveFermi"
      Type:
         Float

      Default value:
         0.75

      Unit:
         Hartree

      GUI name:
         Energy above Fermi level

      Description:
         Bands with minimum energy larger then FermiEnergy +
         EnergyAboveFermi are not saved to file. Increasing the value
         of EnergyAboveFermi will result in more unoccupied bands to
         be saved to file for visualization.

   "EnergyBelowFermi"
      Type:
         Float

      Default value:
         10.0

      Unit:
         Hartree

      GUI name:
         Energy below Fermi level

      Description:
         Bands with maximum energy smaller then FermiEnergy -
         EnergyBelowFermi are not saved to file. Increasing the value
         of EnergyBelowFermi will result in more occupied core bands
         to be saved to file for visualization. Note: EnergyBelowFermi
         should be a positive number!

Information on the k-path used for band structure plotting (including
the fractional coordinates of high-symmetry k-points) can be found in
the section "KPath" of the output file.


User-defined path in the Brillouin zone
=======================================

If "BZStruct%Automatic" is "False", BAND will compute the band
structure for the user-defined path in the "BZPath" block.

   BZPath
      path # Non-standard block. See details.
         ...
      End
   End

"BZPath"
   Type:
      Block

   Description:
      Definition of the user-defined path in the Brillouin zone for
      band structure plotting.

   "path"
      Type:
         Non-standard block

      Recurring:
         True

      Description:
         Definition of the k-points in a path. The vertices of your
         path should be defined in fractional coordinates (wrt the
         reciprocal lattice vectors)

You should define the vertices of your path in fractional coordinates
(wrt the reciprocal lattice vectors) in the "Path" sub-block. If you
want to make a *jump* in your path, you need to specify a new "Path"
sub-block.

In the following example we define the path "Gamma-X-W-K|U-X" for a
FCC lattice:

   BZPath
      Path
         0.000   0.000   0.000
         0.500   0.000   0.500
         0.500   0.250   0.750
         0.375   0.375   0.750
      End
      Path
         0.625   0.250   0.625
         0.500   0.000   0.500
      End
   End


Definition of the Fat Bands
===========================

The fat bands F_{i,n,\sigma,\vec{k}} are the periodic equivalent of
the Mulliken population. They are defined as:

   F_{i,n,\sigma,\vec{k}} = \sum_j C_{i,n,\sigma,\vec{k}}
   C_{j,n,\sigma,\vec{k}} S_{i,j,\vec{k}}

where C_{i,n,\sigma,\vec{k}} and  S_{i,j,\vec{k}} are the orbital
coefficients and the overlap matrix elements respectively. The indices
i and j denote basis functions, n is the band index, \sigma is the
spin index and \vec{k} is a reciprocal vector in the Brillouin zone.


Band Gap
========

The band gap (if any) is printed in the output. Here is an example for
the NaCl crystal:

   ----------------------------------------
   Band gap information
   ----------------------------------------
   Number of valence electrons                    16
   Valence Band index                              8
   Top of valence Band (a.u.)                 -0.192
   Bottom of conduction Band (a.u.)           -0.039
   Band gap (a.u.)                             0.153
   Band gap (eV)                               4.173
   Band gap (kcal)                            96.235

[1] W. Setyawan and S. Curtarolo, *High-throughput electronic band
    structure calculations: Challenges and tools*, Computational
    Materials Science 49 (2010) 299–312.


Calculation of the Fermi Surface
================================

If the system has no band gap it is a metal, and that means that the
Fermi surface is a complex shape in the Brillouin zone. As multiple
bands may be crossing the fermi energy there may be multiple surfaces.
In case of a spin unrestricted calculation both spins have a Fermi
surface of their own. For 2D systems the "surface" consists of one or
more lines. The result can be viewed with the GUI module AMSbands.

* Advanced BAND tutorial: Bands, dos and Fermi surface with BAND

   FermiSurface
      Enabled Yes/No
      KIntegForSymmetricKGrid integer
      NMesh integer
   End

"FermiSurface"
   Type:
      Block

   Description:
      Calculation of the Fermi surface for metals

   "Enabled"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Calculate Fermi surface

      Description:
         Calculate the Fermi surface if the system has no band gap
         (i.e. is a metal). The result can be visualized with
         amsbands.

   "KIntegForSymmetricKGrid"
      Type:
         Integer

      Default value:
         -1

      Description:
         If the (default) regular k-grid is used, a symmetric one is
         created to determine the Fermi surface. If this key is not
         specified an automatic value of kInteg is used. Odd values
         trigger quadratic interpolation.

   "NMesh"
      Type:
         Integer

      Default value:
         7

      Description:
         Improves the matching of the interpolated quadratic surface.
         For better results it makes more sense to increases
         KIntegForSymmetricKGrid.
