Alkali atom functions

class AlkaliAtom(preferQuantumDefects=True, cpp_numerov=True)[source]

Implements general calculations for alkali atoms.

This abstract class implements general calculations methods.

Parameters
  • preferQuantumDefects (bool) – Use quantum defects for energy level calculations. If False, uses NIST ASD values where available. If True, uses quantum defects for energy calculations for principal quantum numbers equal or above minQuantumDefectN which is specified for each element separately. For principal quantum numbers below this value, NIST ASD values are used, since quantum defects don’t reproduce well low-lying states. Default is True.

  • cpp_numerov (bool) – should the wavefunction be calculated with Numerov algorithm implemented in C++; if False, it uses pure Python implementation that is much slower. Default is True.

Elementary properties

Methods

getPressure(temperature)

Vapour pressure (in Pa) at given temperature

getNumberDensity(temperature)

Atom number density at given temperature

getAverageInteratomicSpacing(temperature)

Returns average interatomic spacing in atomic vapour

getAverageSpeed(temperature)

Average (mean) speed at a given temperature

Attributes

I

Nuclear spin

Z

Atomic number

abundance

relative isotope abundance

elementName

Human-readable element name

groundStateN

principal quantum number for the ground state

extraLevels

levels that are for smaller principal quantum number (n) than ground level, but are above in energy due to angular part

mass

atomic mass in kg

meltingPoint

melting point of the element at standard conditions

Internal structure of atom states

Methods

corePotential(l, r)

core potential felt by valence electron

effectiveCharge(l, r)

effective charge of the core felt by valence electron

potential(l, s, j, r)

returns total potential that electron feels

radialWavefunction(l, s, j, stateEnergy, ...)

Radial part of electron wavefunction

Attributes

a1

Model potential parameters fitted from experimental observations for different l (electron angular momentum)

a2

Model potential parameters fitted from experimental observations for different l (electron angular momentum)

a3

Model potential parameters fitted from experimental observations for different l (electron angular momentum)

a4

Model potential parameters fitted from experimental observations for different l (electron angular momentum)

rc

Model potential parameters fitted from experimental observations for different l (electron angular momentum)

alphaC

Core polarizability

cpp_numerov

swich - should the wavefunction be calculated with Numerov algorithm implemented in C++

Energies of atom states

Methods

getEnergy(n, l, j[, s])

Energy of the level relative to the ionisation level (in eV)

getZeemanEnergyShift(l, j, mj, magneticFieldBz)

Retuns linear (paramagnetic) Zeeman shift.

getQuantumDefect(n, l, j[, s])

Quantum defect of the level.

breitRabi(n, l, j, B)

Returns exact Zeeman energies math:E_z for states \(\vert F,m_f\rangle\) in the \(\ell,j\) manifold via exact diagonalisation of the Zeeman interaction \(\mathcal{H}_z\) and the hyperfine interaction \(\mathcal{H}_\mathrm{hfs}\) given by equations

Attributes

gI

Nuclear g-factor

gL

Electron Orbital g-factor

hyperfineStructureData

file cotaining data on hyperfine structure (magnetic dipole A and magnetic quadrupole B constnats).

levelDataFromNIST

location of stored NIST values of measured energy levels in eV

sEnergy

state energies from NIST values sEnergy [n,l] = state energy for n, l, j = l-1/2 sEnergy [l,n] = state energy for j = l+1/2

quantumDefect

Contains list of modified Rydberg-Ritz coefficients for calculating quantum defects for [[ \(S_{1/2},P_{1/2},D_{3/2},F_{5/2}\)], [ \(S_{1/2},P_{3/2},D_{5/2},F_{7/2}\)]]."""

minQuantumDefectN

minimal quantum number for which quantum defects can be used; uses measured energy levels otherwise

Transitions between states

Methods

getDipoleMatrixElement(n1, l1, j1, mj1, n2, ...)

Dipole matrix element \(\langle n_1 l_1 j_1 m_{j_1} |e\mathbf{r}|\ n_2 l_2 j_2 m_{j_2}\rangle\) in units of \(a_0 e\)

getDipoleMatrixElementHFS(n1, l1, j1, f1, ...)

Dipole matrix element for hyperfine structure resolved transitions \(\langle n_1 l_1 j_1 f_1 m_{f_1} |e\mathbf{r}|\ n_2 l_2 j_2 f_2 m_{f_2}\rangle\) in units of \(a_0 e\)

getTransitionWavelength(n1, l1, j1, n2, l2, j2)

Calculated transition wavelength (in vacuum) in m.

getTransitionFrequency(n1, l1, j1, n2, l2, j2)

Calculated transition frequency in Hz

getRabiFrequency(n1, l1, j1, mj1, n2, l2, ...)

Returns a Rabi frequency for resonantly driven atom in a center of TEM00 mode of a driving field

getRabiFrequency2(n1, l1, j1, mj1, n2, l2, ...)

Returns a Rabi frequency for resonant excitation with a given electric field amplitude

getStateLifetime(n, l, j[, temperature, ...])

Returns the lifetime of the state (in s)

getTransitionRate(n1, l1, j1, n2, l2, j2[, ...])

Transition rate due to coupling to vacuum modes (black body included)

getReducedMatrixElementJ_asymmetric(n1, l1, ...)

Reduced matrix element in \(J\) basis, defined in asymmetric notation.

getReducedMatrixElementJ(n1, l1, j1, n2, l2, j2)

Reduced matrix element in \(J\) basis (symmetric notation)

getReducedMatrixElementL(n1, l1, j1, n2, l2, j2)

Reduced matrix element in \(L\) basis (symmetric notation)

getRadialMatrixElement(n1, l1, j1, n2, l2, j2)

Radial part of the dipole matrix element

getQuadrupoleMatrixElement(n1, l1, j1, n2, ...)

Radial part of the quadrupole matrix element

getC6term(n, l, j, n1, l1, j1, n2, l2, j2[, s])

C6 interaction term for the given two pair-states

getC3term(n, l, j, n1, l1, j1, n2, l2, j2[, s])

C3 interaction term for the given two pair-states

getEnergyDefect(n, l, j, n1, l1, j1, n2, l2, j2)

Energy defect for the given two pair-states (one of the state has two atoms in the same state)

getEnergyDefect2(n, l, j, nn, ll, jj, n1, ...)

Energy defect for the given two pair-states

updateDipoleMatrixElementsFile()

Updates the file with pre-calculated dipole matrix elements.

getRadialCoupling(n, l, j, n1, l1, j1[, s])

Returns radial part of the coupling between two states (dipole and quadrupole interactions only)

getLiteratureDME(n1, l1, j1, n2, l2, j2[, s])

Returns literature information on requested transition.

getSphericalMatrixElementHFStoFS(j1, f1, ...)

Spherical matrix element for transition from hyperfine resolved state to unresolved fine-structure state \(\langle f,m_f \vert\mu_q\vert j',m_j'\rangle\) in units of \(\langle j\vert\vert\mu\vert\vert j'\rangle\)

getDipoleMatrixElementHFStoFS(n1, l1, j1, ...)

Dipole matrix element for transition from hyperfine resolved state to unresolved fine-structure state \(\langle n_1 l_1 j_1 f_1 m_{f_1} |e\mathbf{r}|\ n_2 l_2 j_2 m_{j_2}\rangle\) in units of \(a_0 e\)

getMagneticDipoleMatrixElementHFS(l, j, f1, ...)

Magnetic dipole matrix element \(\langle f_1,m_{f_1} \vert \mu_q \vert f_2,m_{f_2}\rangle\) for transitions from \(\vert f_1,m_{f_1}\rangle\rightarrow\vert f_2,m_{f_2}\rangle\) within the same \(n,\ell,j\) state in units of \(\mu_B B_q\).

getHFSCoefficients(n, l, j[, s])

Returns hyperfine splitting coefficients for state \(n\), \(l\), \(j\).

getHFSEnergyShift(j, f, A[, B, s])

Energy shift of HFS from centre of mass \(\Delta E_\mathrm{hfs}\)

getBranchingRatio(jg, fg, mfg, je, fe, mfe)

Branching ratio for decay from \(\vert j_e,f_e,m_{f_e} \rangle \rightarrow \vert j_g,f_g,m_{f_g}\rangle\)

getSaturationIntensity(ng, lg, jg, fg, mfg, ...)

Saturation Intensity \(I_\mathrm{sat}\) for transition \(\vert j_g,f_g,m_{f_g}\rangle\rightarrow\vert j_e,f_e,m_{f_e}\rangle\) in units of \(\mathrm{W}/\mathrm{m}^2\).

getSaturationIntensityIsotropic(ng, lg, jg, ...)

Isotropic Saturation Intensity \(I_\mathrm{sat}\) for transition \(f_g\rightarrow f_e\) averaged over all polarisations in units of \(\mathrm{W}/\mathrm{m}^2\).

groundStateRamanTransition(Pa, wa, qa, Pb, ...)

Returns two-photon Rabi frequency \(\Omega_R\), differential AC Stark shift \(\Delta_\mathrm{AC}\) and probability to scatter a photon during a \(\pi\)-pulse \(P_\mathrm{sc}\) for two-photon ground-state Raman transitions from \(\vert f_g,m_{f_g}\rangle\rightarrow\vert nL_{j_r} j_r,m_{j_r}\rangle\) via an intermediate excited state \(n_e,\ell_e,j_e\).

twoPhotonRydbergExcitation(Pp, wp, qp, Pc, ...)

Returns two-photon Rabi frequency \(\Omega_R\), ground AC Stark shift \(\Delta_{\mathrm{AC}_g}\), Rydberg state AC Stark shift \(\Delta_{\mathrm{AC}_r}\) and probability to scatter a photon during a \(\pi\)-pulse \(P_\mathrm{sc}\) for two-photon excitation from \(\vert f_h,m_{f_g}\rangle\rightarrow \vert j_r,m_{j_r}\rangle\) via intermediate excited state

getLandegj(l, j[, s])

Lande g-factor \(g_J\simeq 1+\frac{j(j+1)+s(s+1)-l(l+1)}{2j(j+1)}\)

getLandegjExact(l, j[, s])

Lande g-factor \(g_J=g_L\frac{j(j+1)-s(s+1)+l(l+1)}{2j(j+1)}+g_S\frac{j(j+1)+s(s+1)-l(l+1)}{2j(j+1)}\)

getLandegf(l, j, f[, s])

Lande g-factor \(g_F\simeq g_J\frac{f(f+1)-I(I+1)+j(j+1)}{2f(f+1)}\)

getLandegfExact(l, j, f[, s])

Lande g-factor \(g_F\) \(g_F=g_J\frac{f(f+1)-I(I+1)+j(j+1)}{2f(f+1)}+g_I\frac{f(f+1)+I(I+1)-j(j+1)}{2f(f+1)}\)

breitRabi(n, l, j, B)

Returns exact Zeeman energies math:E_z for states \(\vert F,m_f\rangle\) in the \(\ell,j\) manifold via exact diagonalisation of the Zeeman interaction \(\mathcal{H}_z\) and the hyperfine interaction \(\mathcal{H}_\mathrm{hfs}\) given by equations

Attributes

literatureDMEfilename

Filename of the additional literature source values of dipole matrix elements.

dipoleMatrixElementFile

location of hard-disk stored dipole matrix elements

quadrupoleMatrixElementFile

location of hard-disk stored dipole matrix elements