Guan is an open-source python package developed and maintained by (Ji-Huan Guan, 关济寰). With this package, you can calculate band structures, density of states, quantum transport and topological invariant of tight-binding models by invoking the functions you need. Other frequently used functions are also integrated, such as machine learning, file reading and writing, figure plotting, and data processing.

The GitHub location of this package is on

The current version of Guan package is 0.1.101 (, updated on 2024-05-21.

Install (Upgrade):

pip install --upgrade guan -i


pip install --upgrade guan


import guan

Summary of API Reference:

  1. basic functions
  2. Fourier transform
  3. Hamiltonian of examples
  4. band structures and wave functions
  5. Green functions
  6. density of states
  7. quantum transport
  8. topological invariant
  9. machine learning
  10. file reading and writing
  11. figure plotting
  12. data processing
  13. others
  14. decorators

About this package:

  1. The original motivation of this project is for self use. Based on this project, the frequent functions can be imported by “import guan” instead of repeated copies and pastes. You can also install and use this open-source package if some functions are helpful for you. If one function is not good enough, you can copy the Source Code and modify it. You can also feed back to The modifications and supplements will be in the following updated version.
  2. All realizations of this package are based on functions without any class, which are concise and convenient. The boring document is omitted and you have to read the Source Code for details if it is necessary. Nevertheless, you don’t have to be worried about the difficulty, because all functions are simple enough without too many prejudgments and the variable names are written commonly as far as possible for the easy reading.
  3. Before the function calling in your project, you are recommended to briefly read the Source Code to know the specific formats of input and output about the function. Applying functions mechanically may cause errors. Notice that as the package is developed, the function names may be changed in the future version. Therefore, the latest API Reference is important and helpful.

Citation: There is no official paper related to this package temporarily, but you can cite one or all of the following papers instead which are the motivation of this project (e.g., calculating the scattering matrix), if this package is greatly helpful for your research.

License: GNU General Public License v3 (GPLv3).

Acknowledgments: University of Chinese Academy of Sciences | Institute of Semiconductors, CAS | The State Key Laboratory of Superlattices and Microstructures | Beijing Academy of Quantum Information Sciences | National Natural Science Foundation of China | Shu-Shen Li | Kai Chang | Yan-Yang Zhang | et al.