Lkind="full"

You can find here problems arising when using old releases of Yambo (< 5.0). Issues as parallelization strategy, performance issues and other technical aspects.

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

Xiaoming Wang
Posts: 67
Joined: Fri Dec 18, 2020 7:14 am

Lkind="full"

Post by Xiaoming Wang » Thu Jul 15, 2021 9:54 pm

Hello,

For Lkind="full" calculations, at zero exciton momentum transfer, is the G=0 term of the exchange kernel an average over three Cartesian directions? Or can I specify the direction?

Best,
Xiaoming
Xiaoming Wang
The University of Toledo

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

Re: Lkind="full"

Post by Daniele Varsano » Fri Jul 16, 2021 7:50 am

Dear Xiaoming,

the direction is specified by BLongDir.
If you are using the latest release of the code the average is considered if you specify in input:

Code: Select all

BSEprop= "abs trace" 


Note that, in this case, also the spectrum is averaged over the three cartesian directions.

@Davdide, can you confirm this?

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/

User avatar
Davide Sangalli
Posts: 614
Joined: Tue May 29, 2012 4:49 pm
Location: Via Salaria Km 29.3, CP 10, 00016, Monterotondo Stazione, Italy
Contact:

Re: Lkind="full"

Post by Davide Sangalli » Fri Jul 16, 2021 4:25 pm

"trace" is an experimental feature.
It works only at the IP level for now, not for the G=O term.

Best,
D
Davide Sangalli, PhD
CNR-ISM, Division of Ultrafast Processes in Materials (FLASHit) and MaX Centre
https://sites.google.com/view/davidesangalli
http://www.max-centre.eu/

Xiaoming Wang
Posts: 67
Joined: Fri Dec 18, 2020 7:14 am

Re: Lkind="full"

Post by Xiaoming Wang » Wed Jul 21, 2021 4:00 am

Thanks Daniele and Davide for your help.

I tried Lkind=full option to calculate the exciton dispersion of LiF and it behaves well compared with that of Lkind=Lbar calculation (Figure 1).
Capture1.PNG
But for another another anisotropic system (layered bulk material), the correction at Q=0 point seems to be too small (Figure 2). There is a discontinuity between the first and second data points. The BLongDir was set to the same direction as the exciton dispersion direction Q (the x axis). I changed BLongDir but all three directions are very similar.
Capture.PNG
Also I'm confused why my exciton dispersion is not parabolic in the vicinity of Q=0 for Lbar calculations, which seems to be not physical.

My input is

Code: Select all

optics                           # [R] Linear Response optical properties
bss                              # [R] BSE solver
bse                              # [R][BSE] Bethe Salpeter Equation.
dipoles                          # [R] Oscillator strenghts (or dipoles)
NLogCPUs= 1                      # [PARALLEL] Live-timing CPU`s (0 for all)
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
BSEmod= "resonant"               # [BSE] resonant/retarded/coupling
BSKmod= "SEX"                    # [BSE] IP/Hartree/HF/ALDA/SEX/BSfxc
BSSmod= "s"                      # [BSS] (h)aydock/(d)iagonalization/(s)lepc/(i)nversion/(t)ddft`
BSENGexx= 5          Ry    # [BSK] Exchange components
BSENGBlk= 5                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
WehDiag
BSEprop= "abs"                   # [BSS] abs/kerr/magn/dichr trace
% BSEQptR
 1 | 1 |                             # [BSK] Transferred momenta range
%
% BSEBands
    557 | 564 |                       # [BSK] Bands range
%
% BEnRange
  0.00000 | 4.00000 |         eV    # [BSS] Energy range
%
% BDmRange
 0.100000 | 0.100000 |         eV    # [BSS] Damping range
%
BEnSteps= 1001                    # [BSS] Energy steps
% BLongDir
 1.000000 | 0.000000 | 0.000000 |        # [BSS] [cc] Electric Field
%
#WRbsWF                        # [BSS] Write to disk excitonic the WFs
BSSNEig=8                        # [SLEPC] Number of eigenvalues to compute
BSSEnTarget= 2.00000      eV    # [SLEPC] Target energy to find eigenvalues
BSSSlepcMaxIt=0                  # [SLEPC] Maximum number of iterations
% KfnQP_E
 1.300000 | 1.000000 | 1.000000 |        # [EXTQP Xd] E parameters  (c/v) eV|adim|adim
%
Lkind = "full"
And the log file is attached.
log.txt
Can you please help me figure out what's the problem?
You do not have the required permissions to view the files attached to this post.
Xiaoming Wang
The University of Toledo

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

Re: Lkind="full"

Post by Daniele Varsano » Wed Jul 21, 2021 8:59 am

Dear Xiaoming,

Indeed the dispersion you observe is strange.

Be sure you are looking at a continuous path.

A first test I would do is to consider the RIM algorithm to treat correctly the G=0 divergence, activate rim_cut (yambo -r) and consider something like:

Code: Select all

RandGvec= 1 RL
RandQpts= 2000000
Be sure that slepc algorithm do converge! Actually I do not know the effect of BSSEnTarget, you can try to diagonalise the matrix BSSmod= "d" if it is not too large.
Looking at your input BSENGexx= 5 Ry seems to be rather small cutoff.
Finally, consider that Tamm-Dancoff approximation can break down for finite q, you can try to see the results for BSEmod= "coupling".

Note that BLongDir does not affect the eigenvalues of the BSE.

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/

User avatar
Davide Sangalli
Posts: 614
Joined: Tue May 29, 2012 4:49 pm
Location: Via Salaria Km 29.3, CP 10, 00016, Monterotondo Stazione, Italy
Contact:

Re: Lkind="full"

Post by Davide Sangalli » Wed Jul 21, 2021 1:02 pm

Just a comment. In 2D, i.e. for a monolayer, you would get what you reported, i.e. no LT splitting at q=0 and linear disporsion in q for Lfull. Not sure why you get something similar in 3D.

For the Lbar dispersion, could it be parabolic a*q^2 with a very small a? It looks so.

Finally I see you ask for 8 eigenvalues close to 2.0 eV. Are you plotting the lowest energy exciton? Is it bright or dark? If it is dark there is no LT splitting.

Best,
D.
Davide Sangalli, PhD
CNR-ISM, Division of Ultrafast Processes in Materials (FLASHit) and MaX Centre
https://sites.google.com/view/davidesangalli
http://www.max-centre.eu/

Xiaoming Wang
Posts: 67
Joined: Fri Dec 18, 2020 7:14 am

Re: Lkind="full"

Post by Xiaoming Wang » Wed Jul 21, 2021 4:03 pm

Dear Daniele and Davide,

Thanks for all your comments and suggestions.

I am using a 16x16x1 k mesh for a orthorhombic unit cell, since the c axis is very long (~33Ang), I just used 1 kpoint. The k points from QE output are:

Code: Select all

               cryst. coord.
        k(    1) = (   0.0000000   0.0000000   0.0000000), wk =   0.0039062
        k(    2) = (   0.0000000   0.0625000   0.0000000), wk =   0.0078125
        k(    3) = (   0.0000000   0.1250000   0.0000000), wk =   0.0078125
        k(    4) = (   0.0000000   0.1875000   0.0000000), wk =   0.0078125
        k(    5) = (   0.0000000   0.2500000   0.0000000), wk =   0.0078125
        k(    6) = (   0.0000000   0.3125000   0.0000000), wk =   0.0078125
        k(    7) = (   0.0000000   0.3750000   0.0000000), wk =   0.0078125
        k(    8) = (   0.0000000   0.4375000   0.0000000), wk =   0.0078125
        k(    9) = (   0.0000000  -0.5000000   0.0000000), wk =   0.0039062
        k(   10) = (   0.0625000   0.0000000   0.0000000), wk =   0.0078125
        k(   11) = (   0.0625000   0.0625000   0.0000000), wk =   0.0078125
        k(   12) = (   0.0625000   0.1250000   0.0000000), wk =   0.0078125
        k(   13) = (   0.0625000   0.1875000   0.0000000), wk =   0.0078125
        k(   14) = (   0.0625000   0.2500000   0.0000000), wk =   0.0078125
        k(   15) = (   0.0625000   0.3125000   0.0000000), wk =   0.0078125
        k(   16) = (   0.0625000   0.3750000   0.0000000), wk =   0.0078125
        k(   17) = (   0.0625000   0.4375000   0.0000000), wk =   0.0078125
        k(   18) = (   0.0625000  -0.5000000   0.0000000), wk =   0.0078125
        k(   19) = (   0.1250000   0.0000000   0.0000000), wk =   0.0078125
        k(   20) = (   0.1250000   0.0625000   0.0000000), wk =   0.0078125
        k(   21) = (   0.1250000   0.1250000   0.0000000), wk =   0.0078125
        k(   22) = (   0.1250000   0.1875000   0.0000000), wk =   0.0078125
        k(   23) = (   0.1250000   0.2500000   0.0000000), wk =   0.0078125
        k(   24) = (   0.1250000   0.3125000   0.0000000), wk =   0.0078125
        k(   25) = (   0.1250000   0.3750000   0.0000000), wk =   0.0078125
        k(   26) = (   0.1250000   0.4375000   0.0000000), wk =   0.0078125
        k(   27) = (   0.1250000  -0.5000000   0.0000000), wk =   0.0078125
        k(   28) = (   0.1875000   0.0000000   0.0000000), wk =   0.0078125
        k(   29) = (   0.1875000   0.0625000   0.0000000), wk =   0.0078125
        k(   30) = (   0.1875000   0.1250000   0.0000000), wk =   0.0078125
        k(   31) = (   0.1875000   0.1875000   0.0000000), wk =   0.0078125
        k(   32) = (   0.1875000   0.2500000   0.0000000), wk =   0.0078125
        k(   33) = (   0.1875000   0.3125000   0.0000000), wk =   0.0078125
        k(   34) = (   0.1875000   0.3750000   0.0000000), wk =   0.0078125
        k(   35) = (   0.1875000   0.4375000   0.0000000), wk =   0.0078125
        k(   36) = (   0.1875000  -0.5000000   0.0000000), wk =   0.0078125
        k(   37) = (   0.2500000   0.0000000   0.0000000), wk =   0.0078125
        k(   38) = (   0.2500000   0.0625000   0.0000000), wk =   0.0078125
        k(   39) = (   0.2500000   0.1250000   0.0000000), wk =   0.0078125
        k(   40) = (   0.2500000   0.1875000   0.0000000), wk =   0.0078125
        k(   41) = (   0.2500000   0.2500000   0.0000000), wk =   0.0078125
        k(   42) = (   0.2500000   0.3125000   0.0000000), wk =   0.0078125
        k(   43) = (   0.2500000   0.3750000   0.0000000), wk =   0.0078125
        k(   44) = (   0.2500000   0.4375000   0.0000000), wk =   0.0078125
        k(   45) = (   0.2500000  -0.5000000   0.0000000), wk =   0.0078125
        k(   46) = (   0.3125000   0.0000000   0.0000000), wk =   0.0078125
        k(   47) = (   0.3125000   0.0625000   0.0000000), wk =   0.0078125
        k(   48) = (   0.3125000   0.1250000   0.0000000), wk =   0.0078125
        k(   49) = (   0.3125000   0.1875000   0.0000000), wk =   0.0078125
        k(   50) = (   0.3125000   0.2500000   0.0000000), wk =   0.0078125
        k(   51) = (   0.3125000   0.3125000   0.0000000), wk =   0.0078125
        k(   52) = (   0.3125000   0.3750000   0.0000000), wk =   0.0078125
        k(   53) = (   0.3125000   0.4375000   0.0000000), wk =   0.0078125
        k(   54) = (   0.3125000  -0.5000000   0.0000000), wk =   0.0078125
        k(   55) = (   0.3750000   0.0000000   0.0000000), wk =   0.0078125
        k(   56) = (   0.3750000   0.0625000   0.0000000), wk =   0.0078125
        k(   57) = (   0.3750000   0.1250000   0.0000000), wk =   0.0078125
        k(   58) = (   0.3750000   0.1875000   0.0000000), wk =   0.0078125
        k(   59) = (   0.3750000   0.2500000   0.0000000), wk =   0.0078125
        k(   60) = (   0.3750000   0.3125000   0.0000000), wk =   0.0078125
        k(   61) = (   0.3750000   0.3750000   0.0000000), wk =   0.0078125
        k(   62) = (   0.3750000   0.4375000   0.0000000), wk =   0.0078125
        k(   63) = (   0.3750000  -0.5000000   0.0000000), wk =   0.0078125
        k(   64) = (   0.4375000   0.0000000   0.0000000), wk =   0.0078125
        k(   65) = (   0.4375000   0.0625000   0.0000000), wk =   0.0078125
        k(   66) = (   0.4375000   0.1250000   0.0000000), wk =   0.0078125
        k(   67) = (   0.4375000   0.1875000   0.0000000), wk =   0.0078125
        k(   68) = (   0.4375000   0.2500000   0.0000000), wk =   0.0078125
        k(   69) = (   0.4375000   0.3125000   0.0000000), wk =   0.0078125
        k(   70) = (   0.4375000   0.3750000   0.0000000), wk =   0.0078125
        k(   71) = (   0.4375000   0.4375000   0.0000000), wk =   0.0078125
        k(   72) = (   0.4375000  -0.5000000   0.0000000), wk =   0.0078125
        k(   73) = (  -0.5000000   0.0000000   0.0000000), wk =   0.0039062
        k(   74) = (  -0.5000000   0.0625000   0.0000000), wk =   0.0078125
        k(   75) = (  -0.5000000   0.1250000   0.0000000), wk =   0.0078125
        k(   76) = (  -0.5000000   0.1875000   0.0000000), wk =   0.0078125
        k(   77) = (  -0.5000000   0.2500000   0.0000000), wk =   0.0078125
        k(   78) = (  -0.5000000   0.3125000   0.0000000), wk =   0.0078125
        k(   79) = (  -0.5000000   0.3750000   0.0000000), wk =   0.0078125
        k(   80) = (  -0.5000000   0.4375000   0.0000000), wk =   0.0078125
        k(   81) = (  -0.5000000  -0.5000000   0.0000000), wk =   0.0039062
        k(   82) = (  -0.0625000   0.0625000   0.0000000), wk =   0.0078125
        k(   83) = (  -0.0625000   0.1250000   0.0000000), wk =   0.0078125
        k(   84) = (  -0.0625000   0.1875000   0.0000000), wk =   0.0078125
        k(   85) = (  -0.0625000   0.2500000   0.0000000), wk =   0.0078125
        k(   86) = (  -0.0625000   0.3125000   0.0000000), wk =   0.0078125
        k(   87) = (  -0.0625000   0.3750000   0.0000000), wk =   0.0078125
        k(   88) = (  -0.0625000   0.4375000   0.0000000), wk =   0.0078125
        k(   89) = (  -0.1250000   0.0625000   0.0000000), wk =   0.0078125
        k(   90) = (  -0.1250000   0.1250000   0.0000000), wk =   0.0078125
        k(   91) = (  -0.1250000   0.1875000   0.0000000), wk =   0.0078125
        k(   92) = (  -0.1250000   0.2500000   0.0000000), wk =   0.0078125
        k(   93) = (  -0.1250000   0.3125000   0.0000000), wk =   0.0078125
        k(   94) = (  -0.1250000   0.3750000   0.0000000), wk =   0.0078125
        k(   95) = (  -0.1250000   0.4375000   0.0000000), wk =   0.0078125
        k(   96) = (  -0.1875000   0.0625000   0.0000000), wk =   0.0078125
        k(   97) = (  -0.1875000   0.1250000   0.0000000), wk =   0.0078125
        k(   98) = (  -0.1875000   0.1875000   0.0000000), wk =   0.0078125
        k(   99) = (  -0.1875000   0.2500000   0.0000000), wk =   0.0078125
        k(  100) = (  -0.1875000   0.3125000   0.0000000), wk =   0.0078125
        k(  101) = (  -0.1875000   0.3750000   0.0000000), wk =   0.0078125
        k(  102) = (  -0.1875000   0.4375000   0.0000000), wk =   0.0078125
        k(  103) = (  -0.2500000   0.0625000   0.0000000), wk =   0.0078125
        k(  104) = (  -0.2500000   0.1250000   0.0000000), wk =   0.0078125
        k(  105) = (  -0.2500000   0.1875000   0.0000000), wk =   0.0078125
        k(  106) = (  -0.2500000   0.2500000   0.0000000), wk =   0.0078125
        k(  107) = (  -0.2500000   0.3125000   0.0000000), wk =   0.0078125
        k(  108) = (  -0.2500000   0.3750000   0.0000000), wk =   0.0078125
        k(  109) = (  -0.2500000   0.4375000   0.0000000), wk =   0.0078125
        k(  110) = (  -0.3125000   0.0625000   0.0000000), wk =   0.0078125
        k(  111) = (  -0.3125000   0.1250000   0.0000000), wk =   0.0078125
        k(  112) = (  -0.3125000   0.1875000   0.0000000), wk =   0.0078125
        k(  113) = (  -0.3125000   0.2500000   0.0000000), wk =   0.0078125
        k(  114) = (  -0.3125000   0.3125000   0.0000000), wk =   0.0078125
        k(  115) = (  -0.3125000   0.3750000   0.0000000), wk =   0.0078125
        k(  116) = (  -0.3125000   0.4375000   0.0000000), wk =   0.0078125
        k(  117) = (  -0.3750000   0.0625000   0.0000000), wk =   0.0078125
        k(  118) = (  -0.3750000   0.1250000   0.0000000), wk =   0.0078125
        k(  119) = (  -0.3750000   0.1875000   0.0000000), wk =   0.0078125
        k(  120) = (  -0.3750000   0.2500000   0.0000000), wk =   0.0078125
        k(  121) = (  -0.3750000   0.3125000   0.0000000), wk =   0.0078125
        k(  122) = (  -0.3750000   0.3750000   0.0000000), wk =   0.0078125
        k(  123) = (  -0.3750000   0.4375000   0.0000000), wk =   0.0078125
        k(  124) = (  -0.4375000   0.0625000   0.0000000), wk =   0.0078125
        k(  125) = (  -0.4375000   0.1250000   0.0000000), wk =   0.0078125
        k(  126) = (  -0.4375000   0.1875000   0.0000000), wk =   0.0078125
        k(  127) = (  -0.4375000   0.2500000   0.0000000), wk =   0.0078125
        k(  128) = (  -0.4375000   0.3125000   0.0000000), wk =   0.0078125
        k(  129) = (  -0.4375000   0.3750000   0.0000000), wk =   0.0078125
        k(  130) = (  -0.4375000   0.4375000   0.0000000), wk =   0.0078125
For exciton dispersion calculation, I am using k points 1 10 19 28 37 46 55 64 73 along GX direction.

I tried RIM, it didn't change the shape of the curves but shift them up. I also tried BSSmod="d" which gives exact results as BSSmod="s". The BSENGexx=5 Ry is tested converged value, I tried BSENGexx = 10 Ry, the results are the same.

I attach the full 8 lowest exciton dispersion here.
Lbar.PNG
Lfull.PNG
The lowest exciton is dark, which is just kind of parabolic. I compared the dispersion with that calculated from VASP (only Lfull, note that the x axis of all the figures are extended to half the BZ).
vasp_lfull.png
The dispersion from VASP clearly shows parabolic and smooth.

Why the BSE eigenvalue doesn't depend on BLongDir? For Lfull calculations, the exchange kernel has something like 4 pi e^2 |D \cdot q|^2 / Omega, where D is exciton transition dipole moment and q is unit vector of light polarization. So for different exciton dispersion direction, there should be different |D \cdot q|^2, am I right? I guess for Yambo, it is Dx^2+Dy^2+Dz^2 ?

Even for 2D, one would get parabolic dispersion without using the Coulomb cutoff technique, right? I think only with Coulomb truncation can one get linear dispersions for 2D systems.

Of all the 8 excitons, only one is bright. Btw, I'm doing SOC calculations. Not sure if there is any special treat for yambo to deal with SOC case.
You do not have the required permissions to view the files attached to this post.
Xiaoming Wang
The University of Toledo

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

Re: Lkind="full"

Post by Daniele Varsano » Wed Jul 21, 2021 4:29 pm

Dear Xiamong,

Why the BSE eigenvalue doesn't depend on BLongDir? For Lfull calculations, the exchange kernel has something like 4 pi e^2 |D \cdot q|^2 / Omega, where D is exciton transition dipole moment and q is unit vector of light polarization. So for different exciton dispersion direction, there should be different |D \cdot q|^2, am I right? I guess for Yambo, it is Dx^2+Dy^2+Dz^2 ?
in the exchange part of the kernel you do not have the dipole moments: see eq. 10b here:
http://www.yambo-code.org/wiki/images/c ... et-5.0.pdf


Even for 2D, one would get parabolic dispersion without using the Coulomb cutoff technique, right? I think only with Coulomb truncation can one get linear dispersions for 2D systems.
I would say yes, you should have a parabolic dispersion at gamma, in 2D instead the linear dispersion of the second exciton comes from the 1/q behaviour of the coulomb potential.
Of all the 8 excitons, only one is bright. Btw, I'm doing SOC calculations. Not sure if there is any special treat for yambo to deal with SOC case.
No, soc calculation does not require any special treatment.

Actually I do not know what is going wrong here.
You can upload the report files for q=0 and for a case with q different from zero , we can have a look if there is something odd.

I had a look to your previous report, the only problem I spotted is:

Code: Select all

[WARNING]Wrong serial number for ./SCREEN//ndb.em1s
it seems that the screening was calculated for a different QE run, but if the code did not stop most probably it is compatible.



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/

Xiaoming Wang
Posts: 67
Joined: Fri Dec 18, 2020 7:14 am

Re: Lkind="full"

Post by Xiaoming Wang » Wed Jul 21, 2021 5:03 pm

Dear Daniele,

Thanks for your reply.

For the exchange kernel of finite Q
eq1.PNG
where
eq2.PNG
In the vicinity of Q=0 for the G=0 term, the Q^2 in the denominator would be cancelled out by the Q in u_{ck+Q} if using k dot p perturbation theory. Therefore the rho turns out to be the transition dipole moment. Isn't this the implementation of yambo?

I attach the reports files here.
report_q0.txt
You do not have the required permissions to view the files attached to this post.
Xiaoming Wang
The University of Toledo

Xiaoming Wang
Posts: 67
Joined: Fri Dec 18, 2020 7:14 am

Re: Lkind="full"

Post by Xiaoming Wang » Wed Jul 21, 2021 5:04 pm

report_q1.txt
You do not have the required permissions to view the files attached to this post.
Xiaoming Wang
The University of Toledo

Locked