Prerequisites for Real Time propagation with Yambo

From The Yambo Project
Revision as of 09:39, 23 February 2024 by Daniele (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Introduction

The real-time response using the equation of motion for the density matrix is obtained via the yambo_rt and ypp_rt excutables.
The real-time response using the Time-Dependent Schrödinger Equation (TDSE) is obtained via the yambo_nl and ypp_nl excutables.
Since the TDSE is used to extract non-linear properties which are much smaller (if weak perturbations are used), numerical accuracy is very important. Thus, the yambo_nl and ypp_nl excutables are always compiled in double precision.

(NB: in older version of the code you needed, before compiling, to add the flag --enable-dp when running the configure. If you have problems in the compilation, please have a look to compiling yambo.)

Before running the real time simulations in any of the two schemes described in the Introduction to Real Time propagation in Yambo the following steps need to be performed. The firsts are common to any yambo calculation and we repeat them here for consistency. The last steps are specific for real time simulations. Let's consider consider a single later of hexagonal boron nitride (hBN) to describe the procedure. If you didn't before, You can download input files and Yambo databases for this tutorial here: hBN-2D-RT.

DFT calculations

The first input file is a self-consistent(SCF) calculation that is used to generate the density of the system. The second input file is a non-self consistent(NSCF) calculation to diagonalize the KS Hamiltonian, which depends on the density of the first run, on for a given number of bands and k-points. Notice that parameters in the NSCF calculation determine the number of k-points and the maximum number of bands that can be used in Lumen. Run this calculation with the command:

pw.x -inp hBN_2D_scf.in  > output_scf
pw.x -inp hBN_2D_nscf.nscf.in > output_nscf

Notice that in the NSCF file of QuantumEspresso we use the flag force_symmorphic=.true. to exclude the non-symmorphic symmetries that are not supported by Yambo. For more details, you can have a look here 2D material: h-BN sheet

Import the wave-functions

If you used QuantumEspresso go in the folder hBN_2D.save. Then import the wave-function with the command

for QuantumEspresso: p2y -F data-file.xml


Setup

Below any of the two executables yambo_rt or yambo_nl can be used.
Go into the directory with the yambo SAVE and generate the setup input file with the command yambo_rt -i -V RL -F setup.in, then run yambo_rt -F setup.in.

$ cd hBN-2D-RT/YAMBO
$ yambo_rt -i -V RL -F setup.in
$ yambo_rt -F setup.in

You can reduce the number of G-vectors in the setup in such a way to speed up calculations. It is advised to reduce the number of G-vectors to 1000 (about 50% of the initial ones).

Reduce symmetries

Since in real-time simulation we introduce a finite electric field in the Hamiltonian, the number of the symmetries of the original system is reduced due to the presence of this field. Using the tool ypp_rt/ypp_nl -y to generate the input file:

fixsyms                      # [R] Reduce Symmetries
% Efield1
 0.00     | 1.00     | 0.00     |        # First external Electric Field
%
#RmAllSymm                   # Remove all symmetries
RmTimeRev                    # Remove Time Reversal


Set the external field in the y-direction and uncomment the Time Reversal flag, as shown in red above. Run ypp and it will create a new folder called FixSymm with the reduced symmetries wave-functions.

Setup again

Go in the FixSymm directory

cd FixSymm

and run the setup again

yambo_nl / yambo_rt

Now everything is ready for the real-time simulations!

Links for 2023 school