band-unfolding / banduppy

Python version ofthe BandUP code
GNU General Public License v3.0
17 stars 7 forks source link

BandUP/BandUPpy: Band Unfolding code for Plane-wave based first-principles calculations

Note: This is a Python version to the BandUP code (not to be confused with bandupy - the interface and plotting tool of BandUP), made in order to restore support for modern versions of QuantumEspresso and other codes. In order ot read the wavefunctions stored by ab-initio codes, the routines of irrep are used.

Unfolded band structure - flatband mode (Si0.5Ge0.5) Unfolded band structure - density mode (Si0.5Ge0.5) Band structures overlay (Si0.5Ge0.5: Red, pure Si: black, pure Ge: blue) Band centers and band width (Si0.5Ge0.5)

Developers and contributors

Developer of BandUPpy :

BandUPpy Package is Restructured by (maintainer):

Developer of original BandUP :

BandUPpy Contributors: Contributors

Contact us: Email developer/maintainer team

Installation

1. Requirements

    1. python>=3.7
    2. collections
    3. numpy
    4. pickle
    5. scipy>=1.0
    6. irrep>=1.9.3
    7. matplotlib

2. Installation using pip

    pip install banduppy

3. Installation from github repository

    git clone https://github.com/band-unfolding/banduppy.git
    cd banduppy
    pip install .  

Or, without cloning

    pip install git+https://github.com/band-unfolding/banduppy.git #@specific_branch

4. Installation using setup.py [deprecated]

Alternatively you can clone the repository and run setup.py in the usual manner:

    git clone https://github.com/band-unfolding/banduppy.git
    cd banduppy
    python setup.py install

Plane-wave codes currently supported by BandUPpy

At the moment, BandUPpy can parse wavefunctions generated by:

Usage

Documentation: here

The detailed documentation is available here. Explore the tutorial folder for example tutorials. Below are quick snippets showcasing what you can achieve with BandUPpy:

banduppy package:
    1. Unfolding class 
        1.1 propose_maximum_minimum_folding()
        1.2 generate_SC_Kpts_from_pc_kpts()
        1.3 generate_SC_Kpts_from_pc_k_path()
        1.3 Unfold()
        1.4 plot_ebs() [Note: Similar to Plotting class but can not plot band centers]
    2. BandStructure class
        2.1 BandStructure()
    3. Properties class
        3.1 collect_bandstr_data_only_in_energy_window()
        3.2 band_centers_broadening_bandstr()
        3.3 calculate_effecfive_mass()
        3.4 fit_functions()
    4. SaveBandStructuredata class
        4.1 save_unfolded_pc_kpts()
        4.2 save_unfolded_bandstucture()
        4.3 save_unfolded_bandcenter()
    5. Plotting class
        5.1 plot_ebs()
        5.2 plot_scf()
        5.3 save_plot_figure()

Tips and tricks:

FAQs: here

You can find a list of common user issues encountered while using this software here. We appreciate and respect our users' views and are committed to providing the best experience possible. Your feedback is highly valued.

Citations and references:

If you use BandUPpy in your work, please:

  1. Paulo V. C. Medeiros, Sven Stafström, and Jonas Björk, Phys. Rev. B 89, 041407(R) (2014)
  2. Paulo V. C. Medeiros, Stepan S. Tsirkin, Sven Stafström, and Jonas Björk, Phys. Rev. B 91, 041116(R) (2015)
  3. Mikel Iraola, Juan L. Mañes, Barry Bradlyn, Titus Neupert, Maia G. Vergniory, Stepan S. Tsirkin, "IrRep: Symmetry eigenvalues and irreducible representations of ab initio band structures", Comput. Phys. Commun. 272, 108226 (2022)

Bibliography file: Here is the bibliography file for your convenience.

Further details

http://www.ifm.liu.se/theomod/compphys/band-unfolding
https://github.com/band-unfolding/bandup

Version release

Latest release: v0.3.4

Chekout out version release history here for the full list of updates and upgrades.

License

BandUPpy is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

BandUPpy is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with BandUP. If not, see http://www.gnu.org/licenses/.

Upcoming (TBD)

  1. Orbital contribution projection implementation
  2. Improve band center determination algorithm