Nonequilibrium absorption in bulk silicon: Difference between revisions
m (→References) |
|||
Line 279: | Line 279: | ||
= Energy shift in the band structure = | = Energy shift in the band structure = | ||
The GW method is the standard approach to compute quasi-particle corrections. However, in presence of non-equilibrium carriers, or even at finite temperature the formulation of the GW self-energy needs to be refined. This is due to its frequency dependence, which results in extra terms when performing the analytic continuation from the Keldish contour (non-equilibrium case) or from the Matsubara axis (finite temperature case) to the real time/frequency axis | The GW method is the standard approach to compute quasi-particle corrections. However, in presence of non-equilibrium carriers, or even at finite temperature the formulation of the GW self-energy needs to be refined. This is due to its frequency dependence, which results in extra terms when performing the analytic continuation from the Keldish contour<ref name="thygesen2007"> (non-equilibrium case) or from the Matsubara axis<ref name="faleev2006"/> (finite temperature case) to the real time/frequency axis. | ||
On the other hand the COHSEX self-energy, being static, avoids this complication. This is why we will compute changes in the QP corrections within the COHSEX approximation. | On the other hand the COHSEX self-energy, being static, avoids this complication. This is why we will compute changes in the QP corrections within the COHSEX approximation. | ||
Revision as of 15:16, 24 June 2025
In this tutorial you will learn the basic concepts for computing changes in the optical properties of a semi-conductor in presence of a non-equilibrium electrons and holes distribution in conduction and valence band respectively. This tutorial is based on the results published in Phys. Rev. B[1]
Under construction
The material: Silicon
We will study nonequilibrium absorption in bulk silicon. The same material used for this GW tutorial
- FCC lattice
- Two atoms per cell (8 electrons)
- Lattice constant 10.183 [a.u.]
- Plane waves cutoff 15 Rydberg
- Direct gap 3.4 eV at Gamma
- Indirect gap 1.1 eV between Gamma= (0 0 0) and a point X', close to X=(0 1 0)
Tutorial files and Tutorial structure
Follow the instructions in Tutorials download and download/unpack the Silicon.tar.gz
.
Once the tutorial archive file is unzipped the following folder structure will appear
COPYING README Silicon/
with the Solid_Si folder containing
> ls Silicon/ PWSCF/ YAMBO/
In the Pwscf folder the student will find an input/output directory with input/output files for pw.x. The Silicon pseudopotential file is also provided.
> ls PWSCF/ convergence_scripts input output psps
In the convergence_scripts
you will find some useful shell scripts to run the ground state convergence runs for Silicon.
The YAMBO folder contains the Yambo input/output files and core databases.
> ls YAMBO/ 2x2x2/ 4x4x4/ 6x6x6/ 8x8x8/ Convergence_Plots_and_Scripts/ GAMMA/
The core databases are provided for several k-points grids. In addition the folder Convergence_Plots_and_Scripts
contains some scripts used for the [Silicon|GW tutorial] .
Here we will just use the 8x8x8 (which is still very far from convergence) folder for computing (nonequilibrium) optical properties.
To run the tutorial you will need the standard executables
yambo ypp
plus the executables of the real time module of the Yambo code
yambo_rt ypp_rt
Overview of the simulations in this tutorial
We start from a density-functional theory (DFT) calculation as the foundation. As a first demonstrative step, we will solve the Bethe-Salpeter equation (BSE) for the equilibrium case without including quasiparticle (QP) corrections. Once this is completed, we will use the Yambo post-processing module, ypp_rt
, to generate a distribution of non-equilibrium carriers. This distribution will be used in all subsequent non-equilibrium (NEQ) calculations. It is important to note that solving the non-equilibrium BSE is not feasible within the GW plasmon pole approximation. To address this limitation, we will instead solve the BSE for the equilibrium case and apply corrections to the energy values using a non-equilibrium COHSEX calculation.
The QP band structure will show the effect of the screened electron-electron interaction, while the absorption spectrum within the BSE accounts for the effect of the electron-hole interaction. When QP corrections are not available, they can be included using the scissor operator KfnQP_E
, and the numerical values for "corrections" can be deduced from a GW calculation. For more information about solving the Equilibrium BSE equation refer to the following tutorial: Calculating optical spectra including excitonic effects: a step-by-step guide
- Equilibrium BSE Calculation (Demonstrative)
- Generating non-equilibrium carriers
- Equilibrium and non-equilibrium COHSEX calculations
- Calculation of QP-PPA corrections to Silicon (Optional)
- Non-Equilibrium BSE Calculation
The run of all the files in this tutorial should take around 2-5 minutes in total. In case a faster run is needed, results from a lower kgrid can be used, or some converged criteria can be used, for example lowering the NGsBlkXs
and/or NGsBlkXp
, or lowering the number of conduction bands used in the calculations.
Equilibrium optical properties
In this part, we will solve the equilibrium BSE calculation without quasiparticle corrections.
Enter the folder 8x8x8, and initialize yambo in the respective folder
$ cd 8x8x8 $ yambo
Static screening at equilibrium
First, to solve the BSE equation we need to calculate the statically screened electron-electron interaction (W), which is related to static dielectric screening [math]\displaystyle{ \epsilon^{-1} }[/math].
To do this create the following input file:
$ yambo -X s -F 01_EQ_BSE_screening.in
with the following contents:
em1s # [R][Xs] Statically Screened Interaction
% BndsRnXs
1 | 30 | # [Xs] Polarization function bands
%
NGsBlkXs= 3000 mRy # [Xs] Response block size
% LongDrXs
1.000000 | 0.000000 | 0.000000 | # [Xs] [cc] Electric Field
%
Where we changed the response block size NGsBlkXs = 3000 mRy
and number of polarization function bands BndsRnXs
to be in the range of 1 to 30. Now run the file:
$ yambo -F 01_EQ_BSE_screening.in -J EQ_BSE
Solving the Bethe-Salpeter equation
To solve the (equilibrium) Bethe-Salpeter equation, the latter is usually rewritten in the space of transitions between valence and conduction states as the (pseudo)eigenvalue problem for a two-particle Hamiltonian. In the [math]\displaystyle{ q = 0 }[/math] limit, the two-particle Hamiltonian matrix elements are given by:
where compact notation [math]\displaystyle{ l = \{mn\mathbf{k}\} }[/math], was introduced, and quantities with a tilde represent the corresponding quantity evaluated at equilibrium.
For equilibrium occupation factor and energy (KS or QP corrected KS energies):
Moreover, it was defined:
Where [math]\displaystyle{ \widetilde{W}_{GG'}(\mathbf{q}, 0) }[/math], [math]\displaystyle{ v_{G}(\mathbf{q}) }[/math], [math]\displaystyle{ \rho_{nm\mathbf{k}, G}(\mathbf{q}) }[/math] are static approximation to the screened interaction, bare Coulomb interaction, and KS response function respectively. After calculating the equilibrium Bethe-Salpeter kernel, the resulting two-particle Hamiltonian can be diagonalized to compute the macroscopic dielectric function, which can be used to get absorption and EELS spectra. Calculation of BS kernel and diagonalization of Hamiltonian can be done in one step. For a more detailed description please consult Phis. Rev. B 93, 195205 (2016).
To generate the input file for the calculation of BSE kernel, run the following command:
$ yambo -o b -k sex -F 02_EQ_BSE_kernel_diag.in -y h -V qp -J EQ_BSE
with the following input
optics # [R] Linear Response optical properties bss # [R] BSE solver bse # [R][BSE] Bethe Salpeter Equation. K_Threads=0 # [OPENMP/BSK] Number of threads for response functions BSKmod= "SEX" # [BSE] IP/Hartree/HF/ALDA/SEX/BSfxc BSEmod= "resonant" # [BSE] resonant/retarded/coupling BSSmod= "h" # [BSS] (h)aydock/(d)iagonalization/(s)lepc/(i)nversion/(t)ddft` BSENGexx= 15000 mRy # [BSK] Exchange components BSENGBlk=-1 RL # [BSK] Screened interaction block size [if -1 uses all the G-vectors of W(q,G,Gp)] % BSEQptR 1 | 1 | # [BSK] Transferred momenta range % % BSEBands 2 | 7 | # [BSK] Bands range % % BEnRange 2.20000 | 5.00000 | eV # [BSS] Energy range % % KfnQP_E 0.70000 | 1.000000 | 1.000000 | # [EXTQP BSK BSS] E parameters (c/v) % % BDmRange 0.100000 | 0.100000 | eV # [BSS] Damping range % BEnSteps= 200 # [BSS] Energy steps % BLongDir 1.000000 | 0.000000 | 0.000000 | # [BSS] [cc] Electric Field versor % BSEprop= "abs" # [BSS] Can be any among abs/jdos/kerr/asymm/anHAll/magn/... BSEdips= "none" # [BSS] Can be "trace/none" or "xy/xz/yz" to define off-diagonal rotation plane
Where the value of BSENGexx
was changed for better convergence, BSEBands
was changed to include bands from 2 to 7, which defines the basis of quasiparticle pairs that are used to describe excitons. 3 degenerate valence and 3 degenerate conduction bands where included. BEnRange
was changed to 2.2-5.5 eV to match experimental data, and BEnSteps
was increased from 100 to 200. The scissors operator KfnQP_E
was used to match the possiton calculated spectra with experimental values. The Haydock BSE solver was chosen, -y h
option, because it is substantially cheaper than the full diagonalization (quadratic with the number of electron-hole pairs). However, this approach does not provide the individual exciton energies and composition in terms of electron-hole pairs. The BSE solvers overview page can provide more info on the subject.
To run the file:
$ yambo -F 02_EQ_BSE_kernel_diag.in -J EQ_BSE
After the calculation has finished, the absorption spectra can be plotted with the following:
$ gnuplot ... gnuplot> set xlabel "Energy (eV)" gnuplot> set ylabel "Absorption" gnuplot> plot 'o-EQ_BSE.eps_q1_haydock_bse' u 1:2 w l t '-k sex' gnuplot> rep 'o-EQ_BSE.eps_q1_haydock_bse' u 1:4 w l t '-k ip'
and the following plot will results (the "experimental" and "-k hartree" plots are added additionally for comparison)
Generating non-equilibrium carriers
To simulate non-equilibrium absorption, we need to define the number of non-equilibrium carriers, specifically electrons in the conduction band and holes in the valence band. These carriers follow the Fermi-Dirac distribution given by:
Here:
- E is the energy level,
- [math]\displaystyle{ \mu }[/math] is the chemical potential (specific to electrons or holes),
- [math]\displaystyle{ T }[/math] is the effective temperature,
- [math]\displaystyle{ k_B }[/math] is the Boltzmann constant.
For the simulation, both electrons and holes are characterized by their own [math]\displaystyle{ \mu_i }[/math] and [math]\displaystyle{ T_i }[/math] .
The distribution of non-equilibrium carriers can be generated using Yambo’s post processing for real-time module (ypp_rt
), which allows modeling of these conditions.
To generate to non-equilibrium carriers databases create input_ypp1 input_ypp2
files, with the following content:
ypp_rt -rtdb f -F input_ypp1
RTDBs # [R] Real-Time databases Select_Fermi # [R] NEQ DBs according to Fermi distribution % RTBands 1 | 30 | # [RT] Bands range % % RTmuEh -0.223 | 0.10 | eV # [RT] Chemical potentials hole | electron % % RTtempEh 0.08 | 0.08 | eV # [RT] Effective temperature hole | electron % RTautotuneThr= 0.000100 # [RT] Threshold to match no. of pumped holes and electrons.
ypp_rt -rtplot o -rtmode e -F input_ypp2
RealTime # [R] Real-Time Post-Processing RToccupations # [R] Analize time-dependent occupations RTenergy # [R] Post-Processing kind: function of energy TimeStep= 0.000000 fs # Time step % TimeRange -1.000000 |-1.000000 | fs # Time-window where processing is done % #IncludeEQocc # [NEGF] Include also equilibrium occupations #SkipFermiFIT # [NEGF] Do a Fermi Fit of occupations (and lifetimes ratio) %QPkrange # generalized Kpoint/Band indices 1| 1| 2|7| %
And then run the files:
$ ypp_rt -F input_ypp1 -J carriers -C carriers $ ypp_rt -F input_ypp2 -J carriers -C carriers
The file input_ypp1
will generate a ndb.RT_carriers
database which will contain the Fermi distribution of the electrons and the hole according to the specified chemical potential, RTmuEh
, and for a specific temperature given by RTtempEh
. The file input_ypp2
will generate a series of databases to plot different different aspects of the distribution.
Plot for the distribution of electrons in conduction band and holes in the valence band generated by the input_ypp1
and data file made by input_ypp2
This plot can be generated from the carriers
folder using the following gnuplot script plot_occupations.gnu
Energy shift in the band structure
The GW method is the standard approach to compute quasi-particle corrections. However, in presence of non-equilibrium carriers, or even at finite temperature the formulation of the GW self-energy needs to be refined. This is due to its frequency dependence, which results in extra terms when performing the analytic continuation from the Keldish contourCite error: Closing </ref>
missing for <ref>
tag
[2]
[3]
</references>
- ↑ Cite error: Invalid
<ref>
tag; no text was provided for refs namedsangalli2016
- ↑ S. V. Faleev, M. van Schilfgaarde, T. Kotani, F. Léonard, and M. P. Desjarlais, Phys. Rev. B 74, 033101 (2006)
- ↑ K. S. Thygesen, and A. Rubio, J. Chem. Phys. 126, 091101 (2007)