wannier90 is a well-established package to construct maximally-localied Wannier functions (MLWFs) as well as to perform MLWF-based analysis. pyWannier90 uses the library-mode of wannier90 to perform the wannierization on the wave function obtained by PySCF or VASP.
- pyWannier90 is now available for wannier90 community, check it out here.
- pyWannier90 only supports the wannier90 v3.0.0 or newer.
- PySCF 1.5 and
- VASP via the MCU package
- If you would like to construct MLWFs for the wave function obtained by PySCF
- pyWannier90 for VASP can construct MLWFs using only the WAVECAR and vasprun.xml obtained by VASP. That means you won't need to rerun the VASP calculation everytime you change some wannierization parameters with the wannier90 build-in library (pw2wannier90.x). One should note that the MLWFs constructed by pyWannier90 may be not identical to that by VASP since only the pseudo wave function (WAVECAR) is used. However, I have not experienced any significant discrepancy between the two approaches.
libwannier90 needs to be installed first before one can call pyWannier90 from the code of choice (PySCF or MCU).
-
Replace /wannier90-xxx/src/wannier_lib.F90 with /pyWannier90/src/wannier_lib.F90 (Note by Andreas: This is already completed on my forks)
-
Go to /wannier90-xxx, modify make.inc with your favorite compiler and important adding this line to it (Note by Andreas: I already added the line on my forks. You need to install the appropriate compilers yourself, e.g. LAPACK, BLAS and Fortran):
FCOPTS = -O3 -fPIC -g
-
Compile wannier90-xxx:
make & make lib
-
Go to /pyWannier90/src, modify Makefile and compile libwannier90:
make
-
Modify the path of libwannier90 in pyWannier90.py (in /pyscf/pbc/tools or in /mcu/wannier90) (Note by Andreas: Do this by adding /wannier90-xxx and /pyWannier90/src to $PATH or $PYTHONPATH)
-
Test libwannier90 and pywannier90 libraries:
python -c "import pywannier90" #Should return nothing if the compilation was successful
Please cite this paper when you use pyWannier90 code in your research:
- pyWannier90 for PySCF: Q. Sun et al.,Recent developments in the PySCF program package, J. Chem. Phys, 2020, Just Accepted
- pyWannier90 for VASP: H. Q. Pham, MCU: a Multipurpose Python Library to Analyze the Electronic Wave Function of Solid-State Materials, Manuscript under preparation, MCU package