1. GW bandstructures utilizing Wannier interpolation
In the last tutorial it became obvious that calculating band structures with the GW approximation to many-body perturbation theory is computationally expensive. A common approach to deal with this issue is the interpolation of the electronic structure between the points of a rather coarse k-point mesh by employing Wannier functions. In this tutorial we do this to calculate an interpolated band structure. But note that the usage of Wannier functions actually is a much more general technique with many applications.
1.1. Obtaining and installing Wannier90
Go to the Wannier90 web page and download version 2.1.0 of the library. Copy the tarball to a subdirectory of your home directory on CLAIX and unpack it. Go into the now created wannier90-2.1.0 subdirectory. For different system architectures Wannier90 provides adapted parametrizations for the build process. We use the parametrization for Intel infrastructures. For this copy the respective make.inc file into your current directory. Then start the build process:
cp config/make.inc.ifort make.inc make make lib
1.2. Installing spex with wannier support
We need to rebuild Spex including the Wannier support. For this repeat the build process from the last tutorial but use the following line for the configure step:
MPIFC=mpiifort FCFLAGS=-I/usr/local_rwth/sw/HDF5/1.10.4/intel-intelmpi/include LDFLAGS=-L/usr/local_rwth/sw/HDF5/1.10.4/intel-intelmpi/lib ./configure --with-dft=fleur --enable-mpi=yes --with-wan={your wannier directory}
Now compile Spex once again, by first doing a 'make clean' then starting the build process like in the last tutorial.
1.3. Choosing Orbitals
If a Wannier interpolation has to be performed one has to choose the orbital character of the relevant electron states. For this we will visualize the orbital-projected band structure. Use the standard Si input and calculate a self-consistent density and the PBE bandstructure. Note that you now also have a file 'banddos.hdf'. Among other data the eigenvalues related to each k point and the orbital projections for each state are stored in this file. We will use a small Matlab tool to visualize it.
Download the tool banddos_analysis_2a.mlappinstall and copy it to your CLAIX account.
To use Matlab we first have to load the respective modules:
module load MISC module load matlab
Start matlab with the command 'matlab'. You can install the tool by selecting the Tab APPS and then the button "Install App". Afterwards you should have a button for the tool in the upper right corner of the matlab window. Start it.
You can enter the full path of the banddos.hdf file in the respective field, then press the update button. Afterwards the bandstructure should be displayed. You can change the energy range displayed on the y axis as well as the point size of the symbols. You can also select projections onto certain orbital characters. Play around with these options to obtain an overview of the orbital characters of the bands around the Fermi energy. As we are interested in the states around the Fermi energy these are the orbital characters we need for the Wannier interpolation.
You can also get an idea on the orbital character of the relevant states by inspecting the $l$-projected DOS of the investigated system at the different atoms.
1.4. Si bandstructure with GW and Wannier interpolation
In order to perform a Wannier interpolation one needs to specify the orbital character of the bands to be interpolated in the 'spex.inp' file. An example for such an input file for another material is provided below. You have to adapt it to your needs. Your input should now include an additional 'SECTION WANNIER', within this you can specify the bands and orbitals to be interpolated. Line 8 starts with the keyword 'ORBITAL' followed by the lower and upper bound for the bands. Here it is advisable to look for gaps in the bandstructure and therefore only include band packages that do not overlap. The states you are interested in (around the Fermi energy) should obviously also be included. Choices for state specifications are provided in the Spex manual. If it is not possible to find an isolated band package the additional keyword 'FROZEN' (line 11) is needed. Regardless of that you should at least include the bands within a relevant energy range of +/- 5 eV around the Fermi energy. The two integer numbers are followed by the orbital character for each atom type (atomGroup). In the example atom type 1 would have d character and atom type 2 would have s and p character. How many atom types you need to specify can be checked in the 'inp.xml' file: It is the number of atom groups. Line 9 specifies that we are looking for maximally localized orbitals. Line 10 tells spex to interpolate along the 'KPTPATH' specified in line 3.
BZ 4 4 4 KPT X=1/2*(0,1,1) K=1/8*(3,6,3) KPTPATH (K,1,X) 40 JOB GW IBZ:(1-10) NBAND 80 SECTION WANNIER ORBITALS 5 30 [d] [s,p] MAXIMIZE INTERPOL FROZEN END
After preparing a spex calculation like in the last tutorial and running it with a 'JOB GW IBZ:(1-10)' job line (the bands have to be adapted to at least include the bands for the wannier interpolation) you will obtain two files 'bands0' (containig the KS band structure) and 'bands1' (cointaining the GW bandstructure). You can compare either of them with the directly calculated bandstructure from last week. In case they do not look nearly perfectly similar, there are a few possible sources for an error: First the number of bands should be increased. Second, the chosen orbital character is not good enough. Third, the kpoint mesh needs to be finer. Fourth the Wannier interpolation should do more iterations. This can be specified in the file 'wannier.win' by adding the line 'NUM_ITER 100' and increasing the number. Further Information can be found in the Spex manual and Wannier90 manual.
2. Exercises
2.1. GaN ...again
To exercise the new Wannier interpolation tool use it to obtain an interpolated GW band structure of GaN. Try out different choices of orbitals and choose a reasonable parametrization. Compare the results with the GaN band structure calculated last week.
Results to be delivered: 1. Choice of orbitals for the Wannier interpolation. 2. Plot of the interpolated band structure on top of the more precise result from last week.