This tutorial shows how to generate energy bands for PbTe using the ASA code lm, but the --band switch applies equally to all codes that make crystal energy bands. See, for example a corresponding tutorial that generates bands with lmf.
Table of Contents
You can make energy bands along symmetry lines you specify, using any code with band-generating capability (lmf, lm, tbe, and lumpy), using the --band switch, in symmetry line mode. Some information to help you construct symmetry lines for any crystal lattice can be found here.
You must have a potential which can make a single-particle hamiltonian. For the ASA, this means that the potential parameters are available. Usually they are generated as a byproduct of the self-consistency cycle), but it can be something else, e.g. potential parameters modified by the Levenberg-Marquardt fitting algorithm.
This tutorial begins assuming you have completed Introductory tutorial for the ASA, and have self-consistent ASA calculation for PbTe in your working directory.
Energy bands are typically plotted along specified symmetry lines, which information you supply through a symmetry-line file.
Cut and paste the box below into file syml.pbte
41 .5 .5 .5 0 0 0 L to Gamma (Lambda) 41 0 0 0 1 0 0 Gamma to X (Delta) 21 1 0 0 1 .5 0 X to W (Z) 41 1 .5 0 0 0 0 W to Gamma (no name?)
syml.pbte 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.
These are typical lines for the fcc lattice. The structure of this file is described in detail on this page.
For drawing bands, use the --band switch in the symmetry line mode. You don’t have to do anything special because it is the default mode; lm will generate bands along symmetry lines specified in syml.pbte
To generate the bands, simply run
lm pbte --quit=rho lm pbte --band:fn=syml
The –band switch tells lm to generate energy bands. They are written to file bands.pbte along the specified k-points (rather than the standard cycle of integration of states over the Brillouin zone. The structure of the bnds file is documented on this page.
echo -12,8,5,10 | plbnds -fplot -ef=0 -scl=13.6 -dat=green -lt=1,bold=3 -lbl=L,G,X,W,G - bnds.pbte
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 fplot.ps.
echo -12,8,5,10 | plbnds -fplot~scl=.7~sh -ef=0 -scl=13.6 -dat=green -lt=1,bold=3 -lbl=L,G,X,W,G - bnds.pbte
ASA bands of PbTe without Spin Orbit coupling
Colouring Energy Bands
It is also possible to colour the energy bands. The idea behind this is to assign one or more weights to each band, which can be used to assign a color by the graphics plotting package. Weights are taken from a Mulliken decomposition of an eigenstate into orbital contributions. The sum of all orbital contributions adds to one; by selecting out a subset of orbitals you get a fractional weight which is used as the colour.
To obtain bands with one, two, or three color weights, run the –band command with the list of orbitals to include as follows:
--band~col=orbital-list~... --band~col=orbital-list1~col2=orbital-list2~... --band~col=orbital-list1~col2=orbital-list2~col3=orbital-list3~...
Each orbital is associated with a site and some lm character. In the ASA, there is one orbital belonging to a site and a particular angular momentum (lm quantum numbers). It is a tedious job to extract their position in the hamiltonian, but lm does this for you. Do
lm pbte --quit=ham --pr55
You should see the following:
Orbital positions in hamiltonian, resolved by l: Site Spec Total By l ... 1 Pb 1:9 1:1(s) 2:4(p) 5:9(d) 2 Te 10:18 10:10(s) 11:13(p) 14:18(d) 3 E 19:27 19:19(s) 20:22(p) 23:27(d) 4 E 28:36 28:28(s) 29:31(p) 32:36(d)
Suppose we want to assign two color weights, the first color associated with Pb character, the second with Te character. Do
lm pbte --band~col=1:9~col2=10:18~fn=syml
Note that orbital-list1 and orbital-list2 are Questaal-style integer lists.
Inspect bnds.pbte. It has the same bands as before, but now each k-point has two additional entries for the Mulliken weights. To make a postscript file with color weights, do
echo -12,8,5,10 | plbnds -fplot~scl=.7~sh -ef=0 -scl=13.6 -dat=green -lt=1,bold=3,col=0,0,0,colw=1,0,0,colw2=0,1,0 -lbl=L,G,X,W,G - bnds.pbte
Coloured ASA bands of PbTe without Spin Orbit coupling
- Try generating the bands with spin orbit coupling. It has a large effect in this case, because Pb and Te are heavy elements.