Welcome to the Non-Equilibrium Systems Simulation (NESSi) library!
What is NESSi?
NESSi is an open-source software package for the manipulation of nonequilibrium Green’s functions defined on the Kadanoff–Baym contour.
The Green’s function method in its time-dependent formulation is a versatile framework for solving interacting many-body problems out of equilibrium.
NESSi provides classes representing the various types of Green’s functions, implements the basic operations on these functions, and allows one to solve the corresponding equations of motion. The library is aimed at the study of transient dynamics from an initial equilibrium state, induced by time-dependent model parameters.
Overview
NESSiprovides tools for constructing Feynman diagrams and solving equations of motion for nonequilibrium Green’s functions on the Kadanoff–Baym contour.NESSiis based on high-order quadrature rules: for \(N\) time slices, the error scales as \(\mathcal{O}(N^{-p})\) with \(p\) up to \(7\).Efficient distributed-memory parallelization over reciprocal space enables large-scale calculations on extended systems.
The first extension of
NESSienables memory-truncated time propagation and steady-state calculations.
Future developments
This software is the basis of a follow-up package for nonequilibrium dynamical mean-field theory in the strong-coupling limit.
How to cite
Please cite the following paper whenever you use parts of NESSi:
M. Schüler, D. Golež, Y. Murakami, N. Bittner, A. Herrmann, H. U. R. Strand, P. Werner, and M. Eckstein, NESSi: The Non-Equilibrium Systems Simulation package, Comput. Phys. Commun. 257, 107484 (2020).
If you use truncated or steady-state objects (see Manual for truncated Kadanoff-Baym equations and Manual for steady-state Kadanoff-Baym equations), please also cite:
Version 2.0.0 paper, to be published.
Note
This will be updated for v2.0.0.
Structure of the software
The core constituent of
NESSiis the shared librarylibcntr. It is written in C++ and provides the essential functionalities to treat Green’s functions on the Kadanoff–Baym contour (see Physics Background) as well as memory-truncated and steady-state equations.Users can write custom C++ programs based on
libcntrto solve nonequilibrium Green’s function problems (see NESSi / libcntr Manual).All callable routines perform sanity checks in debugging mode.
NESSiincludes example programs demonstratinglibcntrusage (see Example Programs).libcntrand the examples depend on the eigen3 library for matrix operations. The hdf5 library is optionally used for binary, machine-independent output.Python tools are provided for preprocessing and for reading/post-processing Green’s functions stored in HDF5 (see Python Tools).
An extension of
libcntrfor strongly correlated impurity problems and DMFT (Pseudo-Particle Strong Coupling, PPSC) is in preparation.
Core functionalities
The libcntr library provides highly accurate methods for calculating nonequilibrium Green’s functions. A brief overview of the core routines is shown below.
Summary of main routines
Routine |
Description |
|---|---|
Green’s function for a constant or time-dependent Hamiltonian |
Constructs free Green’s functions for a general time-dependent Hamiltonian. |
Solves the Dyson equation along the full Kadanoff–Baym contour \([i\partial_t - h(t)] G(t,t') - [\Sigma * G](t,t') = \delta_{\mathcal{C}}(t,t')\). |
|
Solves contour integral equations of the form \(G + F * G = Q\). Example: the self-consistent \(GW\) approximation. |
|
Computes the contour convolution \([A * B](t,t') = \int_{\mathcal{C}} d\bar{t}\, A(t,\bar{t}) B(\bar{t},t')\). |
|
Constructs bubble diagrams \(C(t,t') = i A(t,t') B(t',t)\) or \(C(t,t') = i A(t,t') B(t,t')\). |
New routines in version 2.0.0
Routine |
Description |
|---|---|
Solves the truncated Dyson equation along the Kadanoff–Baym contour. |
|
Solves truncated contour integral equations of the form \(G + F * G = Q\). |
|
Constructs bubble diagrams for truncated Green’s functions. |
|
Solves the steady-state Dyson equation in frequency space. |
|
Constructs equilibrium steady-state Green’s functions \(G(t) = \int d\omega\, A(\omega) g_\omega(t)\). |
|
Constructs bubble diagrams for steady-state Green’s functions. |
Perspective: dynamical mean-field theory
While NESSi provides a general framework for real-time Green’s functions, it has been used primarily for real-time DMFT simulations.
Two approximate impurity solvers are:
Weak-coupling expansions (e.g., IPT)
Strong-coupling pseudo-particle methods (NCA, OCA)
A Pseudo-Particle Strong Coupling (PPSC) library based on libcntr is under development.
Developers and contributors
v1.0.2
Michael Schüler
Denis Golež
Yuta Murakami
Nikolaj Bittner
Andreas Herrmann
Hugo U. R. Strand
Philipp Werner
Martin Eckstein
Christopher Stahl
The development of this library has been supported by the Swiss National Science Foundation, the European Research Council, and the Flatiron Institute. We acknowledge F. Petocchi for help with graphical representation of the NESSi logo.
v2.0.0
Fabian Künzel
Michael Schüler
Denis Golež
Yuta Murakami
Sujay Ray
Christopher Stahl
Jiajun Li
Hugo U. R. Strand
Philipp Werner
Martin Eckstein
Version 2.0.0 acknowledgements and final author list will be updated.
Note
This will be updated for v2.0.0.
License
This source code is licensed under the Mozilla Public License v2.0. See https://mozilla.org/MPL/2.0/.
Next page: Getting Started with NESSi