1. GW bandstructures utilizing Wannier interpolation

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 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:

./configure MPIFC=/opt/intel/impi/2017.4.239/compilers_and_libraries/linux/mpi/bin64/mpiifort FCFLAGS=-I/usr/local_rwth/sw/HDF5/1.8.16/intel-intelmpi/include LDFLAGS=-L/usr/local_rwth/sw/HDF5/1.8.16/intel-intelmpi/lib --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.

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. Your input should now include a addition '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. 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 of the Fermi energy. The two integer numbers are followed by the orbital character for each atom type. In this 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. Line 9 specifies that we are looking for maximally localized orbitlas. 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)

ORBITALS 5 30 [d] [s,p]


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 band should be increased. Second, the orbital character choosen 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.