# Bethe-Salpeter calculations

### This page gives hints on how to perform a Bethe-Salpeter calculation of neutral excitation energies and dielectric function with the ABINIT package.

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

Mentioned in topic_Optic, topic_Susceptibility, help_features#7.

### Table of content:

- 1. Introduction.
- 2. Related lesson(s) of the tutorial.
- 3. Related input variables.
- 4. Selected input files.
- 5. References.

### 1. Introduction.

Many-Body Perturbation Theory (MBPT [Onida2002]) defines a rigorous framework for the description of excited-state properties based on the Green's function formalism. Within MBPT, one can calculate charged excitations (i.e. electron addition and removal energies), using for example Hedin's GW approximation [Hedin1965] for the electron self-energy. In the same framework, neutral excitations (experimentally related to optical absorption spectra) are also well described through the solution of the Bethe-Salpeter equation (BSE [Onida2002],[Albrecht1998]). At present, the BSE represents the most accurate approach for the ab initio study of neutral excitations in crystalline systems as it includes the attractive interaction between electrons and holes thus going beyond the random-phase approximation (RPA) employed in the GW approximation.

The BSE implementation in ABINIT is discussed in the review article [Giantomassi2011].

BSE calculations are activated by setting optdriver= 99. The number of valence and conduction states in the e-h basis set is controlled by the variables bs_loband and nband, respectively. By default, the code solves the BSE in the so-called Tamm-Dancoff approximation (TDA) in which the coupling between resonant and anti-resonant transitions is ignored. A full BSE calculation including the coupling term can be done by setting bs_coupling= 1 in the input file. The variable bs_coulomb_term specifies the treatment of the screened interaction in the BSE kernel. By default, the code reads the W matrix from the SCR file generated by the GW code (optdriver= 3). Alternatively, one can model the spatial dependency of W with the model dielectric function proposed by Cappellini [Cappellini1993]. This option requires the specification of bs_coulomb_term= 21 and mdf_epsinf. The contribution due to the exchange term can be optionally excluded by using bs_exchange_term= 0. This is equivalent to computing the macroscopic dielectric function without local field effects. The frequency mesh for the macroscopic dielectric function is specified by bs_freq_mesh while zcut defines the complex shift to avoid the divergences due to the presence of poles along the real axis (from a physical standpoint, this parameter is related to the electron lifetimes). In addition, a scissor operator of energy mbpt_sciss can be used to correct the initial band energies and mimic the opening of the KS gap introduced by the GW approximation.

Three different algorithms for the solution of the BSE are implemented:

- (1) Direct diagonalization,
- (2) Haydock recursive algorithm,
- (3) Conjugate gradient eigensolver.
The bs_algorithm input variable allows the user to choose among them. The Haydock algorithm [Haydock1980],[Benedict1998] is the recommended approach for the computation of optical spectra. The variables bs_haydock_niter and bs_haydock_tol control the Haydock iterative method.

Unfortunately, the Haydock solver does not give direct access to the eigenstates of the Hamiltonian, hence it cannot be used for the study of the excitonic wavefunctions. The conjugate gradient (CG) method employs standard iterative techniques [Payne1992] to compute the lowest eigenstates of the BSE Hamiltonian. This solver is more memory demanding than the Haydock approach since the eigenstates must be stored in memory, but it gives direct access to the excitonic states.

The CG algorithm should be preferred over the direct diagonalization especially when the number of eigenstates is much smaller than the size of the BSE Hamiltonian.

Note, however, that CG has been implemented only for TDA calculations (Hermitian matrices).

The most important results of the calculation are saved in five different files. The BSR file stores the upper triangle of the BSE resonant block in Fortran binary format (BSC for the coupling matrix). The HAYDR_SAVE file contains the coefficients of the tridiagonal matrix and the three vectors employed in the iterative algorithm. This file can be used to restart the calculation if convergence has not been achieved (related input variables gethaydock and irdhaydock). Finally, the macroscopic dielectric function with excitonic effects is reported in the EXC_MDF file while RPA_NLF_MDF and GW_NLF_MDF contain the RPA spectrum without local field effects obtained with KS energies and the GW energies, respectively.

Different schemes with different degrees of accuracy and computational load are available in ABINIT [Gillet2015] in order to improve the convergence rate of BSE calculations. They are are available in ABINITv8 with the bs_interp_* input variables.

In the non-spin-polarized case, spin-singlet as well as spin-triplet excitations are computed. Spin-polarized case is also available.
Go to the top

### 2. Related lesson(s) of the tutorial.

- The lesson on the Bethe-Salpeter Equation (BSE) deals with the computation of the macroscopic dielectric function of Silicon within the Bethe-Salpeter equation.
Go to the top

### 3. Related input variables.

Compulsory input variables:

... bs_loband [Bethe-Salpeter Lowest Occupied BAND]
... optdriver [OPTions for the DRIVER]

Basic input variables:

... bs_algorithm [Bethe-Salpeter ALGORITHM]
... bs_freq_mesh [Bethe-Salpeter FREQuency MESH]
... bs_interp_mode [Bethe-Salpeter INTERPolation MODE]
... bs_nstates [Bethe-Salpeter Number of STATES]

Useful input variables:

... bs_coupling [Bethe-Salpeter COUPLING]
... bs_interp_kmult [Bethe-Salpeter INTERPolation K-point MULTiplication factors]
... bs_interp_m3_width [Bethe-Salpeter INTERPolation Method3 WIDTH]
... bs_interp_method [Bethe-Salpeter INTERPolation METHOD]
... bs_interp_prep [Bethe-Salpeter INTERPolation PREParation]
... bs_interp_rl_nb [Bethe-Salpeter INTERPolation Rohlfing & Louie NeighBour]
... irdbscoup [Integer that governs the ReaDing of COUPling block]
... irdbseig [Integer that governs the ReaDing of BS_EIG file]
... irdbsreso [Integer that governs the ReaDing of RESOnant block]
... irdhaydock [Integer that governs the ReaDing of the HAYDOCK restart file]
... mdf_epsinf [Model Dielectric Function, EPSilon INFinity]

Input variables for experts:

... bs_calctype [Bethe-Salpeter CALCulation TYPE]
... bs_coulomb_term [Bethe-Salpeter COULOMB TERM]
... bs_eh_cutoff [Bethe-Salpeter Electron-Hole CUTOFF]
... bs_exchange_term [Bethe-Salpeter EXCHANGE TERM]
... bs_hayd_term [Bethe-Salpeter HAYdock TERMinator]
... bs_haydock_niter [Bethe-Salpeter HAYDOCK Number of ITERations]
... bs_haydock_tol [Bethe-Salpeter HAYDOCK TOLerance]
... gw_nqlwl [GW, Number of Q-points for the Long Wave-Length Limit]
... gw_qlwl [GW, Q-points for the Long Wave-Length limit]
... inclvkb [INCLude VKB]
... pawoptosc [PAW - OPTion for the computation of the OSCillator matrix elements]
... zcut [Z-CUT]
Go to the top

### 4. 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: t11.in t14.in t15.in t16.in t29.in t31.in t32.in t33.in t34.in t35.in

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

### 5. References.

[Albrecht1998] S. Albrecht, L. Reining, R. Del Sole and G. Onida, "Ab Initio Calculation of Excitonic Effects in the Optical Spectra of Semiconductors", Phys. Rev. Lett. 80, 4510–4513 (1998).
DOI: 10.1103/PhysRevLett.80.4510.
[Benedict1998] L. X. Benedict, E. L. Shirley and R. B. Bohn, "Optical Absorption of Insulators and the Electron-Hole Interaction: An Ab Initio Calculation", Phys. Rev. Lett. 80, 4514–4517 (1998).
DOI: 10.1103/PhysRevLett.80.4514.
[Cappellini1993] G. Cappellini, R. Del Sole, L. Reining and F. Bechstedt, "Model dielectric function for semiconductors", Phys. Rev. B 47, 9892–9895 (1993).
DOI: 10.1103/PhysRevB.47.9892.
[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.
[Gillet2015] Y. Gillet, M. Giantomassi and X. Gonze, "Efficient Interpolation Technique for Bethe-Salpeter Calculation of Optical Spectra", Comput. Phys. Comm. 203C, 83-93 (2016).
DOI: 10.1016/j.cpc.2016.02.008.
[Haydock1980] R. Haydock, "The recursive solution of the Schrödinger equation", Comp. Phys. Comm. 20, 11 - 16 (1980).
DOI: 10.1016/0010-4655(80)90101-0.
[Hedin1965] L. Hedin, "New Method for Calculating the One-Particle Green's Function with Application to the Electron-Gas Problem", Phys. Rev. A 139, 796 (1965).
[Onida2002] G. Onida, L. Reining and A. Rubio, "Electronic excitations: density-functional versus many-body Green's-function approaches", Rev. Mod. Phys. 74, 601–659 (2002).
DOI: 10.1103/RevModPhys.74.601.
[Payne1992] M. C. Payne, M. P. Teter, D. C. Allan, T. A. Arias and J. D. Joannopoulos, "Iterative minimization techniques for ab initio total-energy calculations: molecular dynamics and conjugate gradients", Rev. Mod. Phys. 64, 1045–1097 (1992).
DOI: 10.1103/RevModPhys.64.1045.

Go to the top