ndb.BS_diago_Q1

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

Locked
Yuan Pang
Posts: 17
Joined: Fri Mar 05, 2021 2:26 pm

ndb.BS_diago_Q1

Post by Yuan Pang » Tue Feb 22, 2022 3:04 am

Dear developers,

Can you give me a explanation about the variables meaning of BS_TABLE and BS_xxx_Residuals in the ndb.BS_diago_Q1.


Best,
Yuan
School of Physics, Shandong University
Jinan, CHINA

User avatar
palful
Posts: 60
Joined: Tue Jan 26, 2016 11:23 am
Location: Modena and Milan

Re: ndb.BS_diago_Q1

Post by palful » Tue Feb 22, 2022 10:34 am

Dear Yuan,

The residuals are the linear combination of the dipole matrix elements weighted by the component of the exciton wave function. In a standard calculation, the "right" residual is just the complex conjugate of the "left" residual, so that their product gives you intensity of the exciton peak in the absorption spectrum. (This is also the quantity printed under "strength" or "intensity" by ypp -e s).

In formulas we have:
formula2.png
Where \lambda is the exciton index and cvk the conduction-valence-kpoint indices of the single-particle transitions. A is the exciton weight coming from the BSE Hamiltonian eigenvector, d the dipole matrix element, and eps_2 the imaginary part of the dielectric function.

Now, A_cvk^\lambda = <\lambda | cvk > is also the coefficient which allows to pass from the single-particle basis to the exciton one. Normally "cvk" is grouped into a simpler "transition index" t, so that you have A_t^\lambda = <\lambda | t >. In order to decompose t in its single-particle components the variable BS_TABLE is used. For each t, BS_TABLE contains the indices of the kpoint, valence and conduction which correspond to that transition. This is an array with N_t elements, with the following ordering:
t -> [ k, v, c]
In newer versions of yambo, the table contains also the spin polarisation of the conduction and valence bands, as:
t -> [ k, v, c, s_c, s_v ]

If you want to read this quantities easily and know a bit of python, I suggest using yambopy. (How to install here).
With yambopy, you can read residuals and table easily, as in this example script:

Code: Select all

from yambopy import *

ns_db1='SAVE/ns.db1'
exc_db='bse/ndb.BS_diago_Q1'

ylat = YamboLatticeDB.from_db_file(filename=ns_db1)
yexc = YamboExcitonDB.from_db_file(ylat,filename=exc_db)

# BS_TABLE
print( yexc.table )

# Residuals
print( yexc.l_residual )
print( yexc.r_residual )

# Normalised intensity
print( yexc.get_intensities() )
Cheers,
Fulvio
You do not have the required permissions to view the files attached to this post.
Dr. Fulvio Paleari
S3-CNR Institute of Nanoscience and MaX Center
Modena, Italy

Yuan Pang
Posts: 17
Joined: Fri Mar 05, 2021 2:26 pm

Re: ndb.BS_diago_Q1

Post by Yuan Pang » Tue Feb 22, 2022 1:03 pm

Dear Fulvio,

Thanks for your prompt reply!
I got it now.


Best,
Yuan
School of Physics, Shandong University
Jinan, CHINA

Locked