pyGWBSE is a high-throughtput python workflow package designed to perform automtaed GW-BSE (Bethe-Salpeter Equation) calculation. The pyGWBSE package leverages well known computational tools: pymatgen, atomate, fireworks and first principles software such as: VASP and Wannier90 to perform high-throughput GW-BSE calculations. The workflow creates, computes, analyzes and stores all relevant simulation parameters and results in a queryable MongoDB database that can be accessed through our API. Check out our documentation or the paper!
pyGWBSE package takes input structure of materials and performs GW-BSE simulations for studying excited state properties. It performs automated convergence calculations required to obtain accurate results from such simulations. pyGWBSE uses widely used VASP software to perform first-principles calculations. It uses Wannier90 software to obtain quasiparticle (QP) bandstructure (both the one-shot G0W0 and partially self-consistent GW0 level) using maximally localized wannier functions. The electron and hole effective masses are computed using Sumo package. pyGWBSE is also capable of solving BSE, which calculates absorption spectra of materials that incorporates excitonic effects and is accurate enough to comapre with experimental spectra. In addition to performing excited state property simulations, pyGWBSE also computes several key electronic structure properties of materials such as, orbital resolved density of states (both at DFT and QP level), real and imaginary part of the dielectric function (with and without incorporating electron-hole interaction), the exciton energies, and their corresponding oscillator strengths, band-edges, static dielectric tensors etc.
IMPORTANT NOTE: Atomate and FireWorks do not run on Windows OS. You need a unix-based OS (Mac or Linux) in order for these packages to run. As such, all setup instructions are given for Unix systems.
git clone https://github.com/cmdlab/pyGWBSE.git
conda create --name pygwbse python=3.9
pip install -r requirements.txt
python setup.py develop
or python setup.py install
export PYTHONPATH="$HOME/path_to_package/pyGWBSE:$PYTHONPATH"
conda activate pygwbse
python -m pip install ipykernel
python -m ipykernel install --user --name pygwbse
The pyGWBSE package dependancies have a lot of documentation to look over. I will highlight the essential documentation to get started as quickly as possible.
pmg config -p <EXTRACTED_VASP_POTCAR> <MY_PSP>
pmg config --add PMG_DEFAULT_FUNCTIONAL PBE_54
vasp_cmd: "srun --mpi=pmi2 [location of VASP executable] > vasp.log"
To get started using pyGWBSE, various tutorials and examples have been created using Jupyter Notebooks. These notebooks demonstrate the basic functionality of pyGWBSE to enable users to quickly learn how to use the various modules within this package. These can be found under pyGWBSE/examples.
sudo apt install build-essential
sudo apt-get install manpages-dev
If you use pyGWBSE in your research, please consider citing the paper!
Tathagata Biswas, Arunima K. Singh. pyGWBSE: A high throughput workflow package for GW-BSE calculations. https://doi.org/10.1038/s41524-023-00976-y