romerogroup / pyprocar

A Python library for electronic structure pre/post-processing
GNU General Public License v3.0
171 stars 75 forks source link
abinit band-unfolder bandstructure dft elk fermi-surfaces python vasp

PyPI version conda-forge version Build Status HitCount PyPI - Downloads

Notice

PyProcar

PyProcar is a robust, open-source Python library used for pre- and post-processing of the electronic structure data coming from DFT calculations. PyProcar provides a set of functions that manage data obtained from the PROCAR format. Basically, the PROCAR format is a projection of the Kohn-Sham states over atomic orbitals. That projection is performed to every k-point in the considered mesh, every energy band and every atom. PyProcar is capable of performing a multitude of tasks including plotting plain and spin/atom/orbital projected band structures and Fermi surfaces- both in 2D and 3D, Fermi velocity plots, unfolding bands of a super cell, comparing band structures from multiple DFT calculations, plotting partial density of states and generating a k-path for a given crystal structure.

Currently supports:

  1. VASP
  2. Elk (Stll in development)
  3. Quantum Espresso
  4. Abinit (DOS Stll in development)
  5. Lobster (Stll in development)

Documentation

For versions 6.1.0 and above, the documentation is found here: https://romerogroup.github.io/pyprocar/

The prior documentation is found here: https://romerogroup.github.io/pyprocar5.6.6/

Developers

Francisco Muñoz
Aldo Romero
Sobhit Singh
Uthpala Herath
Pedram Tavadze
Eric Bousquet
Xu He
Reese Boucher
Logan Lang
Freddy Farah

How to cite

If you have used PyProcar in your work, please cite:

Uthpala Herath, Pedram Tavadze, Xu He, Eric Bousquet, Sobhit Singh, Francisco Muñoz, and Aldo H. Romero. "PyProcar: A Python library for electronic structure pre/post-processing". Computer Physics Communications 251 (2020): 107080.

Thank you.

BibTex:

@article{HERATH2020107080,
title = "PyProcar: A Python library for electronic structure pre/post-processing",
journal = "Computer Physics Communications",
volume = "251",
pages = "107080",
year = "2020",
issn = "0010-4655",
doi = "https://doi.org/10.1016/j.cpc.2019.107080",
url = "http://www.sciencedirect.com/science/article/pii/S0010465519303935",
author = "Uthpala Herath and Pedram Tavadze and Xu He and Eric Bousquet and Sobhit Singh and Francisco Muñoz and Aldo H. Romero",
keywords = "DFT, Bandstructure, Electronic properties, Fermi-surface, Spin texture, Python, Condensed matter",
}

@article{LANG2024109063,
title = {Expanding PyProcar for new features, maintainability, and reliability},
journal = {Computer Physics Communications},
volume = {297},
pages = {109063},
year = {2024},
issn = {0010-4655},
doi = {https://doi.org/10.1016/j.cpc.2023.109063},
url = {https://www.sciencedirect.com/science/article/pii/S0010465523004083},
author = {Logan Lang and Pedram Tavadze and Andres Tellez and Eric Bousquet and He Xu and Francisco Muñoz and Nicolas Vasquez and Uthpala Herath and Aldo H. Romero},
keywords = {Electronic structure, DFT, Post-processing},
}

Mailing list

Please post your questions on our forum.

https://groups.google.com/d/forum/pyprocar

Dependencies

matplotlib
numpy
scipy
seekpath
ase
scikit-image
pychemia
pyvista

Installation

with pip:

pip install pyprocar

with conda:

conda install -c conda-forge pyprocar

Usage

Typical use is as follows

import pyprocar
pyprocar.bandsplot(code='vasp',mode='plain', dirname='bands')

Previously, bandsplot would accept the OUTCAR and PROCAR file paths as inputs, in v6.0.0 we moved to specifying the directory where the bands calculation took place.

Refer to the documentation for further details.

Stand-alone mode:

procar.py -h

will bring a help menu.

Changelog

For the old changelog, see CHANGELOG.md