libcommute/pycommute: A quantum operator algebra domain-specific language and exact diagonalization toolkit
arXiv:2110.12775 · doi:10.1016/j.softx.2021.100937
Abstract
I present libcommute, a C++11/14/17 template library that implements a domain-specific language for easy manipulating of polynomial operators used in the quantum many-body theory, as well as a software development toolkit for exact diagonalization codes. The library is written with expressiveness, extensibility and performance in mind. It features simple syntax for commonly used abstractions and algorithms, is well documented and covered by unit tests. libcommute is supplemented with Python 3 bindings called pycommute. They are useful for solving small scale diagonalization problems, rapid prototyping and wrapping of high performance libcommute-based computational cores in Python.
arXiv comment15 pages
References in corpus (14)
- Array Programming with NumPy
- Kwant: a software package for quantum transport
- The ALPS project release 2.0: Open source software for strongly correlated systems
- TRIQS: A Toolbox for Research on Interacting Quantum Systems
- Hybridization expansion impurity solver: General formulation and application to Kondo lattice and two-orbital models
- QuSpin: a Python Package for Dynamics and Exact Diagonalisation of Quantum Many Body Systems part I: spin chains
- QuSpin: a Python Package for Dynamics and Exact Diagonalisation of Quantum Many Body Systems. Part II: bosons, fermions and higher spins
- TRIQS/CTHYB: A Continuous-Time Quantum Monte Carlo Hybridization Expansion Solver for Quantum Impurity Problems
- Efficient real frequency solver for dynamical mean field theory
- Closed form solution of Lindblad master equations without gain
- Quantum Integrals of Motion for the Heisenberg Spin Chain
- Exact Diagonalization library for quantum electron models
- lattice-symmetries: A package for working with quantum many-body bases
- TBTK: A quantum mechanics software development kit