# The GW- Lanczos-Sternheimer method

### This page gives hints on how to perform a GW- Lanczos-Sternheimer calculation with the ABINIT package.

##### Copyright (C) 2016-2017 ABINIT group (JL)

Mentioned in help_features#7.

### Table of content:

- 1. Introduction.
- 2. Related input variables.
- 3. Selected input files.
- 4. References.

### 1. Introduction.

This functionality is not in production.

A high performance G0W0 implementation [Janssen2015] has been developed within ABINIT. It is more efficient than the traditional implementation [Gonze2009],[Giantomassi2011] thanks to the treatment of the two major bottlenecks: the summations over conduction states and the inversion of the dielectric matrix. However, note that this implementation has only limited applicability at present (see below).

- The first bottleneck is circumvented by converting the summations into Sternheimer equations. Note that the introduction of approximations beyond the G0W0 (such as analytic continuation [Rieger1999]) is avoided thanks to use of the simplified quasiminimal residual (SQMR) algorithm [Freund1995].
- Then, the second bottleneck is assessed by expressing the dielectric matrix in a Lanczos basis, which reduces the matrix size by orders of magnitude with respect to a plane wave basis.
A model dielectric operator has also been developed [Janssen2015] and can optionally be used to further reduce the dielectric matrix size. The resulting implementation exhibits a 500-fold speedup for the silane molecule, without introducing approximations beyond the G0W0 formalism and the pseudopotential method.

At the time of writing, the implementation supports simulations of molecular systems only (only one k-point).

Furthermore, it does not supports PAW and spinors.

However, it supports parallelism over bands and FFTs [Bottin2008].

To compute G0W0 corrections to DFT eigenenergies, one needs to set optdriver= 66 in the input file. This type of calculation requires that the ground state density and wavefunctions be available from disk (using getden and getwfk). It also requires the user to specify the state to be corrected (gwls_band_index), the maximum allowed residual when solving the Sternheimer equations (tolwfr), and the number of Lanczos vectors used to express the dielectric matrix (gwls_stern_kmax). Note that a convergence study on the latter value is required to check the accuracy of the results. Since only molecular systems are currently supported, the calculation also requires that the Coulomb potential be spherically truncated (icutcoul= 0) with a radius rcut that should be validated with a convergence study.
Go to the top

### 2. Related input variables.

Compulsory input variables:

... icutcoul [Integer that governs the CUT-off for COULomb interaction]
... optdriver [OPTions for the DRIVER]
... rcut [Radius of the CUT-off for coulomb interaction]
... vcutgeo [V (potential) CUT-off GEOmetry]

Input variables for experts:

... gwls_band_index [GWLS BAND INDEX]
... gwls_correlation [GWLS CORRELATION]
... gwls_diel_model [GWLS dielectric model]
... gwls_exchange [GWLS exact EXCHANGE]
... gwls_first_seed [GWLS FIRST SEED vector]
... gwls_kmax_analytic [GWLS KMAX for the ANALYTIC term]
... gwls_kmax_complement [GWLS KMAX for the COMPLEMENT space.]
... gwls_kmax_numeric [GWLS KMAX for the NUMERIC term]
... gwls_kmax_poles [GWLS KMAX for the calculation of the POLES residue]
... gwls_list_proj_freq [GWLS LIST of the PROJection FREQuencies]
... gwls_model_parameter [GWLS MODEL PARAMETER]
... gwls_n_proj_freq [GWLS Number of PROJection FREQuencies]
... gwls_npt_gauss_quad [GWLS Number of PoinTs to use for the GAUSSian QUADrature ]
... gwls_nseeds [GWLS Number of SEED vectorS]
... gwls_print_debug [GWLS PRINT level for DEBUGging]
... gwls_recycle [GWLS RECYCLE]
... gwls_stern_kmax [GWLS Kmax]
Go to the top

### 3. Selected input files.

WARNING : as of ABINITv8.6.x, the list of input files provided in the specific section of the topics Web pages is still to be reviewed/tuned. In some cases, it will be adequate, and in other cases, it might be incomplete, or perhaps even useless.
The user can find some related example input files in the ABINIT package in the directory /tests, or on the Web:

tests/v67mbpt/Input: t15.in

tests/paral/Input: t77.in
Go to the top

### 4. References.

[Bottin2008] F. Bottin, S. Leroux, A. Knyazev and G. Zérah, "Large-scale ab initio calculations based on three levels of parallelization", Comp. Mat. Sci. 42, 329–336 (2008).
[Freund1995] R. W. Freund and N. M. Nachtigal, "Software for simplified Lanczos and QMR algorithms", Applied Numerical Mathematics 19, 319 (1995).
DOI: 10.1016/0168-9274(95)00089-5.
[Giantomassi2011] M. Giantomassi, M. Stankovski, R. Shaltaf, M. Gruning, F. Bruneval, P. Rinke and G.M. Rignanese, "Electronic properties of interfaces and defects from many-body perturbation theory: Recent developments and applications", Physica Status Solidi B 248, 275–289 (2011).
DOI: 10.1002/pssb.201046094.
[Gonze2009] X. Gonze, B. Amadon, P.-M. Anglade, J.-M. Beuken, F. Bottin, P. Boulanger, F. Bruneval, D. Caliste, R. Caracas, M. Côté, T. Deutsch, L. Genovese, Ph. Ghosez, M. Giantomassi, S. Goedecker, D.R. Hamann, P. Hermet, F. Jollet, G. Jomard, S. Leroux, M. Mancini, S. Mazevet, M.J.T. Oliveira, G. Onida, Y. Pouillon, T. Rangel, G.-M. Rignanese, D. Sangalli, R. Shaltaf, M. Torrent, M.J. Verstraete, G. Zerah and J.W. Zwanziger, "ABINIT: First-Principle approach to material and nanosystem properties", Comp. Phys. Comm. 180, 2582-2615 (2009).
[Janssen2015] J. Laflamme Janssen, B. Rousseau and M. Côté, "Efficient dielectric matrix calculations using the Lanczos algorithm for fast many-body G0W0 implementations", Phys. Rev. B 91, 125120 (2015).
DOI: 10.1103/PhysRevB.91.125120.
[Rieger1999] M. Rieger, L. Steinbeck, I. D. White, H. N. Rojas and R. W. Godby, "The GW space-time method for the self-energy of large systems", Comp. Phys. Comm. 117, 211–228 (1999).
DOI: 10.1016/S0010-4655(98)00174-X.

Go to the top