Pump and Probe: Difference between revisions

From The Yambo Project
Jump to navigation Jump to search
Line 100: Line 100:
   
   
  nloptics                        # [R] Non-linear spectroscopy
  nloptics                        # [R] Non-linear spectroscopy
DIP_Threads=0                    # [OPENMP/X] Number of threads for dipoles
NL_Threads=0                    # [OPENMP/NL] Number of threads for nl-optics
  % NLBands
  % NLBands
  3 |  6 |                          # [NL] Bands range  
  3 |  6 |                          # [NL] Bands range
  %
  %
  NLverbosity= "high"              # [NL] Verbosity level (low | high)
  NLverbosity= "high"              # [NL] Verbosity level (low | high)
NLstep= 5.00000          as    # [NL] Time step length
  NLtime= 150.0000           fs    # [NL] Simulation Time
  NLtime= 150.000000           fs    # [NL] Simulation Time
  NLintegrator= "CRANKNIC"        # [NL] Integrator ("EULEREXP/RK2/RK4/RK2EXP/HEUN/INVINT/CRANKNIC")
  NLintegrator= "CRANKNIC"        # [NL] Integrator ("EULEREXP/RK2/RK4/RK2EXP/HEUN/INVINT/CRANKNIC")
  NLCorrelation= "SEX"            # [NL] Correlation ("IPA/HARTREE/TDDFT/LRC/LRW/JGM/SEX")
  NLCorrelation= "IPA"            # [NL] Correlation ("IPA/HARTREE/TDDFT/LRC/LRW/JGM/SEX")
  NLLrcAlpha= 0.000000            # [NL] Long Range Correction
  NLLrcAlpha= 0.000000            # [NL] Long Range Correction
  NLDamping= 0.000000        eV    # [NL] Damping (or dephasing)
  NLDamping= 0.000000        eV    # [NL] Damping (or dephasing)
RADLifeTime=-1.000000      fs    # [RT] Radiative life-time (if negative Yambo sets it equal to Phase_LifeTime in NL)
  #EvalCurrent                  # [NL] Evaluate the current
  #EvalCurrent                  # [NL] Evaluate the current
  HARRLvcs= 913            RL    # [HA] Hartree    RL components
#FrPolPerdic                  # [DIP] Force periodicity of polarization respect to the external field
  EXXRLvcs= 913            RL    # [XX] Exchange    RL components
  HARRLvcs= 21817            RL    # [HA] Hartree    RL components
% GfnQP_E
  EXXRLvcs= 21817            RL    # [XX] Exchange    RL components
  3.594325 | 1.000000 | 1.000000 |        # [EXTQP G] E parameters  (c/v) eV|adim|adim
%
  % Field1_Freq
  % Field1_Freq
   <span style="color:red">0.100000 | 0.100000 | </span>        eV    # [RT Field1] Frequency
   0.100000 | 0.100000 |         eV    # [RT Field1] Frequency
  %
  %
  Field1_Int=  1000.00      kWLm2 # [RT Field1] Intensity
Field1_NFreqs= 1                # [RT Field1] Frequency
  Field1_Int=  10000.00      kWLm2 # [RT Field1] Intensity
  Field1_Width= 0.000000    fs    # [RT Field1] Width
  Field1_Width= 0.000000    fs    # [RT Field1] Width
  Field1_kind= "DELTA"             # [RT Field1] Kind(SIN|RES|ANTIRES|GAUSS|DELTA|QSSIN)
  Field1_kind= "SOFTSIN"           # [RT Field1] Kind(SIN|COS|RES|ANTIRES|GAUSS|DELTA|QSSIN)
  Field1_pol= "linear"            # [RT Field1] Pol(linear|circular)
  Field1_pol= "linear"            # [RT Field1] Pol(linear|circular)
  % Field1_Dir
  % Field1_Dir
   0.000000 | 1.000000 | 0.000000 |        # [RT Field1] Versor
   0.000000 | 0.000000 | 0.000000 |        # [RT Field1] Versor
  %
  %
% Field1_Dir_circ
  Field1_Tstart= 0.010000   fs    # [RT Field1] Initial Time  
  0.000000 | 0.000000 | 0.000000 |        # [RT Field1] Versor_circ
%
  Field1_Tstart= <span style="color:red">165.00000   fs</span>   # [RT Field1] Initial Time
  % Field2_Freq
  % Field2_Freq
   <span style="color:red">6.1 | 6.1 | </span>        eV    # [RT Field2] Frequency
   4.42 | 4.42 |         eV    # [RT Field2] Frequency
  %
  %
  Field2_Int= <span style="color:red">1.E4</span>      kWLm2 # [RT Field2] Intensity
Field2_NFreqs= 1                # [RT Field2] Frequency
  Field2_Width= <span style="color:red">10.000000     fs</span>   # [RT Field2] Width
  Field2_Int= 1000.00      kWLm2 # [RT Field2] Intensity
  Field2_kind= "<span style="color:red">QSSIN</span>"             # [RT Field2] Kind(SIN|RES|ANTIRES|GAUSS|DELTA|QSSIN)
  Field2_Width= 10.00000     fs    # [RT Field2] Width
  Field2_kind= "QSSIN"             # [RT Field2] Kind(SIN|COS|RES|ANTIRES|GAUSS|DELTA|QSSIN)
  Field2_pol= "linear"            # [RT Field2] Pol(linear|circular)
  Field2_pol= "linear"            # [RT Field2] Pol(linear|circular)
  % Field2_Dir
  % Field2_Dir
   0.000000 | 1.000000 | 0.000000 |        # [RT Field2] Versor
   0.000000 | 1.000000 | 0.000000 |        # [RT Field2] Versor
  %
  %
% Field2_Dir_circ
  Field2_Tstart= 0.010000   fs    # [RT Field2] Initial Time
  0.000000 | 0.000000 | 0.000000 |        # [RT Field2] Versor_circ
[...]
%
  Field2_Tstart= <span style="color:red">0.00000   fs</span>   # [RT Field2] Initial Time


We set the starting time of the Probe (Field1) to 165 fs, a time larger then the simulation run in such a way to have only the Pump(Field2) field. As Pump field we use QSSIN that is an [https://demonstrations.wolfram.com/SineGaussianSignals/ sine-Gaussian wave], with a frequency 6.1 eV centered at the energy of the first exciton, and a width of 10 fs:
We set the starting time of the Probe (Field1) to 165 fs, a time larger then the simulation run in such a way to have only the Pump(Field2) field. As Pump field we use QSSIN that is an [https://demonstrations.wolfram.com/SineGaussianSignals/ sine-Gaussian wave], with a frequency 6.1 eV centered at the energy of the first exciton, and a width of 10 fs:

Revision as of 14:30, 8 November 2022

This tutorial works only with Yambo version > 5.1, that will be released soon.

In this tutorial we will show you how to setup two external fields in yambo_nl, to perform pump and probe simulation. [1]
This tutorial is at independent particle level, but the same kind of simulation can be repeated including local field effects, quasi-particle correction or electron-hole interaction, see for example the tutorials:

Correlation effects in the non-linear response
Real time Bethe-Salpeter Equation (TDSE)

This tutorial supposes that you are already familiar with real-time simulation with Yambo[2] if it is not the case please check these tutorials: Tutorials#Non_linear_response

We start from the h-BN monolayer with an in place lattice constant a=2.5 Å and a box large 30 a.u. in the z-direction. Standard DFT input for hBN monolayer for ABINIT or QuantumEspresso can be found here Tutorials.
We used a 9x9x1 k-points grid and 8 bands in the non-self consistent calculation.

In our example we choose direction [0,1,0] for the pump and directions [1,0,0] e [0,1,0] for the probe. We generate the ypp.in to remove symmetries with the command ypp -y and we modify it as:

fixsyms                          # [R] Remove symmetries not consistent with an external perturbation
% Efield1
 0.000000 | 1.000000 | 0.000000 |        # First external Electric Field
%
% Efield2
 1.000000 | 0.000000 | 0.000000 |        # Additional external Electric Field
%
BField= 0.000000           T     # [MAG] Magnetic field modulus
Bpsi= 0.000000             deg   # [MAG] Magnetic field psi angle [degree]
Btheta= 0.000000           deg   # [MAG] Magnetic field theta angle [degree]
#RmAllSymm                     # Remove all symmetries 
RmTimeRev                     # Remove Time Reversal
#RmSpaceInv                    # Remove Spatial Inversion

then we go in the FixSymm directory and run again the setup.
We will perform three different real-time calculations:

  • the probe field alone;
  • the pump field alone;
  • the pump and probe configuration.

Probe only

We can generate the input file for a generic Pump and Probe calculations with the command: yambo_nl -u p -F yambo.in_probe:

nloptics                         # [R] Non-linear spectroscopy
DIP_Threads=0                    # [OPENMP/X] Number of threads for dipoles
NL_Threads=0                     # [OPENMP/NL] Number of threads for nl-optics
% NLBands
    3 |  6 |                           # [NL] Bands range
%
NLverbosity= "high"              # [NL] Verbosity level (low | high)
NLtime=  80.000000           fs    # [NL] Simulation Time
NLintegrator= "  CRANKNIC"           # [NL] Integrator ("EULEREXP/RK2/RK4/RK2EXP/HEUN/INVINT/CRANKNIC")
NLCorrelation= "IPA"             # [NL] Correlation ("IPA/HARTREE/TDDFT/LRC/LRW/JGM/SEX")
NLLrcAlpha= 0.000000             # [NL] Long Range Correction
NLDamping= 0.000000        eV    # [NL] Damping (or dephasing)
RADLifeTime=-1.000000      fs    # [RT] Radiative life-time (if negative Yambo sets it equal to Phase_LifeTime in NL)
#EvalCurrent                   # [NL] Evaluate the current
#FrPolPerdic                   # [DIP] Force periodicity of polarization respect to the external field
HARRLvcs= 21817            RL    # [HA] Hartree     RL components
EXXRLvcs= 21817            RL    # [XX] Exchange    RL components
% Field1_Freq
 0.100000 | 0.100000 |         eV    # [RT Field1] Frequency
%
Field1_NFreqs= 1                 # [RT Field1] Frequency
Field1_Int=  1000.00       kWLm2 # [RT Field1] Intensity
Field1_Width= 0.000000     fs    # [RT Field1] Width
Field1_kind= "  DELTA"           # [RT Field1] Kind(SIN|COS|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_Tstart=   5.00000    fs    # [RT Field1] Initial Time
[......]

In this input we set only the first field that is the probe, we use a DELTA function as field in such a way to probe all the frequencies, and set the starting point of the delta at t=5 fs.
Run this job in a separate folder with the command yambo_nl -F yambo.in_probe -J PROBE. Then we can analyze the spectra with ypp -u -J PROBE :

nonlinear                        # [R] Non-linear response analysis
Xorder= 1                        # Max order of the response/exc functions
% TimeRange
-1.000000 |-1.000000 |         fs    # Time-window where processing is done
%
ETStpsRt= 200                    # Total Energy steps
% EnRngeRt
  0.00000 | 20.00000 |         eV    # Energy range
%
DampMode= "LORENTZIAN"           # Damping type ( NONE | LORENTZIAN | GAUSSIAN )
DampFactor= 0.100000       eV    # Damping parameter
PumpPATH= "none"           # Path of the simulation with the Pump only

and get the dielectric response. Notice that we introduce a Lorentzian broadening the post-processing.
Hereafter we plot the damped polarization along the y-direction and the corresponding dielectric constant:

Yambo tutorial image

Pump only

Now we run a simulation with the pump field only. We generate the input in the same way yambo_nl -u p -F yambo.in_pump.
These result will be our reference field in the final analysis. Here the input file for the pump:

nloptics                         # [R] Non-linear spectroscopy
DIP_Threads=0                    # [OPENMP/X] Number of threads for dipoles
NL_Threads=0                     # [OPENMP/NL] Number of threads for nl-optics
% NLBands
  3 |  6 |                           # [NL] Bands range
%
NLverbosity= "high"              # [NL] Verbosity level (low | high)
NLtime= 150.0000           fs    # [NL] Simulation Time
NLintegrator= "CRANKNIC"         # [NL] Integrator ("EULEREXP/RK2/RK4/RK2EXP/HEUN/INVINT/CRANKNIC")
NLCorrelation= "IPA"             # [NL] Correlation ("IPA/HARTREE/TDDFT/LRC/LRW/JGM/SEX")
NLLrcAlpha= 0.000000             # [NL] Long Range Correction
NLDamping= 0.000000        eV    # [NL] Damping (or dephasing)
RADLifeTime=-1.000000      fs    # [RT] Radiative life-time (if negative Yambo sets it equal to Phase_LifeTime in NL)
#EvalCurrent                   # [NL] Evaluate the current
#FrPolPerdic                   # [DIP] Force periodicity of polarization respect to the external field
HARRLvcs= 21817            RL    # [HA] Hartree     RL components
EXXRLvcs= 21817            RL    # [XX] Exchange    RL components
% Field1_Freq
 0.100000 | 0.100000 |         eV    # [RT Field1] Frequency
%
Field1_NFreqs= 1                 # [RT Field1] Frequency
Field1_Int=  10000.00       kWLm2 # [RT Field1] Intensity
Field1_Width= 0.000000     fs    # [RT Field1] Width
Field1_kind= "SOFTSIN"           # [RT Field1] Kind(SIN|COS|RES|ANTIRES|GAUSS|DELTA|QSSIN)
Field1_pol= "linear"             # [RT Field1] Pol(linear|circular)
% Field1_Dir
 0.000000 | 0.000000 | 0.000000 |        # [RT Field1] Versor
%
Field1_Tstart= 0.010000    fs    # [RT Field1] Initial Time 
% Field2_Freq
 4.42 | 4.42 |         eV    # [RT Field2] Frequency
%
Field2_NFreqs= 1                 # [RT Field2] Frequency
Field2_Int=  1000.00       kWLm2 # [RT Field2] Intensity
Field2_Width= 10.00000     fs    # [RT Field2] Width
Field2_kind= "QSSIN"             # [RT Field2] Kind(SIN|COS|RES|ANTIRES|GAUSS|DELTA|QSSIN)
Field2_pol= "linear"             # [RT Field2] Pol(linear|circular)
% Field2_Dir
 0.000000 | 1.000000 | 0.000000 |        # [RT Field2] Versor
%
Field2_Tstart= 0.010000    fs    # [RT Field2] Initial Time
[...]

We set the starting time of the Probe (Field1) to 165 fs, a time larger then the simulation run in such a way to have only the Pump(Field2) field. As Pump field we use QSSIN that is an sine-Gaussian wave, with a frequency 6.1 eV centered at the energy of the first exciton, and a width of 10 fs:

Yambo tutorial image

References

  1. Exciton - Exciton transitions involving strongly bound Frenkel excitons: an ab initio approach, D. Sangalli, M. D'Alessandro and C. Attaccalite, in preparation
  2. Non-linear response in extended systems: a real-time approach, C. Attaccalite