easyunfold
easyunfold: A Python package for unfolding electronic band structures - Published in JOSS (2024)
Science Score: 59.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 38 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org, nature.com, aps.org, joss.theoj.org -
✓Committers with academic emails
1 of 5 committers (20.0%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.4%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Band structure unfolding made easy!
Basic Info
- Host: GitHub
- Owner: SMTG-Bham
- License: mit
- Language: Python
- Default Branch: main
- Homepage: https://smtg-bham.github.io/easyunfold/
- Size: 233 MB
Statistics
- Stars: 55
- Watchers: 5
- Forks: 11
- Open Issues: 4
- Releases: 16
Topics
Metadata Files
README.md
easyunfold is intended for obtaining the effective band structure of a supercell for a certain k-point
path of the primitive cell. It was originally based on
PyVaspwfc for reading VASP wavefunction outputs,
with a notable improvement being that symmetry-breaking is properly accounted for by sampling necessary
additional k-points and averaging accordingly. Documentation site
here!
Our goal is to implement the band structure unfolding workflow in a robust and user-friendly software package. Typical applications of band structure unfolding are the electronic structure analysis of defects, disorder, alloys, surfaces (and more), as illustrated in the example outputs below and docs examples.
For the methodology of supercell band unfolding, see here.
Example Outputs
Cs(Sn/Ti)Br Vacancy-Ordered Perovskite Alloys | Oxygen Vacancy (V) in MgO
:-------------------------:|:------------------------------------:
| 
See the easyunfold YouTube tutorial for a quick overview of the theory of band structure unfolding, and a walkthrough of the calculation & analysis workflow with easyunfold.
Usage
To generate an unfolded band structure, one typically needs to perform the following steps:
- Create a primitive unit cell, and generate a band structure k-point path corresponding to this primitive cell.
- Create a supercell (e.g. disordered, defective, surface slab etc.), and obtain its optimised structure.
- Generate a series of k-points for the supercell to be calculated.
- Perform a band structure calculation with the supercell, and save its wavefunction output to file.
- Post-process the supercell wavefunction to obtain the unfolded band structure in the k-point path of the primitive unit cell.
These generation and analysis steps are automated in easyunfold, with only the primitive unit cell and
supercell structures required as inputs from the user.
Typically, the supercell comprises some form of symmetry-breaking relative to the primitive cell, such
as defects, disorder (e.g. special quasi-random structures (SQS) for site disorder other forms of
disorder such as magnetic, dynamic/vibrational, polar, elastic etc. also possible), or a surface/interface
slab.
In all cases, the supercell symmetry is lowered compared to the pristine primitive cell.
Hence, for a given k-point path in the primitive cell Brillouin Zone, additional k-points are
required to be sampled for the supercell, and the extracted spectral weights need to be appropriately
averaged to obtain the correct effective band structure (EBS). See the docs
Theory page for more details.
<!-- when JOSS submitted, add link to paper (discussion of theory) here! -->
<!--- When JOSS submitted, add 'License and Citation' section here, and CITATION.cff file --->
Please see the documentation for guides and examples.
Installation
Install from pip
easyunfold can be installed from pip:
pip install easyunfold
This will also install the package dependencies, if any are missing.
After installation, running easyunfold on the command-line should give the following output:
``` Usage: easyunfold [OPTIONS] COMMAND [ARGS]...
Tool for performing band unfolding
Options: --help Show this message and exit.
Commands: generate Generate the kpoints for sampling the supercell unfold Perform unfolding and plotting ```
Developer Installation (from source)
A recent version of pip is needed to do this, due to the new style of the pyproject.toml configuration
file.
To upgrade your pip, do:
pip install -U pip
Assuming the package is in the easyunfold folder, use the following command to install:
pip install "./easyunfold[test,doc,pre-commit]"
which also installs additional dependencies for building documentation (doc), running tests (test) and
dependencies for using pre-commit hooks (pre-commit).
Citation
If you use easyunfold in your work, please cite:
- B. Zhu, S. R. Kavanagh & D. O. Scanlon, (2024). easyunfold: A Python package for unfolding electronic band structures. Journal of Open Source Software, 9(93), 5974, https://doi.org/10.21105/joss.05974
Studies using easyunfold
We'll add papers that use easyunfold to this list as they come out!
- S. Husremovi et al. Local interface effects modulate global charge order and optical properties of 1T-TaS2/1H-WSe2 heterostructures arXiv 2025
- L. Richarz et al. Ferroelectric domain walls for environmental sensors ACS Applied Materials & Interfaces 2025
- J. M. Domnguez-Vzquez et al. Thermoelectric performance boost by chemical order in epitaxial L21 (100) and (110) oriented undoped Fe2VAl thin films: an experimental and theoretical study Journal of Materials Chemistry A 2025
- J. Tu et al. Giant switchable ferroelectric photovoltage in double-perovskite epitaxial films through chemical negative strain Science Advances 2025
- L. F. Leon-Pinzon et al. Observation of Pseudogap in Cr1xYxN magnetic alloy and its impact on the Seebeck coefficient by ab-initio calculations arXiv 2025
- C. Zhang & J. Recatala-Gomez & Z. Aabdin & Y. Jiang et al. Direct Joule-Heated Non-Equilibrium Synthesis Enables High Performing Thermoelectrics arXiv 2025
- W. Feng et al. Unraveling the role of oxygen vacancies in the electronic and optical properties of -Ga2O3 ResearchSquare 2025
- J. J. Plata et al. High-Entropy Skutterudites as Thermoelectrics: Synthesizability and Band Convergence via the Cocktail Effect ChemRxiv 2025
- P. B. Colominas et al. Giant Thermally Induced Band-Gap Renormalization in Anharmonic Silver Chalcohalide Antiperovskites Journal of Materials Chemistry C 2025
- L. Zhang et al. Mg doping point defects in Al0.5Ga0.5N by density functional theory Vacuum 2025
- L. Zhang et al. Impurity point defects in Mg doping Al0.5Ga0.5N: A first principles study Computational Materials Science 2025
- L. Zhang et al. Study of native point defects in Al0.5Ga0.5N by first principles calculations Computational Materials Science 2024
- H. Maleki-Ghaleh et al. Visible Light-Sensitive Sustainable Quantum Dot Crystals of Co/Mg Doped Natural Hydroxyapatite Possessing Antimicrobial Activity and Biocompatibility Small 2024
- K. Eggestad, B. A. D. Williamson, D. Meier and S. M. Selbach Mobile Intrinsic Point Defects for Conductive Neutral Domain Walls in LiNbO3 Journal of Materials Chemistry C 2024
- Dargahi et al. Synthesis and characterization of zinc-doped hematite nanoparticles for photocatalytic applications and their electronic structure studies by density functional theory Optical Materials 2024
- S. M. Liga & S. R. Kavanagh, A. Walsh, D. O. Scanlon and G. Konstantatos Mixed-Cation Vacancy-Ordered Perovskites (Cs2Ti1xSnxX6; X = I or Br): Low-Temperature Miscibility, Additivity, and Tunable Stability Journal of Physical Chemistry C 2023
- Y. T. Huang & S. R. Kavanagh et al. Strong absorption and ultrafast localisation in NaBiS2 nanocrystals with slow charge-carrier recombination Nature Communications 2022
- A. T. J. Nicolson et al. Interplay of Static and Dynamic Disorder in the Mixed-Metal Chalcohalide Sn2SbS2I3 Journal of the Americal Chemical Society 2023
- Y. Wang & S. R. Kavanagh et al. Cation disorder engineering yields AgBiS2 nanocrystals with enhanced optical absorption for efficient ultrathin solar cells Nature Photonics 2022 (early version) <!-- Others? -->
DFT code support
At the moment, easyunfold supports VASP and CASTEP, but most of the routines are abstracted from the code specific details. In principle, support for other plane wave DFT code can be added by:
- Implementing a subclass of
WaveFunctionthat handles reading the wave function output. - Implementing functions for reading/writing k-points.
- Adding branches for dispatching based on the
dft_codeattribute of theUnfoldKSetobject in various places within the code.
The Atomic Simulation Environment (ASE) is used by easyunfold for
reading in structures, so structure file IO is natively supported for essentially all public DFT codes.
Code Compatibility Notes
- Atom-projected band structures are currently only supported for
VASPcalculation outputs. - Gamma-only and non-collinear spin calculations are not supported for
CASTEP.
Contributors
And those who helped in the development: - Joe Willis - David O. Scanlon
Owner
- Name: Scanlon Materials Theory Group
- Login: SMTG-Bham
- Kind: organization
- Location: UCL, UK
- Website: http://davidscanlon.com
- Repositories: 1
- Profile: https://github.com/SMTG-Bham
GitHub Events
Total
- Create event: 9
- Release event: 3
- Issues event: 7
- Watch event: 12
- Delete event: 6
- Issue comment event: 62
- Push event: 52
- Pull request review comment event: 10
- Pull request review event: 19
- Pull request event: 13
Last Year
- Create event: 9
- Release event: 3
- Issues event: 7
- Watch event: 12
- Delete event: 6
- Issue comment event: 64
- Push event: 53
- Pull request review comment event: 10
- Pull request review event: 19
- Pull request event: 14
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Sean Kavanagh | s****9@i****k | 135 |
| Bonan Zhu | z****n@o****m | 132 |
| alexsquires | a****s@g****m | 1 |
| adair-nicolson | 5****n | 1 |
| Mojtaba Barzegari | 4****y | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 25
- Total pull requests: 45
- Average time to close issues: 3 months
- Average time to close pull requests: 19 days
- Total issue authors: 13
- Total pull request authors: 4
- Average comments per issue: 2.12
- Average comments per pull request: 2.78
- Merged pull requests: 39
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 5
- Pull requests: 14
- Average time to close issues: 7 days
- Average time to close pull requests: 22 days
- Issue authors: 4
- Pull request authors: 2
- Average comments per issue: 4.2
- Average comments per pull request: 4.64
- Merged pull requests: 11
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- zhubonan (7)
- kavanase (4)
- srmnitc (3)
- hongyi-zhao (2)
- SteveHellberg (1)
- scientistminion (1)
- joebesity (1)
- aktariitkgp (1)
- Douwz (1)
- nityasagarjena (1)
- NewMaterialsLab (1)
- khaledb9 (1)
- awvwgk (1)
Pull Request Authors
- zhubonan (27)
- kavanase (16)
- adair-nicolson (1)
- alexsquires (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 2,472 last-month
- Total dependent packages: 1
- Total dependent repositories: 0
- Total versions: 14
- Total maintainers: 1
pypi.org: easyunfold
Collection of code for band unfolding
- Homepage: https://github.com/SMTG-Bham/easyunfold
- Documentation: https://smtg-Bham.github.io/easyunfold/
- License: MIT License
-
Latest release: 0.3.10
published 9 months ago
Rankings
Maintainers (1)
Dependencies
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- peaceiris/actions-gh-pages v3 composite