Last Modified 20 February 2000

The ``Static'' Tight-Binding Program: Example VII -- Band Structure


The previous pages in this example showed how to set up a SKIN file for band structure plotting and how to interpret the output. This page will show you how to actually plot the band structure from the QLMT file.

The form of the QLMT file is remarkably unsuitable for band structure plots. Thus we need a filter program to convert the QLMT file into something that a plotting program such as gnuplot can use. This is provided by the auxillary program bandplot.f.

In order to run bandplot, we need two input files; bandplot.in and dosdat.in.

The bandplot.in file format is listed below. You will notice that the QLMT we generated earlier is listed as an input file to be parsed by bandplot.The Fermi energy (0.32754) is provided for you, but Example 12 will show you how to calculate it for yourself. For the fcc configuration, the bandplot program requires 5 k-point directions. Finally, we specify our output files. The banddata output is the converted QLMT file, and the bandplot.gnu file is the generated gnuplot script that will create a file band.eps containing the band structure plot.

Ag-fcc
2
QLMT                                         ! Input file
PRIMITIVE VECTORS OF THE DIRECT LATTICE
  0.5  0.5  0.0
  0.5  0.0  0.5
  0.0  0.5  0.5
Number of bands to be ploted, maximum eigenvalue
9 100
Fermi energy (Ry)
   0.32754  
Enter the number of k-directions in the Brillouin zone
5                                               ! k-directions in the Brillouin zone
 80                                             !number of k-point in the  1 direction
 40                                             !number of k-point in the  2 direction
 80                                             !number of k-point in the  3 direction
 80                                             !number of k-point in the  4 direction
 80                                             !number of k-point in the  5 direction
banddata                                       ! Output file -donot change the title
bandplot.gnu   					! Output gnuplot file

Compile bandplot.f, then run the executable.

$ ./bandplot

The output file, here banddata, has a rather simple form:

$ head -10 banddata

     0.000000    -0.277291    -0.038660    -0.038660    -0.038660     0.047466     0.047466     1.701297     1.701297     1.701297
     0.012658    -0.277162    -0.038710    -0.038610    -0.038610     0.047402     0.047491     1.701014     1.701014     1.702777
     0.025316    -0.276777    -0.038860    -0.038459    -0.038459     0.047213     0.047566     1.700163     1.700163     1.707211
     0.037974    -0.276135    -0.039109    -0.038208    -0.038208     0.046898     0.047691     1.698744     1.698744     1.714586
     0.050632    -0.275236    -0.039457    -0.037857    -0.037857     0.046460     0.047865     1.696757     1.696757     1.724880
     0.063292    -0.274080    -0.039903    -0.037405    -0.037405     0.045902     0.048089     1.694201     1.694201     1.738056
     0.075950    -0.272667    -0.040447    -0.036855    -0.036855     0.045228     0.048362     1.691076     1.691076     1.754066
     0.088608    -0.270996    -0.041087    -0.036205    -0.036205     0.044442     0.048683     1.687383     1.687383     1.772839
     0.101266    -0.269067    -0.041822    -0.035457    -0.035457     0.043549     0.049052     1.683122     1.683122     1.794285
     0.113924    -0.266882    -0.042651    -0.034611    -0.034611     0.042556     0.049468     1.678297     1.678297     1.818283

Each k-point in the QLMT file has its own line. The first number on the line represents the distance, in Cartesian reciprocal space, from the preceding k-point. The first point is arbitrarily assigned to be zero. If you'll go down to the 40th line of banddata you'll see the distance is 0.5, as it should be using this mesh, since according to our setup, it should be X.

Run

$ gnuplot bandplot.gnu
to create the band structure plot.
Band structure of TB silver

Of course, the Fermi level in this graph was found by doing another calculation with a realistic k-point mesh, which you can read about in Example 12


Go back to the setup or output pages.

Look at other examples.


static Home Page   Introduction   About Version 1.11   Installation   List of Files   Usage   Input Files   Output Files   Trouble Shooting   Appendix

Return to the static Reference Manual.