Obtaining the band structure

The starting point for the calculation of a band structure is a finished Fleur calculation yielding a self-consistent density. This means that a charge density file with this density should be present in the working directory and be consistent with the input file.

The main difference between a band structure calculation and an SCF calculation is that different k point sets have to be used. While a good SCF calculation uses a k point set that representatively samples the Brillouin zone, the k point set for a band structure calculation has the form of a k point path along high-symmetry lines of the Brillouin zone.

The most elegant way to specify the alternative k point set in the Fleur input file is to make use of the optional XML element calculationSetup/bzIntegration/altKPointSet. If such an element is present and calculationSetup/bzIntegration/altKPointSet/@purpose is set to bands it specifies the k point set to be used for band structure calculations. If no such element is present the default k point set of the Fleur input file is used. Note that the preferred way to specify a k point set for a band structure calculation is to use the kPointCount XML element and just define the number of points on the automatically created high-symmetry k point path in kPointCount/@count. If a special path deviating from the automatically generated one is required it can be specified by enumerating the high-symmetry k points along the path in kPointCount/specialPoint XML elements.

After defining the k point set for the band structure calculation the band structure calculation has to be switched on.

To start a band strucure calculation with Fleur the output/@band switch has to be set to T. Then Fleur has to be started in the respective directory. Since every new Fleur run overwrites the old output files make sure that you create backups of these files before starting the band structure calculation. The data from the out and out.xml files may be needed in the postprocessing to the band structure calculation.

The output of a band structure calculation is stored in several files.

For nonmagnetic calculations the band structure is stored in the file bands.1 in terms of two columns with an x coordinate in the first column and an energy in eV in the second column. For magnetic calculations this file contains the data for the first spin while the data for the other spin is stored in the file bands.2.

Note that the Fermi energy calculated in Fleur depends on the k point set. If the Brillouin zone is well-sampled one obtains a good value for the Fermi energy. k point sets for band structure calculations are not made for such a Brillouin zone sampling and the quality of the Fermi energy depends on whether the highest occupied state is near the high-symmetry k point path or not. Therefore one has to pay attention to correct the raw band structure data to the correct Fermi energy. This can be performed while plotting the data.

To plot the band structure data Fleur writes out a gnuplot script band.gnu. It can be used by invoking gnuplot < band.gnu > bands.ps and afterwards converting the postscript file into a PDF with ps2pdf bands.ps. The correction offset can directly be inserted into the plotting command in the script. The Fermi energy from the last calculation can be obtained from the out.xml file by invoking grep FermiEnergy out.xml. Depending on whether a cdn1 or a cdn.hdf file is used some correction of the Fermi energy is automatically performed in the raw data. In the case of the cdn.hdf file the raw data is already aligned to the Fermi energy obtained from the self-consistency calculation. Otherwise it is aligned to the Fermi energy of the band structure calculation. A Fleur output to the command line will inform you about this.

Note that it may also be that the Fermi energy from the band structure calculation is the better choice, i.e., if the highest occupied state is directly on the chosen k point path. But the Fermi energy from the SCF calculation can systematically be converged by choosing ever finer k point meshes.

The following figure shows the band structure for Silicon using the default $\vec{k}$-point path. It was directly created with the gnuplot script mentioned above. No correction of the Fermi energy had to be performed here because the highest occupied state is located at a $\vec{k}$ point included in the default path.

Si band structure

Another file written out by band structure calculations is the HDF5 file banddos.hdf. In this file you will find all data needed to create a band structure and also the projections of every state onto each atom and onto each orbital character at each atom. This data can be used to create band structures with additional encoded information.