Absorption
code overview
This code is the second half of the BSE code. It interpolates the coarse grid electron-hole kernel onto the fine grid and then diagonalized the BSE equation. The output is the electron-hole eigenfunctions and eigenvalues as well the absorption spectra.
Summary of input and output files
Required input files
-
absorption.inp
: Input parameters. -
WFN_fi
: Wavefunctions in unshifted fine grid (conduction and valence for momentum operator, conduction for velocity operator). -
WFNq_fi
: Wavefunctions in shifted fine grid (not needed for momentum operator, valence for velocity operator). -
WFN_co
: Wavefunctions on unshifted coarse grid. Must be the same as used for Kernel. -
eps0mat[.h5]
: Must be same as used in Kernel. The file has a.h5
extension if the code is compiled with HDF5 support (for specification, seeepsmat.h5.spec
). -
epsmat[.h5]
: Must be same as used in Kernel. The file has a.h5
extension if the code is compiled with HDF5 support (for specification, seeepsmat.h5.spec
). -
bsedmat
: BSE matrix elements in coarse grid, direct part. This should be generated with Kernel code using sameWFN_co
. -
bsexmat
: BSE exchange matrix elements. This should be generated with Kernel code using sameWFN_co
. -
bsemat.h5
: Includes data from both of above if compiled with HDF5 support. For specification, seebsemat.h5.spec
. Note that you can use thebsemat_hdf5_upgrade.py
utility to upgrade absemat.h5
file generated with BerkeleyGW prior to 1.2 (r6974).
Additional input
-
WFNq_co
: Coarse grid wavefunctions for Finite Q. -
eqp.dat
: A list of quasiparticle energy corrections for the bands inWFN_fi
. Used ifeqp_corrections
is set inabsorption.inp
. -
eqp_q.dat
: A list of quasiparticle energy corrections for the bands inWFNq_fi
. Used ifeqp_corrections
is set inabsorption.inp
. -
eqp_co.dat
: A list of quasiparticle energy corrections for the bands inWFN_co
. Used ifeqp_co_corrections
is set inabsorption.inp
.
Auxiliary files
The files below are output files from previous runs, and may be used as input to speed up calculations:
-
dtmat
: Transformation matrices, dcc/dvv use for interpolation between coarse and fine grid. This file must be consistent with yourbsedmat
andbsexmat
files and corresponding coarse and fine wavefunctions. Note: the file format fordtmat
was changed in BerkeleyGW 1.1.0 (r5961). -
vmtxel
: Optical matrix elements (velocity or momentum) between single particle states. -
epsdiag.dat
: Diagonal elements of dielectric matrix on the q-grid. Must be consistent withepsmat
andeps0mat
. -
eigenvalues.dat
: Contains electron-hole eigenvalues and transition matrix elements.
Output files
-
eigenvalues.dat
: Has eigenvalues/transition matrix elements of e-h states, eigenvalues in eV, matrix elements in atomic units. -
eigenvalues_noeh.dat
: As above but for non-interacting e-h transitions, showing k-point, bands, and spin for each. -
eigenvectors
: Has the excitonic wavefunctions in Bloch space: A^S_{vck}. -
absorption_eh.dat
: Dielectric function and density of excitonic states. There are four Columns: energy (in eV), \varepsilon_2, \varepsilon_1, and the DOS. The DOS is normalized, \int DOS(\omega)\,d\omega = 1. -
absorption_noeh.dat
: Non-interacting (RPA) dielectric function and joint density of states. There are four Columns: energy (in eV) , \varepsilon_2, \varepsilon_1, and the JDOS. The JDOS is normalized, \int JDOS(\omega)\,d\omega = 1. -
dvmat_norm.dat
: The norms of thedvv
overlap matrices between the valence band k on the fine grid and the closest k-point on the coarse grid -
dcmat_norm.dat
: The norms of thedcc
overlap matrices between the conduction band k on the fine grid and the closest k-point on the coarse grid -
eqp.dat
,eqp_q.dat
: Quasiparticle corrections forWFN_fi
andWFNq_fi
interpolated from the coarse grid ifeqp_co_corrections
is used. -
bandstructure.dat
: Same aseqp.dat
andeqp_q.dat
but in a format suitable for plotting as a bandstructure.
Tricks and hints
-
To optimize distribution of work among PEs, choose the number of PEs so that n_k n_c n_v in the fine grid is a multiple of the number of PEs. The parallelization is first done over over k-points.
-
Check if the transformation matrices have norm close to 1! The norms are written to the files
dvmat_norm.dat
anddcmat_norm.dat
. -
Unfolding of irreducible BZ: if you want to skip the unfolding and use the set of k-points in
WFN_fi
as a sampling of the whole BZ, specify theno_symmetries_*
options inabsorption.inp
. -
The
number_eigenvalues
keyword: using this keyword tells the code to store only the firstnumber_eigenvalues
eigenvalues/eigenvectors. So far, this option is implemented only with the ScaLAPACK diagonalization routines. -
Analyzing eigenvectors: we provide a tool called
summarize_eigenvectors
to read in and analyze eigenvectors for a group of exciton states. For specific states specified, it sums the total contribution from each k-point. Please see the example inputsummarize_eigenvectors.inp
.