This project provides a patch for the VASP code, fixing the |
- Calculate non-collinear Wannier functions.
- Support spinor projection method (specify spinor channel, quantization axis).
- New and improved UNK files:
- Write non-collinear UNK files (
UNKxxxxx.NC
). - Choose the format of the
UNK
files. - Reduce the size of the
UNK
files.
- Write non-collinear UNK files (
- Write
.spn
files.- Choose the format of the
.spn
files
- Choose the format of the
- Control which collinear spin channel to compute.
- Control whether to calculate/write
.mmn
and.amn
files.
THIS FIX ONLY WORKS WITH VASP v5.4.4
For this patch to work, you have to recompile VASP.
If you are not familiar with VASP's compilation process, click 🔗 HERE.
Also, you need a compiled libwannier.a
.
If you don't know what it is, check out wannier90's user guide.
To apply the patch, put the mlwf.patch
file in the root directory (not under src
) of your VASP distro and type:
$ patch -p0 < mlwf.patch
Then, compile the code with -DVASP2WANNIER90v2
precompile flag alone with the wannier90 library libwannier.a
CPP_OPTIONS+=-DVASP2WANNIER90v2
LLIBS+=/path/to/your/wannier90_distro/libwannier.a
The VASP2WANNIER90
interface is fully incorporated in the VASP package, this means we don't need another executable to run it. The interface is enabled by specific keywords in the INCAR
file.
For full documentation, see wiki.
A list of useful keywords:
Tag | meaning | value | default |
---|---|---|---|
LWANNIER90 | Do we want to use the interface? | TRUE/FALSE | FALSE |
W90_SPIN | Which collinear spin channel to compute? | 0->all,1->up,2->down | 0->all |
LCALC_MMN | Do we want calculate mmn matrix? |
TRUE/FALSE | TRUE |
LCALC_AMN | Do we want calculate amn matrix? |
TRUE/FALSE | TRUE |
LWRITE_MMN | Do we want to write .mmn file? |
TRUE/FALSE | TRUE |
LWRITE_AMN | Do we want to write .mmn file? |
TRUE/FALSE | TRUE |
LWRITE_EIG | Do we want to write .eig file? |
TRUE/FALSE | TRUE |
LWRITE_UNK | Do we want the UNK files? |
TRUE/FALSE | FALSE |
LUNK_FMTED | Do we want the UNK files be human-readable? |
TRUE/FALSE | FALSE |
LREDUCE_UNK | Do we want the UNK files be reduced in size? |
TRUE/FALSE | FALSE |
LWRITE_SPN | Do we want the .spn files? (Serial only) |
TRUE/FALSE | FALSE |
LSPN_FMTED | Do we want the .spn files be human-readable? |
TRUE/FALSE | FALSE |
Issues and pull-requests are welcome, feel free to ask anything E-mail.