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

Deals with issues related to computation of optical spectra, in RPA (-o c) or by solving the Bethe-Salpeter equation (-o b). Includes local field effects, excitons, etc.

Moderators: Davide Sangalli, andrea marini, Daniele Varsano, andrea.ferretti, myrta gruning, Conor Hogan

Post Reply
chwolf
Posts: 32
Joined: Mon Jul 11, 2016 2:11 pm
Location: South Korea
Contact:

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

Post by chwolf » Tue Jul 23, 2019 4:07 pm

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
You do not have the required permissions to view the files attached to this post.
Christoph Wolf

Postech university, South Korea
chwolf@postech.ac.kr

User avatar
Daniele Varsano
Posts: 2718
Joined: Tue Mar 17, 2009 2:23 pm
Contact:

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

Post by Daniele Varsano » Tue Jul 23, 2019 5:08 pm

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
Dr. Daniele Varsano
S3-CNR Institute of Nanoscience and MaX Center, Italy
MaX - Materials design at the Exascale
http://www.nano.cnr.it
http://www.max-centre.eu/

chwolf
Posts: 32
Joined: Mon Jul 11, 2016 2:11 pm
Location: South Korea
Contact:

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

Post by chwolf » Wed Jul 24, 2019 2:53 am

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
You do not have the required permissions to view the files attached to this post.
Christoph Wolf

Postech university, South Korea
chwolf@postech.ac.kr

Post Reply