# 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 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 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