nikolasibalic / ARC-Alkali-Rydberg-Calculator

Object-oriented Python library for computation of properties of highly-excited Rydbeg states of alkali and divalent atoms.
https://atomcalc.org
BSD 3-Clause "New" or "Revised" License
90 stars 78 forks source link

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

Closed johnny-sa closed 2 months ago

johnny-sa commented 3 months ago

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

Parameters for getFarleyWing

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