Difference between revisions of "Real time Bethe-Salpeter Equation (TDSE)"

From The Yambo Project
Jump to navigation Jump to search
m (Preparing part for yambo_rt)
(Working on TD propagation beyond IP)
Line 1: Line 1:
==Introduction==
==Introduction==


This tutorial will show how to perform a simple real-time BSE calculation with Yambo on hBN monolayer. The same DFT inputs used to generate the [http://www.yambo-code.org/educational/tutorials/files/hBN-2D-RT.tar.gz hBN-2D-RT.tar.gz], are sufficient to converge the energy of the first exciton. You will need to increase the number of k-points to converge higher energy excitons.  
This tutorial will show how to perform a real-time calculation with Yambo on hBN monolayer. We will go through different approximations for the many body self--energy (HXC potential in the yambo language) up to the HSEX approximation which captures the physics of the exciton. For approximations local in space, like "TD-HARTREE" and "TD-DFT", the HXC potential can be evaluated directly during the simulation from real space quantities. On the contrary for approximations non local in space, one first need to compute the "real time collisions".


The same DFT inputs used to generate the [http://www.yambo-code.org/educational/tutorials/files/hBN-2D-RT.tar.gz hBN-2D-RT.tar.gz], are sufficient to converge the energy of the first exciton. You will need to increase the number of k-points to converge higher energy excitons.


==The Collisions==
==TD Hartree and TD DFT==
 
yambo_rt -n p -v hartree -F ../Inputs_rt/02_td_hartree.in
 
  negf                          # [R] Real-Time dynamics
  HXC_Potential= "HARTREE"      # [SC] SC HXC Potential
  HARRLvcs= 1000        mHa      # [HA] Hartree    RL components
  % RTBands
    4 | 5 |                    # [RT] Bands
  %
  Integrator= "RK2"              # [RT] Integrator. Use keywords space separated  ( "EULER/EXPn/INV" "SIMPLE/RK2/RK4/HEUN" "RWA")
  PhLifeTime= 100.0000  fs      # [RT] Dephasing Time
  RTstep=10.000000      as      # [RT] Real Time step length
  NETime= 20.00000      fs      # [RT] Simulation Time
  % IOtime
  0.01    | 1.00    | 0.01    |  fs    # [RT] Time between to consecutive I/O (OBSERVABLEs,CARRIERs - GF - OUTPUT)
  %
  % Field1_Freq
  0.00    | 0.00    | eV      # [RT Field1] Frequency
  %
  Field1_Int= 1.E3  kWLm2  # [RT Field1] Intensity
  Field1_Width= 0.000000 fs      # [RT Field1] Width
  Field1_kind= "DELTA"            # [RT Field1] Kind(SIN|RES|ANTIRES|GAUSS|DELTA|QSSIN)
  Field1_pol= "linear"            # [RT Field1] Pol(linear|circular)
  % Field1_Dir
  0.000000 | 1.000000 | 0.000000 |        # [RT Field1] Versor
  %
  % Field1_Dir_circ
  0.000000 | 1.000000 | 0.000000 |        # [RT Field1] Versor_circ
  %
  Field1_Tstart= 0.000000fs      # [RT Field1] Initial Time
 
We set the cut-off on the Hartree potential to 1000 mHa. This number can strongly affect the simulation time if it is too big, since the potential is evaluated at each time step.
Since the simulation will be quit demanding, we will propagate for just 20 fs. It is useful to run the simulation in background and then monitor the output file
 
  nohup yambo_rt -F ../Inputs_rt/02_td_hartree.in -J TD-HARTREE_1000mHa -C  TD-HARTREE_1000mHa &
  tail -f TD-HARTREE_1000mHa/o-TD-HARTREE_1000mHa.polarization
 
 
==The Real Time Collisions==


This part is common in between the <code>yambo_nl</code> and the <code>yambo_rt</code>.
This part is common in between the <code>yambo_nl</code> and the <code>yambo_rt</code>.
Line 21: Line 61:
  Chimod= "HARTREE"              # [X] IP/Hartree/ALDA/LRC/PF/BSfxc
  Chimod= "HARTREE"              # [X] IP/Hartree/ALDA/LRC/PF/BSfxc
  % BndsRnXs
  % BndsRnXs
     1 |  40 |                  # [Xs] Polarization function bands
     1 |  20 |                  # [Xs] Polarization function bands
  %
  %
  NGsBlkXs= <span style="color:red">1000</span> mHa      # [Xs] Response block size
  NGsBlkXs= <span style="color:red">1000</span> mHa      # [Xs] Response block size
Line 42: Line 82:
   
   


With this input, we calculate the HARTREE and SEX collisions integrals. Notice that the HARTREE term in principle can be calculated on the fly, but in this way it is more efficient especially for the non-linear response.  
With this input, we calculate the HARTREE plus SEX collisions integrals. Notice that the HARTREE term in principle can be calculated on the fly, but in this way it is more efficient especially for the non-linear response.  
Here one has to converge the cutoff for the Hartree and the Screened Exchange. Around <code>5000 mHa</code> is a reasonable value for hBN. In this example we will use <code>1000 mHa</code> to speed up calculations. The collisions bands <code>COLLBands</code> have to be the same number of bands you want to use in the linear/nonlinear response.
Here one has to converge the cutoff for the Hartree and the Screened Exchange. Around <code>5000 mHa</code> is a reasonable value for hBN. In this example we will use <code>1000 mHa</code> to speed up calculations. The collisions bands <code>COLLBands</code> have to be the same number of bands you want to use in the linear/nonlinear response.
The you can run
The you can run
   yambo_rt -F Inputs_common/03_coll_hsex -J COLL_HSEX -C COLL_HSEX  
   yambo_rt -F Inputs_common/03_coll_hsex -J COLL_HSEX -C COLL_HSEX  


The calculation, it will take 5 minutes on a serial PC.
The calculation will take about 1 minute in serial.


==Time dependent Bethe Salpeter equation==
==Time dependent Bethe Salpeter equation==


=== Approach based on the density matrix ===
=== Approach based on the density matrix ===
To generate the input for the real-time simulation you can run
yambo_rt -n p -v hsex -V qp


=== Approach based on the Berry Phase ===
=== Approach based on the Berry Phase ===


Then you generate the input for the linear response
To generate the input for the real-time simulation you can run
  yambo_nl -u -V qp
  yambo_nl -u -V qp



Revision as of 16:21, 22 January 2020

Introduction

This tutorial will show how to perform a real-time calculation with Yambo on hBN monolayer. We will go through different approximations for the many body self--energy (HXC potential in the yambo language) up to the HSEX approximation which captures the physics of the exciton. For approximations local in space, like "TD-HARTREE" and "TD-DFT", the HXC potential can be evaluated directly during the simulation from real space quantities. On the contrary for approximations non local in space, one first need to compute the "real time collisions".

The same DFT inputs used to generate the hBN-2D-RT.tar.gz, are sufficient to converge the energy of the first exciton. You will need to increase the number of k-points to converge higher energy excitons.

TD Hartree and TD DFT

yambo_rt -n p -v hartree -F ../Inputs_rt/02_td_hartree.in
 negf                           # [R] Real-Time dynamics
 HXC_Potential= "HARTREE"       # [SC] SC HXC Potential
 HARRLvcs= 1000        mHa      # [HA] Hartree     RL components
 % RTBands
   4 | 5 |                     # [RT] Bands
 %
 Integrator= "RK2"              # [RT] Integrator. Use keywords space separated  ( "EULER/EXPn/INV" "SIMPLE/RK2/RK4/HEUN" "RWA")
 PhLifeTime= 100.0000   fs      # [RT] Dephasing Time
 RTstep=10.000000       as      # [RT] Real Time step length
 NETime= 20.00000       fs      # [RT] Simulation Time
 % IOtime
  0.01     | 1.00     | 0.01     |  fs    # [RT] Time between to consecutive I/O (OBSERVABLEs,CARRIERs - GF - OUTPUT)
 %
 % Field1_Freq
  0.00     | 0.00     | eV      # [RT Field1] Frequency
 %
 Field1_Int= 1.E3   kWLm2   # [RT Field1] Intensity
 Field1_Width= 0.000000 fs      # [RT Field1] Width
 Field1_kind= "DELTA"            # [RT Field1] Kind(SIN|RES|ANTIRES|GAUSS|DELTA|QSSIN)
 Field1_pol= "linear"             # [RT Field1] Pol(linear|circular)
 % Field1_Dir
  0.000000 | 1.000000 | 0.000000 |        # [RT Field1] Versor
 %
 % Field1_Dir_circ
  0.000000 | 1.000000 | 0.000000 |        # [RT Field1] Versor_circ
 %
 Field1_Tstart= 0.000000fs      # [RT Field1] Initial Time

We set the cut-off on the Hartree potential to 1000 mHa. This number can strongly affect the simulation time if it is too big, since the potential is evaluated at each time step. Since the simulation will be quit demanding, we will propagate for just 20 fs. It is useful to run the simulation in background and then monitor the output file

 nohup yambo_rt -F ../Inputs_rt/02_td_hartree.in -J TD-HARTREE_1000mHa -C  TD-HARTREE_1000mHa &
 tail -f TD-HARTREE_1000mHa/o-TD-HARTREE_1000mHa.polarization


The Real Time Collisions

This part is common in between the yambo_nl and the yambo_rt.

Then generate the input file to calculate the collisions (see appendix of Ref. [1]) use the command :

 yambo_rt -b -e -v hsex -F Inputs_common/03_coll_hsex

The flag -b will tell the code to calculate the dielectric constant that is required for the screened interaction. It could be even computed in an independent calculation and then loaded using the -J flags

em1s                           # [R Xs] Static Inverse Dielectric Matrix
dipoles                        # [R   ] Compute the dipoles
DIP_Threads=0                  # [OPENMP/X] Number of threads for dipoles
X_Threads=0                    # [OPENMP/X] Number of threads for response functions
RT_Threads=0                   # [OPENMP/RT] Number of threads for real-time
Chimod= "HARTREE"              # [X] IP/Hartree/ALDA/LRC/PF/BSfxc
% BndsRnXs
   1 |  20 |                   # [Xs] Polarization function bands
%
NGsBlkXs= 1000 mHa      # [Xs] Response block size
% DmRngeXs
  0.10000 |  0.10000 | eV      # [Xs] Damping range
%
% LongDrXs
 1.000000 | 0.000000 | 0.000000 |        # [Xs] [cc] Electric Field
%

While this is the part of the input file specific for the evaluation of the collisions

collisions                     # [R] Eval the extended Collisions
% COLLBands
  4 |  5 |                   # [COLL] Bands for the collisions
%
HXC_Potential= "HARTREE+SEX"           # [SC] SC HXC Potential
HARRLvcs= 1000 mHa      # [HA] Hartree     RL components
EXXRLvcs= 1000 mHa      # [XX] Exchange    RL components
CORRLvcs= 1000 mHa      # [GW] Correlation RL components

With this input, we calculate the HARTREE plus SEX collisions integrals. Notice that the HARTREE term in principle can be calculated on the fly, but in this way it is more efficient especially for the non-linear response. Here one has to converge the cutoff for the Hartree and the Screened Exchange. Around 5000 mHa is a reasonable value for hBN. In this example we will use 1000 mHa to speed up calculations. The collisions bands COLLBands have to be the same number of bands you want to use in the linear/nonlinear response. The you can run

 yambo_rt -F Inputs_common/03_coll_hsex -J COLL_HSEX -C COLL_HSEX 

The calculation will take about 1 minute in serial.

Time dependent Bethe Salpeter equation

Approach based on the density matrix

To generate the input for the real-time simulation you can run

yambo_rt -n p -v hsex -V qp


Approach based on the Berry Phase

To generate the input for the real-time simulation you can run

yambo_nl -u -V qp


nloptics                       # [R NL] Non-linear optics
DIP_Threads=0                  # [OPENMP/X] Number of threads for dipoles
NL_Threads=0                   # [OPENMP/NL] Number of threads for nl-optics
% NLBands
  4 |  5 |                     # [NL] Bands
%
NLverbosity= "low"             # [NL] Verbosity level (low | high)
NLstep=   0.0100       fs      # [NL] Real Time step length
NLtime= 55.00000       fs      # [NL] Simulation Time
NLintegrator= "CRANKNIC"         # [NL] Integrator ("EULEREXP/RK2/RK4/RK2EXP/HEUN/INVINT/CRANKNIC")
NLCorrelation= "SEX"           # [NL] Correlation ("IPA/HARTREE/TDDFT/LRC/LRW/JGM/SEX")
NLLrcAlpha= 0.000000           # [NL] Long Range Correction
% NLEnRange
 0.200000 | 8.000000 | eV      # [NL] Energy range
%
NLEnSteps= 1                   # [NL] Energy steps
NLDamping=  0.10000    eV      # [NL] Damping
#UseDipoles                    # [NL] Use Covariant Dipoles (just for test purpose)
#FrSndOrd                      # [NL] Force second order in Covariant Dipoles
#EvalCurrent                   # [NL] Evaluate the current
HARRLvcs= 1017         RL      # [HA] Hartree     RL components
EXXRLvcs= 1074         mHa     # [XX] Exchange    RL components
% ExtF_Dir
 0.000000 | 1.000000 | 0.000000 |        # [NL ExtF] Versor
%
ExtF_Int= 1000.        kWLm2   # [NL ExtF] Intensity
ExtF_Width= 0.000000   fs      # [NL ExtF] Field Width
ExtF_kind= "DELTA"             # [NL ExtF] Kind(SIN|SOFTSIN|RES|ANTIRES|GAUSS|DELTA|QSSIN)
ExtF_Tstart=   0.0100  fs      # [NL ExtF] Initial Time
% GfnQP_E
 3.000000 | 1.000000 | 1.000000 |        # [EXTQP G] E parameters  (c/v) eV|adim|adim
%

Notice that we introduced a scissor operator (a rigid shift of the conduction bands) of 3.0 eV. In principle, it is possible to perform a G0W0 calculation with Yambo and use the Quasi-particle band structure instead of the rigid shift. Run this calculation and then analyze the result in the same way of linear response tutorial, you will get a nice exciton in hBN, as the one plotted below in the old tutorial. You can repeat the same kind of calculations for the non-linear response. Notice that in the calculation we decreased the number of G-vectors in the Hartree term, HARRLvcs to speed up the calculation, in case of BN this does not change the result because local field effects are very small in h-BN along the plane. Now you can analyze the response with ypp as it was done the linear response tutorial and compare with the standard Bethe-Salpeter (input here):

Dielectric constant with excitons

Linear response results can be obtained following the BSE tutorial. Notice that you can use the SEX approximation for the non-linear response too (see the following tutorials on non-linear response).

References

  1. Cite error: Invalid <ref> tag; no text was provided for refs named prb88


Prev: Independent Particles Now: ICTP Tutorials --> Linear Response --> Real time Bethe-Salpeter Equation (TDSE) Next: If you did all steps you can go back to the previous level