wannier90: A tool for obtaining maximally-localised Wannier functions

Arash A. Mostofi, Jonathan R. Yates, Young Su Lee, Ivo Souza, David Vanderbilt, Nicola Marzari

Research output: Contribution to journalArticlepeer-review

2522 Scopus citations


We present wannier90, a program for calculating maximally-localised Wannier functions (MLWF) from a set of Bloch energy bands that may or may not be attached to or mixed with other bands. The formalism works by minimising the total spread of the MLWF in real space. This is done in the space of unitary matrices that describe rotations of the Bloch bands at each k-point. As a result, wannier90 is independent of the basis set used in the underlying calculation to obtain the Bloch states. Therefore, it may be interfaced straightforwardly to any electronic structure code. The locality of MLWF can be exploited to compute band-structure, density of states and Fermi surfaces at modest computational cost. Furthermore, wannier90 is able to output MLWF for visualisation and other post-processing purposes. Wannier functions are already used in a wide variety of applications. These include analysis of chemical bonding in real space; calculation of dielectric properties via the modern theory of polarisation; and as an accurate and minimal basis set in the construction of model Hamiltonians for large-scale systems, in linear-scaling quantum Monte Carlo calculations, and for efficient computation of material properties, such as the anomalous Hall coefficient. wannier90 is freely available under the GNU General Public License from http://www.wannier.org/. Program summary: Program title: wannier90. Catalogue identifier: AEAK_v1_0. Program summary URL: http://cpc.cs.qub.ac.uk/summaries/AEAK_v1_0.html. Program obtainable from: CPC Program Library, Queen's University, Belfast, N. Ireland. Licensing provisions: Standard CPC licence, http://cpc.cs.qub.ac.uk/licence/licence.html. No. of lines in distributed program, including test data, etc.: 556 495. No. of bytes in distributed program, including test data, etc.: 5 709 419. Distribution format: tar.gz. Programming language: Fortran 90, perl. Computer: any architecture with a Fortran 90 compiler. Operating system: Linux, Windows, Solaris, AIX, Tru64 Unix, OSX. RAM: 10 MB. Word size: 32 or 64. Classification: 7.3. External routines: •BLAS (http://www/netlib.org/blas).•LAPACK (http://www.netlib.org/lapack). Both available under open-source licenses. Nature of problem: Obtaining maximally-localised Wannier functions from a set of Bloch energy bands that may or may not be entangled. Solution method: In the case of entangled bands, the optimally-connected subspace of interest is determined by minimising a functional which measures the subspace dispersion across the Brillouin zone. The maximally-localised Wannier functions within this subspace are obtained by subsequent minimisation of a functional that represents the total spread of the Wannier functions in real space. For the case of isolated energy bands only the second step of the procedure is required. Unusual features: Simple and user-friendly input system. Wannier functions and interpolated band structure output in a variety of file formats for visualisation. Running time: Test cases take 1 minute. References: [1] N. Marzari, D. Vanderbilt, Maximally localized generalized Wannier functions for composite energy bands, Phys. Rev. B 56 (1997) 12847.[2] I. Souza, N. Marzari, D. Vanderbilt, Maximally localized Wannier functions for entangled energy bands, Phys. Rev. B 65 (2001) 035109.

Original languageEnglish (US)
Pages (from-to)685-699
Number of pages15
JournalComputer Physics Communications
Issue number9
StatePublished - May 1 2008

All Science Journal Classification (ASJC) codes

  • Hardware and Architecture
  • Physics and Astronomy(all)


  • Density-functional theory
  • Electronic structure
  • Wannier function


Dive into the research topics of 'wannier90: A tool for obtaining maximally-localised Wannier functions'. Together they form a unique fingerprint.

Cite this