From ESL
Jump to navigation Jump to search
{{#if: Paulo V C Medeiros, Linköping University, Linköping, Sweden

Source authors:
Paulo V C Medeiros, Linköping University, Linköping, Sweden

}}{{#if: GPL |

License: GPL

}}{{#if: GitHub |

Download: GitHub

}}{{#if: |

Documentation: {{{documentation}}}

  • Band Unfolding
  • |

    Links to other ESL entries

    | {{#if: |

    Links to other ESL entries

    | {{#if: |

    Links to other ESL entries

    | {{#if: |

    Links to other ESL entries

    |{{#if: |

    Links to other ESL entries

    | {{#if: |

    Links to other ESL entries

  • Band Unfolding
  • |


    }}{{#if: |



    }}{{#if: |

    Generic interfaces:

      {{{generic interfaces}}}

    }}{{#if: |



    }}{{#if: |

    Data standards:

      {{{data standards}}}

    }}{{#if: |




    BandUP — Band Unfolding code for Plane-wave based calculations — is a code that allows you to obtain a primitive cell representation of the band structure of systems simulated using supercells.

    Software description and installation

    The current version of BandUP can be used as a standalone post-processing band unfolding tool for calculations performed using VASP, Quantum ESPRESSO, ABINIT and CASTEP. The main part of BandUP that needs to be changed so that it can be used with other plane-wave codes is the module that reads the plane-wave coefficients. No explicit calculations involving the reference primitive cell are needed.

    BandUP checks the symmetries of both supercell and reference primitive cell in order to (i) reduce the number of necessary k-points to a minimum — thus reducing the size of the wavefunction file(s), and (ii) produce symmetry-averaged effective unfolded band structures (EBS) when the symmetry of the supercell is different from the one of the primitive cell. This is handy when defects, impurities and/or other types of perturbations are present. Besides performing its main unfolding task, BandUP will also help you to (i) choose the set of K-points that should be used with your plane-wave code to obtain the the wavefunctions needed for band unfolding, (ii) plot the EBS, and (iii) obtain the smearing widths of the unfolded bands. BandUP also supports atom/orbital-decomposed unfolding of bands (currently only available for the VASP interface).


    • Preferably Linux
    • Fortran 95 and C compilers
      • Preferably Intel compilers (ifort and icc), v>=15.0.3
      • Should work with GNU compilers (gfortran and gcc) v>=5.2 too
    • Python 2.7 (or higher), with the following packages installed (you probably already have most of them):
      • numpy
      • scipy
      • matplotlib
      • six


    To compile BandUP, run the "build" script:


    A symlink named "bandup" will be created in the same directory if compilation is successful.


    Usage examples are included in the "tutorial" folder distributed along with the code.


    The unfolding of the bands is performed as described in Refs. [1] and [2]. If you use the code, you should acknowledge its use and read and cite these references, as well as the appropriate references therein. An appropriate way of acknowledging the use of BandUP in your publications would be, for instance, adding a sentence like "The unfolding has been performed using the BandUP code", followed by a citation to our papers.


    1. Paulo V. C. Medeiros, Stepan S. Tsirkin, Sven Stafström and Jonas Björk, Unfolding spinor wavefunctions and expectation values of general operators: Introducing the unfolding-density operator, Phys. Rev. B 91, 041116(R) (2015)
    2. Paulo V. C. Medeiros, Sven Stafström and Jonas Björk, Effects of extrinsic and intrinsic perturbations on the electronic structure of graphene: Retaining an effective primitive cell bandstructure by band unfolding , Phys. Rev. B 89, 041407(R) (2014)