# Implementation of the GW Approximation

### Introduction

The GW approximation is implemented in two forms: as a 1-shot perturbation to the LDA and as quasiparticle self-consistent GW (QSGW).

In 1-shot mode, the diagonal part of Σ is evaluated at the one-particle (usually LDA) energies, yielding a correction to the LDA levels in 1st order perturbation theory.

In QSGW mode, the full Σ matrix is calculated and “quasiparticlized:” $\Sigma_{ij}(\omega)$ coupling one-electron states i and j, is evaluated at the one-particle energies $\varepsilon_{i}$ and $\varepsilon_{j}$, and the average value is taken. This results in a static but orbital-dependent potential, a “quasiparticlized” $\Sigma^0_{ij}$ derived from $\Sigma_{ij}(\omega)$, and defines a one-particle hamiltonian $H_0$ which is the LDA one-particle hamiltonian with $\Sigma^0_{ij}$ substituting for $V^{LDA}_{xc}$.

The new $H_0$ is used to mke a new $\Sigma_{ij}(\omega)$, and the process is iterated until $H_0$ stops changing. This is quasiparticle self-consistency.

QSGW theory is an elegant way to find the optimum noninteracting hamiltonian $H_0$ for GW calculations. It is vastly better than basing $H_0$ on the LDA, as is customary, albeit at some computational cost. A particularly valuable property of this optimum starting point is that the peaks of the interacting Green’s function G coincide with the poles of $G_0$. The eigenfunctions of $G_0$ are as close as possible to those of G, by construction. What are true poles in $G_0$ get broadened by the interactions, so quasiparticles lose weight. Thus the density-of-states, or spectral function, is composed of a superposition of δ-functions for $G_0$, but are broadened for G. Also the eigenvalues acquire an imaginary part, making the QP lifetime finite.

In QSGW theory $G_0$ and G are closely linked. Associated with the two kinds of G are two kinds of density-of-states (DOS). There is “noninteracting” or “coherent” DOS, namely the spectral function of $G_0$ which is associated with DOS in one-particle description, and is what is typically calculated by a band program such as lmf. There is also the true DOS (spectral function of G) which is approximately what is approximately measured by e.g. a photoemission experiment. The GW package has a facility to generate both kinds of DOS through the normal lmf process for the noninteracting DOS or by analyzing the spectral functions for the interacting case.

A detailed description of QSGW theory and the way in which Questaal implements it can be found in the references in “Other Resources” below.

### How the 1-particle and many-particle codes synchronise

The GW package comprise a separate set of codes from the density-functional code, lmf. It uses the single-particle basis set of lmf to calculate the screened coulomb interaction W and the self-energy, Σ=iGW.

Thus, the GW package handles the many-body part, lmf the 1-body part. The two connect through special purpose interfaces: lmfgwd sets up the inputs needed by GW, supplying information about the wave functions in the augmentation spheres and in the interstitial. The GW part estimates shifts in QP levels and makes the quasiparticlized $\Sigma^0_{ij}$. Apart from these linkages, the GW package is completely separate from lmf. The GW package has a separate input file, GWinput and does not depend on the ctrl file lmf and lmfgwd use; only on the eigenfunctions they generate.

In reality the GW package makes $\Sigma^0{-}V^{LDA}_{xc}$. lmf can read this potential and add it to the LDA hamiltonian. This construction enables lmf to do the same kinds of calculations it performs with the LDA potential.

#### Operation of lmfgwd

lmfgwd initially operates in the same manner as lmf. After setting up the potential it prompts for a job, which tells lmfgwd what to do.

• Job −1 generates GWinput and exits
• Job 0  is an ‘initializer’ mode. It creates several input files the GW package requires: SYMOPS, LATTC, CLASS, NLAindx, ldima
• Job 1  generates files required by the GW package (e.g. eigenfunctions, eigenvalues, and wave function information)
• Job −2 performs sanity checks on GWinput

Even while the GW package is independent of lmf, the GWinput file is complicated and in practice almost always autogenerated by lmfgwd. What lmfgwd writes to GWinput is modified by contents in the ctrl file. lmfgwd reads a special GW category from the ctrl file; through tags in this category you can set some of the parameters it writes into GWinput .

### Analysis of many-body spectral functions

A pair of executables spectral and lmfgws are included in the Questaal suite. They are postprocessing tools used to analyze spectral functions made by the GW package, derived by either individual QP levels or integrated over the Brillouin zone to make the interacting density-of-states. See this page for a tutorial on spectral functions.

### Other Resources

See this tutorial for a basic introduction to doing a QSGW calculation.

This paper presents the first description of an all-electron GW implementation in a mixed basis set:
T. Kotani and M. van Schilfgaarde, All-electron GW approximation with the mixed basis expansion based on the full-potential LMTO method, Sol. State Comm. 121, 461 (2002).

These papers established the framework for QuasiParticle Self-Consistent GW theory:
Sergey V. Faleev, Mark van Schilfgaarde, Takao Kotani, All-electron self-consistent GW approximation: Application to Si, MnO, and NiO, Phys. Rev. Lett. 93, 126406 (2004);
M. van Schilfgaarde, Takao Kotani, S. V. Faleev, Quasiparticle self-consistent GW theory, Phys. Rev. Lett. 96, 226402 (2006)

Questaal’s GW implementation is based on this paper:
Takao Kotani, M. van Schilfgaarde, S. V. Faleev, Quasiparticle self-consistent GW method: a basis for the independent-particle approximation, Phys. Rev. B76, 165106 (2007)

This paper shows all-electron results from LDA-based GW, and its limitations:
M. van Schilfgaarde, Takao Kotani, S. V. Faleev, Adequacy of Approximations in GW Theory, Phys. Rev. B74, 245125 (2006)

If this page has any errors, there is something you think is missing or unclear, or for any other issues, you can create a post here letting us know.