Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementation of Black-body radiation shift to atomic state #172

Merged
merged 4 commits into from
Aug 3, 2024

Conversation

johnny-sa
Copy link

Description

This adds two new methods to the arc package, getBBRshift and getFarleyWing. The former calculates the BBR shift (Dynamic AC Stark shift) in hertz for an atomic state that is bathed in black-body radiation from a source at temperature, T. The latter is a function used in calculating the shift.

Method

The code sums over all possible dipole transitions to calculate the total contribution to the BBR shift [1][2]

$\Delta E_{i} = -\frac{1}{6\pi^{2}\epsilon_{0}c^{3}}\bigg(\frac{k_{B}T}{\hbar}\bigg)^{3}\Sigma_{j}\mu_{ij}\mathcal{F}\bigg(\frac{\hbar\omega_{ij}}{k_{B}T}\bigg)$

(Equation (17) from [1]) where $\mu_{ij}$ is the radial matrix element between state i and j. $\mathcal{F}$ is the Farley-Wing Function which is defined as

$\mathcal{F}(y) = -2yP\int^{\infty}_{0} dx \frac{x^{3}}{(x^{2}-y^{2})(e^{x}-1)}$

where $P$ is the Cuachy principal value. This integral is evaluated using an expression from [3].

$\mathcal{F}(y) = \pi^{2}y/3 - 2y^{3}\rm{Re}[\Phi(iy)] $

where

$\Phi(z) = \frac{1}{2}\big[\rm{ln}(\frac{z}{2\pi}) - \frac{\pi}{z} - \psi(\frac{z}{2\pi})\big]$.

$\psi$ is the digamma function which is evaluated using mpmath.

Parameters for getBBRshift

  • n, l, j quantum numbers of the state of interest
  • temperature temperature of thermal bath
  • includeLevelsUpTo is the number of dipole transitions with some $n$ that is included in the sum

Parameters for getFarleyWing

  • n1, l1, j1 quantum number for the state for which we are calculating the BBR shift
  • n2, l2, j2 quantum number for the state that contributes to the total shift
    • temperature temperature of thermal bath

Example

### Shift to an atomic state in different species

print('Cs Shift of 20D5/2 State at 300 K:', Cesium().getBBRshift(20,2,2.5,includeLevelsUpTo=70,temperature=300),'\n')

print('Rb Shift of 30P1/2 State at 77 K:', Rubidium().getBBRshift(30,1,0.5,includeLevelsUpTo=70,temperature=77))
print('Rb Shift of 30P3/2 State at 77 K:', Rubidium().getBBRshift(30,1,1.5,includeLevelsUpTo=70,temperature=77),'\n')`

Cs Shift of 20D5/2 State at 300 K: 2591.662237815993

Rb Shift of 30P1/2 State at 77 K: 201.91889209461314
Rb Shift of 30P3/2 State at 77 K: 204.5175630891436

### Compare to Literature (Table 7 in [1])

ns = np.array([6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,25,30])

print('Cs BBR Shifts at 300 K for nS States', '\n')

print(r'n,  n*,  freq shift (Hz)')

for i in ns:

    print(i,'%s' % float('%.5g' % (i-Cesium().getQuantumDefect(i,0,0.5))),'%s' % float('%.4g' % Cesium().getBBRshift(i,0,0.5,includeLevelsUpTo=70,temperature=300)) )

Cs BBR Shifts at 300 K for nS States

n, n*, freq shift (Hz)
6 1.8692 -3.332
7 2.9199 -58.81
8 3.9344 -476.7
9 4.9405 -291.0
10 5.9437 1210.0
11 6.9456 2178.0
12 7.9468 2601.0
13 8.9476 2767.0
14 9.9482 2814.0
15 10.949 2807.0
16 11.949 2778.0
17 12.949 2742.0
18 13.949 2704.0
19 14.95 2669.0
20 15.95 2636.0
25 20.95 2521.0
30 25.95 2459.0

References:
[1] - Farley, John W., and William H. Wing. Physical Review A 23.5 (1981): 2397 doi = {10.1103/PhysRevA.23.2397}
[2] - Norrgard, Eric B., et al. "Quantum blackbody thermometry." New Journal of Physics 23.3 (2021): 033037.
[3] - A.A. Kamenski et al 2019 Quantum Electron. 49 464, DOI:10.1070/QEL17000

Degeneracy terms were wrong - it is now fixed.
Removed debug code
Farley Wing implementation for BBR shift
@nikolasibalic nikolasibalic self-requested a review July 8, 2024 05:54
@nikolasibalic nikolasibalic added this to the v3.6.0 milestone Jul 8, 2024
@nikolasibalic nikolasibalic changed the base branch from master to draft_v3.6.0 August 3, 2024 12:29
@nikolasibalic nikolasibalic merged commit 6b32827 into nikolasibalic:draft_v3.6.0 Aug 3, 2024
9 of 10 checks passed
@nikolasibalic nikolasibalic mentioned this pull request Aug 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants