Practical BSE Calculations with BerkeleyGW + Octopus
Felipe H. da Jornada
Department of Physics – University of California, Berkeleyand Lawrence Berkeley National Laboratory

David A. Strubbe
Department of Material Science and Engineering –Massachusetts Institute of Technology
TDDFT Benasque Workshop – Jan.12th , 2014

Summary#1 – Theory and Algorithms#2 – Typical BSE Workflow in BerkeleyGW#3 – Issues Unique to the BSE Code

Theory and Algorithms

Theory Review: Optical Absorption
No electron-hole interactions
 ~ " ⋅ $Quasi-electron: |,∝     |∝  0 |ΩQuasi-hole: |  With electron-hole interactions
,|   |  ⨂|

Correlated electron-hole pair: |

Solutions of the Bethe-Salpeter equation (BSE)Bethe Salpeter Equation (BSE)

From Prof. Tokalty’s talk to BerkeleyGW:+  1 +- & ./ ++./  +./&

Spectral Representation:+- ./   +./     &Absorption spectrum with excitonic effects → diagonalize BSE Hamiltonian: (),( * * *)    %&'diagonal~ kinetic term

dense “kernel”~ potential term

Challenge: compute quasiparticle corrections and kernel matrix
elements on a very fine k-grid!

BerkeleyGW Interpolation Scheme
BerkeleyGW solution:Interpolate QP energies and BSE kernelStep 1: Expand fine WFNs in terms of coarse WFNs

Step 2: Interpolate QP energies and matrix elements

BerkeleyGW Interpolation SchemeIn practice: trading bands for k-points
NaiveBerkeleyGW
 23

 01

Band index

 01

CalculatedInterpolatedHow to get a good interpolation?
Include a large number of bands from the coarse grid!

BerkeleyGW QP Interpolation
MoS2
BerkeleyGW also performs alinear interpolation for QP
corrections.

Linear interpolation +expansion over bands:Captures (nk)-dependent QP
correction and band crossing
Very smooth interpolation ofband structure
Robust scheme, and very few
parameters

This is how inteqp.x works!

D. Qiu, F. H. da Jornada, S. G. Louie, PRL 111, 216805 (2013)

Theory and Algorithms

Key Points• Interpolation scheme: trading bands for k-points• Interpolation of kernel and QP correctionsTypical BSE Workflow in BerkeleyGW

Goal

Goal: Diagonalize BSE Hamiltonian on a fine grid
 23   23  & 23

sigma.x

Step 2: Calculate BSE kernel on the same coarse grid

absorption.x

Step 1: Calculate QP–corrected band structure on a coarse gridkernel.x

BerkeleyGW Workflow
 01,  01,& 01
Step 3: Interpolate to a fine k-grid and build BSE Hamiltonian…

 01 ⇒  23… and diagonalize BSE Hamiltonianevals  23 ⇒ (Not shown: mean-field, epsilon, convergence)sigma.x

1. Sigma
Step 1: Calculate QP–corrected band structure on a coarse grid 01,  01,

Same procedure done in previous sessions.

Recommended: eqp.dat
 Calculate QP energies on all k-points from WFN_inner.
 Use the script eqp.py to generate eqp.dat file → no human intervention!

Also possible: scissors operators, less reliable (not covered here)1. Sigma
Sample sigma.inp (assuming we are using eqp.dat)

number_bands <?>band_occupation <?>band_index_min <?>band_index_max <?>screening_semiconductor
number_kpoints <?>begin kpoints<put all k-points from WFN_INNER here>

end

Remember tocalculate Sigma on
more bands becauseof the interpolation!
 01

 23

Band index

screened_coulomb_cutoff <?>bare_coulomb_cutoff <?>Note the twodifferent # of bands::;  〈= Σ =〉



 01

kernel.x

2. Kernel

Step 2: Calculate BSE kernel on the same coarse gridTime consuming!
 Computes = = =@elements& 01

matrixbsexmatbsedmathead, wing,body

Recommended: Use same WFN_co as in Sigma (WFN_inner)

2. Kernel
Sample kernel.inp
number_val_bands <?>number_cond_bands <?>screened_coulomb_cutoff <?><?>_symmetries_coarse_grid
screening_<?>You’ll typically want to use symmetries
here, so put:use_symmetries_coarse_grid

Remember to calculate
Kernel on more bands
because of theinterpolation!
Must be ≤ than the #of bands used in Sigma.

absorption.x

3. Absorption
Step 3: Interpolate to a fine k-grid and build BSE Hamiltonian…

 01 ⇒  23… and diagonalize BSE Hamiltonian

evals  23 ⇒ 

Absorption needs same coarse WFN_co from Kernel/Sigma
 Absorption also need two fine WFN files:
 WFN_fi: for conduction states WFNq_fi: for valence statesGood practice: use randomly-shifted k-grids
 This maximizes the number of inequivalent transitions you capture.

3. Absorption
Sample absorption.inp

 01



diagonalization
number_val_bands_coarse <?>number_cond_bands_coarse <?>number_val_bands_fine <?>number_cond_bands_fine <?> 23Band index

 01

Same as used in kernel.
We interpolate to thesebands!

coarse_grid_points <?>How many k-points in thecoarse grid after unfolding BZ?

use_symmetries_coarse_grid
no_symmetries_fine_grid
no_symmetries_shifted_grid

Typical values.

screening_semiconductor

Recommended!

use_velocity
q_shift 0.0 0.0 0.001

 ABCDE  FG32H   ABCIDE

gaussian_broadening
energy_resolution 0.15

Broaden each delta function.

eqp_co_corrections

Interpolate eqp_co.dat to eqp.dat

3. Absorption – Workflow
absorption.inp

absorption_noeh.dat
epsmateps0matabsorption_eh.dateqp*.dat

absorption.x
bsedmateigenvalues.dat

bsexmateigenvectors.dat
WFN_cod?mat_norm.dat

WFN_fi

WFNq_fiTypical BSE Workflow in BerkeleyGW

Key Points• BSE codes separated into two parts:• Kernel.x: calculates kernel on coarse grid
• Absorption.x: interpolates and diagonalizes [H]• number_*_bands_coarse, number_*_bands_fine.

Issues Unique to the BSE Code1.

Velocity Operator

2.

Finite Systems + Octopus

3.

Estimating the Quality of the Interpolation

4.

Analyzing Exciton Files

5.

Convergence!

1. Velocity Operator,∝  0 |Ω

0 |      |

Because of non-local pseudopotential and QP corrections, the velocity
operator is not the same as the momentum!

  J , K̂  M̂  J N, K̂
use_velocity
Recommended option!
 Needs WFN_fi and WFNq_fi.
 Specify q-shift:  ABCDE  FG32H   ABCIDEΩ
0 | O    Q .⋅R |P

use_momentum
Not recommended!
 Needs only WFN.
 Specify polarization ST of .
   | O  M̂T |2. Finite Systems + Octopus
 For finite systems, Octopus can calculate the single-particle

velocity matrix elements directly!
No need for two different WFN files and a q-shift in the absorption code.
 BerkeleyGW can calculate    0 “exactly”.
 In BerkeleyGW:...
read_vmtxel
use_momentum
polarization

Read velocity matrix elm from file
Tell BerkleyGW that there’s no q-shift.
Note: this doesn’t affect calculation of matrix
elms because of the read_vmtxel flag.

<...>

skip_interpolation
eqp_corrections...

There are no k-points, so there’s nointerpolation! Use directly the eqp.dat file(don’t interpolate eqp_co.dat → eqp.dat)3. Quality of the Interpolation
How to measure the quality of WFN expansion?
 If we include ∞ bands:


Finite basis set – normalization is reported in files d?mat_norm.dat:-------

Norm of dvv matrices : Spins =1 ------k-point
ik_cov
dist|dvv|^2--------------------------------------------------------------( 0.059 , 0.046 , 0.039 )1
1 0.0540.987006( 0.059 , 0.046 , 0.039 )1
2 0.054
0.953488( 0.059 , 0.046 , 0.039 )1
3 0.054
0.892665( 0.059 , 0.046 , 0.164 )2
1 0.1390.923182



How to get a good interpolation?
Include a large number of bands from the coarse grid!
Start from a fine enough grid

Beforerenormalizationof coefficients.

4. Analyzing Excitons


Optical spectrum absorption_noeh.dat: GW-RPA without local fields
absorption_eh.dat: GW-BSE with local fields

Eigenvalues of the BSE equation Ω :, / ( ):eigenvalues.dat: useful to see if there are degeneracies, splitting, etc.

Where the exciton is coming from:

summarize_eigenvectors.x
Need to set the flag write_eigenvalues in absorption.inp

5. Convergence!
There are 4 convergenceparameters in a typical BSE
calculation:# of k-points in the fine grid# of bands in the fine grid# of k-points in the coarse grid# of bands in the coarse grid
D. Qiu, F. H. da Jornada, S. G. Louie, PRL
111, 216805 (2013).

Make sure you converge your calculations!

Issues Unique to the BSE Code1.

Velocity operator

2.

Finite systems

Key Points
Estimating
qualityof the interpolation• 3.Why
we need 2theWFN
files: velocity
operator• Convergence!
4.

Analyzing exciton files

5.

Convergence!

Let’s Put the Donkey to Work!

Predicting quasiparticle band structures since 1985.