Full-potential program lmf (v6.17)

Program lmf is an all-electron implantation 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):

There is also a manual written for the original 1997 code. The present code is a descendant of it with many new features and with a different input system. But the underlying mathematical formalism, the novel augmentation method in particular, is basically the same.

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 -- convolutions of ordinary Hankel functions and Gaussian functions --- 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. A real-space version using screened envelope functions 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 arbitrarily 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 representation" 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 available 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 parametrization 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 interstitial 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 in 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. lmf solves the scalar Dirac hamiltonian. The dominant difference between the full Dirac hamiltonian and the scalar one is the spin orbit coupling, which can be added as a term λL·S to the scalar Dirac Hamiltonian. Starting with v6.15, lmf can add λL·S to the scalar Dirac hamiltonian (courtesy of A. Chantis). It is possible to include the full L·S or just the Lz·Sz part. Beginning with v7.9,  Lz·Sz + (L·SLz·Sz) can be added where the last term is treated in an approximate manner. The approximation turns out to be rather good. See here for some description and analysis of all three approximations. L·S in all three forms can be combined with the self-energy read by a QSGW calculation. In the Lz·Sz and approximate L·S forms the effect of SO coupling can be passed through to the GW code, to include its effect on the self-energy.

Use HAM_SO to turn on SO coupling. For illustrations of all three kinds of approaches, try

   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 augmentation radius and thus 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. Starting with v6.17, 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.html 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.