Wannier90 program becomes community code in major new release
New functionalities, improvements make it very robust, efficient and feature-rich
Credit: Valerio Vitale @Imperial College London
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.
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.
Related Journal Article