## Exact meaning of Strength from sort_and_report

Anything regarding the post-processing utility (e.g. excitonic wavefunction analysis) is dealt with in this forum.

Moderators: Davide Sangalli, Daniele Varsano, andrea marini

Daniele Varsano
Posts: 2452
Joined: Tue Mar 17, 2009 2:23 pm
Contact:

### Re: Exact meaning of Strength from sort_and_report

it is not straightforward as the summation is done using linear algebra.
In /yambo/src/bse/K_diago_hermitian_residuals.F

you have the following loop.

Code: Select all

tmp_res = BSS_dipoles*sqrt(BSS_eh_f)
...
do i_eh=1,BSS_n_eig
!
if (.not.px%element_1D(i_eh)) cycle
!
BS_R_left(i_eh) =V_dot_V_omp(BS_H_dim,tmp_res,conjg(BS_mat(:,i_eh)))
BS_R_right(i_eh)=conjg(BS_R_left(i_eh))
!
if (trim(global_gauge)=="velocity") then
BS_R_left(i_eh) = BS_R_left(i_eh) *BS_E_real(i_eh)
BS_R_right(i_eh)= BS_R_right(i_eh)*BS_E_real(i_eh)
endif
!
call live_timing(steps=1)
!
enddo
where the eigenvector of the BSE are multiplied by the dipoles over all the transitions (bands and k points).
you can anyway make some checks with your script looking at:
/ypp/excitons/excitons_sort_and_report.F

where the strengths are calculated from the residuals by multplying with the BZ multiplication factor and 1/q0^2:

Code: Select all

Residuals(:) = real(BS_R(:)*conjg(BS_R(:)),SP)
...
Residuals(:) = Residuals(:)*real(spin_occ,SP)/(2._SP*pi)**3*d3k_factor*4._SP*pi/q0_def_norm**2*HA2EV

And maybe you need to pay attention if you have degenerate excitons as in this case all is summed up.
In order to avoid this you can set in your ypp input:

Code: Select all

Degen_Step=0. eV
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/

Posts: 3
Joined: Sun May 24, 2020 1:56 pm

### Re: Exact meaning of Strength from sort_and_report

Dear Daniele,

Thank you for your response. I have already eliminated the possible degenerate exciton problem by reducing the Degen_Step value.
I'm still having trouble calculating the exact oscillator strength values.

If I understand you well, I need to obtain the following arrays (neglecting the prefactor and the normalization factor);

BS_R_right(i) =\sum_k BS_mat(k,i) * conjg( BSS_dipoles(k) )
BS_R_left(i) = conjg( BS_R_right(i) )

I think they define the formula given in Equation 23 in the article 'yambo: An ab initio tool for excited state calculations';

\sum_i BS_R_right(i) * BS_R_left(i) = (\sum_v,c,k conj(<c|r|v>) * A(cv)_lambda) * (\sum_v',c',k' <c'|r|v'> * conj(A(c'v')_lambda))

Then, I would like to know how can I extract BS_R_left/right(i) arrays?
Previously, I thought I can obtain <c|r|v> and A(cv)_lambda values by ypp.
However, ypp gives excitonic weights; |A(cv)_lambda|^2.
Is it possible to obtain real and imaginary values of A(cv)_lambda for all transitions using ypp?

Otherwise how can I change the code so that the code writes BS_R_left/right(i) values?
ICFO-The Institute of Photonic Sciences
Barcelona-SPAIN

Daniele Varsano
Posts: 2452
Joined: Tue Mar 17, 2009 2:23 pm
Contact:

### Re: Exact meaning of Strength from sort_and_report

Is it possible to obtain real and imaginary values of A(cv)_lambda for all transitions using ypp?
You can add a write directive in the ypp source:
ypp/excitons/excitons_amplitudes.F

Code: Select all

77    do neh = 1,BS_H_dim
78      !
79      dip_factor=1._SP
80      !
81      !if(l_weight_with_dipoles) then
82       ikbz  = BSS_eh_table(neh,1)
83       iv    = BSS_eh_table(neh,2)
84       ic    = BSS_eh_table(neh,3)
85      !  i_spin= spin(BSS_eh_table(neh,:))
86      !  dip_factor=conjg(DIP_projected(ic,iv,ikbz,i_spin))*DIP_projected(ic,iv,ikbz,i_spin)
87      !endif
88      !
89      do i_l=BS_E_degs(i_l_grp),BS_E_degs(i_l_grp)+n_lambda_deg-1
90        A_weight(neh)=A_weight(neh)+BS_mat(neh,i_l)*conjg(BS_mat(neh,i_l))*dip_factor
--->.     write() i_lambda,ik,iv,iv, real(BS_mat(neh,i_l)), aimag(BS_mat(neh,i_l)
91      enddo
92      !
93    enddo
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/