Skip to main content

converts VASP WAVECAR file into UNK files for wannier90

Project description

License: MIT


Converts the VASP WAVECAR to UNK files for wannier90. This works for non-collinear WAVECARs, which is needed for spin-orbit coupling in wannier90 >= v2.0.0. However, to use this code, the full k-point grid needs to be contained in the WAVECAR file (i.e., you should run a nscf calculation with ISYM=-1 or already include the tag as recommended in the case of spin-orbit coupling). To use non-collinear calculations with wannier90, you need to enable support for v2 in VASP. The steps are as follows:

  1. Install wavecar2unk using pip.
  2. Apply the patch mlwf.patch from Chengcheng-Xiao/VASP2WAN90_v2_fix. E.g.,
curl | patch -p0
  1. Compile VASP with the -DVASP2WANNIER90v2 in CPP_OPTIONS and the path to your compiled wannier90 library libwannier.a. E.g.,
             -DMPI -DMPI_BLOCK=8000 \
             -Duse_collective \
             -DscaLAPACK \
             -DCACHE_SIZE=4000 \
             -Davoidalloc \
             -Duse_bse_te \
             -Dtbdyn \
             -Duse_shmem \

LLIBS      = /home/user/compile/wannier90-2.1/libwannier.a $(SCALAPACK) $(LAPACK) $(BLAS)
  1. Use the generated VASP binary to run a SCF calculation.
  2. Setup up a calculation for wannier90.
  3. Run wavecar2unk in the calculation directory where the and WAVECAR files are.
  4. Run VASP with no need for LWRITE_UNK = True in the INCAR or, more usefully, for the case of non-collinear, where LWRITE_UNK = True doesn't work.


wavecar2unk is implemented in python and can be installed through pip. Dependencies are kept to a minimum and include standard packages, such as click and pymatgen.

With pip

As always with python, it is highly recommended to use a virtual environment. To install wavecar2unk, issue the following command,

$ pip install wavecar2unk

or to install directly from github,

$ pip install git+


Usage: wavecar2unk [OPTIONS]

  Converts the VASP WAVECAR to UNK files for wannier90.

  Args:     input_file (Path): path to WAVECAR file (default='./WAVECAR')
  output_directory (Path): directory where UNKs ar ewritten (default = .)
  verbose (bool): verbose output (default = False)

  -i, --input_file FILE           input wavecar file (default = ./WAVECAR)
  -o, --output-directory DIRECTORY
                                  output directory where UNKs are written
                                  (default = .)

  -v, --verbose BOOLEAN           verbose output (default = False)
  --help                          Show this message and exit.


Contributions are welcome and any potential change or improvement should be submitted as a pull request on Github or to pymatgen, directly.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wavecar2unk-0.0.2.tar.gz (3.4 kB view hashes)

Uploaded source

Built Distribution

wavecar2unk-0.0.2-py3-none-any.whl (4.3 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page