sparse-ir ecosystem
Libraries for the IR and DLR bases and sparse sampling in Python, Julia, Rust, C and Fortran, sharing one backend and one set of conventions.
Start here: sparse-ir documentation → What IR and DLR are, how they came about, shared notation, and which library to useHistory and comparison
How IR (2017), DLR (2021/22) and MiniPole (2023/24) are related, and what each is good for.
Notation and conventions
The symbols used across the documentation, with the matching names in each library.
Tutorial (Python, Julia)
Notebooks from basis construction to GW, DMFT, FLEX, TPSC and Eliashberg calculations.
Libraries
| Language | Package | Documentation |
|---|---|---|
| Python | sparse-ir pip install sparse-ir |
sparse-ir.readthedocs.io |
| Julia | SparseIR.jl ] add SparseIR |
SparseIR.jl docs |
| Rust, C, Fortran | sparse-ir-rs sparse-ir, sparse-ir-capi on crates.io |
Rust guide and tutorials |
sparse-ir-rs is the shared backend: its C API (libsparseir) is what the Python and Julia libraries call, and it ships the Fortran bindings.
Analytic continuation
From imaginary-time or Matsubara data to real-frequency spectra.
Recommended
MiniPole and ESPRIT
Minimal pole representation: a few complex poles fitted to Matsubara data, with controlled accuracy and much less sensitive to noise than Nevanlinna continuation. Our recommended starting point. Available in sparse-ir-rs (Rust and C API).
pySpMAC
Sparse-modeling analytic continuation for multi-orbital systems with semi-positive definiteness (Python).
Repository · admmsolver (the ADMM solver it builds on)
Worked examples: analytic continuation with the IR basis and with SpM in the Python tutorial and the Rust guide.
Nevanlinna.jl (Nevanlinna analytic continuation, Julia) is kept for reference but not recommended: the Nevanlinna method is very sensitive to noise in the input data. MiniPole is its improved successor for this purpose.
Key papers
- H. Shinaoka, J. Otsuki, M. Ohzeki, K. Yoshimi, Compressing Green's function using intermediate representation between imaginary-time and real-frequency domains, Phys. Rev. B 96, 035147 (2017).
- J. Li, M. Wallerberger, N. Chikano, C.-N. Yeh, E. Gull, H. Shinaoka, Sparse sampling approach to efficient ab initio calculations at finite temperature, Phys. Rev. B 101, 035144 (2020).
- M. Wallerberger, S. Badr, S. Hoshino, F. Kakizawa, T. Koretsune, Y. Nagai, K. Nogaki, T. Nomoto, H. Mori, J. Otsuki, S. Ozaki, R. Sakurai, C. Vogel, N. Witt, K. Yoshimi, H. Shinaoka, sparse-ir: Optimal compression and sparse sampling of many-body propagators, SoftwareX 21, 101266 (2023).
- J. Otsuki, M. Ohzeki, H. Shinaoka, K. Yoshimi, Sparse modeling approach to analytical continuation of imaginary-time quantum Monte Carlo data, Phys. Rev. E 95, 061302(R) (2017).
- L. Zhang, E. Gull, Minimal pole representation and controlled analytic continuation of Matsubara response functions, Phys. Rev. B 110, 035154 (2024).
For the full list and how IR, DLR and MiniPole relate, see History and comparison.
Archived and superseded
| Repository | Use instead |
|---|---|
| irbasis, irlib | sparse-ir, SparseIR.jl |
| SparseIR_deprecated.jl | SparseIR.jl |
| libsparseir, pysparseir, LibSparseIR.jl | sparse-ir-rs |
| sparse-ir-fortran | fortran/ in sparse-ir-rs |
| sparse-ir-tutorial-v1 (for sparse-ir v1) | sparse-ir-tutorial |