Wannier90 is an open-source code for generating maximally-localised generalised Wannier functions and using them to compute advanced electronic properties of materials with high efficiency and accuracy.
| I want to… | Go to |
|---|---|
| Learn what Wannier90 does | wannier.org · Features |
| Install it | README.install — CMake or GNU Make |
| Read the manual | wannier90.readthedocs.io |
| Follow the tutorials | Tutorial instructions · Tutorial files |
| See what changed | CHANGELOG.md |
| Ask a question | Mailing list (subscribe before posting) · Archives · More support resources |
| Report a bug | Issues · FAQ |
| Contribute code | CONTRIBUTING.md |
- Full documentation — Introduction
- Input parameters:
wannier90.x·postw90.x - Projections · File formats
- Library mode
Since version 4.0, the functionality of the standalone wannier90.x executable is
also available through a library interface and an electronic-structure code can
drive Wannierisation in memory instead of writing and re-reading files. The
calling code sets options, then passes pointers to its own overlap, projection and
eigenvalue arrays (no large matrix is duplicated) and calls disentanglement, MLWF
optimisation, plotting and transport directly. The library runs in parallel with MPI
with the same performance as the standalone code (the overlap matrices are distributed
over k-points), and every library call returns an error code instead of aborting, so
the host code keeps control of its own error handling.
Note: Wannier90 is distributed under LGPLv2.1-or-later (meaning, among other things, that linking the dynamic library with your code does not impose the GPL on it).
- Documentation: Library mode — Using the library · Compiling and linking
- Fortran: serial and MPI examples in
test-suite/library/fortran/(demo.F90) - C / C++: C interface, header
src/wannier90.h, example intest-suite/library/C-interface/ - Python: Python interface generated with f90wrap; examples in
test-suite/library/py-f90wrap/(serial-example.py,mpi-example.py,example-dos.py)
- CONTRIBUTING.md — coding style, documentation requirements, and how pull requests are handled
test-suite/README.md— how to run the tests and how to add new ones- Code overview · FORD source-code documentation
- CHANGELOG.md
Please cite the following paper in any publications arising from the use of this code:
G. Pizzi, V. Vitale, R. Arita, S. Blügel, F. Freimuth, G. Géranton, M. Gibertini, D. Gresch, C. Johnson, T. Koretsune, J Ibañez-Azpiroz, H. Lee, J.M. Lihm, D. Marchand, A. Marrazzo, Y. Mokrousov, J.I. Mustafa, Y. Nohara, Y. Nomura, L. Paulatto, S. Poncé, T. Ponweiser, J. Qiao, F. Thöle, S.S. Tsirkin, M. Wierzbowska, N. Marzari, D. Vanderbilt, I. Souza, A.A. Mostofi, J.R. Yates, Wannier90 as a community code: new features and applications, J. Phys. Cond. Matt. 32, 165902 (2020)
Older versions of the code, and references for the method
If you are using versions 2.x of the code, cite instead:
A.A. Mostofi, J.R. Yates, G. Pizzi, Y.S. Lee, I. Souza, D Vanderbilt, N Marzari, An updated version of wannier90: A tool for obtaining maximally-localised Wannier functions, Comput. Phys. Commun. 185, 2309 (2014)
For the method please cite:
N. Marzari and D. Vanderbilt, Maximally Localized Generalised Wannier Functions for Composite Energy Bands, Phys. Rev. B 56 12847 (1997)
I. Souza, N. Marzari and D. Vanderbilt, Maximally Localized Wannier Functions for Entangled Energy Bands, Phys. Rev. B 65 035109 (2001)
Nicola Marzari, Arash A. Mostofi, Jonathan R. Yates, Ivo Souza, David Vanderbilt, Maximally localized Wannier functions: Theory and applications, Rev. Mod. Phys. 84, 1419 (2012)
Note: BibTeX entries for all the references above can be downloaded from the "Please cite" section of the Wannier90 homepage, e.g., this BibTeX file for the main citation above.
The Wannier90 code is licensed under LGPLv2.1 or later. You can read the licence text in the LICENSE file in the root directory of the Wannier90 distribution.
The full list of authors and contributors of Wannier90 is given in the AUTHORS.md file.
