The Green Software Package aims to provide tools for the accurate numerical simulation of realistic quantum systems of interacting electrons with Green’s function techniques.

An introduction to the theory of Green’s functions and the numerical implementation of Green’s function methods is available in textbooks and review articles. The following is a small overview of textbooks that we found useful. An elementary introduction to electronic structure techniques is given by 1. A good first view of diagrammatic Green’s function methods is presented in 2. More extensive derivation can be found in the condensed matter field theory textbooks of 3, 4, and 5, and 6 as well as 7 give expert information. For mathematical and non-equilibrium aspects, 8 is useful.

Most of Green considers a variant of the following problem: Find the properties of an interacting quantum system described by a Hamiltonian of the form $$ \begin{aligned} H &= \sum_{ij,\sigma} H^0_{ij} c^\dagger_{i\sigma}c_{j\sigma} + \frac{1}{2} \sum_{ijkl,\sigma\sigma’} U_{ijkl} c^\dagger_{i\sigma} c^\dagger_{k\sigma’} c_{l\sigma’}c_{j\sigma}. \end{aligned} $$ Here, the indices $i,j,k,l$ may correspond to indices of atomic orbitals or to a combination of lattice site indices and atomic orbitals.1 The one-body Hamiltonian $H^0_{ij}$, in the simplest case, is defined as $$ H^0_{ij} = \int d\mathbf{x} \psi^\dagger_i(\mathbf{x}) \left(-\frac{\hbar^2}{2m} \nabla^2_x - V_{ext} (\mathbf{x})\right) \psi_j(\mathbf{x}), $$ and describes the motion of electrons in the field of an external potential $V_{ext}(\mathbf{x})$. The electron-electron Coulomb repulsion is $$ U_{ijkl} = \int d\mathbf{x_1}d\mathbf{x_2} \psi^\dagger_i(\mathbf{x_1}) \psi_j(\mathbf{x_1}) \frac{1}{|\mathbf{x_1} - \mathbf{x_2} |} \psi^\dagger_k(\mathbf{x_2}) \psi_l(\mathbf{x_2}). $$

Green solves problems of this type in a Green’s function language where the main objects are electron Green’s functions and electron self-energies expressed in terms of Feynman diagrams.2

It is often convenient to split the self-energy into static and a time-dependent parts: $$ \Sigma_{ij}(\tau) = \Sigma^\infty_{ij} + \Sigma^c_{ij}(\tau). $$ Here $\Sigma^\infty_{ij}$ corresponds to a static, i.e. time- or frequency-independent component of the self-energy, and the dynamical part $\Sigma^c_{ij}(\tau)$ encapsulates the time dependence (the notation $\Sigma^\infty_{ij}$ refers to the infinite frequency limit of the self-energy).

The solution of Hartree-Fock equations leads only to a static self-energy and can be understood as the lowest-order approximation of diagrammatic perturbation theory. Higher order approximations yield dynamical self-energies in addition. Both GW and GF2 are such higher order approximations.