  Wannier90 is an open-source computer program for calculating
maximally-localised Wannier functions (MLWFs) from a set of Bloch states. It is
interfaced to many widely used electronic-structure codes thanks to its
independence from the basis sets representing these Bloch states. In the past
few years the development of Wannier90 has transitioned to a community-driven
model; this has resulted in a number of new developments that have been
recently released in Wannier90 v3.0. In this article we describe these new
functionalities, that include the implementation of new features for
wannierisation and disentanglement (symmetry-adapted Wannier functions,
selectively-localised Wannier functions, selected columns of the density
matrix) and the ability to calculate new properties (shift currents and
Berry-curvature dipole, and a new interface to many-body perturbation theory);
performance improvements, including parallelisation of the core code;
enhancements in functionality (support for spinor-valued Wannier functions,
more accurate methods to interpolate quantities in the Brillouin zone);
improved usability (improved plotting routines, integration with
high-throughput automation frameworks), as well as the implementation of modern
software engineering practices (unit testing, continuous integration, and
automatic source-code documentation). These new features, capabilities, and
code development model aim to further sustain and expand the community uptake
and range of applicability, that nowadays spans complex and accurate
dielectric, electronic, magnetic, optical, topological and transport properties
of materials.
