Clustered Sampling Interpolation (CSI)
The CSI allows you to obtain converged optical absorption spectra of quasi-2D materials with a relatively coarse k-point grid. Before you proceed with the CSI calculation, make sure you understand the formalism and the first mean-field calculation that has to be performed, as documented in the overview of the subsampling approach. You may also want to first compute the electronic self-energy using the NNS method.
Pre-setup: 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 k-points 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 k-points in kpoints_wfnq.dat
to generate a WFNq
file with the
mean-field code.
Mean-field 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 k-points 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 k-points. 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
.