Last Modified 17 December 1999

The ``Static'' Tight-Binding Program: Example IX

The band structure plots shown in example 7 and example 8 show useful information about the electronic states of the system, but only, as we have seen, for particular lines in the zone. Another way of studying the electronic structure of the system is by looking at the electronic density of states (DOS), which tells us how many states are in a given energy range, but cannot tell us where these states are in the Brillouin zone.

To make things interesting we'll study the DOS of Ruthenium in its experimental hcp ground state. The Ruthenium parameters are available from the Tight-Binding database under Ru, and we'll save them as ru_par.

The calculation of the DOS requires a knowledge of the eigenvalues of the system, so we'll use the static code to create a QLMT file. To do this we'll need the Ruthenium parameter file (see above) and a spacegroup file. We'll steal the one we need from example 2, where we used the lattice coordinate space group file spcgp1.hcp. Copy this into the working directory as spcgp1.hcp.

In the ground state Ruthenium has the lattice parameters

a = 2.71 Å = 5.12 Bohr and

c = 4.28 Å = 8.09 Bohr   .

For our purposes we won't need the angular momentum decomposition of the density of states, so we'll run static with Mode = 10. Finally, we'll make our own k-points. Then the SKIN file looks like this:

Mode=10               (Calculate energy only -- no pressure)
0.005  5.000         (T_{Fermi}, Eigenvalue cutoff for P calculation)
ru_par
Ruthenium HCP (A3) -- Experimental Lattice Constants
 experiment          (20 character label for SKENG)
 0.00                (Electrons in addition to nominal Ru charge (=8/atom))
 3                   (hexagonal lattice, read a and c)
 5.12 8.09           (a and c in Bohr)
 0                   (No additional strains applied)
 2                   (Atoms in the unit cell)
 4 4 4               (Neighbor search cutoff indices)
F                    (Logical variable -- no internal displacements)
1 0.33333333333333333 0.66666666666666667 0.25 0 0 0   (Atom 1 in lattice coord.)
1 0.66666666666666667 0.33333333333333333 0.75 0 0 0   (Atom 2 in lattice coord.)
NEWSYM=T             (Generate new set of k-points)
LATTIC=4             (Lattice type / Next is spacegroup file name:)
spcgp1.hcp
ILAT=T               (Space group file in lattice Coordinates)
    0                (Generate k-points)
lspec=f,linfok=f     (Regular points, no information points)
   30   30   24                  (Mesh:  must be (5I5) format)

This looks like a rather large number of k-points (1183, to be exact), but the calculation is rather quick, especially in parallel mode, and the more k-points we have to better the DOS will be.

After running the code, our working directory looks like this:

$ ls -l
total 896
-rw-r--r--   1 mehl     users      682681 Jun  2 16:59 QLMT
-rw-r--r--   1 mehl     users          63 Jun  2 16:59 SKENG
-rw-r--r--   1 mehl     bind         1157 Jun  2 16:55 SKIN
-rw-r--r--   1 mehl     users      103891 Jun  2 16:59 SKOUT
-rw-r--r--   1 mehl     users      103080 Jun  2 16:58 output
-rw-r--r--   1 mehl     users        7133 Jun  2 16:41 ru_par
-r--r--r--  10 mehl     bind         1511 Jul 28  1997 spcgp1.hcp

Note that this time the SKENG file gives a reasonable answer,

 experiment           183.661901     .240370332    -.010923624

because the k-point mesh covers the entire Brillouin zone.

Since we choose Mode=10, the QLMT file contains only k-point and eigenvalue information. The first two k-points should look like this:

    1    1    0    1     SPINS, WIND., SC. WIND.
 1183 K-POINTS     2  16.00000    .00500
    .00000    .00000    .00000    .00005        18    0.4629629630D-04 K
   -.3888916   0.000000E+00
   -.2168564   0.000000E+00
    .0423497   0.000000E+00
    .0423497   0.000000E+00
    .0650438   0.000000E+00
    .0968025   0.000000E+00
    .0968025   0.000000E+00
    .1353442   0.000000E+00
    .1353442   0.000000E+00
    .3120181   0.000000E+00
    .3298007   0.000000E+00
    .3298007   0.000000E+00
   1.0069307   0.000000E+00
   1.4478273   0.000000E+00
   1.4478273   0.000000E+00
   2.1110837   0.000000E+00
   2.1110837   0.000000E+00
   2.1185532   0.000000E+00
    .00000    .00000   -.04167    .00009        18    0.9259259259D-04 K
   -.3864778   0.000000E+00
   -.2161959   0.000000E+00
    .0414126   0.000000E+00
    .0414126   0.000000E+00
    .0642952   0.000000E+00
    .0959363   0.000000E+00
    .0959363   0.000000E+00
    .1372855   0.000000E+00
    .1372855   0.000000E+00
    .3070205   0.000000E+00
    .3296955   0.000000E+00
    .3296955   0.000000E+00
   1.0112809   0.000000E+00
   1.4509220   0.000000E+00
   1.4509220   0.000000E+00
   2.1094397   0.000000E+00
   2.1150038   0.000000E+00
   2.1150038   0.000000E+00

Now we have the task of turning all of this information into a DOS plot. For that, please go on to the next page.


Now go to page 2 and see how to calculate an approximate density of states.

Look at other examples.

Get other parameters from the Tight-binding periodic table.


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.