Page 1 of 1

BSE calcuation parameters setting

Posted: Tue May 07, 2024 9:47 pm
by pandachang97
Hello Yambo experts:

Thank you for your previous help. I have some more silly questions about running BSE with Yambo code. I try calculate absorption spectrum of 2D MoS2. The SCF calculation is done by QE with the primer cell (only one MoS2) with 24*24*1 K-mesh. There are 26 electrons included in the SCF, no SOC. In all Yambo calculations, I always use 4 Nodes with 192 cores. In the static screening calculation, I only include 4000 G-vectors.If I use 6000 G-vectors, the calculation job will crash due to insufficient virtural memory. In BSE kernel and diago solver, as you can see, I only specify BSENGexx= 2000 RL and BSENGBlk= 400 RL. It seems to take 12 hours to finish the job.
My question is how to estimate the number of G-vectors used in the exchange components and block size? What is the threthold that it is enough to cut-off at spcific number, 4000 or 5000? Thank you.
The r_setup file is attached in the attachment.
The yambo input files are listed as below:
01_2D_BSE_screening

Code: Select all

 # Version 5.2.1 Revision 22792 Hash (prev commit) ace55e496e          
#                        Branch is                                    
#                  MPI+HDF5_MPI_IO Build                              
#                http://www.yambo-code.org                            
#
screen                           # [R] Inverse Dielectric/Response Matrix
em1s                             # [R][Xs] Statically Screened Interaction
rim_cut                          # [R] Coulomb potential
dipoles                          # [R] Oscillator strenghts (or dipoles)
RandQpts=1000000                       # [RIM] Number of random q-points in the BZ
RandGvec= 100                RL    # [RIM] Coulomb interaction RS components
CUTGeo= "slab z"                   # [CUT] Coulomb Cutoff geometry: box/cylinder/sphere/ws/slab X/Y/Z/XY..
% CUTBox
 0.000000 | 0.000000 | 0.000000 |        # [CUT] [au] Box sides
%
CUTRadius= 0.000000              # [CUT] [au] Sphere/Cylinder radius
CUTCylLen= 0.000000              # [CUT] [au] Cylinder length
CUTwsGvec= 0.700000              # [CUT] WS cutoff: number of G to be modified
Chimod= "HARTREE"                # [X] IP/Hartree/ALDA/LRC/PF/BSfxc
% BndsRnXs
   10 | 25 |                         # [Xs] Polarization function bands
%
NGsBlkXs= 4000                RL    # [Xs] Response block size
% LongDrXs
 1.000000 | 1.000000 | 1.000000 |        # [Xs] [cc] Electric Field
%
02_3D_BSE_kernel

Code: Select all

# Version 5.2.1 Revision 22792 Hash (prev commit) ace55e496e          
#                        Branch is                                    
#                  MPI+HDF5_MPI_IO Build                              
#                http://www.yambo-code.org                            
#
optics                           # [R] Linear Response optical properties
rim_cut                          # [R] Coulomb potential
bse                              # [R][BSE] Bethe Salpeter Equation.
dipoles                          # [R] Oscillator strenghts (or dipoles)
RandQpts= 1000000                # [RIM] Number of random q-points in the BZ
RandGvec= 100              RL    # [RIM] Coulomb interaction RS components
CUTGeo= "slab z"                 # [CUT] Coulomb Cutoff geometry: box/cylinder/sphere/ws/slab X/Y/Z/XY..
% CUTBox
 0.000000 | 0.000000 | 0.000000 |        # [CUT] [au] Box sides
%
CUTRadius= 0.000000              # [CUT] [au] Sphere/Cylinder radius
CUTCylLen= 0.000000              # [CUT] [au] Cylinder length
CUTwsGvec= 0.700000              # [CUT] WS cutoff: number of G to be modified
BSKmod= "SEX"                    # [BSE] IP/Hartree/HF/ALDA/SEX/BSfxc
BSEmod= "resonant"               # [BSE] resonant/retarded/coupling
BSENGexx= 2000           RL    # [BSK] Exchange components
BSENGBlk= 400             RL    # [BSK] Screened interaction block size [if -1 uses all the G-vectors of W(q,G,Gp)]
#WehCpl                        # [BSK] eh interaction included also in coupling
% BSEQptR
 1 | 1 |                             # [BSK] Transferred momenta range
%
% BSEBands
   10 | 25 |                         # [BSK] Bands range
%

04_2D_BSE_diago_solver

Code: Select all

bss                              # [R] BSE solver
rim_cut                          # [R] Coulomb potential
optics                           # [R] Linear Response optical properties
dipoles                          # [R] Oscillator strenghts (or dipoles)
bse                              # [R][BSE] Bethe Salpeter Equation.
RandQpts= 1000000                # [RIM] Number of random q-points in the BZ
RandGvec= 101              RL    # [RIM] Coulomb interaction RS components
CUTGeo= "slab z"                 # [CUT] Coulomb Cutoff geometry: box/cylinder/sphere/ws/slab X/Y/Z/XY..
% CUTBox
 0.000000 | 0.000000 | 0.000000 |        # [CUT] [au] Box sides
%
CUTRadius= 0.000000              # [CUT] [au] Sphere/Cylinder radius
CUTCylLen= 0.000000              # [CUT] [au] Cylinder length
CUTwsGvec= 0.700000              # [CUT] WS cutoff: number of G to be modified
BSKmod= "SEX"                    # [BSE] IP/Hartree/HF/ALDA/SEX/BSfxc
BSEmod= "resonant"               # [BSE] resonant/retarded/coupling
BSSmod= "d"                      # [BSS] (h)aydock/(d)iagonalization/(s)lepc/(i)nversion/(t)ddft`
BSENGexx= 2015             RL    # [BSK] Exchange components
BSENGBlk=  403             RL    # [BSK] Screened interaction block size [if -1 uses all the G-vectors of W(q,G,Gp)]
#WehCpl                        # [BSK] eh interaction included also in coupling
KfnQPdb= "E < ../G0W0_nospinpol2/2D_G0W0/ndb.QP"                  # [EXTQP BSK BSS] Database action
KfnQP_INTERP_NN= 1               # [EXTQP BSK BSS] Interpolation neighbours (NN mode)
KfnQP_INTERP_shells= 20.00000    # [EXTQP BSK BSS] Interpolation shells (BOLTZ mode)
KfnQP_DbGd_INTERP_mode= "NN"     # [EXTQP BSK BSS] Interpolation DbGd mode
% KfnQP_E
 0.000000 | 1.000000 | 1.000000 |        # [EXTQP BSK BSS] E parameters  (c/v) eV|adim|adim
%
KfnQP_Z= ( 1.000000 , 0.000000 )         # [EXTQP BSK BSS] Z factor  (c/v)
KfnQP_Wv_E= 0.000000       eV    # [EXTQP BSK BSS] W Energy reference  (valence)
% KfnQP_Wv
 0.000000 | 0.000000 | 0.000000 |        # [EXTQP BSK BSS] W parameters  (valence) eV| 1|eV^-1
%
KfnQP_Wv_dos= 0.000000     eV    # [EXTQP BSK BSS] W dos pre-factor  (valence)
KfnQP_Wc_E= 0.000000       eV    # [EXTQP BSK BSS] W Energy reference  (conduction)
% KfnQP_Wc
 0.000000 | 0.000000 | 0.000000 |        # [EXTQP BSK BSS] W parameters  (conduction) eV| 1 |eV^-1
%
KfnQP_Wc_dos= 0.000000     eV    # [EXTQP BSK BSS] W dos pre-factor  (conduction)
% BSEQptR
 1 | 1 |                             # [BSK] Transferred momenta range
%
% BSEBands
 10 | 25 |                           # [BSK] Bands range
%
% BEnRange
  2.00000 | 8.00000 |         eV    # [BSS] Energy range
%
% BDmRange
 0.100000 | 0.100000 |         eV    # [BSS] Damping range
%
BEnSteps= 100                    # [BSS] Energy steps
% BLongDir
 1.000000 | 1.000000 | 1.000000 |        # [BSS] [cc] Electric Field
%
BSEprop= "abs"                   # [BSS] Can be any among abs/jdos/kerr/magn/dich/photolum/esrt
BSEdips= "none"                  # [BSS] Can be "trace/none" or "xy/xz/yz" to define off-diagonal rotation plane
WRbsWF                        # [BSS] Write to disk excitonic the WFs

Re: BSE calcuation parameters setting

Posted: Thu May 09, 2024 11:42 am
by Daniele Varsano
Dear Xin Chang,

convergence parameter are system dependent and should be carefully checked.
For MoS2 you can anyway look at published papers where convergence studied were done as for instance:
https://doi.org/10.1103/PhysRevB.88.045412

Here you can also find a tutorial on BSE ofr MoS2 I just found on the web (It is not prepared by us, so I cannot guarantee on its quality):
https://www.paradim.org/sites/default/f ... _YAMBO.pdf

Best,
Daniele