Closed dehond closed 1 year ago
Hi @dehond
Many thanks for opening this issue. Your argument makes sense to me. Do you want to fork repo, apply fix open then a PR with a fix? You already found everything that needs to be updated. I would then review and merge ASAP.
Many thanks, Nikola
Thanks for reading my issue, @nikolasibalic! I'll have a look and try to file a PR soon 🙂.
I was working my way through how ARC calculates and adds different contributions to the polarizability, and got confused by an apparent inconsistency in how the dynamical terms and ponderomotive term are added.
The docstring of the
getPolarizability
method suggests that the ponderomotive term $\alpha_p$ is calculated such that $\alpha_p E^2/2$ is the ponderomotive shift. This term is typically positive, since an oscillatory electric field performs work on a free electron. Therefore $\alpha_p$ should be positive, which it is when I calculate it.When calculating the scalar polarizabilities of the ground state, ARC also returns polarizabilities with signs I would think are appropriate. Here's an example snippet:
This nets a scalar polarizability of +2130 and a ponderomotive polarizability of +174. So far so good, since the convention for the scalar shift usually is $-\alpha_s E^2/4$ [see e.g. Eq. (17) in Le Kien et al.], so a positive scalar polarizability results in a negative shift with increasing fields.
The problem arises when taking both terms into account simultaneously, for instance in
plotPolarizability
. When doing so, the ponderomotive and dynamic polarizabilities are added together which seems to be inconsistent. This is in particular confusing when calculating the light shifts of high-lying alkali Rydberg states ($n > 30$) in light fields that are red-detuned with respect to the $D$-lines. At these wavelengths, an intense light field repels these states, both because the dynamical AC Stark shift and the ponderomotive shift are positive. The way the two are summed together inplotPolarizability
currently doesn't seem to reflect this (see the relevant line here).As a side note: in the description of return parameters, the docstring for
getPolarizability
seems to swap the ponderomotive and core polarizability in its return list (compare the docstring with the return statement). It is listed correctly right at the start of the docstring.