cppdlr
is a C++ library implementing the discrete Lehmann representation (DLR) of
imaginary time single-particle Green's functions and other imaginary time
quantities, including standard operations. It can be downloaded from GitHub.
The DLR has been implemented in other programming languages (see the :ref:`related libraries<otherlibraries>` below).
cppdlr
offers a particularly simple high-level user interface, enabled by
the use of C++ templating and the nda library for array types and BLAS/LAPACK
compatibility. This facilitates its use both in small-scale applications and in
existing large-scale software projects such as the TRIQS library for quantum many-body calculations, which has
incorporated the DLR via cppdlr
.
- Install the library by following the instructions on the :ref:`installation page<install>`.
- If you are unfamiliar with the DLR, you can read the :ref:`background page<background>` for a brief introduction, or the references below for more detail. If you are familiar with the DLR, you should still take a brief look at the :ref:`background page<background>` for important information about the library.
- To begin using
cppdlr
in your application, the :ref:`examples page<examples>` provides a good starting point.- If you need more specific information about
cppdlr
classes and functions, take a look at the :ref:`reference documentation page<documentation>`.
If you use cppdlr
in your software or published research works, please mention
this, and cite the following references. Citations help to encourage the
development and maintainence of open-source scientific software.
- The original reference on the DLR: J. Kaye, K. Chen, O. Parcollet, "Discrete Lehmann representation of imaginary time Green's functions", Phys. Rev. B, 105, 235115 (2022). [arXiv:2107.13094]
- The companion paper to
cppdlr
: J. Kaye, H. U. R. Strand, N. Wentzell, "cppdlr: Imaginary time calculations using the discrete Lehmann representation", arXiv:2404.02334 (2024).
Libraries implementing the DLR are available in other languages:
- Python, via pydlr
- Fortran, via libdlr
- Julia, via Lehmann.jl
cppdlr
is also used to implement the DLR in the Toolbox for Research on
Interacting Quantum Systems (TRIQS).
.. toctree:: :maxdepth: 2 :caption: Contents: install.rst background.rst examples.rst documentation.rst issues.rst