SoftwareX (Jan 2022)

libcommute/pycommute: A quantum operator algebra domain-specific language and exact diagonalization toolkit

  • Igor Krivenko

Journal volume & issue
Vol. 17
p. 100937

Abstract

Read online

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.

Keywords