Page 1 of 1

BSE@GW: Null BSE kernel block dimension(s) found.

Posted: Tue Jul 23, 2019 4:07 pm
by chwolf
Dear all,

I was trying to do "self-consistent" GW (copy-paste ndb.QP method) and I am trying to perform BSE on top of that (I want to avoid scissoring the DFT data). However there is something strange happening in the BSE step (probably related to *ERR* messages in the report file): the input reported in the BSE report file is not the same as the input in the input file (-F input.in).

I think the GW step was successful as it gives me a gap of ~8 eV compared to the 4.5 eV@DFT level (system is a monolayer of BN, 12x12x1 kpnts, 200 bands, 4 valence bands); GW "converges" after 3-4 sc cycles.
GWbands.png
My GW in file is

Code: Select all

em1d                           # [R Xd] Dynamical Inverse Dielectric Matrix
gw0                            # [R GW] GoWo Quasiparticle energy levels
ppa                            # [R Xp] Plasmon Pole Approximation
HF_and_locXC                   # [R XX] Hartree-Fock Self-energy and Vxc
EXXRLvcs=  54179       RL      # [XX] Exchange    RL components
#UseNLCC                       # [XC] If present, add NLCC contributions to the charge density
Chimod= "hartree"              # [X] IP/Hartree/ALDA/LRC/PF/BSfxc
XfnQPdb= "E < ./ndb.QP"        # [EXTQP Xd] Database
XfnQP_N= 1                     # [EXTQP Xd] Interpolation neighbours
% XfnQP_E
 0.000000 | 1.000000 | 1.000000 |        # [EXTQP Xd] E parameters  (c/v) eV|adim|adim
%
XfnQP_Z= ( 1.000000 , 0.000000 )       # [EXTQP Xd] Z factor  (c/v)
XfnQP_Wv_E= 0.000000   eV      # [EXTQP Xd] W Energy reference  (valence)
% XfnQP_Wv
 0.00     | 0.00     | 0.00     |        # [EXTQP Xd] W parameters  (valence) eV| 1|eV^-1
%
XfnQP_Wv_dos= 0.000000 eV      # [EXTQP Xd] W dos pre-factor  (valence)
XfnQP_Wc_E= 0.000000   eV      # [EXTQP Xd] W Energy reference  (conduction)
% XfnQP_Wc
 0.00     | 0.00     | 0.00     |        # [EXTQP Xd] W parameters  (conduction) eV| 1 |eV^-1
%
XfnQP_Wc_dos= 0.000000 eV      # [EXTQP Xd] W dos pre-factor  (conduction)
% BndsRnXp
   1 |  50 |                   # [Xp] Polarization function bands
%
NGsBlkXp= 10            Ry      # [Xp] Response block size
% LongDrXp
 1.000000 | 1.000000 | 0.000000 |        # [Xp] [cc] Electric Field
%
PPAPntXp= 27.21138     eV      # [Xp] PPA imaginary energy
GfnQPdb= "E < ./ndb.QP"        # [EXTQP G] Database
GfnQP_N= 1                     # [EXTQP G] Interpolation neighbours
% GfnQP_E
 0.000000 | 1.000000 | 1.000000 |        # [EXTQP G] E parameters  (c/v) eV|adim|adim
%
GfnQP_Z= ( 1.000000 , 0.000000 )       # [EXTQP G] Z factor  (c/v)
GfnQP_Wv_E= 0.000000   eV      # [EXTQP G] W Energy reference  (valence)
% GfnQP_Wv
 0.00     | 0.00     | 0.00     |        # [EXTQP G] W parameters  (valence) eV| 1|eV^-1
%
GfnQP_Wv_dos= 0.000000 eV      # [EXTQP G] W dos pre-factor  (valence)
GfnQP_Wc_E= 0.000000   eV      # [EXTQP G] W Energy reference  (conduction)
% GfnQP_Wc
 0.00     | 0.00     | 0.00     |        # [EXTQP G] W parameters  (conduction) eV| 1 |eV^-1
%
GfnQP_Wc_dos= 0.000000 eV      # [EXTQP G] W dos pre-factor  (conduction)
% GbndRnge
   1 | 200 |                   # [GW] G[W] bands range
%
GDamping=  0.10000     eV      # [GW] G[W] damping
dScStep=  0.10000      eV      # [GW] Energy step to evaluate Z factors
GTermKind= "none"              # [GW] GW terminator ("none","BG" Bruneval-Gonze)
GTermEn= 40.81708      eV      # [GW] GW terminator energy (only for kind="BG")
DysSolver= "n"                 # [GW] Dyson Equation solver ("n","s","g")
#NewtDchk                      # [GW] Test dSc/dw convergence
#ExtendOut                     # [GW] Print all variables in the output file
#OnMassShell                   # [F GW] On mass shell approximation
%QPkrange                      # [GW] QP generalized Kpoint/Band indices
  1| 100|  1|15|
%
%QPerange                      # [GW] QP generalized Kpoint/Energy indices
  1| 1| 0.0|-1.0|
%
then I generate a BSE input file yambo -o b -k sex -y d -p p -V qp

my BSE input file is

Code: Select all

optics                         # [R OPT] Optics
bss                            # [R BSS] Bethe Salpeter Equation solver
ppa                            # [R Xp] Plasmon Pole Approximation
bse                            # [R BSE] Bethe Salpeter Equation.
bsk                            # [R BSK] Bethe Salpeter Equation kernel
em1d                           # [R Xd] Dynamical Inverse Dielectric Matrix
Chimod= "Hartree"              # [X] IP/Hartree/ALDA/LRC/PF/BSfxc
BSEmod= "retarded"             # [BSE] resonant/retarded/coupling
BSKmod= "SEX"                  # [BSE] IP/Hartree/HF/ALDA/SEX
BSSmod= "d"                    # [BSS] (h)aydock/(d)iagonalization/(i)nversion/(t)ddft
BSENGexx=  54179       RL      # [BSK] Exchange components
BSENGBlk=  9           Ry      # [BSK] Screened interaction block size
#WehCpl                        # [BSK] eh interaction included also in coupling
KfnQPdb= "E < ndb.QP"          # [EXTQP BSK BSS] Database
KfnQP_N= 1                     # [EXTQP BSK BSS] Interpolation neighbours
% 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.00     | 0.00     | 0.00     |        # [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.00     | 0.00     | 0.00     |        # [EXTQP BSK BSS] W parameters  (conduction) eV| 1 |eV^-1
%
KfnQP_Wc_dos= 0.000000 eV      # [EXTQP BSK BSS] W dos pre-factor  (conduction)
% BEnRange
  0.00000 | 10.00000 | eV      # [BSS] Energy range
%
% BDmRange
  0.10000 |  0.10000 | eV      # [BSS] Damping range
%
BEnSteps=  5000                # [BSS] Energy steps
% BLongDir
 1.000000 | 1.000000 | 0.000000 |        # [BSS] [cc] Electric Field
%
% BSEBands
   1 | 200 |                   # [BSK] Bands range
%
XfnQPdb= "none"                # [EXTQP Xd] Database
XfnQP_N= 1                     # [EXTQP Xd] Interpolation neighbours
% XfnQP_E
 0.000000 | 1.000000 | 1.000000 |        # [EXTQP Xd] E parameters  (c/v) eV|adim|adim
%
XfnQP_Z= ( 1.000000 , 0.000000 )       # [EXTQP Xd] Z factor  (c/v)
XfnQP_Wv_E= 0.000000   eV      # [EXTQP Xd] W Energy reference  (valence)
% XfnQP_Wv
 0.00     | 0.00     | 0.00     |        # [EXTQP Xd] W parameters  (valence) eV| 1|eV^-1
%
XfnQP_Wv_dos= 0.000000 eV      # [EXTQP Xd] W dos pre-factor  (valence)
XfnQP_Wc_E= 0.000000   eV      # [EXTQP Xd] W Energy reference  (conduction)
% XfnQP_Wc
 0.00     | 0.00     | 0.00     |        # [EXTQP Xd] W parameters  (conduction) eV| 1 |eV^-1
%
XfnQP_Wc_dos= 0.000000 eV      # [EXTQP Xd] W dos pre-factor  (conduction)
% BndsRnXp
   1 |  50 |                   # [Xp] Polarization function bands
%
NGsBlkXp= 10           Ry      # [Xp] Response block size
% LongDrXp
 1.000000 | 1.000000 | 0.000000 |        # [Xp] [cc] Electric Field
%
PPAPntXp= 27.21138     eV      # [Xp] PPA imaginary energy
but then the report file shows that there is apparently some mismatch and the BSE kernel can't be built

Code: Select all

  [05.01] Transition Groups build-up
  ==================================


  [WARNING] Null BSE kernel block dimension(s) found.
  [BSK] Transition groups (total) 14
and further down some *ERR* messages

Code: Select all

 BSK|Identifier              :  5306
  *ERR*    |Dimension               :  75
      |Bands                   :   1  200
      |Exchange           [res]:yes
      |Correlation        [res]:yes
      |Kernel`s coupling       :no
      |Exchange           [cpl]:no
      |Correlation        [cpl]:no
      |W interaction is bare   :no
      |ALDA kernel in R-space  :no
      |RL vectors    [exchange]:  9531
  *ERR*    |RL vectors [correlation]: 103
Are those ERR related to the failure of the BSE?

Thanks for your assistance!

Chris

Re: BSE@GW: Null BSE kernel block dimension(s) found.

Posted: Tue Jul 23, 2019 5:08 pm
by Daniele Varsano
Dear Chris,
the ERR you find is becuase you run the calculation on top of previous runs:

Code: Select all

[RD./SAVE//ndb.BS_Q1_CPU_0]
This means that yambo tries to read previus database and found inconsistencies with variables.
Next, he tries to rebuild the kernel but it found you asked a number of Gs in BSENGBlk larger than in NGsBlkXp and it stops.
It is not clear what is happening with respect to your input file, moreover it indicates a dimension of the matrix very small, considering
you included 200 bands in the BSE (why you ask for a such large number?)

Note also the ndb.pp read by the BSE run has 103 components

Code: Select all

*ERR* X matrix size          : 103
while the ndb.pp calculated in the GW steps:

Code: Select all

 X matrix size          :  495
Note that in the GW report, yambo also read (RD) an old database containing 103 components.

Code: Select all

*ERR* X matrix size          : 103
It seems to me there is some confusion among folders you are storing databases etc.
I suggest you to save your last converged ndb.QP file and store in the SAVE directory, next start a clean calculation from scratch. Pay attention in the report to what is read (RD) and what is written (WR) by the run level.

Best,
Daniele

Re: BSE@GW: Null BSE kernel block dimension(s) found.

Posted: Wed Jul 24, 2019 2:53 am
by chwolf
Dear Daniele,

thank you for your (as always) very helpful reply; it seems that my "copy and paste" magic was... incomplete; After running the last step of the sc-GW again without -J flag the BSE step was able to read SAVE just fine;

In fact, it works almost too well... ;)
plot-bse-spectra-1.png