Wannier90 program becomes community code in major new release

This was published on January 23, 2020

Wannier90—a computer program for generating maximally-localized Wannier functions and using them in the computation of advanced electronic properties of materials—has become a community code with a wide base of contributors over the last few years. This has resulted in a major new release with novel features described in the paper Wannier90 as a community code: new features and applications, published in Journal of Physics: Condensed Matter.

Carey Sargent, EPFL, NCCR MARVEL

Wannier functions were first introduced by Gregory Wannier in 1937 as an alternative way of describing the electronic ground state of periodic systems. They were linked to Bloch orbitals, the standard method of describing these ground states, by families of transformations in a continuous space of unitary matrices. Unfortunately, this was linked to a large degree of arbitrariness.

In 1996, NCCR MARVEL director Nicola Marzari, then a postdoc at Rutgers University, and Prof. David Vanderbilt, also at Rutgers, developed a novel method allowing researchers to iteratively transform the extended Bloch orbitals of a first-principles calculation into a unique set of “maximally localized” Wannier functions. These localized orthogonal functions can very accurately represent the Bloch eigenstates of a periodic system at a very low computational cost, thanks to the minimal size of the Wannier basis set. In addition, Wannier functions can be used to analyze the nature of chemical bonding, or as a local probe of phenomena related to electric polarization and orbital magnetization. They can also be constructed and used outside the context of electronic-structure theory, for example in cases that include phonon excitations, photonic crystals, and cold-atom optical lattices. 

Photo credit: Valerio Vitale @Imperial College London. FIG. 1: Comparison of Wannier functions resulting from different minimization schemes in gallium arsenide (larger pink spheres are Ga cation atoms and yellow spheres are As anions).

The history of the code's development can be found here. It’s notable that already 20 years ago a collaboration with Prof. Alfonso Baldereschi and Dr. Michel Posternak, here at EPFL, was key to making the code truly agnostic to any first-principles software, and thus widely usable and interoperable. Its usage and popularity can be gauged by the statistics on the papers describing either v1.0 or v2.0, collecting around 500 papers published in 2019 alone.

In its Fortran90 incarnation, Wannier90 has now transitioned from being developed by a small community of researchers to a model where developments are community-driven. This has been achieved primarily by hosting the source code and associated development efforts on a public GitHub repository, by building a community of Wannier90 developers committed and reward by new releases and associated papers, and facilitating personal interactions between individuals through community workshops, the most recent one in San Sebastian in 2016, that laid the groundwork for the present paper.

Thanks to this transition, the 3.0 release of the program includes several new functionalities and improvements that make it very robust, efficient and feature-rich. These include new methods for the calculation of WFs and for the generation of the initial projections; parallelization and optimizations; interfaces with new codes, methods and infrastructures; new user functionality; improved documentation and various bug fixes. Enlarging the community of developers also had a visible effect in terms of the modern software engineering practices that have been put into place. They help improve the code’s robustness and reliability and facilitate its maintenance by the core Wannier90 developers group as well as its long-term sustainability.  

Wannier90 is managed on the Wannier developers GitHub site, which also gives details of on-going developments. Continuous integration of the code is provided by Travis CI. In addition, a test farm hosted at Cineca (Italy) runs regular tests on the develop branch of the code with a wide range of compilers. If you are interested in contributing to Wannier90, please see here for more information.


Wannier90 as a community code: new features and applications

Giovanni Pizzi, Valerio Vitale, Ryotaro Arita, Stefan Blügel, Frank Freimuth, Guillaume Géranton, Marco Gibertini, Dominik Gresch, Charles Johnson, Takashi Koretsune, Julen Ibañez-Azpiroz, Hyungjun Lee, Jae-Mo Lihm, Daniel Marchand, Antimo Marrazzo, Yuriy Mokrousov, Jamal I Mustafa, Yoshiro Nohara, Yusuke Nomura, Lorenzo Paulatto, Samuel Poncé, Thomas Ponweiser, Junfeng Qiao, Florian Thöle, Stepan S Tsirkin, Małgorzata Wierzbowska, Nicola Marzari, David Vanderbilt, Ivo Souza, Arash A Mostofi and Jonathan R Yates, J. Phys.: Condens. Matter 32 (2020) 165902 (25pp), 

Published 23 January 2020 • © 2020 IOP Publishing Ltd

Stay in touch with the MARVEL project

Low-volume newsletters, targeted to the scientific and industrial communities.

Subscribe to our newsletter