Exact Exchange Calculations

by Ute Werner for exciting boron

Purpose: In this tutorial, you will learn how to perform band-structure calculations using the optimized effecitve potential - exact-exchange (EXX) method. As an example, the band-structure of diamond is calculated.


1. Introduction

A typical exact exchange (EXX) calculation consists of two parts: First, one needs to create good starting Kohn-Sham orbitals, e.g. by performing a LDA groundstate calculation. Using these data, a self consistent EXX calculation is performed. We assume you are already familiar with the ideas and the scripts shown in the tutorial Electronic-structure calculation. Here, we will use some ideas of this tutorial to compare the band stucture of diamond obtained from LDA and from EXX.


2. LDA calculation

As usual, the first thing to do is to create the working directory for this tutorial and move inside it.

$ mkdir exact-exchange
$ cd exact-exchange
i) Preparation of the calculation

The inputfile input.xml for the ground-state and band-structure calculation of diamond using LDA could look like this

<input>
 
   <title>Diamond LDA</title>
 
   <structure speciespath="$EXCITINGROOT/species" >
      <crystal scale="6.7425">
         <basevect> 0.0     0.5     0.5 </basevect>
         <basevect> 0.5     0.0     0.5 </basevect>
         <basevect> 0.5     0.5     0.0 </basevect>
      </crystal>
      <species speciesfile="C.xml">
         <atom coord="0.00 0.00 0.00" />
         <atom coord="0.25 0.25 0.25" />
      </species>
   </structure>
 
   <groundstate 
      ngridk="8 8 8"
      xctype="LDA_PW">
   </groundstate>
 
   <properties>
      <bandstructure>
         <plot1d>
            <path steps="200">
               <point coord="0.500  0.500  0.500" label="L"    ></point>
               <point coord="0.000  0.000  0.000" label="GAMMA"></point>
               <point coord="0.500  0.500  0.000" label="X"    ></point>
               <point coord="0.750  0.375  0.375" label="K"    ></point>
               <point coord="0.000  0.000  0.000" label="GAMMA"></point>
            </path>
         </plot1d>
      </bandstructure>
   </properties>
 
</input>

For the meaning of the different arguments and keywors of the properties section have a look to the tutorial Electronic-structure calculation. Be sure to set the correct path for the exciting root directory (indicated in this example by $EXCITINGROOT) to the one pointing to the place where the exciting directory is placed. In order to do this, use the command

$ SETUP-excitingroot.sh
ii) Execute the calculation

Create the file input.xml in a new directory, e.g., LDA. Move into this directory and start the calculation by the shell command

$ time excitingser >& output.txt &

Be sure that your calculation is completed before proceeding with the next steps!


3. Excact-exchange calculation

i) Preparation of the calculation

In the next step, we will calculate the ground state and band structure using EXX. Therefore, move to the parent directory and, then, copy the directory containing the converged LDA calculation to a new directory.

$ cd ..
$ cp -r LDA EXX

Here LDA and EXX are the corresponding directory names. Move to the new directory (EXX)

$ cd EXX

and replace the groundstate section in the file input.xml with the following lines.

...
   <groundstate 
      ngridk="3 3 3"
      xctype="EXX"
      do="fromfile"
      vkloff="0.5 0.5 0.5"
      nempty="29">
 
      <OEP 
         maxitoep="100"> 
      </OEP>
 
   </groundstate>
...

Let's have a closer look to the parameters in this file.

Parameter Description
xctype = "EXX" The calculation is performed using the exact exchange functional
do = "fromfile" The calculation is restarted from a previous calculation
nempty = "29" The number of empty bands, crucial for the convergence
vkloff = "0.5 0.5 0.5" The origin of the k-point grid, crucial for the convergence
maxitoep = "100" The number of iterations for the evaluation of integrals in EXX

Since the EXX calculations are much more time consuming than corresponding LDA ones, computational parameters have been chosen in a way to speed up the calculation. However, the calculation will still last approximately 40 min. For further details on the paramters see Input Reference.

ii) Execute the calculation

The calculation can be started exactly in the same way as the LDA one.


4. Post processing

For a graphical comparison of the band structures calculated with the LDA and EXX functionals you can use the script PLOT-bands.py. Move to the parent directory (the one where you can find the LDA and EXX subdirectories) and execute the script. It will produce the following output on the screen.

$ PLOT-bands.py

################################################

    Enter the working directories 

################################################

name of LDA directory: LDA
name of EXX directory: EXX

$

In this example, the first input entry is preceded by "name of LDA directory: ". This entry value must be typed on the screen and must be the name of the directory which contains your LDA results. The second entry should then be the EXX directory. The script PLOT-bands.py produces a PostScript (EXX_LDA.eps) and a PNG (EXX_LDA.png) output file, as well as an image on the screen. Using the examples above you will obtain the following plot.

EXX_LDA.png

5. Excercise

Try to modify some of the parameters in the groundstate element of the EXX input file and investigate the effect on the band structure and on the computational time.


6. Literature

  • "EXX in exciting": Tutorial talk (PDF) at the HoW exciting! 2014 workshop in Berlin.
  • S. Sharma, J. K. Dewhurst, and C. Ambrosch-Draxl, Phys. Rev. Lett. 95, 136402 (2005); S. Sharma, J. K. Dewhurst, C. Ambrosch-Draxl, S. Kurth, N. Helbig, S. Pittalis, S. Shallcross, L. Nordström, and E. K. U. Gross, Phys. Rev. Lett. 98, 196405 (2007)
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License