NESSi  v1.0.1
The NonEquilibrium Systems Simulation Library
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 the solution of 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 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.

  • NESSi provides tools for constructing Feynman diagram and solving equations of motion for non-equilibrium Green's functions on the Kadanoff-Baym contour
  • NESSi is based on high-order quadrature rules: for \(N\) time slices, the error scales like up to \(\mathcal{O}(N^{-p})\) with \(p\) up to \(7\).
  • Efficient distributed-memory parallelization over reciprocal space allows large-scale calculations on extended systems.
Future developments:
  • This software is the basis of a follow-up software 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. Hermann, H. U. R. Strand, P. Werner, and M. Eckstein, NESSi: The Non-Equilibrium Systems Simulation package, arXiv:1911.01211 (2019)

Structure of the software

Summary of the content of the NESSi package
  • The core constituent of NESSi is the shared library libcntr. It is written in C++ and provides the essential functionalities to treat Green's functions on the Kadanoff-Baym contour (see Physics background).
  • To solve a particular problem within the nonequilibrium Green's function formalism, the user can write a custom C++ program based on the extensive and easy-to-use libcntr library (see Manual).
  • All callable routines perform various sanity checks in debugging mode, which enables an efficient debugging of libcntr-based programs.
  • The NESSi package also contains a number of simple example programs, which demonstrate the usage and functionalities of libcntr (see Example programs).
  • The libcntr library and the example programs depend on the eigen3 library which implements efficient matrix operations. Furthermore, the hdf5 library and file format can be used for creating binary, machine-independent output such as Green's functions, for instance. The usage of the hdf5 library in the NESSi package is, however, optional.
  • We further provide python tools for pre-processing to assist the use of programs based on libcntr and for reading and post-processing Green's functions from hdf5 format via the h5py python package (see Python tools).
  • An extension of the libcntr library for solutions of strongly correlated impurity problems and corresponding dynamical mean field theory calculations is in preparation and will be published separately (Pseudo-Particle Strong coupling (PPSC) library).

Core functionalities

The libcntr library provides highly accurate methods for calculating nonequilibrium Green's functions and more. A brief overview of the core routines is presented below. All routines work for fermions and bosons.

Summary of the main routines in libcntr
Green's function for a constant or time-dependent Hamiltonian

Constructs the free Green's functions for a general time-dependent Hamiltonian.

Dyson equation

Solves the Dyson equation along the full Kadanoff-Baym contour \({\cal C}\): \( [i\partial_t - h(t)] G (t,t') - [\Sigma * G](t,t') = \delta_{\cal C} (t,t') \) for a given self-energy \(\Sigma(t,t')\). In particular, thermal equilibrium and time evolution are treated on equal footing.


Solves the contour integral equations of the type \( G(t,t^\prime) + [F\ast G](t,t^\prime) = Q(t,t^\prime) \) for given kernel \(F(t,t^\prime)\) and \(Q(t,t^\prime)\). A typical example is the self-consistent \(GW\) approximation, where the screened interaction obeys the Dyson equation \(W = V + V\ast \Pi \ast W\). Here \(V\) denotes the bare Coulomb interaction, while \(\Pi\) stands for the irreducible polarization.


Computes the convolution \([A\ast B](t,t^\prime) = \int_{\mathcal{C}} d\bar{t} \, A(t,\bar{t}) B(\bar{t},t^\prime)\) of two contour functions \(A(t,t^\prime)\) and \(B(t,t^\prime)\), which is an essential part of solving of the integro-differential equations.

Diagram utilities Constructs the bubble diagrams of the type \( C(t,t^\prime)= i A(t,t^\prime) B(t^\prime, t) \quad \text{or}\quad C(t,t^\prime)= i A(t,t^\prime) B(t, t^\prime)\).

Perspective: dynamical mean-field theory

While the NESSi package provides a general framework for real-time Green's functions and can be applied to a broad range of nonequilibrium problems, it has so far been mainly used in the context of real-time dynamical mean-field theory (DMFT) simulations. In order to perform DMFT calculations one has to implement a solver for the DMFT effective impurity problem. Two approximate approaches are (i) weak coupling expansions, such as Iterated Perturbation Theory (IPT) and (ii) strong coupling methods.

The strong coupling based methods involve pseudo-particles, one for each state in the local Hilbert space, which obey specific types of Dyson equations. This formulation solves the atomic problem exactly and treats the hybridization with the environment perturbatively. The first and second order dressed expansion of this method is commonly known as the Non-Crossing Approximation (NCA) and the One-Crossing Approximation (OCA).

A library implementing these methods called the Pseudo-Particle Strong Coupling (PPSC) library is currently under development. This library is based on libcntr and we plan to make it public in the future.

Developers and contributors

The development of this library has been supported by the Swiss National Science Foundation through SNF Professorship PP0022-118866 (ME,PW), Grants 200021-140648 and 200021-165539 (DG), and NCCR MARVEL (MS,YM), as well as the European Research Council through ERC Starting Grants No. 278023 (AH,HS,PW) and No. 716648 (ME), and ERC Consolidator Grant No. 724103 (MS,NB,PW,YM). The Flatiron Institute as a division of the Simons Foundation. We would like to acknowledge F. Petocchi for help with graphical representation of NESSi logo.



This source code is subject to the terms of the Mozilla Public License, v. 2.0. A copy of the MPL one can obtain at

next page Getting started with NESSi