Silicon – Bethe Salpeter equation

In this session we will calculate the optical absorption spectrum of Silicon
within the GW-BSE formalism. We’ll continue from where we left off in tutorial
1, where you calculated the quasiparticle band structure of silicon within
the GW approximation.

Goals
—–

The basic goals are the following:

1. Learn how to use the “kernel“ and “absorption“ codes.
2. Plot the optical absorption spectrum of silicon with and without e-h
interactions.

The stretch goals are:

1. Use scissors corrections with the absorption code.
2. Compare results with RPA spectrum with local fields.

Instructions
————

Mean-field calculation

As previous examples we start with mean-field calculations. Create and go to the “1-mf/“ directory, where we perform all the mean-field calculations.

  1. Create and go to 1-scf directory. We can reuse charge density file calculated in the GW calculation examples. Make proper link to the charge density file.
  2. Create and go to 2.1-wfn directory. Although not required, it is customary to use the same “WFN“ file that was used in Sigma also in Kernel. The reason is simple: we usually interpolate both the matrix elements from the Bethe-Salpeter equation (BSE), which is calculated in Kernel, and the quasiparticle energies, calculated in
    Sigma. But if the quasiparticle energies and the kernel matrix elements are
    calculated on the same k-grid, we might as well use the same “WFN“ file for
    Sigma and Kernel.
  3. Create and go to 3.1-wfn_fi directory. In this directory we perform a non-self-consistent (NSCF) mean-field calculation to generate all of the Bloch states needed for the GW-BSE calculation. The Absorption code uses two WFN files: one which is used just for the conduction states, and one for the valence states. Just like in the Epsilon code, we need the two k-grids to have a finite shift to properly handle q->0 transitions. Follow the following steps:
    • Take a look at the input file (“kgrid.inp“) for “kgrid.x“. What is the k-grid
      that we are using? What is the shift? Why are we using this shift?
      Also, check that the PARATEC input file has the right k-grid.
    • Run “./01-get_kgrid.sh“ to generate the k-grid, and take a look at the
      output.
    • Run “./02-calculate_wfn.qsub“ to launch PARATEC. This should take
      about a minute.
  4. Create and go to 3.2-wfnq_fi directory. In this directory we the second part of the non-self-consistent (NSCF) mean-field calculation, where we generate the q-shifted wavefunction file for the “absorption“ calculation. Follow the following steps:
    • Take a look at the input file (“kgrid.inp“) for “kgrid.x“, and run
      “./01-get_kgrid.sh“. What changed from the previous k-grid?
    • Compare the PARATEC input file with the previous one at
      “../3.1-wfn_fi/input“. What changed?
    • Run “./02-calculate_wfnq.qsub“ to launch PARATEC. This should take
      about a minute.

GW-BSE calculation

Create and go to the “2-bgw/“ directory, where we perform GW/GW-BSE calculations.

  1. Create and go to 1-epsilon directory. Just like for the mean-field calculations, we won’t recalculate the dielectric matrix, but reuse it from the first silicon example. Make sure we link them properly.
  2. Create and go to 2-sigma directory. We are also not performing another Sigma calculation, but rather using the QP energies reported in “sigma_hp.log“ calculated previously.
  3. Create and go to 3-kernel directory. In this directory we calculate the kernel of the Bethe-Salpeter equation (BSE) using the Kernel code from BerkeleyGW. The kernel is calculated on a coarse 4x4x4 grid. This is the same grid on which the self energy Sigma was calculated, but one could have used different grids. Follow the instructions below:
    • Open the input file “kernel.inp“. Compare the tags present in the file
      against the documentation of “kernel.inp“ in the manual.
    • Run the kernel calculation using “./01-run_kernel.qsub“. The
      calculation should take about a minute. There are not many informative
      quantities that can be readily read from the output, so we should
      go directly to the next directory and calculate the absorption
      spectrum.
  4. Create an go to 4-absorption directory. In this directory we interpolate the kernel of the Bethe-Salpeter equation (BSE) that was calculated on a 4x4x4 grid and solve the BSE to obtain the optical absorption spectrum. The recommended workflow is to interpolate the quasiparticle corrections calculated from Sigma onto a finer grid. This is done automatically by the code without any input from the user. We will follow that strategy right now. Follow the following steps:
    • Run “./01-link_eqp.dat“ to link the file “eqp.dat“, containing the
      quasiparticle energies calculated from Sigma, to “eqp_co.dat“. This file,
      which was calculated on a 4x4x4 grid, will be interpolated by the
      Absorption code into the files “eqp.dat“ and “eqp_q.dat“, both defined on a 8x8x8 grid.
    • Take a look at the files in the directories and all the symbolic
      links. Where are the files coming from? Which k-grids are being used?
    • What is the polarization of the incoming photon? Hint: take a look
      at the expression for the absorption spectrum and use the “wfn_rho_vxc_info.x“ utility on “WFN_fi“ and “WFNq_fi“ files. For example, you could run: “wfn_rho_vxc_info.x WFN_fi > wfn.log“ and
      “wfn_rho_vxc_info.x WFNq_fi > wfnq.log“. If you are used to working
      with “vim“, run “vimdiff wfn.log wfnq.log“, otherwise run
      “diff wfn.log wfnq.log | less -S“. Pay attention to the part about the
      k-grid and the k-points. The goal here is also to get you used to
      the “wfn_rho_vxc_info.x“ utility, which is very helpful to detect
      inconsistencies in mean-field calculation.
    • Open the input file “absorption.inp“, and fill up the missing values based
      on the input of your kernel calculation. In general, should we include
      more bands from the coarse WFN or fine WFNs? Why?
    • Run “./02-run_absorption.qsub“ to perform the Absorption calculation.
      The calculation should take about a minute. Take note of the output files
      that were produced.
    • Plot the optical absorption spectra. The relevant files are “absorption_noeh.dat“, which contains the GW-RPA optical absorption
      spectrum without local fields, and “absorption_eh.dat“, which contains the GW-BSE absorption spectrum (with electron-hole interactions and local-
      field effects). What are the main features you see in the graphs?