Clustered Sampling Interpolation (CSI)
The CSI allows you to obtain converged optical absorption spectra of quasi2D materials with a relatively coarse kpoint grid. Before you proceed with the CSI calculation, make sure you understand the formalism and the first meanfield calculation that has to be performed, as documented in the overview of the subsampling approach. You may also want to first compute the electronic selfenergy using the NNS method.
Presetup: kernel
on a coarse grid
First, run kernel.x
as usual on a coarser, uniform grid. Note that the
converged grid for the kernel
calculation is typically finer than the one
used to converge epsilon
and sigma
calculations as in a NNS calculation.
Use epsmat
and esp0mat
files from a usual, uniform epsilon
calculation.
Setup: setup_subsampling_csi.x
Analogous to the NNS, run setup_subsampling_csi.x format WFN_co WFN nk_fi_x
nk_fi_y nk_fi_z
, where format
is either ASCII
, BIN
, or HDF5
, WFN_co
is the coarse wave function used to calculate the BSE kernel, and nk_fi_x
nk_fi_y nk_fi_z
are the find kgrid to be used in BSE. This must be an integer
multiple of the coarse grid.
The output files are:
epsilon_q0s.inp
: contains part of theepsilon.inp
file needed to generateepsmat
for the clustered points.kpoints_wfnq.dat
: contains a list of kpoints needed for theWFNq
used to calculateepsmat
.kpoints_sub_*.dat
: contains a list of subsampled kpoints surrounding each coarse point. There is one file per coarse point.subsample.inp
: contains the header for an input file needed during absorption.
Use the kpoints in kpoints_wfnq.dat
to generate a WFNq
file with the
meanfield code.
Meanfield and epsilon
calculations

Run epsilon using
epsilon_q0s.inp
as the basis forepsilon.inp
and link to theWFNq
file generated above. The output file is calledeps0mat.h5
, but it is referred to asepsmat_sub.h5
for clarity in the rest of this document. 
Generate a
WFN
file containing the kpoints in eachkpoints_sub_*.dat
file. For example, for a 2x2 coarse grid, you will have 4kpoints_sub_*.dat
files, so you will need to generate 4 wavefunctions,WFN_1
,WFN_2
,WFN_3
,WFN_4
. 
Run kernel for every
WFN_1
,WFN_2
, etc. The recommended way to do this is to have a separate directory for eachWFN_*
file and then set up symbolic links to the correct input files. For example: Indirectory_1/
linkeps0mat.h5
to the sameeps0mat.h5
used in the coarse kernel calculation. Link the subsampled dielectric function intoepsmat.h5
withln s epsmat_sub.h5 epsmat.h5
, (bear in mind our naming convention here), and the wavefunction asln s WFN_1 WFN_co
. Indirectory_2/
, link botheps0mat.h5
andepsmat.h
as indirectory_1/
, but use the corresponding wavefunction withln s WFN_2 WFN_co
. Repeat for other directorie.
Kernel
calculation
In kernel.inp
, make sure to add the following flags:
no_symmetries_coarse_grid
, and patched_sampling_co
.
Warning
When you run the kernel
calculation, make sure that n_k^2 > number of
processors, where n_k is the number of kpoints. This is a current
limitation of how the CSI is implemented.
Absorption
calculation

Move the generated
subsample.inp
file to the directory where you will run your absorption calculation. 
Open and edit
subsample.inp
. You can find a samplesubsample.inp
file that explains the file format inBSE/subsample.inp
in your BerkeleyGW source directory. 
Run absorption. Link the
bsemat
coarse file,WFN_co
is same as in the coarse kernel calculation, andWFN_fi
is as usual, with a size that has to be converged. Inabsorption.inp
include the following flag:subsample_line cutoff
, wherecutoff
is your coarse grid spacing. For instance, if your coarse grid is30x30x1
, the cutoff is 0.0333. Everything else inabsorption.inp
should be the same as your previous calculation. Make sure thatsubsample.inp
is in the same directory asabsorption.inp
.