Transmission for a model step potential (ASA)
This tutorial uses empty spheres in the ASA to construct a simple model of a free electrons encountering a step potential, and uses lmpg’s implementation Landauer-Buttiker theory to calculate the transmission through it. It checks how well the ASA does for this analytically known result. The crystal structure is modeled by a bcc lattice of empty sites.
Also demonstrated here is lmpg’s use of normal modes to generate in the left end layer. This layer is a flat potential, and the bands should be simple parabolas. The machinery of the ASA indeed recovers this simple result, showing that the tight-binding hamiltonian accurately describes free electron bands.
lmpg is documented on this web page.
Table of Contents
- Preliminaries
- Getting started
- Transmission
- Energy bands of left cladding layer
- Things to consider
- Footnotes and references
To see structure
Setup potential for and and execute transmission calculation
Make a picture of the transmission for the first k point
Preliminaries
This tutorial assumes ~/lm is the top-level directory for the Questaal repository, and that Questaal executables are in your path.
For drawing postscript files, this tutorial assumes you are use the Apple open. Substitute your postscript viewer of choice for open.
Getting started
This tutorial starts from input file ctrl.step. It consists of a flat potential with a constant barrier of 0.1 Ry in the middle. There are 3+4+2 layers:
Copy the contents of the box below to file ctrl.step. It is the input (ctrl) file for this system.
- Lines beginning with # are comments.
- Lines beginning with % are not part of the input file, but are directives to the file preprocessor. They do not become part of the preprocessed input file, but can modify its contents.
- Otherwise lines beginning with a nonblank character denote the start of a category. Categories organize tags into groups, as described in the input file documentation. In particular %const declares preprocessor variables that may be parsed later in expressions in curly brackets, e.g. {barrier}. Lines like the following
% if pgf==1
…
% endif
will add lines between % if and % endif to the input stream if the conditional expression ( pgf==1 in this case) evaluates to nonzero. - %const nk1=4 … barrier=.1 creates variable nk1 and assigns it to 4; it is later parsed as data associated with NKABC in the BZ category. Its value can be superseded by a command-line argument, -vnk1=number. Similarly barrier is parsed by V in the START category. It controls the barrier height in this file.
Category PGF supplies information needed specific to the layer code lmpg, in particular the two vector defining the cladding layer. MODE specifies broadly what lmpg will calculate.
CONST supplies other variables, similar to the %const preprocessor variables. The difference is that they get assigned after the preprocessor completes, and you can use them in expressions without curly brackets {…} .
VERS, IO, ITER, OPTIONS, SYMGRP, are all described in the input file documentation, but are not of great importance in this context.
BZ controls the mesh of k-points in the plane of the interface; see below
STRUC defines the lattice structure; it is explained below.
SPEC specifies the chemical species. In this case there is only one, an empty site with no charge in it.
First, see what structure the ctrl corresponds to:
At the top you should see the following:
lmplan says that there are 18 atoms in the active region (supplied by STRUC_NBAS), cladded by left and right end regions with two atoms in each. There are 9 principal layers in the active region, each with two atoms.
The lattice vectors (taken from STRUC in this file) are printed out a little farther down.
The first two lattice vectors specify the plane defined by periodic boundary conditions. They are the Cartesian axes and in this case.
The third lattice vector, Plat(3), is of length 10, and is cladded by a left layer of length 1 and a right layer of length 1. A second cladding layer is added to converge the electrostatics. (lmpg uses periodic boundary conditions for now to compute the electrostatic Madelung potential. This will change in future.) The active region with doubly cladded layers combine to make a the third lattice vector of the entire cell, with length 14.
Next follows a list of all the atoms and their projection on the axis normal to the periodic plane.
There is exactly one atom/plane, and the hamiltonian is short ranged enough that only two planes are needed to make a principal layer. Atoms 19-20 are the left cladding layer; atoms 21-22 are the right cladding layer.
Transmission
First set up the potential and tight-binding structure constants. lmpg uses mode 1 for self-consistent calculations. Here we don’t need self-consistency but we do need to set up the potential parameters, even for this flat potential.
The reduced Green’s function is where are the structure constants. can be build from the potential parameters. By running lmpg with 0 iterations it will make the potential parameters without doing any Green’s function calculations. lmstr makes the structure constants.
Finally, calculate the transmission. lmpg calculates transmission in mode 5.
The transmission probabilities are written to files jzk.step (resolved by k) and jz.step (integrated over k)
Three Fano resonances are seen, corresponding to kinetic energy where each of the three k points crosses the step height, 0.1 Ry.
It is perhaps more instructive to look at the transmission from one k point. Use the mcx calculator to extract two columns of data (energy, transmission) from just the first k point and plot it:
The transmission switches from 0 to 1 in a smooth way, around 0.15 Ry. The oscillations are the well known Fano resonances.
The k point mesh
The k mesh was controlled by tags BZ_NKABC, which controlled the number of divisions along each of the three axes of the lattice vectors (note for lmpg the third number should always be 1); and by BZJOB, which tells lmpg whether to include Γ as a mesh point, or defined the grid so that it straddles Γ.
The k-mesh is not printed out unless you use a high verbosity. To see the mesh we used in this example, try the following:
You should see in the output
The mesh has 16 points; all but three are symmetry-equivalent to other points. Note there is no point at k=0.
Try another mesh, e.g.
The first line also generates 16 points but one of them lies at Γ. In this case there are 6 inequivalent points.
The second line generates 25 points (6 inequivalent ones).
Energy bands of left cladding layer
lmpg has a special mode (PGF_MODE=3) to find for the left cladding layer, as if it were fully periodic (as opposed to being semi-infinite) on the third axis. It does this by solving a quadratic eigenvalue problem in the principal layers, which give the normal modes for a given energy. This is the inverse of the usual eigenvalue problem, where is calculated for a given . On the third axis periodic boundary conditions are not imposed, so can be complex. In mode 3, lmpg calculates for a particular energy all of the for a given , and writes out those for which is small.
In the present test case the energy bands are free electrons, with dispersion since in atomic Rydberg units. We can see how well the ASA recovers the exact result.
In the transmission calculation of the preceding section, we singled out the first k-point and will do the same here. The first point is (0.125,0.125,0) in units , so this mode should trace out for which .
Note that ctrl.step has the lines
When lmpg is run in mode 3, it uses the energy mesh specified by this tag which is a uniformly spaced set of 200 points between 0 and 0.5 Ry on the real axis.
Run the calculation as follows:
lmpg It will print to stdout and also file bnds.step, for each energy on the mesh values of for which is real. Note that values it prints out are in units of .
Inspect ctrl.step to see that is 5.44 a.u. The analytic values of it should find should correspond to .
Make a figure comparing the contents of bnds.step to this analytic formula:
It plots circles for in the file, against a continuous red line for the analytic result. They should agree almost exactly. Note that there are higher lying parabolas as well. These correspond to free electron energy bands in the folded zone.
Things to consider
The transmission for the first k point “turns on” at about 0.14 Ry. If the Γ point had been the first mesh point (see k point mesh). The transmission would have turned on at the barrier height, 0.1 Ry. Explain why the transmission turns on at 0.14 Ry in this test.
For energy above a barrier of length and height , the exact result for the transmission probability is given by
where . Work out numerically what it should be for this case and compare to what was calculated numerically.
Footnotes and references
Implementation of Green’s functions in the ASA context, and its connection to the LMTO-ASA hamiltonian is described in detail in O. K. Andersen, Z. Pawlowska, and O. Jepsen, Phys. Rev. B 34, 5253 (1986).
Implementation of the layer Green’s function technique, including the non-equilibrium capability can be found in S. V. Faleev, et al, Phys. Rev. B71, 195422 (2005).
The original derivation of normal modes used to find the energy band structure of the left cladding layer can be found in Phys. Rev. B39, 923 (1989).