How to analyse excitons - ICTP 2022 school

From The Yambo Project
Jump to navigation Jump to search

In this tutorial you will learn how to:

  • analyze an optical spectrum obtained from BSE in terms of excitonic energies and composition
  • look at the spatial distribution of the exciton

This is demonstrated for 3D hBN, for which you should have obtained the needed data from previous calculations.

Warning: for this demonstration, we did not use converged parameters (in particular they are not converged for the k-grid). Note that one needs to converge carefully all parameters to obtain scientific relevant results. This will be the topic of one of the next tutorials.


Prerequisites

Previous modules

You will need:

  • The SAVE databases for 3D hBN
  • The 3D_BSE directory containing the ndb.BS_diago* databases for 3D hBN
  • ypp executable
  • xcrysden or VESTA executables
  • gnuplot executable

All the databases required for this tutorial should be in the YAMBO_TUTORIALS/hBN/ directory.

Recall that in order to plot excitonic wave functions, you need to have done a BSE calculation with either the diago or slepc solvers and explicitly set the flag WRbsWF to print the wave function databases to disk.


List the excitonic energies

First, we will obtain the list of all the exciton energies (that is the eigenvalues of the two-particle Hamiltonian) sorted both by energy and strength. The exciton strengths or intensities are defined from the expression of the optical absorption spectrum as

Strengh.png

That is, they are given by the linear combination of the square of the dipole transition matrix elements between electron-hole pairs, where Aλeh is the exciton composition in terms of electron-hole pairs.

To read this information from the Yambo databases produced in this previous step, we use the Yambo pre- and post-processing utility ypp.

Type:

$ ypp -J 3D_BSE -e s 1


This instructs the code to list the excitons (-e s) in the database 3D_BSE (-J 3D_BSE) for the q-index = 1 (optical limit q=0).

The results are output in the files o-3D_BSE.exc_qpt1_E_sorted and o-3D_BSE.exc_qpt1_I_sorted. They report the energies of the excitons and their strengths. The strengths are normalised to the largest strength. Thus in the list, the brightest exciton has strength 1. In o-3D_BSE.exc_qpt1_E_sorted the exciton energies are sorted by energy (lower to higher), in o-3D_BSE.exc_qpt1_I_sorted by the oscillator strength (larger to smaller).

Inspect o-3D_BSE.exc_qpt1_E_sorted:

The exciton with the lowest energy (4.98 eV) is doubly degenerate. The strength is ~0, thus this exciton is dark, does not contribute to the absorption spectrum.

The second-lowest exciton is also doubly degenerate and it is the brightest (one of the components has strength 1, the other ~0.03). The latter exciton is the one responsible for the largest peak in the optical absorption plots of the previous tutorials.

To better visualize these results, we plot the exciton strength (normalized to 1, arbitrary units) versus the energy (in eV):

$ gnuplot
gnuplot> set style line 2 lc rgb 'black' pt 7   # circle
gnuplot> plot 'o-3D_BSE.exc_qpt1_E_sorted' with points ls 2 title 'Strengths'
Exc weights3DhBN2.png

Calculate the exciton oscillator strength and amplitude

Once inspected the list of excitons sorted by energies and strengths, we will look at the composition of some of these excitons in terms of single-particle states (electron-hole pairs).

Type:

$ ypp -F ypp_AMPL.in -J 3D_BSE -e a 1 

This instructs the code to create the the input file ypp_AMPL.in (-F ypp_AMPL.in) to analyze the composition of the excitons (-e a) in the database 3D_BSE (-J 3D_BSE) for the q-index = 1 (optical limit q=0).

You can now edit the input file ypp_AMPL.in. From the list of excitons, we should have got an idea of which excitons we wish to analyze. The ordering from the list of exciton sorted by energies in o-3D_BSE.exc_qpt1_E_sorted is used to identify the excitons to analyse.

For example, to analyse the 4 lowest-energy excitons (i.e., the first 2 doubly-degenerate excitons of which the first is dark and the second is bright) change this line as:

States= "1 - 4"              # Index of the BS state(s)

Close the input file and run ypp again by typing

$ ypp -F ypp_AMPL.in -J 3D_BSE

This carries out the analysis for the specified excitons. The results are output in o-3D_BSE.exc_qpt1_amplitude_at_* and o-3D_BSE.exc_qpt1_weights_at_*, where * identifies the exciton according to the order in o-3D_BSE.exc_qpt1_E_sorted.

$ ls  o*exc*at*
o-3D_BSE.exc_qpt1_amplitude_at_1 o-3D_BSE.exc_qpt1_weights_at_1 ...

For an exciton [math]\displaystyle{ |\lambda\gt }[/math] , o-3D_BSE.exc_qpt1_weights_at_* reports the weights defined as

Weights.png

and o-3D_BSE.exc_qpt1_amplitude_* reports the amplitudes defined as

Ampl.png


Inspect, for example, the file o-3D_BSE.exc_weights_at_3 (which we learned from o-3D_BSE.exc_qpt1_E_sorted has the largest strength)

# Band_V          Band_C          Kv-q ibz        Symm_kv         Kc ibz          Symm_kc         Weight          Energy
#    
  7.00000000      10.0000000      14.0000000      2.00000000      14.0000000      2.00000000     0.395135850      4.35248947   
  7.00000000      10.0000000      14.0000000      1.00000000      14.0000000      1.00000000     0.394993663      4.35248947   
  8.00000000      9.00000000      14.0000000      2.00000000      14.0000000      2.00000000     0.391943455      4.35241365   
  8.00000000      9.00000000      14.0000000      1.00000000      14.0000000      1.00000000     0.391800284      4.35241365   
  7.00000000      10.0000000      13.0000000      2.00000000      13.0000000      2.00000000     0.745555162E-1   4.81094742   
  7.00000000      10.0000000      13.0000000      1.00000000      13.0000000      1.00000000     0.745274872E-1   4.81094742   
  8.00000000      9.00000000      13.0000000      2.00000000      13.0000000      2.00000000     0.739243180E-1   4.81087065   
  8.00000000      9.00000000      13.0000000      1.00000000      13.0000000      1.00000000     0.738964081E-1   4.81087065   

The third exciton is mostly composed of single-particle transitions from VBM to CBM at point H (last k-point of the grid, number 14) of the 3D hexagonal Brillouin zone, with contributions also coming from point K (number 13). All the contributions weighing less than 5% are not shown by default.

Recall from the previous analysis that of the first 4 exciton states, exciton states 3 and 4 (degenerate) are the optically active ones. We plot then the amplitude of the lowest energy bright exciton:

$ paste o-3D_BSE.exc_qpt1_amplitude_at_3 o-3D_BSE.exc_qpt1_amplitude_at_4 > o-3D_BSE.exc_qpt1_amplitude_at_3_4
$ gnuplot
gnuplot> set xlabel 'Energy (eV)' 
gnuplot> set ylabel 'Amplitude' 
gnuplot> p 'o-3D_BSE.exc_qpt1_amplitude_at_3_4' u 1:($2+$4)/2 w l t 'Bright exciton'
ExcAmp3DhBN.png

Note that while this plot is related to the peaks in the optical absorption spectrum, it does not take into account the dipole matrix elements and the peaks appear at the energies of the single-particle transitions rather than the exciton energies.

Plot the exciton spatial distribution

A further analysis we carry out is on the spatial distribution of the exciton, specifically of the probability of finding the electron at a certain position r when the hole is fixed in a position r'.

Create the input file ``ypp_WF.in`` using the command below and change the various parameters as shown below:

$ ypp -F ypp_WF.in -J 3D_BSE -e w
excitons                     # [R] Excitons
wavefunction                 # [R] Wavefunction
Format= "x"                  # Output format [(c)ube/(g)nuplot/(x)crysden]
Direction= "123"               # [rlu] [1/2/3] for 1d or [12/13/23] for 2d [123] for 3D
FFTGvecs=  30        Ry    # [FFT] Plane-waves
States= "3 - 3"              # Index of the BS state(s)
Degen_Step=   0.0100   eV    # Maximum energy separation of two degenerate states
% Cells
 5 | 5 | 1 |                             # Number of cell repetitions in each direction (odd or 1)
%
% Hole
2.35800028 | 1.36139178 | 7.08835602 # [cc] Hole position in unit cell (positive)
%

Cells, is the size of the cell where the exciton will be visualised. If the k-grid used for the BSE calculations is XxYxZ, then the exciton has an induced fictitious periodicity for every XxYxZ cells of the simulation. For hBN, this is not a problem because the first bright exciton is strongly localized, but in other systems, where excitons are more delocalized, one must use very large k-grids for the BSE calculation.

Degen_Step, tells the maximum energy separation of two degenerate states. Since this value is small enough, the code will automatically recognize excitons 3 and 4 are degenerate and merge them: you can check this in the log file.

Plots can be in 1, 2 or 3D (Direction) and the output format is chosen with Format.

A non-trivial input parameter is the hole position. The best position for the hole is where the valence electrons contributing to the exciton are localised. In the case of hBN, they are on the nitrogen atoms. We can obtain the Cartesian coordinates of these atoms from our previously generated o-3D_BSE.exc_qpt1_E_sorted file:

# Atom 1 with Z 5 [cc]:  2.35800028      1.36139178      0.00000000   
# Atom 2 with Z 5 [cc]: -2.35800028     -1.36139178      6.08835602   
# Atom 1 with Z 7 [cc]: -2.35800028     -1.36139178      0.00000000   
# Atom 2 with Z 7 [cc]:  2.35800028      1.36139178      6.08835602 

We take the positive values of the nitrogen (Z=7, last line) and shift the vertical position of the hole from 6.088 to 7.088 so that the hole does not end up in the center of the atom (and therefore, possibly in a node of the wave function).

Close the input file and run ypp by typing

$ ypp -F ypp_WF.in -J 3D_BSE

After the calculation is completed, we can visualise the output with xcrysden or with VESTA (if you are running this tutorial on a remote cluster, you should download the *.xsf file using scp or rsync):

$ xcrysden --xsf o-3D_BSE.exc_qpt1_3d_3.xsf
$ VESTA o-3D_BSE.exc_qpt1_3d_3.xsf
ExcWF3DhBN.jpg

We notice that the electron is completely confined on the boron atoms and on the same layer of the hole. For comparison, see for example ref. [1].

Plot electron/hole average density (only in Yambo 5.x)

Another way to analyze the spatial character of excitons is to plot the average electron/hole densities defined as:

Electron hole density.png

To generate the input file ypp_WF.in type

ypp -F ypp_WF.in -e w -avehole

and choose the exciton you want to plot according to the list of energy-sorted excitons. The electron/hole average densities correspond to generalized valence/conduction orbitals for a given exciton. They are interesting in particular for molecular crystals because they allow distinguishing charge-transfer versus Frenkel excitons, from the relative position of the electron/hole densities.

If you want to see an example of hole/electron density of excitons please have a look at Ref. [2].

Summary

From this tutorial you've learned:

  • How sort excitonic states by energy and intensity
  • Analyse their composition in reciprocal space and in terms of single-particle transitions
  • Visualize the exciton wave function in real space

References

  1. Huge Excitonic Effects in Layered Hexagonal Boron Nitride, B. Arnaud et al., preprint ArXiv
  2. Strongly Bound Excitons in Metal-Organic Framework MOF-5: A Many-Body Perturbation Theory Study, A. R. Kshirsagar et al., preprint ChemRxiv

Navigate