Bethe-Salpeter
UNDER CONSTRUCTION (MP)
In this tutorial you will learn how to:
- generate input files to run a BSE calculation for a two-dimensional material
- run the code and control inputs and outputs
- understand the content of the outputs
Prerequisites
Material: two-dimensional hexagonal BN:
- exagonal lattice
- 2 atoms per cell, B and N (8 electrons)
- Lattice constants: a = 4.716 [a.u.]
- Plane wave cutoff 40 Ry
To do the Tutorial you have two options:
Option A): Start from the beginning (from the DFT runs) Option B): Read directly a prepared SAVE database to do only the BScalculation
TIP: If you choose Option B) look below for Option B): Read directly a prepared SAVE database and start from there. Please note that in this case you do not need to run the initialization, cutoff generation, calculation of screening W and quasi-particle energies. All the pre-required databases ndb.gops ndb,kindx ndb.RIM ndb.cutoff ndb.pp ndb.QP have been already generated for you and are in the SAVE directory
Option A: Start from the beginning (DFT runs also)
In this case you will need:
- PWSCF input files and pseudopotentials for hBN-2D
pw.x
executable, version 5.0 or laterp2y
andyambo
executables
Unpack the TARFILE:
$ tar -xcvf hBN-2D.tar
Go in the PWSCF directory and list the files.
$ cd hBN-2D/PWSCF $ ls Inputs Pseudos tmp
Have a look at the main variables in the two inputs ./Inputs/hbn-2D_scf.in and ./Inputs/hbn-2D_nscf.in (Such as cutoff, vacuum size of the supercell, k-points, bands etc.)
Run the DFT self-consistent (scf) input and then the non-self-consistent (nscf) input.
$ pw.x < ./Inputs/hbn_2d_scf.in > hbn_2d_scf.out $ pw.x < ./Inputs/hbn_2d_scf.in > hbn_2d_nscf.out
Generate the SAVE database
$ cd ./tmp/hbn_2d.save $ p2y
Move the SAVE database in the YAMBO directory to start the calculations with yambo
$ mv SAVE ../../../YAMBO $ cd ../../../YAMBO $ ls SAVE
Initialization
As you should know any Yambo run must start with the Initialization step. Simply launch the code
$ yambo
TIP: Remeber to not run yambo from inside the SAVE
folder! It will complain that "databases not found".
Open the report file r_setup and look at the variable A3. This is the vertical size in bohr of the supercell for the 2D-hBN. It should be A3 = 33.01200 Remember this value. You will need it to properly setup the cutoff in the Coulomb Potential.
Generation of a truncated Coulomb Potential for a 2D material
To simulate a real isolated 2D-layer convergence with vacuum size should be required. The use of a truncated Coulomb potential allows to achieve faster convergence in the vacuum size, eliminating the interaction between the repeated images. (see ref. Varsano)
Create the input file:
$ yambo -F 01_wcut.in -r
Open the input file 01_cutoff.in
Change the variables inside as:
RandQpts= 1000000 # [RIM] Number of random q-points in the BZ RandGvec= 100 RL # [RIM] Coulomb interaction RS components CUTGeo= "box z" # [CUT] Coulomb Cutoff geometry: box/cylinder/sphere X/Y/Z/XY.. % CUTBox 0.00 | 0.00 | 32.00 | # [CUT] [au] Box sides %
Close the input file and run yambo
$ yambo -F 01_wcut.in
Calculation of the static screening W needed in the BS sex Kernel
Open the input file 02_Ws_wcut.in
$ yambo -F 02_Ws_wcut.in -b -r
Change the G-space size of dielectric screening matrix to a value different from 1 RL i.e.
NGsBlkXs= 2 Ry # [Xs] Response block size
To speed up the calculation decrease the Polarization function bands
% BndsRnXs 1 | 40 | # [Xs] Polarization function bands %
Close the file and run yambo
$ yambo -F 02_Ws_wcut.in
Calculation of QP transition energies (within GoWo Perturbative approach plus PPA)
Calculation of the BS kernel in the Screened EXchange approximation (sex)
Create the input
$ yambo -F 03_bse_wcut.in -o b -k sex -r -V QP
Open the input file C03_bse_wcut.in and change the following variables
Run the code
$ yambo -F 03_bse_wcut.in
Option B): Read directly a prepared SAVE database
Note that in this case in the SAVE directory you have already the following databases ndb.gops ndb.kindx ndb.RIM ndb.cutoff ndb.pp ndb.QP databases
$ tar -xcvf hBN-2D.tar $ cd hBN-2D/YAMBO $ mv ./References/SAVE SAVE
Read the static part of screening from a previously generated ndb.pp database
Calculate the BS kernel in the SEX (Screened Exchange approximation) in the transitions space
Here we learn how to create the BS kernel in the screened exchange (SEX) approximation which includes both exchange (V) and correlation (-W) terms Runlevel to be used yambo -o b -k sex
Solve the BSE by haydock solver and and calculate spectrum
Generate the input file for solving the BSE using the Haydock solver:
$ yambo -o -y h
Solve the BSE by diagonalizing the excitonic matrix and calculate spectrum
Runlevel to be used yambo -y d
Steps:
-Calculate screening
-Calculate the BS Kernel
-Diagonalize the BS Matrix and calculate spectrum
-Visualize/Analyze excitons (with ypp)
-How to Converge
-How to work with SOC