We present torchami, an advanced implementation of algorithmic Matsubara integration (AMI) that utilizes pytorch as a backend to provide easy parallelization and GPU support. AMI is a tool for analytically resolving the sequence of nested Matsubara integrals that arise in virtually all Feynman perturbative expansions. In this implementation we present a new AMI algorithm that creates a more natural symbolic representation of the Feynman integrands. In addition, we include peripheral tools that allow for import and labeling of simple graph structures and conversion to torchami input. The code is written in c++ with python bindings provided. Program summaryProgram Title: torchamiCPC Library link to program files:https://doi.org/10.17632/m79hnngy8s.1Developer's repository link:https://github.com/mdburke11/torchami/releases/tag/v1.0Licensing provisions: GPLv3Programming language:C++, pythonNature of problem: Feynman diagrams are pictorial representations of perturbative expansions often formulated in the imaginary frequency/time axis and involve a high-dimensional sequence of nested integral over spatial and temporal degrees of freedom.Solution method:torchami provides a framework to symbolically generate and store the analytic solution to the temporal Matsubara sums through repeated application of multipole residue theorems. The solutions are stored using a tree structure for arbitrary products and sums of Fermi/Bose functions, and the evaluation functions provide both CPU and GPU support with automatic parallelization for batch sampling problems.Additional comments including restrictions and unusual features: Requires C++17 standard, the boost graph library, as well as pytorch.
Read full abstract