Table of Contents
Relation To Other Codes
This tutorial shows how to generate an energy band graph for Silicon using lm. Though, this tutorial can be applied to other materials as long as the general instructions are followed (with special attention paid to the –band flag).
This tutorial will apply to not only lm, but also other tools in the suite, e.g. lmf. The use of the –band flag is the same, as is the plotting procedure. The difference lies in how the various packages themselves are used, refer to package-specific tutorials to get an idea.
This tutorial assumes you have cloned and built the lm repository (located here). For the purpose of demonstration, ~/lm will refer to the location of the cloned repository (source directory). In practice, this directory can be named differently.
All instances of commands assume the starting position is your build directory (this can be checked with the pwd command). In this tutorial it will be called ~/build/.
$ cd ~/build/
with ~/build being the directory the lm repository was built in to.
Note: the build directory should be different from the source directory.
Energy bands are typically plotted along specified symmetry lines, which information you supply through a symmetry-line file. For the purpose of this tutorial, we will use one included in the repository, although generally you will want to create your own. You can obtain the symmetry-line file for Silicon, syml.si, by following these commands:
$ cp ../lm/startup/syml.si .
Which will copy the symmetry-line file to your current working directory.
syml.si has rows such as:
41 .5 .5 .5 0 0 0 L to Gamma (Lambda) ... 0 0 0 0 0 0 0
Each line of text specifies a line segment in k-space. In the first line of this file the segment runs from to in units of . ‘41’ specifies the number of k points are generated in this segment. At present the remainder of the line is not used. The last line tells the line reader not to read any more lines.
To generate the bands, simply run
$ lm si --band:fn=syml
The –band switch tells lm to generate energy bands, contained in the bands.si file, along the specified k-points (rather than the standard cycle of integration of states over the Brillouin zone)
Once you have this file, it can be plotted with your preffered plotting package. Here, we will give an example using plbnds and fplot:
echo -15 15 5 10 | plbnds -fplot -scl=13.6 -ef=0 si
Which will generate a fplot command file, plot.plnds, which can be run with
fplot -f plot.plbnds
This will give you your desired postscript file ps.dat.
Colouring Energy Bands
It is also possible to colour your generated energy bands. The idea behind this is to assign a weight to each line, which is can be coloured by the graphics plotting package.
To obtain this, run the –band command with the list of orbitals you want to highlight
E.g. for Arsenic, using lmf (the commands are the same for lm):
$ lmf --band~col=28:47~syml ...
This will read line data from the syml file, and weight orbitals 28 to 47. Of course, you will want to colour specific orbitals, e.g. only the p orbitals. To see how the orbitals are ordered, run the energy band program (lm or lmf) with rather high verbosity (>51) and look for the tables following Makidx. This will detail at what orbital number various bands are located.
Makidx: basis arranged in downfolding order: ib low intermed high .. offH .. 1 spdf (16) (0) g (9) 0 0 0 k2 sd (6) (0) pfg (19) 16 0 9 k3 d (5) (0) (0) 22 0 28 2 spdf (16) (0) g (9) 27 0 28 k2 p (3) (0) sdfg (22) 43 0 37 k3 s (1) (0) (0) 46 0 59 3 spd (9) (0) fg (16) 47 0 59 k2 (0) (0) spdfg (25) 56 0 75 4 spd (9) (0) fg (16) 56 0 100 k2 (0) (0) spdfg (25) 65 0 116 Makidx: hamiltonian dimensions Low, Int, High, Negl: 65 0 141 94 kappa Low Int High L+I L+I+H Neglected 1 50 0 50 50 100 0 2 9 0 91 9 100 0 3 6 0 0 6 6 94 all 65 0 141 65 206 94 Orbital positions in hamiltonian, resolved by l: Site Spec Total By l ... 1 Ga 1:27 1:1(s) 2:4(p) 5:9(d) 10:16(f) 17:17(s) 18:22(d) 23:27(d) 2 As 28:47 28:28(s) 29:31(p) 32:36(d) 37:43(f) 44:46(p) 47:47(s) 3 EA1 48:56 48:48(s) 49:51(p) 52:56(d) 4 EC1 57:65 57:57(s) 58:60(p) 61:65(d)
As you can see, the relevant area is the last table.
Edit This Page