|
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
UNKfiles. - Reduce the size of the
UNKfiles.
- Write non-collinear UNK files (
- Write
.spnfiles.- Choose the format of the
.spnfiles
- Choose the format of the
- Control which collinear spin channel to compute.
- Control whether to calculate/write
.mmnand.amnfiles.
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.