23: Silicon \(G_0W_0\) bands structure interpolation¶
Note: This tutorial requires a recent version of the ypp
post-processing code of yambo.
-
Outline: Interpolate the bands structure of silicon obtained from many-body perturbation theory at the \(G_0W_0\) level. Using the
yambocode, the quasi-particle corrections (QP) are summed to Kohn-Sham eigenvalues, while the wavefunctions remain the same. -
Directory:
tutorials/tutorial23/Files can be downloaded from here -
Input Files
-
silicon.scfThepwscfinput file for the ground state calculation -
silicon.nscfThepwscfinput file to obtain Bloch states on a uniform grid -
silicon.gw.nscfThepwscfinput file to obtain Bloch states on a reduced grid with many empty bands -
silicon.pw2wanThe input file forpw2wannier90 -
silicon.winThewannier90input file -
silicon.gw.winThewannier90input file (for the \(G_0W_0\) step) -
yambo.inTheyamboinput file -
ypp.inTheyppinput file
-
-
Copy the input files from the
INPUT directoryinto a working directory (e.g.WORK) -
Run
pwscfto obtain the ground state charge of silicon -
Run
pwscfto obtain the Bloch states reduced grid. We use a 8x8x8 with many bands (many empty bands are needed to perform a \(G_0W_0\) withyambo) -
Use the
k_mapper.pyutility to find the indexes of a 4x4x4 uniform grid into the 8x8x8 reduced gridUse the output to complete the
yambo.ininput file (you also need to specify how many bands you want to compute the QP corrections, here you can use all the bands from 1 to 14). Then, you should have obtained something like: -
Enter the
si.savedirectory and runp2y. ASAVEfolder is created, you can move it up in the/WORK/directory. -
Run a \(G_0W_0\) calculation from the
/WORK/directory (remember, we are using a 8x8x8 grid but computing QP corrections only on a 4x4x4 grid) -
Run
pwscfto obtain the Bloch states on a uniform k-point grid -
Run
wannier90to generate a list of the required overlaps (written into thesilicon.nnkpfile). -
Run
pw2wannier90to compute the overlap between Bloch states, the projections for the starting guess (written in thesilicon.mmnandsilicon.amnrespectively). -
Run
wannier90to compute the MLWFs.At this point, you should have obtained the interpolated valence bands for silicon at the DFT level.
-
Run a
yppcalculation (just typeypp)You should obtain a file
silicon.gw.unsorted.eigwhich contains the QP corrections on a uniform 4x4x4 grid. -
Run the gw2wannier90.py script to reorder, align and correct all matrices and files using the QP corrections
-
Run
wannier90to compute the MLWFs.At this point, you should have obtained the interpolated valence bands for silicon at the \(G_0W_0\) level.
After you completed the tutorial for the valence bands only, you can repeat the final steps to interpolate also some conduction bands using disentanglement (the code is already present as comments in the input files).