AC Stark Maps#

The following classes provide methods for calculating AC Stark Maps for Rydberg manifolds using Floquet or other approximate methods.

Basis Generation#

class StarkBasisGenerator(atom)[source]#

Base class for determining the basis of the Rydberg manifold and associated properties.

Defines logic for determining the basis of states to include in a calculation and obtains the energy levels and dipole moments to build the Hamiltonian from the provided ARC atom.

This class should be inherited from to create a specific calculation.

Parameters

atom (arc.alkali_atom_functions.AlkaliAtom or arc.divalent_atom_functions.DivalentAtom) – ={ arc.alkali_atom_data.Lithium6, arc.alkali_atom_data.Lithium7, arc.alkali_atom_data.Sodium, arc.alkali_atom_data.Potassium39, arc.alkali_atom_data.Potassium40, arc.alkali_atom_data.Potassium41, arc.alkali_atom_data.Rubidium85, arc.alkali_atom_data.Rubidium87, arc.alkali_atom_data.Caesium, arc.divalent_atom_data.Strontium88, arc.divalent_atom_data.Calcium40 arc.divalent_atom_data.Ytterbium174 } Select the alkali metal for energy level diagram calculation

defineBasis(n, l, j, mj, q, nMin, nMax, maxL)

Initializes basis of states around state of interest

Attributes#

basisStates

List of basis states for calculation in the form [ [n,l,j,mj], ...].

H

Diagonal elements of Stark-matrix.

V

Off-diagonal elements of Stark-matrix divided by electric field value.

bareEnergies

bareEnergies is list of energies corresponding to basisStates.

Shirley’s Method#

class ShirleyMethod(atom)[source]#

Calculates Stark Maps for a single atom in a single oscillating field

Uses Shirley’s Time Independent Floquet Hamiltonian Method 1. More detail can be found in the review of Semiclassical Floquet Theories by Chu 2 and its application in Meyer et al 3.

For examples demonstrating basic usage see Shirley Method Examples.

Parameters

atom (arc.alkali_atom_functions.AlkaliAtom or arc.divalent_atom_functions.DivalentAtom) – ={ arc.alkali_atom_data.Lithium6, arc.alkali_atom_data.Lithium7, arc.alkali_atom_data.Sodium, arc.alkali_atom_data.Potassium39, arc.alkali_atom_data.Potassium40, arc.alkali_atom_data.Potassium41, arc.alkali_atom_data.Rubidium85, arc.alkali_atom_data.Rubidium87, arc.alkali_atom_data.Caesium, arc.divalent_atom_data.Strontium88, arc.divalent_atom_data.Calcium40 arc.divalent_atom_data.Ytterbium174 } Select the alkali metal for energy level diagram calculation

Examples

AC Stark Map calculation

>>> from arc import Rubidium85, ShirleyMethod
>>> calc = ShirleyMethod(Rubidium85())
>>> calc.defineBasis(56, 2, 2.5, 0.5, 0, 45, 70, 10)
>>> calc.defineShirleyHamiltonian(fn=1)
>>> calc.diagonalise(0.01, np.linspace(1.0e9, 40e9, 402))
>>> print(calc.targetShifts.shape)
(402,)

References

1

J. H. Shirley, Physical Review 138, B979 (1965) https://link.aps.org/doi/10.1103/PhysRev.138.B979

2

Shih-I Chu, “Recent Developments in Semiclassical Floquet Theories for Intense-Field Multiphoton Processes”, in Adv. At. Mol. Phys., vol. 21 (1985) http://www.sciencedirect.com/science/article/pii/S0065219908601438

3

D. H. Meyer, Z. A. Castillo, K. C. Cox, P. D. Kunz, J. Phys. B: At. Mol. Opt. Phys., 53, 034001 (2020) https://doi.org/10.1088/1361-6455/ab6051

Calculate#

defineBasis(n, l, j, mj, q, nMin, nMax, maxL)

Initializes basis of states around state of interest

defineShirleyHamiltonian(fn[, debugOutput])

Create the Shirley time-independent Floquet Hamiltonian.

diagonalise(eFields, freqs[, ...])

Finds atom eigenstates versus electric field and driving frequency

Attributes#

basisStates

List of basis states for calculation in the form [ [n,l,j,mj], ...].

H0

diagonal elements of Floquet-matrix (detuning of states) calculated by defineShirleyHamiltonian with units GHz relative to ionization energy.

B

off-diagonal elements of Floquet Hamiltonian.

dT

diagonal prefactors of frequency elements of Floquet Hamiltonian.

eFields

Saves electric field (in units of V/m) for which energy levels vs frequency are calculated

freqs

Saves frequency (in units of Hz) for which energy levels vs electric field are calculated

targetShifts

This is the shift of the target state relative to the zero field energy for an applied field of eField and freq.

eigs

Array of eigenValues corresponding to the energies of the atom states for the electric field eField at the frequency freq.

eigVectors

Array of eigenvectors corresponding to the eigenValues of the solve.

transProbs

Probability to transition from the target state to another state in the basis.

RWA Approximation#

class RWAStarkShift(atom)[source]#

Approximately calculates Stark Maps for a single atom in a single oscillating field

Assumes the rotating wave approximation applies independently for the field interaction with all possible dipole transitions. Approximation is generally reasonable for weak driving fields such that no more than a single resonance contributes significantly to the overall Stark shift. When field is far-detuned from all transitions, error tends to a factor of 2.

For an example of usage and comparison to other methods see RWAStarkShift Example.

Parameters

atom (AlkaliAtom) – ={ arc.alkali_atom_data.Lithium6, arc.alkali_atom_data.Lithium7, arc.alkali_atom_data.Sodium, arc.alkali_atom_data.Potassium39, arc.alkali_atom_data.Potassium40, arc.alkali_atom_data.Potassium41, arc.alkali_atom_data.Rubidium85, arc.alkali_atom_data.Rubidium87, arc.alkali_atom_data.Caesium } Select the alkali metal for energy level diagram calculation

Examples

Approximate AC Stark Map calculation

>>> from arc import Rubidium85, RWAStarkShift
>>> calc = RWAStarkShift(Rubidium85())
>>> calc.defineBasis(56, 2, 2.5, 0.5, 0, 45, 70, 10)
>>> calc.findDipoleCoupledStates()
>>> calc.makeRWA(0.01, np.linspace(1.0e9, 40e9, 402))
>>> print(calc.starkShifts.shape)
(402,)

Calculate#

defineBasis(n, l, j, mj, q, nMin, nMax, maxL)

Initializes basis of states around state of interest

findDipoleCoupledStates([debugOutput])

Finds the states in basisStates that directly couple to targetState via single photon electric dipole transitions.

makeRWA(efields, freqs[, maxRes, zip_inputs])

Calculates the total Rotating-Wave Approximation AC stark shift

Attributes#

basisStates

List of basis states for calculation in the form [ [n,l,j,mj], ...].

dipoleCoupledStates

List of basis states that are dipole coupled to the target state.

dipoleCoupledFreqs

Transition frequencies in Hz between targetState and dipoleCoupledStates.

starkShifts

Saves results of makeRWA caclulations.