Theory Department
Max Planck Institute of Microstructure Physics
Theory Department   >   Research   >   ELK code development

Development of the Elk LAPW Code

K. Dewhurst, S. Sharma

Elk is an all-electron full-potential linearised augmented plane-wave (LAPW) code for determining the properties of crystalline solids. In our institute the code is actively developed as a testbed for new methods. It is also extensively used for production, especially for materials which are particularly sensitive to the types of approximation used or for which pseudopotential methods are not appropriate. One aspect which is unique to Elk is that almost all features can be used in combination with each other, resulting in powerful and robust code.

General concepts

The basic aim of Elk is to solve the Kohn-Sham equations for external fields. Every external field has a conjugate density to which it couples. At the moment, there are four external fields available in Elk:

External field Conjugate density
Vext(r) ρ(r)
Bext(r) m (r)
Eext(r)(=-∇V(r)) ρ(r)
A j

Although these fields should be related by Maxwell's equations, Elk treats them as independent in order to simulate various conditions outside the crystal. The Kohn-Sham equations are solved in two-step process. In the first-variational step a Hamiltonian containing only the scalar potential and E field is constructed 

and diagonalised with

Then in the second-variational step, the magnetic fields, spin-orbit coupling and A field are added using the first-variational step as a basis

Instead of the usual approach of separating the Kohn-Sham equations into spin-up and spin-down orbitals, densities and potentials, Elk treats magnetism as non-collinear for which the basic variables are the scalar density ρ(r) and the magnetisation vector field m(r). This approach requires fully variational spinor wavefunctions

for which the density and magnetisation are given by


respectively. Spin-spiral states also allowed:
in which case the magnetisation density is incommensurate with the crystal unit cell, having the form m(r)=[mx(r)sin(q·r), my(r)cos(q·r),mz(r)]. This spiral state may be lower in energy than the usual ferromagnetic or anti-ferromagnetic states for certain materials such as γ-Fe [Phys. Rev. B 66, 14447 (2002)].

The LAPW basis

The LAPW basis is constructed by partitioning space into spheres around atoms, called muffin-tins, and the remaining interstitial region. Linear combinations of atomic-like orbitals make up the basis functions in the muffin-tins and plane waves fill the interstitial region. At the boundary, the functions, and possibly their derivatives, are matched ensuring continuous or differentiable basis functions. These augmented plane wave functions are not orthogonal, requiring that the Kohn-Sham equations be solved as a generalised eigenvalue equation: H❘Φi ⟩ = O❘Φi〉 where Opq = 〈Bp❘Bq〉 is the overlap matrix consisting of inner products of LAPW basis functions |Bsub>prang;. The energy of the radial part of the muffin-tin functions is chosen to be close to a Kohn-Sham eigenvalue, making this basis one of the most efficient possible for solids.
Figure 1: Schematic of the LAPW basis. The basis functions consist of a plane wave augmented by a linear combination of atomic-like functions in the muffin-tins, chosen to so that the resulting function is continuous across the boundary.
An important aspect for any DFT code is the ability to solve Poisson's equation efficiently for the relevant boundary conditions. This is needed in order to determine the Hartree potential but, in the case of Elk, it is also used with complex charge densities for computing Coulomb matrix elements of the form

It is essential then that the algorithm be as fast as possible, and considerable effort has been expended in writing a highly optimised version of Weinert's method [J. Math. Phys.22, 2433 (1981)] for solving Poisson's equation in the LAPW basis. These Coulomb matrix elements are used in some of the more advanced features of the code like Hartree-Fock, the optimised effective potential (OEP) method, reduced density matrix functional theory (RDMFT), time-dependent density functional theory (TDDFT), and the Bethe-Salpeter equation (BSE).

Exchange-correlation functionals

Several local density approximation (LDA) and generalised gradient approximation (GGA) functionals are implimented natively in Elk. It is also possible to link to the ETSF libxc functional library ( ) which contains almost every LDA and GGA functional yet conceived. The ability to use meta-GGA (mGGA) functionals in conjunction with libxc has also been added. This type of functional requires the kinetic energy density

in addition to ρ and m. In the case of non-collinear magnetism, Elk employs a technique, [J. Appl. Phys. 63, 3482 (1988)], in which the local 2×2 spin density matrix

diagonalised and the eigenvalues are used as up and down spin densities in a LSDA functional. The inverse operation is applied to the up and down potentials to produce a 2×2 matrix

from which is extracted the exchange-correlation magnetic field. It is less clear how GGA functionals should be used for non-collinear situations, but in Elk's case the spin density is first locally diagonalised into up and down, and then the gradients are computed. A drawback to these approaches is that the exchange-correlation magnetic field Bxc(r) is always collinear with the magnetisation density. Thus from the Landau-Lifshitz-Gilbert equation

we find that for LSDA in the absence of external fields m(r,t)/ t = 0, meaning that there can be no spin dynamics. This problem can be fixed by use of intrinsically non-collinear functional approximations which depend explicitly on |m(r)| and its gradients, or by use of the OEP method for spin-polarised systems as implimented in Elk [Phys. Rev. Lett. 98, 196405 (2007)].

DFT+U and spin-current tensor moments

Elk has the most sophisticated implimentation of DFT+U available. It can be used in conjunction with spin-orbit coupling, non-collinear magnetism and spin-spirals, and has the ability to interpolate between around mean field (AMF) and the fully localised limit (FLL) [Phys. Rev. B 67, 153106 (2003)].
Figure 2: Cover of the September 2009 issue of Physical Review Letters showing the spin-current density matrix for two components of a hidden order parameter - the rank five multipole tensor w615 - in URu2Si2 generated by Elk [F. Cricchio, F. Bultmark, O. Grånäs and L. Nordström, Phys. Rev. Lett. 103, 107202 (2009)].
Recently, the ability to decompose the spin-current density tensor was added to the code. This allows for the discovery of previously hidden order parameters in solids which are not simply localised spin moments, but rather specific moments of the full spin-current tensor.

Developments completed at the MPI

  • Reduced density matrix functional theory (RDMFT) for solids has been implimented in Elk. A simple functional was devised and parameterised by fitting to the exchange-correlation energy of the electron gas. This was used to determine the band gaps of strongy-correlated insulators.
  • Phonon dispersions and electron-phonon coupling matrix elements.
  • Calculation of the Eliashberg function α2F(ω) and solving the Eliashberg equations.
  • Inverse random phase approximation (RPA) dielectric function ε-1 (G,G',q,w) available as causal, time-ordered or Matsubara.
  • Non-linear optical (NLO) second-harmonic generation.
  • Generating and solving the Bethe-Salpeter equation (BSE).
  • Linear-response time-dependent density functional theory (TDDFT).


Three forms of parallelism are implemented in Elk, and all can be used in combination with each other, with efficiency depending on the particular task, crystal structure and computer system. OpenMP works for symmetric multiprocessors, i.e. computers that have many cores with the same unified memory accessible to each. The message passing interface (MPI) is particularly suitable for running Elk across multiple nodes of a cluster, with scaling to hundreds of processors possible. Phonon calculations utilize a simple form of parallelism with the code simply examining which dynamical matrices are missing from the run directory: this allows many computers to work independently on a single phonon calculation.

Current and future developments at the MPI

  • Continuing development of TDDFT including a new functional: the `boot-strap' kernel, which is able to predict excitonic peaks in optical spectra. This is also being evaluated for the q > 0 case.
  • Real-time evolution of solids under the influence of ultra-short laser pulses in the attosecond or low femtosecond range. This is a flagship project of our institute and involves new methods for performing unitary time evolution of the Kohn-Sham orbitals as well as the development of time-dependent functionals suitable for condensed matter.
  • New superconducting density functional theory (SCDFT) method for ab-initio prediction of the superconducting critical temperature Tc.
  • Implementation of magnetic linear response functions for non-collinear systems in conjunction with DFT+U for direct comparison with experiment as well as for use in the SCDFT functionals.
  • Calculation the spectral density function for solids using RDMFT.
  • Development of intrinsically non-collinear functionals beyond the usual method of diagonalising the spin-density matrix and LSDA.
  • An implimentation of the all-electron GW approximation, as well as extending this to include higher order terms in the Hedin equations [Phys. Rev. 139, A796 (1965)].
Figure 3: Simulated STM image of lithium atoms on a graphene sheet using the local density of states (LDOS) function. Diagonalisation of the first-variational state was performed with a parallel iterative algorithm. The unit cell contains 216 atoms with the lithium atoms highlighted.

CECAM Elk Tutorial

We also have begun a biennial workshop, the CECAM Elk Tutorial, aimed at introducing new users to the code and the methods used. The inaugural Tutorial took place in Lausanne from 18-23 July 2011 where experts in various techniques used by Elk were invited to give presentations on their subject. These were recorded and are available online at .


In the spirit of scientific openness, the code is released under the GNU General Public License allowing for the free modification, scrutiny and redistribution of the code. Elk can be downloaded from .

To top