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.h5extension 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.h5extension 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.pyutility to upgrade absemat.h5file 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_correctionsis set inabsorption.inp. -
eqp_q.dat: A list of quasiparticle energy corrections for the bands inWFNq_fi. Used ifeqp_correctionsis set inabsorption.inp. -
eqp_co.dat: A list of quasiparticle energy corrections for the bands inWFN_co. Used ifeqp_co_correctionsis 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 yourbsedmatandbsexmatfiles and corresponding coarse and fine wavefunctions. Note: the file format fordtmatwas 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 withepsmatandeps0mat. -
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 thedvvoverlap 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 thedccoverlap 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_fiandWFNq_fiinterpolated from the coarse grid ifeqp_co_correctionsis used. -
bandstructure.dat: Same aseqp.datandeqp_q.datbut 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.datanddcmat_norm.dat. -
Unfolding of irreducible BZ: if you want to skip the unfolding and use the set of k-points in
WFN_fias a sampling of the whole BZ, specify theno_symmetries_*options inabsorption.inp. -
The
number_eigenvalueskeyword: using this keyword tells the code to store only the firstnumber_eigenvalueseigenvalues/eigenvectors. So far, this option is implemented only with the ScaLAPACK diagonalization routines. -
Analyzing eigenvectors: we provide a tool called
summarize_eigenvectorsto 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.