Page 1 of 1

Where is oscillator strength computed in Yambo

PostPosted: Tue Nov 14, 2017 1:35 am
by liuyuaustin
Hi developers,

I would like to use the term $\rho_{n,m}(k,q,G) = \braket{n k| e^{i(q+G)\cdot r}|m (k-q)}$
for some other computations. Can I find out if this term is computed directly in the code and whether
it is possible to write it as output?

Austin

Re: Where is oscillator strength computed in Yambo

PostPosted: Tue Nov 14, 2017 2:09 pm
by Davide Sangalli
Dear Austin,
the rho_{nmk}(q+G) are computed by the subroutine
Code: Select all
src/wf_and_fft/scatter_Bamp.F

which takes in input the indexes (n,i_k,i_symm,i_sp_pol) and (m,ip_k,ip_symm,ip_sp_pol)
The i_k index belongs to the IBZ, while i_symm index is the symmetry relating i_k to i_k_bz in the full BZ.
Same for ip_k, ip_symm and ip_k_bz.
The relation k_bz-kp_bz=q holds

For how scatter_Bamp is used see the subroutine
Code: Select all
src/pol_function/X_irredux_residuals.F


Best,
D.

Re: Where is oscillator strength computed in Yambo

PostPosted: Wed Nov 15, 2017 11:28 pm
by liuyuaustin
Thank you very much,
Austin

Re: Where is oscillator strength computed in Yambo

PostPosted: Wed Jan 03, 2018 8:31 am
by liuyuaustin
Dear developers,

I found this previous discussion on the computation of the oscillators and wanted to ask if it is still up to date. viewtopic.php?f=10&t=61

Thanks,
Austin

Re: Where is oscillator strength computed in Yambo

PostPosted: Wed Jan 03, 2018 10:51 am
by Davide Sangalli
Yes it is.
You may find just few minor technical changes in the source code due to optimization.

Best,
D.

Re: Where is oscillator strength computed in Yambo

PostPosted: Thu Feb 15, 2018 9:29 pm
by liuyuaustin
Dear developers,

I wanted to ask that it is appropriate to convert the ig index (e.g. in isc%rhotw(ig), where isc is of type elemental_collision in mod_collision_el.F) to the corresponding G-vector by
using the table g_vec(g_rot(is,ig),:) (as mentioned in the tutorial , and where i_s=i_k_s if the indices given to isc are isc%is = (/i_n,i_k,i_k_s,i_k_sp/), isc%os = (/i_np,i_kmq,i_kmq_s,i_kmq_sp/).

Thanks,
Austin

Re: Where is oscillator strength computed in Yambo

PostPosted: Fri Feb 16, 2018 1:06 am
by Davide Sangalli
Dear Austin,

when you want the oscillator strength in between (i_n,i_k) and (o_n,o_k) (band and k-point indexes)
yambo will compute in isc%rhotw(ig) for each g-vector. The corresponding g-vector would trivially be g_vec(ig,:)
This is all you need.

So why the grot in scatter_Bamp ... Some more explanation.
If you do a calculation without symmetries yambo just directly computes.
Remember you can always remove all the symmetries from the systems using ypp -y and uncommenting the flag RmAllSymm in the input.

Instead if you want to work with symmetries .. it is a bit more complicated.
The point is that now the k-points (i_k and o_k) maybe out of the IBZ and even out of the first BZ (since you reach o_k adding q to i_k),
so that you do not have the WFs. What yambo will do is to take the WFs of the corresponding k in the IBZ and rotate the to the BZ (WF_apply_symm)
However this is not all. if you are even out of the first-BZ there is even a shift of a G-vector to take into account.
Moreover isc%rhotw is evaluated for specific e^{i(G-G0} and one needs to keep track of all this symmetry operations.
This is where grot enters in place, rotating g according to the correct symmetry "i_qs".
Without some math it is very confused, but if you try you should be able to derive all the needed expressions.

D.

Re: Where is oscillator strength computed in Yambo

PostPosted: Mon Feb 19, 2018 10:07 pm
by liuyuaustin
Hi Davide,

Thanks for the reply, I will work through it again. I'd like to eventually use all symmetries to reduce the computational time but will work through it without symmetries as well.

Austin