sparse-ir: optimal compression and sparse sampling of many-body propagators
Markus Wallerberger, Samuel Badr, Shintaro Hoshino, Fumiya, Kakizawa, Takashi Koretsune, Yuki Nagai, Kosuke Nogaki, Takuya, Nomoto, Hitoshi Mori, Junya Otsuki, Soshun Ozaki, Rihito Sakurai, and Constanze Vogel, Niklas Witt, Kazuyoshi Yoshimi, Hiroshi, Shinaoka

TL;DR
The paper presents sparse-ir, a set of libraries that use optimal compression and sparse sampling techniques to efficiently handle imaginary-time propagators in finite-temperature quantum many-body calculations.
Contribution
It introduces the sparse-ir libraries that combine the intermediate representation and sparse sampling for efficient propagator handling, with implementations in Python, Julia, and Fortran.
Findings
Efficient handling of imaginary-time propagators in many-body calculations.
Robust error estimates for the compressed propagators.
Sample codes demonstrating practical applications.
Abstract
We introduce sparse-ir, a collection of libraries to efficiently handle imaginary-time propagators, a central object in finite-temperature quantum many-body calculations. We leverage two concepts: firstly, the intermediate representation (IR), an optimal compression of the propagator with robust a-priori error estimates, and secondly, sparse sampling, near-optimal grids in imaginary time and imaginary frequency from which the propagator can be reconstructed and on which diagrammatic equations can be solved. IR and sparse sampling are packaged into stand-alone, easy-to-use Python, Julia and Fortran libraries, which can readily be included into existing software. We also include an extensive set of sample codes showcasing the library for typical many-body and ab initio methods.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
