adapol
(pronounced "add a pole") is a python package for fitting Matsubara functions with the following form:
Current applications include (1) hybridization fitting, (2) analytic continuation.
We also provide a TRIQS interface if the Matsubara functions are stored in triqs
Green's function container.
adapol
has numpy
and scipy
as its prerequisites. cvxpy
is also required for hybridization fitting of matrix-valued (instead of scalar-valued) Matsubara functions.
To install adapol
, run
pip install adapol
See the detailed documentation for physical background, algorithms and user manual.
Adapol
is a stand-alone package. For TRIQS users, we also provide a TRIQS interface. See user manual for details.
In the tutorial
page, we provide two examples discrete.ipynb
and semicircle.ipynb
, showcasing how to use adapol
for both discrete spectrum and continuous spectrum.
In these notebooks, we also demonstrate how to use our code through the triqs interface.
To cite this work, please include a reference to this GitHub repository, and cite the following references:
- Huang, Zhen, Emanuel Gull, and Lin Lin. "Robust analytic continuation of Green's functions via projection, pole estimation, and semidefinite relaxation." Physical Review B 107.7 (2023): 075151.
- Mejuto-Zaera, Carlos, et al. "Efficient hybridization fitting for dynamical mean-field theory via semi-definite relaxation." Physical Review B 101.3 (2020): 035143.
- Nakatsukasa, Yuji, Olivier Sète, and Lloyd N. Trefethen. "The AAA algorithm for rational approximation." SIAM Journal on Scientific Computing 40.3 (2018): A1494-A1522.