Full-potential program lmf (v6.17)

Program lmf is an all-electron implentation of the local-density approximation, with a basis consisting of generalized linear muffin tin orbitals, of LAPWs, or some combination of the two.

1. Overview of the full-potential method

The full-potential program lmf was originally adapted from a program nfp written by M. Methfessel and M van Schilfgaarde. The method is described in some detail in the following reference (click here to view postscript file):

The following features are unique to this method:
Smoothed Hankel functions
The envelope functions are smoothed generalizations of Hankel functions that found in LMTO programs. Unlike the normal Hankel functions, the smoothed versions are regular at the origin. They are a significantly better choice of basis than the customary LMTO basis set. However, the smoothing introduces complications because the augmentation of a smoothed Hankel function is less straightforward than of a normal Hankel. The envelope functions are not screened into a tight-binding representation, as in the second-generation and later generation LMTO methods; thus wave functions are evaluated by Ewald summation. Regrettably, this makes the method rather slow. A screened version is in progress.
Local Orbitals
This package extends the linear method through the use of local orbitals. Augmented methods substitute radial solutions of the Schrodinger equation with combinations of partial waves of angular quantum number l inside the augmentation region. Linear methods used a fixed radial function (more precisely, pair of functions), which has validity over only a certain energy window. With local orbitals, a third radial function is added to the basis, which greatly extends the energy window over which energy eigenvalues can be calculated. It is necessary, for example, to obtain the reliable LDA bandgap in GaAs, as the Ga 3d and 4d partial waves are both important. To include local orbitals in the basis, see here for documentation.
Augmented Plane Waves
In July 2008 Takao Kotani added APWs as additional envelope functions, which can increase the flexibility of the basis. One can view this package as an extension of a conventional LAPW method, enabling through the use of a few MTOs a much faster convergence in energy cutoff of APWs. Alternatively, it can be viewed as an extension of the original MTO method, With APWs, a good quality basis is easier to construct than it is with a strictly with the MTO basis. Also APWs offer a systematic way of converging the accuracy of the combined MTO+APW basis systematic and reliable manner, to almost arbitarily high accuracy. This is particularly important when reliable eigenvalues far above the Fermi level are needed, and to check the accuracy of a given MTO basis. To include APWs in the basis, see here for documentation.
Augmentation and Representation of the charge density
The charge density representation is unique to this method. It consists of three parts: a smooth density n0 carried on a uniform mesh, defined everywhere in space (n0 is not augmented, as occurs with conventional augmentation), the true density n1 expressed in terms of spherical harmonics Ylm inside each augmentation sphere, and a one-center expansion of the smooth density n2, also expanded in terms of harmonics Ylm inside each augmentation sphere. The total density is expressed as in the "threefold represesentation" n = n0 + n1 - n2. This turns out to be an extremely useful way to carry out the augmentation procedure. Quantities converge much more rapidly in the l-truncation in the augmentation sphere than occurs in conventional augmented wave constructions. (The analysis is a little subtle; see the reference at the start of this document.)

The full-potential program builds on the basic package (documented in file lmto.html) which contains an implementation of a tight-binding LMTO program in the Atomic Spheres Approximation (ASA), and shares most things in common with it, including a number of auxiliary programs useful to both ASA and this one. For example, both methods are linear augmented-wave methods, and the wave functions inside the augmentation spheres are equivalent in the two cases. The reader is strongly advised to review that documentation before proceeding with this one. There are some differences in input between the two programs. A description of tokens avaliable to this method are documented in the file tokens.html; which specifies which tokens can and cannot be used with this method. There is also a description of tokens specific to this method located in Section 3. See Building_FP_input_file.html or FPtutorial.html for a tutorial that helps you build an input file, and explains the output, and ASAtutorial.html for a corresponding tutorial for the ASA programs.

One important difference between the ASA and FP methods is that the FP method has no neat parameterization of total density in terms of the ASA energy moments Q0,Q1,Q2, or the representation of the potential by a few potential parameters, as in the ASA (see ASA overview in lmto.html). However, the basis within the augmentation spheres is defined from the spherical average of the potential, just as in the ASA, and the linearization proceeds in the same way. Program lmf uses the same ``continuously variable principal quantum numbers'' P described to establish a mapping between the linearization energy and logarithmic derivative at the MT boundary, and to float the linearization energy to band center-of-gravity. Thus, the description of P and IDMOD equally apply to the ASA and this program.

A second important difference is that the basis set is more complicated, and in its current form, the user must choose parameters defining the basis. This complication is the most onerous part of the present method, and there are plans for redesign; but at present is necessary to treat the interstital region reliably. The inputs are described below; see also FPoptbas.html for a tutorial about choosing the basis optimally. Note also with the incorporation of the APW basis, other options are available.

The FP package adds two executable programs to the basic one:


2. Capabilities of the package

lmf in an implementation of the local-density approximation, and generates density-of states, and total energy as a part of the self-consistency cycle.

Other extensions are:

Energy bands. You can run lmf in band mode to generate energy bands along lines or planes for, generating, e.g. Fermi surfaces. k-point specifications and invocation is described in generating-energy-bands.html. Particularly useful are the color weights.

Partial DOS and Mulliken analysis. lmf can generate partial dos within augmentation spheres, and construct a Mulliken analysis. DOS can be resolved by site, by site and l, or by site and lm. These options are invoked through command-line switches. For illustrations, invoke

   fp/test/test.fp co 2
   fp/test/test.fp fe 2

Charge density. lmf can generate the charge density (smooth or not, with or without cores), and the contribution to the density from a selected window of states. See --wden and --window in command-line switches

Core-level spectroscopy. lmf can generate EELS spectra, which involve matrix elements between core and valence electrons. The EELS option is invoked with a command-line switches For illustrations, invoke

   fp/test/test.fp fe 2
   fp/test/test.fp crn 2

LDA+U. The LDA+U functional was built into lmf in v6.15 and later, by Walter Lambrecht. LDA+U needs in addition to the LDA parameters U and J for selected orbitals, which are empirical. The LDA+U constructs an additional potential for a particular l subblock (m=-l..l) from the U supplied by the user, and the density-matrix, which is generated by lmf. Two modifications must be added to the input, which are described here. In a strictly LDA calculation, complete information is carried by the density, contained in the restart file, rst.ext. In the LDA+U case, complete information is carried by density and on-site density matrices, which are contained in file dmats.ext. An example that illustrates LDA+U method is ErAs, which you can run by

   fp/test/test.fp eras
ErAs is an interesting case because LDA puts all 4 minority f electrons in a single extremely narrow band at the Fermi level. In LDA+U the minority f is spit into a 4- and 3-manifold; see PRB 67, 035104 (2003).

GW. lmf is designed to work in coordination with a GW package by T. Kotani (the GW package comes comes separately). lmf acts both as a driver for the GW package and also can be used in a self-consistent GW cycle. An extra driver lmfgw is compiled as part of this extensions. Use of this driver is described in the GW driver documentation. You need the extension package GW.version.tar.gz. Also you will need the GW package itself. For illustrations of the driver invoke

   gw/test/test.gw si
   gw/test/test.gw gas

Spin-Orbit coupling. Starting with v6.15, lmf can include spin-orbit coupling perturbatively to the hamiltonian (courtesy of A. Chantis). It is possible to include the full L.S, or just the Lz.Sz part. The coupling works in conjuction with the self-energy generated by the GW method. For illustrations of both L.S and Lz.Sz invoke

   fp/test/test.fp felz
   fp/test/test.fp gasls

Local orbitals. In v6.12 and later, local orbitals may be added to the basis set. These orbitals are important when energy bands over a very wide energy window are required, when high accuracy is needed for shallow (semi)core states, or for energies far above the Fermi energy. Examples of the former occur in oxides: bond lengths are small and cations with shallow p orbitals extend somewhat beyond the augmentation radius.

Local orbitals are presented in one of two flavors. The first, conventional type of local orbital is constructed by solving the radial Schrodinger at a different linearization energy than the usual valence states, and then subtracting off a particular linear of the valence wave function phi and energy derivative phidot such that the local orbital's value and slope vanish at the augmentation radius. Thus

Example that illustrate local orbitals of this type are
   fp/test/test.fp gas
   fp/test/test.fp cu
The Ga 3d semicore the high-lying As 5s state are included as local orbitals. In the Cu case, the high-lying Cu 4d is included, which is important in GW calculations.

The second, extended, kind of local orbital can only be used for semicore states. Instead of artificially subtracting off some linear of the phi and phidot to make the orbital vanish at the augmentation radius, a smooth Hankel tail is attached to the orbital. The smoothing of tail is constructed to match as well as possible the kinetic energy of the semicore state. This type of orbital has the advantage that the valence envelope function need not `carry' the tail of the semicore state. Its drawback is that more things can "go wrong," namely it may fail to do a good job of fitting the kinetic energy. an example that illustrates the second kind of local orbital is

  fp/test/test.fp srtio3 
The Sr 4p and Ti 3p semicore states are included as local orbitals. In the first part of the test, they are included as local orbitals of the first type; then the last step is recalculated using local orbitals of the second type.

Floating Orbitals. In v6.15 and later, floating orbitals may be added to the basis set. These orbitals can be important when very accurate calculations are needed in open systems, e.g. when reliable energy bands are needed for a wide energy window. These orbitals differ from the usual smooth Hankels in that they are not centered at an atom. They are augmented just as the other orbitals, but there is no "head" sphere.

The following illustrate the inclusion of floating orbitals in the basis:

   fp/test/test.fp te
   fp/test/test.fp gaslc

Augmented Plane Waves. In v6.17 and later, Augmented Plane Waves can also be included in the basis. They play the same role as floating orbitals do, but APWs are superior because they are simpler to use (there are no parameters and they do not need to be located at any particular site), and the control over convergence is more systematic.

The following illustrate the inclusion of APWs in the basis:

   fp/test/test.fp te
   fp/test/test.fp srtio3
   fp/test/test.fp felz 4

Parallel Implementation. Two separate parallel versions of lmf have been made (courtesy of A. T. Paxton). One parallelizes over k-points, and is the most efficient for scaling; the other parallelizes many points at a lower level. Installation is not automatic, however. See instructions for installation.


3. Additional input for the full-potential programs

The full-potential reads from the same input file as the basic package, documented in lmto.html. File input-file-style.txt describes in generic terms how the input file is grouped into categories and tokens; tokens.html documents tokens shared by both the basic package and this one. Building_FP_input_file.html documents a (nearly) automatic input file generator. This section documents tokens specific to lmf.