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[.h5]
: Wavefunctions in unshifted fine grid (conduction and valence for momentum operator, conduction for velocity operator). Information of spinor wavefunctions is initialized automatically. -
WFNq_fi[.h5]
: Wavefunctions in shifted fine grid (not needed for momentum operator, valence for velocity operator). -
WFN_co[.h5]
: 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[.h5]
. -
bsexmat
: BSE exchange matrix elements. This should be generated with Kernel code using sameWFN_co[.h5]
. -
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[.h5]
: Coarse grid wavefunctions for Finite Q calcualtion, shifted relativeWFN_co[.h5]
by an amountexciton_Q_shift
. -
eqp.dat
: A list of quasiparticle energy corrections for the bands inWFN_fi[.h5]
. Used ifeqp_corrections
is set inabsorption.inp
. -
eqp_q.dat
: A list of quasiparticle energy corrections for the bands inWFNq_fi[.h5]
. Used ifeqp_corrections
is set inabsorption.inp
. -
eqp_co.dat
: A list of quasiparticle energy corrections for the bands inWFN_co[.h5]
. Used ifeqp_co_corrections
is set inabsorption.inp
.
WFN files in HDF5 (.h5) format
The wavefunction files will be read in HDF5 format (i.e. from WFN_fi.h5
, WFNq_fi.h5
, WFN_co.h5
and WFNq_co.h5
files)
if the code is compiled with HDF5 support and the use_wfn_hdf5
is set in input.
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[.h5]
andWFNq_fi[.h5]
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.
Details: Finite Q conventions
As a direct result of the convention dicussed in the kernel overview, running a finite Q calculation with the input:
exciton_Q_shift
Qflag
Q_x
, Q_y
, Q_z
will yield excitons with:
where Q = (Q_x, Q_y, Q_z). In other words, the shift provided in
exciton_Q_shift
is negative the excitons
center of mass momentum.
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[.h5]
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
.