_ _ _____ ___________
| | | || _ || _ | ___ \
| | | || | | || | | | |_/ /__
| |/\| || | | || | | | __/ __|
\ /\ /\ \_/ /\ \_/ / | \__ \
\/ \/ \___/ \___/\_| |___/
A post-processing tool written in python to get Wannier Orbital Overlap Population (WOOP), Wannier Orbital Position Population (WOPP)* from Wannier90 package.
Before getting into things, you might want to check out these two papers:
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
For the script to work, you need to have an valid installation of python
(2.7.x or 3.x both work).
Also, numpy
and h5py
package are needed, you can install them by pip:
pip install h5py numpy
or by conda
conda install h5py numpy
if you use a supercomputer and don't have enough privilege:
- install anaconda by downloading from here and upload it to your directory.
- using queue system to install anaconda by
chmod 755 anaconda*.sh && ./anaconda*.sh
- install
numpy
andh5py
by download them from here and here, upload them as well. - manually install package by
conda install numpy*.tar.bz2
andconda install *h5py*.tar.bz2
Python script does not need manual compilation, so the installation is very easy.
- Download the script:
wget https://github.com/Chengcheng-Xiao/WOOPs/blob/master/WOOPs.py
- give correct permission:
chmod 755 WOOPs.py
- You can also put it into your system's PATH (assume you are using
BASH
):
echo export PATH=$( pwd )/WOOPs.py:'$PATH' >> .bashrc
File need for WOOPs:
wannier90_u_AO.mat
(Unitary matrix of atomic orbitals from valence band and conduction interpolation)wannier90_u_MO.mat
(Unitary matrix of molecular orbitals from only valence band interpolation)wannier90_tb.dat
(Use master branch for compatibility)input.woops
Detailed preparation for Wannier90 generated files can be found in Wanneir90's user guide, or in the example
folder.
The format of input.woops
follows:
readmode = XX #[must be True or False]
cal = XX #[Things you want to do]
num_mo = XX #[number of MO]
num_ao = XX #[number of AO]
num_kpts = XX #[number of kpts]
cell_param = XX XX XX #[cell_param]
cell_dim = XX #[cell_dim: 0D, 1D, 2D or 3D] NOTE: currently 1D->x, 2D->xy
cprec = XX #controls the PRINTING precision of C_matrix, lower means accurate. default=1e-4
bprec = XX #controls the PRINTING precision of WOOP_matrix, lower means accurate default=1e-4
pprec = XX #controls the PRINTING precision of WOPP_matrix, lower means accurate default=1e-2
IMPORTANT: Every tag must be written in lowercase, full length without abbreviation.
cal
include:
NAME | REQURE |
---|---|
get_orbital |
[needs wannier90* file] |
check_completeness |
[needs get_AO and get_MO ] |
get_c_mat |
[needs get_AO and get_MO ] |
WOOP [default] |
[needs get_C_mat ] |
get_charge |
[needs WOOP ] |
WOPP [experimental] |
[needs WOOP and get_r_mat ] |
When the input file is properly prepared:
./WOOPs.py > woops.log &
or if you put it in your path:
WOOPs.py > woops.log &
This may take a few minutes, consider submitting it to the queue system.
These commands will produce a copy of data stored in hdf5 format and a text file with corresponding name for the calculation.
Go check the description in example
folder.
WOPP is still under Alpha testing phase, the problem now I'm facing is that the 'position matrix', or, Wannier90's r_matrix ( position in hamiltonian.F90
) do not agree with Wannier Function Center (rave in wannierise.F90
). As a result, the ferroelectric polarization decomposition cannot be correctly calculated. To avoid this, I am now using <0n|r|Rm> written in the wanneir90_tb.dat
file.
-
Complete a simplified description of WOOP and its capability.
-
Increase efficiency.
-
Add progress bar.
For the method please cite the following paper in any publications arising from the use of this code:
J. Bhattacharjee and U. V. Waghmare, Wannier orbital overlap population (WOOP), Wannier orbital position population (WOPP) and the origin of anomalous dynamical charges,Phys. Chem. Chem. Phys., 2010, 12, 1564–1570
K. Terakura, S. Ishibashi, Mechanism of covalency-induced electric polarization within the framework of maximally localized Wannier orbitals,Phys. Rev. B 91, 195120 (2015)
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning. For the versions available, see the tags on this repository.
- Chengcheng XIAO - Initial work - E-mail
This project is licensed under the MIT License - see the LICENSE.md file for details