Alkali

Alkali#

class Alkali(atomName)#

Bases: Atom

Alkali provides utilities for alkali atoms and D-line transitions.

This class extends the base Atom class to provide specialized functionality for alkali atoms. On construction, it automatically computes D1 and D2 manifolds, ground and excited state AtomManifold objects, and calculates key transition properties including cycling and repumper frequencies, saturation intensities, and absorption cross-sections. The class also provides methods for computing AC Stark shifts and polarizabilities in the large detuning limit.

Example:

% Create a lithium-7 atom and access its properties
li = Alkali("Lithium7");
cycFreq = li.CyclerFrequency;           % D2 cycling transition frequency [Hz]
Isat = li.CyclerSaturationIntensity;    % Saturation intensity [W/m^2]
crossSec = li.CyclerCrossSection;       % Absorption cross-section [m^2]

Notes:

The class follows Daniel Steck’s conventions for transition matrix elements and uses data from the ARC (Alkali Rydberg Calculator) Python package with custom modifications for improved accuracy.

Constructor Summary
Alkali(atomName)#

Construct an Alkali atom and compute D-line manifolds.

Creates an alkali atom object, initializes D1/D2 transition manifolds, ground and excited state manifolds, and computes cycling and repumper transition properties including frequencies, saturation intensities, and absorption cross-sections. All calculations are performed at zero magnetic field.

Parameters:

atomName (string) – Atom/isotope name recognized by ARC, e.g., “Lithium7”, “Rubidium87”

Property Summary
CyclerCrossSection double#

D2 cycling transition resonant absorption cross-section \(\sigma_0\) [m^2]

CyclerFrequency double#

D2 cycling transition frequency \(F_g^{\max} \rightarrow F_e^{\max}\) at zero field [Hz]

CyclerSaturationIntensity double#

D2 cycling transition saturation intensity \(I_{\text{sat}}\) [W/m^2]

CyclerSaturationIntensityLu double#

D2 cycling transition saturation intensity \(I_{\text{sat}}\) [mW/cm^2]

D1 TwoJManifold#

D1 line transition manifold: \(nS_{1/2} \leftrightarrow nP_{1/2}\) with combined ground/excited hyperfine structure

D1Excited OneJManifold#

D1 excited state manifold: \(nP_{1/2}\) with hyperfine structure \(F,M_F\)

D2 TwoJManifold#

D2 line transition manifold: \(nS_{1/2} \leftrightarrow nP_{3/2}\) with combined ground/excited hyperfine structure

D2Excited OneJManifold#

D2 excited state manifold: \(nP_{3/2}\) with hyperfine structure \(F,M_F\)

DGround OneJManifold#

Ground state manifold: \(nS_{1/2}\) with hyperfine structure \(F,M_F\)

RepumperCrossSection double#

D2 repumper transition resonant absorption cross-section \(\sigma_0\) [m^2]

RepumperFrequency double#

D2 repumper transition frequency \(F_g^{\max-1} \rightarrow F_e^{\max-1}\) at zero field [Hz]

RepumperSaturationIntensity double#

D2 repumper transition saturation intensity \(I_{\text{sat}}\) assuming \(\sigma^+\) polarization [W/m^2]

RepumperSaturationIntensityLu double#

D2 repumper transition saturation intensity \(I_{\text{sat}}\) [mW/cm^2]

Spinor1 OneFManifold#

Lower ground hyperfine manifold: \(nS_{1/2}, F = |I - J|\) with magnetic sublevels \(M_F\)

Spinor2 OneFManifold#

Upper ground hyperfine manifold: \(nS_{1/2}, F = I + J\) with magnetic sublevels \(M_F\)

Method Summary
AcStarkShiftLargeDetuning(laser, n, l, j, f, mF, qAxisAngle)#

Compute total AC Stark shift for a hyperfine state.

Calculates the complete AC Stark shift including scalar, vector, and tensor contributions for a given hyperfine state in the presence of a laser field. The calculation is valid in the large detuning limit where the detuning is much larger than the hyperfine splitting.

Parameters:
  • laser (Laser) – Laser object specifying field parameters

  • n (int32) – Principal quantum number

  • l (int32) – Orbital angular momentum quantum number

  • j (double) – Total electronic angular momentum quantum number

  • f (double) – Total hyperfine angular momentum quantum number

  • mF (double) – Magnetic sublevel quantum number

  • qAxisAngle (double(1,2), optional) – Quantization axis spherical angles \([\theta,\phi]\) [rad] (default: laser direction)

Returns:

Total AC Stark shift \(\Delta E\) [Hz]

Return type:

double

Notes:

The total shift is: \(\Delta E = \Delta E_0 + \Delta E_1 + \Delta E_2\) where \(\Delta E_0\) is the scalar shift, \(\Delta E_1\) is the vector shift proportional to \(M_F\), and \(\Delta E_2\) is the tensor shift proportional to \((3M_F^2 - F(F+1))\).

ScalarPolarizabilityLargeDetuning(fL, n, l, j)#

Compute scalar polarizability for large detuning limit.

Calculates the scalar polarizability \(\alpha_0\) in the limit where the laser detuning is much larger than the hyperfine splitting. Uses Steck’s formulation (Eq. 7.491) with contributions from both D1 and D2 transitions for ground states, and single-line contributions for excited states.

Parameters:
  • fL (double) – Laser frequency [Hz]

  • n (int32) – Principal quantum number

  • l (int32) – Orbital angular momentum quantum number

  • j (double) – Total electronic angular momentum quantum number

Returns:

Scalar polarizability \(\alpha_0\) [Hz/(V/m)^2]

Return type:

double

Notes:

The polarizability is computed using:

\[\alpha_0 = \frac{2}{3\hbar} \sum_e \frac{\omega_e |\langle g \| d \| e \rangle|^2}{\omega_e^2 - \omega_L^2}\]

where the sum runs over allowed electric dipole transitions.

TensorPolarizabilityLargeDetuning(fL, n, l, j, f)#

Compute tensor polarizability for large detuning limit.

Calculates the tensor polarizability \(\alpha_2\) in the limit where the laser detuning is much larger than the hyperfine splitting. Uses Steck’s formulation (Eq. 7.491) with Wigner 6j symbols. Returns zero for \(F=0\) or \(F=1/2\) states.

Parameters:
  • fL (double) – Laser frequency [Hz]

  • n (int32) – Principal quantum number

  • l (int32) – Orbital angular momentum quantum number

  • j (double) – Total electronic angular momentum quantum number

  • f (double) – Total hyperfine angular momentum quantum number

Returns:

Tensor polarizability \(\alpha_2\) [Hz/(V/m)^2]

Return type:

double

Notes:

The tensor polarizability contributes to quadratic Zeeman shifts proportional to \((3M_F^2 - F(F+1))\) and is responsible for differential light shifts between magnetic sublevels.

VectorPolarizabilityLargeDetuning(fL, n, l, j, f)#

Compute vector polarizability for large detuning limit.

Calculates the vector polarizability \(\alpha_1\) in the limit where the laser detuning is much larger than the hyperfine splitting. Uses Steck’s formulation (Eq. 7.491) with Wigner 6j symbols to account for hyperfine coupling. Returns zero for \(F=0\) states.

Parameters:
  • fL (double) – Laser frequency [Hz]

  • n (int32) – Principal quantum number

  • l (int32) – Orbital angular momentum quantum number

  • j (double) – Total electronic angular momentum quantum number

  • f (double) – Total hyperfine angular momentum quantum number

Returns:

Vector polarizability \(\alpha_1\) [Hz/(V/m)^2]

Return type:

double

Notes:

The vector polarizability contributes to Zeeman shifts proportional to \(M_F\) and couples electronic and nuclear angular momenta through the hyperfine interaction.

ZeemanShiftFactor(bias, n, l, j, f, mF)#
ZeemanShiftFactorHighField(n, l, j, f, mF)#
ZeemanShiftFactorLowField(n, l, j, f, mF)#