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
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
In order to avoid this you can set in your ypp input:
Code: Select all
Degen_Step=0. eV
Daniele