Page 1 of 1

non-interacting response for BSE

Posted: Fri Mar 03, 2023 8:10 pm
by milesj
Simple question here:

I noticed that for uniform k-grids like 4x4x4, 6x6x6, etc, yambo seems to calculate X0 for many q - points as in the picture. If I instead use 2x6x6 or 4x8x8, which I am interested in because I'm working with a layered material (though still in bulk), it seems to skip all these steps and only refers to @q1 in the following steps. Is computing X0 at a bunch of q - points then irrelevant to the optical absorption, and if so is there a way to stop the code from doing that for a uniform grid? If so it would speed up my calculations considerably.

Thanks,
Miles

Re: non-interacting response for BSE

Posted: Sat Mar 04, 2023 11:39 am
by Daniele Varsano
Dear Miles,

can you explain better what's your problem?
In general, Yambo calculates X for all q when it is needed, e.g. to compute the screening interaction.
Please post your input file and we can have a look.

Best,
Daniele

Re: non-interacting response for BSE

Posted: Sun Mar 05, 2023 8:19 pm
by milesj
Hi Daniele,

Below is my input, and I've attached log files for when I run this input on a 662 and 666 grid. I've essentially just followed the BSE tutorial and now I'm trying to converge the k-grid, and hoping that since my material is layered it won't need to be as dense in the z direction, but I noticed it seems to skip computing X0 at a bunch of different q points when I run it on the 662 grid (I also observe this difference when I run it on an 884 vs 888 grid).

Thanks,
Miles

Code: Select all

#                                                                     
# :   :::   :::     ::::    ::::  :::::::::   ::::::::                
# :+:   :+: :+: :+:   +:+:+: :+:+:+ :+:    :+: :+:    :+              
#  +:+ +:+ +:+   +:+  +:+ +:+:+ +:+ +:+    +:+ +:+    +:+             
#   +#++: +#++:++#++: +#+  +:+  +#+ +#++:++#+  +#+    +:+             
#    +#+  +#+     +#+ +#+       +#+ +#+    +#+ +#+    +#+             
#    #+#  #+#     #+# #+#       #+# #+#    #+# #+#    #+#             
#    ###  ###     ### ###       ### #########   ########              
#                                                                     
#                                                                     
# Version 5.1.0 Revision 21422 Hash (prev commit) fde6e2a07           
#                        Branch is                                    
#                MPI+OpenMP+HDF5_IO Build                             
#                http://www.yambo-code.org                            
#
em1s                             # [R][Xs] Statically Screened Interaction
optics                           # [R] Linear Response optical properties
bss                              # [R] BSE solver
bse                              # [R][BSE] Bethe Salpeter Equation.
dipoles                          # [R] Oscillator strenghts (or dipoles)
FFTGvecs= 18995		  RL	 # [FFT] Plane-waves
DIP_Threads=0                    # [OPENMP/X] Number of threads for dipoles
X_Threads=0                      # [OPENMP/X] Number of threads for response functions
K_Threads=0                      # [OPENMP/BSK] Number of threads for response functions
Chimod= "HARTREE"                # [X] IP/Hartree/ALDA/LRC/PF/BSfxc
BSEmod= "resonant"               # [BSE] resonant/retarded/coupling
BSKmod= "SEX"                    # [BSE] IP/Hartree/HF/ALDA/SEX/BSfxc
BSSmod= "d"                      # [BSS] (h)aydock/(d)iagonalization/(s)lepc/(i)nversion/(t)ddft
BSENGexx= 18995           RL     # [BSK] Exchange components
BSENGBlk= 3                Ry    # [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= "none"                  # [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_up_E
 0.000000 | 1.000000 | 1.000000 |        # [EXTQP BSK BSS] E parameters UP (c/v) eV|adim|adim
%
KfnQP_up_Z= ( 1.000000 , 0.000000 )      # [EXTQP BSK BSS] Z factor UP (c/v)
KfnQP_up_Wv_E= 0.000000    eV    # [EXTQP BSK BSS] W Energy reference UP (valence)
% KfnQP_up_Wv
 0.000000 | 0.000000 | 0.000000 |        # [EXTQP BSK BSS] W parameters UP (valence) eV| 1|eV^-1
%
KfnQP_up_Wv_dos= 0.000000  eV    # [EXTQP BSK BSS] W dos pre-factor UP (valence)
KfnQP_up_Wc_E= 0.000000    eV    # [EXTQP BSK BSS] W Energy reference UP (conduction)
% KfnQP_up_Wc
 0.000000 | 0.000000 | 0.000000 |        # [EXTQP BSK BSS] W parameters UP (conduction) eV| 1 |eV^-1
%
KfnQP_up_Wc_dos= 0.000000  eV    # [EXTQP BSK BSS] W dos pre-factor UP (conduction)
% KfnQP_dn_E
 0.000000 | 1.000000 | 1.000000 |        # [EXTQP BSK BSS] E parameters DOWN (c/v) eV|adim|adim
%
KfnQP_dn_Z= ( 1.000000 , 0.000000 )      # [EXTQP BSK BSS] Z factor DOWN (c/v)
KfnQP_dn_Wv_E= 0.000000    eV    # [EXTQP BSK BSS] W Energy reference DOWN (valence)
% KfnQP_dn_Wv
 0.000000 | 0.000000 | 0.000000 |        # [EXTQP BSK BSS] W parameters DOWN (valence) eV| 1|eV^-1
%
KfnQP_dn_Wv_dos= 0.000000  eV    # [EXTQP BSK BSS] W dos pre-factor DOWN (valence)
KfnQP_dn_Wc_E= 0.000000    eV    # [EXTQP BSK BSS] W Energy reference DOWN (conduction)
% KfnQP_dn_Wc
 0.000000 | 0.000000 | 0.000000 |        # [EXTQP BSK BSS] W parameters DOWN (conduction) eV| 1 |eV^-1
%
KfnQP_dn_Wc_dos= 0.000000  eV    # [EXTQP BSK BSS] W dos pre-factor DOWN (conduction)
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
% BSEQptR
 1 | 1 |                             # [BSK] Transferred momenta range
%
% BSEBands
    75 | 90 |                       # [BSK] Bands range
%
% BEnRange
  0.00000 | 2.00000 |         eV    # [BSS] Energy range
%
% BDmRange
 0.0100000 | 0.0100000 |         eV    # [BSS] Damping range
%
BEnSteps= 200                    # [BSS] Energy steps
% BLongDir
 0.000000 | 1.000000 | 1.000000 |        # [BSS] [cc] Electric Field
%
#WRbsWF                        # [BSS] Write to disk excitonic the WFs
XfnQPdb= "none"                  # [EXTQP Xd] Database action
XfnQP_INTERP_NN= 1               # [EXTQP Xd] Interpolation neighbours (NN mode)
XfnQP_INTERP_shells= 20.00000    # [EXTQP Xd] Interpolation shells (BOLTZ mode)
XfnQP_DbGd_INTERP_mode= "NN"     # [EXTQP Xd] Interpolation DbGd mode
% XfnQP_up_E
 0.000000 | 1.000000 | 1.000000 |        # [EXTQP Xd] E parameters UP (c/v) eV|adim|adim
%
XfnQP_up_Z= ( 1.000000 , 0.000000 )      # [EXTQP Xd] Z factor UP (c/v)
XfnQP_up_Wv_E= 0.000000    eV    # [EXTQP Xd] W Energy reference UP (valence)
% XfnQP_up_Wv
 0.000000 | 0.000000 | 0.000000 |        # [EXTQP Xd] W parameters UP (valence) eV| 1|eV^-1
%
XfnQP_up_Wv_dos= 0.000000  eV    # [EXTQP Xd] W dos pre-factor UP (valence)
XfnQP_up_Wc_E= 0.000000    eV    # [EXTQP Xd] W Energy reference UP (conduction)
% XfnQP_up_Wc
 0.000000 | 0.000000 | 0.000000 |        # [EXTQP Xd] W parameters UP (conduction) eV| 1 |eV^-1
%
XfnQP_up_Wc_dos= 0.000000  eV    # [EXTQP Xd] W dos pre-factor UP (conduction)
% XfnQP_dn_E
 0.000000 | 1.000000 | 1.000000 |        # [EXTQP Xd] E parameters DOWN (c/v) eV|adim|adim
%
XfnQP_dn_Z= ( 1.000000 , 0.000000 )      # [EXTQP Xd] Z factor DOWN (c/v)
XfnQP_dn_Wv_E= 0.000000    eV    # [EXTQP Xd] W Energy reference DOWN (valence)
% XfnQP_dn_Wv
 0.000000 | 0.000000 | 0.000000 |        # [EXTQP Xd] W parameters DOWN (valence) eV| 1|eV^-1
%
XfnQP_dn_Wv_dos= 0.000000  eV    # [EXTQP Xd] W dos pre-factor DOWN (valence)
XfnQP_dn_Wc_E= 0.000000    eV    # [EXTQP Xd] W Energy reference DOWN (conduction)
% XfnQP_dn_Wc
 0.000000 | 0.000000 | 0.000000 |        # [EXTQP Xd] W parameters DOWN (conduction) eV| 1 |eV^-1
%
XfnQP_dn_Wc_dos= 0.000000  eV    # [EXTQP Xd] W dos pre-factor DOWN (conduction)
% BndsRnXs
    1 | 200 |                       # [Xs] Polarization function bands
%
NGsBlkXs= 3                Ry    # [Xs] Response block size
% LongDrXs
 1.000000 | 1.000000 | 1.000000 |        # [Xs] [cc] Electric Field
%
XTermKind= "none"                # [X] X terminator ("none","BG" Bruneval-Gonze)



Re: non-interacting response for BSE

Posted: Mon Mar 06, 2023 11:44 pm
by milesj
It seems to be deciding to only work with q1 during the setup. Does this mean there is something incompatible with my quantum espresso calculation? In quantum espresso I've defined the k-grid as 2x6x6 (rather than 6x6x2 - I did this because the magnetization is in plane so to have that along the z direction I have the planes stacked in the x direction). Does yambo require a nonuniform k-grid to only be different in the z direction? From the log it seems to interpret the grid as 6x6x2 rather than 2x6x6.

Thanks,
Miles

Re: non-interacting response for BSE

Posted: Tue Mar 07, 2023 8:20 am
by Daniele Varsano
Dear Miles,

1) Regarding your first post, even if for the absorption you need the response function for q=0 only, as you are doing a BSE calculation you need the RPA response function X to build the screening for all q in order to construct the BSE kernel.

2)As you spotted here the problem is that yambo does not recognize the grid as uniform, in this case it switches to a gamma only calculation. The BZ sampling needs to be uniform:
1. Be sure you set force_symmorphic=.true. in your qe input
2. you can try to repeat the setup by adding the keyword (NoDiagSC) in your yambo setup input file. Before doing that, delete the ndb* file in your directory. See if this solve your problem.

Best,

Daniele

Re: non-interacting response for BSE

Posted: Thu Mar 09, 2023 9:07 am
by milesj
Hi Daniele,

It looks like adding NoDiagSC fixed it, thanks! Out of curiosity, what exactly does adding this keyword do?

Thanks,
Miles

Re: non-interacting response for BSE

Posted: Thu Mar 09, 2023 10:49 am
by Daniele Varsano
Dear Miles,

great it is solved.
The NoDiagSC trigger an algorithm alternative to the standard one to generate the Q points grid, that sometimes is more accurate when dealing with non diagonal cells.

Best,
Daniele