Abstract
We present a Python object-oriented computer program for simulating various aspects of laser cooling physics. Our software is designed to be both easy to use and adaptable, allowing the user to specify the level structure, magnetic field profile, or the laser beams’ geometry, detuning, and intensity. The program contains three levels of approximation for the motion of the atom, applicable in different regimes offering cross checks for calculations and computational efficiency depending on the physical situation. We test the software by reproducing well-known phenomena, such as damped Rabi flopping, electromagnetically induced transparency, stimulated Raman adiabatic passage, and optical molasses. We also use our software package to quantitatively simulate recoil-limited magneto-optical traps, like those formed on the narrow 1S0 → 3P1 transition in 88Sr and 87Sr.
Keywords: atomic physics, laser cooling, Python
1. Introduction
Laser cooling is ubiquitous in modern atomic physics. Cooling, trapping, and manipulating atoms has led to advances in clocks [1–3], inertial sensors [4–6], magnetometers [7, 8], emerging quantum technologies [9, 10], and tests of fundamental symmetries [11–13]. On its surface, laser cooling appears straightforward, with well-known models that qualitatively describe its essential features, like magneto-optical trapping [14, 15] and Doppler [16] and sub-Doppler cooling [17]. As progress is made toward deploying laser-cooled atoms in photonically integrated packages [18], modelling is required in order to optimize design parameters and understand engineering tolerances. At the same time, progress is being made on theoretically understanding new techniques of laser cooling [19]. For both of these applications, a suite of simple-to-use software capable of simulating the full description of laser cooling, including complicated level structures and complex trapping geometries, is still lacking.
For example, consider a 23Na atom in a standard, six-beam magneto-optical trap (MOT) [20]. The trap consists of a spherical quadrupole magnetic field and six independent laser beams with two frequency components that drive transitions between 28 different Zeeman states. The dynamics of a 23Na atom in a MOT are well-described by the optical Bloch equations (OBE), a comprehensive framework that models classical fields coupled to non-interacting atoms and includes internal state coherences. The OBEs constitute a total of 282 = 784 coupled, first-order, time and position dependent differential equations for the atom’s internal states (plus an additional 6 differential equations to account for its classical motion). Automatically generating and efficiently solving the OBEs for an arbitrary combination of atomic species, laser fields and magnetic fields is a necessity for theoretically quantifying the quality of different kinds of traps.
We introduce an open-source,Python-based program that computes the movement of atoms or molecules with complex level structures in arbitrary optical (laser) and magnetic fields. The pylcp package allows multiple levels of approximation from the complete OBEs through to a simple heuristic model. Like other quantum dynamics packages [21–25], pylcp can solve the optical Bloch equations, but it focuses on simulating the laser cooling of atoms and molecules. Importantly, for the user’s given laser geometry, atomic level structure, and magnetic field configuration, our code automatically generates the governing equations for the atom. We leverage existing Python packages to both integrate the resulting equations and analyze their output. Our program is object-oriented, allowing simple extensions to include additional types of laser beams and magnetic fields, along with different atomic and molecular Hamiltonians. The source code and documentation for pylcp are freely available online [26, 27], with stable releases distributed via the Python package index (PyPI).
The remainder of this paper is organized as follows. In Sec. 2, we present the governing equations included in the pylcp package. We start with the OBEs, then present approximations that result in the rate equations and further approximations that result in a heuristic model. In each derivation, we focus on the elements that are important for its efficient programming. In Sec. 3, we present several tests of the code against textbook examples and find quantitative agreement with well-known results. We also use our software package to calculate properties of more exotic MOTs, including those formed on the narrow 1S0 →3P1 transition of 88Sr and 87Sr.
2. The governing equations
2.1. The optical Bloch equations
Our derivation for the OBEs follows those in Refs. [28–30], which can be consulted for further detail. We consider the generic problem of coupling N quantum states together in arbitrary optical and magnetic fields. We group the states into manifolds: a collection of states that are degenerate or nearly degenerate, e.g., the hyperfine states of the 2S 1/2 state of an alkali atom or the ro-vibrational states of a molecule. We denote the ith state and its manifold index n by |i, n〉. The manifolds are useful both for defining appropriate rotating frames and for applying the rotating wave approximation.
The full Hamiltonian is given by
| (1) |
The atomic operators and are the electric and magnetic dipole operators, respectively1. The field component of the Hamiltonian is given by
| (2) |
where is the electric field operator, is the magnetic field operator, ϵ0 is the vacuum permittivity, and μ0 is the vacuum permeability. The atomic Hamiltonian is
| (3) |
where describes the atom’s internal structure, P is its momentum, and M is its mass. In general, has the form
| (4) |
where and ωn is the offset frequency of the nth manifold. Hn is a matrix that need not be diagonal. Manifolds are connected only through the component of the Hamiltonian; and only act on the subspace of each manifold.
Our goal is to find the evolution of the expectation values of the density operators . (We suppress the manifold index when it is not relevant.) In the Heisenberg picture, an operator evolves as
| (5) |
If the fields were treated classically, this equation would have to be amended in order to take into account decays. Instead, if we keep the fields quantized, derive the equations of motion, and then apply appropriate radiation reaction approximations, we can derive the full OBEs with decay included from (5). The magnetic field B is assumed to be a classical field; we will not consider quantizing it. We must pay special focus to the electric field E, however, for it both shifts the internal Hamiltonian when transformed into the necessary rotating frame(s) and creates the necessary decay channels.
For the electric field, E could be comprised of multiple modes. We group those modes by the n → m transitions they drive between manifolds n and m. For each manifold pair, we extract a carrier frequency ωn→m. Thus, the electric field of the mode driving n → m is
| (6) |
Here, represents a destruction operator of the mode n → m. We note that can itself be time-dependent and include additional sub-modes with frequencies , but these are assumed to be captured by the time dependence of .
We similarly expand the dipole operator
| (7) |
Here, and is the dipole matrix operator between the two manifolds n and m with m being larger in energy than n. We further define the complex conjugate , where we have reversed only the specific indices of the state2. In general, dnm is a vector of matrices. We choose to express this vector in the spherical basis, with vector elements . The individual matrix elements are dependent on reduced matrix elements and Clebsch-Gordan coefficients that determine the transitions between manifolds n and m. We will not consider any specific form of , but instead focus on deriving the OBEs for any generic dnm.
To determine the decays, we must apply a radiation reaction approximation. Classically, the radiation reaction field is
| (8) |
The dipole moment d will oscillate with all frequency components contained in the drive. Thus, for each frequency mode, we must take d to have an oscillation and the total electric field operator becomes
| (9) |
where is the operator on the classical field. The two density operators each contribute their preferred rotation, yielding the total oscillation of . We then note that for each manifold, any additional frequency component , so the wavevector is assumed to be the same for the entire manifold, making
| (10) |
where . It is now interesting to note the commutation relationships. Clearly the ρij operators must commute with all , as they are different physical observables. On the other hand, given that ρij does not commute with the second term in (10), it must also not commute with the classical field operator .
For each manifold, we will assume that all states in that manifold rotate at a preferred frequency . We choose the such that their differences for all combinations of n and m. This choice places each manifold into an appropriate rotating frame. Under this transformation of the state vectors, the internal Hamiltonian becomes
| (11) |
where we define , incorporating the shift into the rotating frame into the internal Hamiltonian. We also define . Making the rotating wave approximation (neglecting terms oscillating at optical frequencies), we find, keeping only energy conserving terms,
| (12) |
Note that because E commutes with ρij, we can place the operators in any order. We have chosen normal order: the first operator to apply to the wavefunction is the destruction operator of either the atom or the field and the second operator is creation operator. This operator ordering is required for the radiation reaction approximation to produce the correct decay rate Γ [31, 32].
It is instructive to consider two examples of this construction of the rotating frame(s). Consider first a standard two level system, with indices i = g and j = e and energies ωg = 0 and ωe, being driven by a single electric field with frequency ω. Assume the states rotate at preferred frequencies defined by and . Then the detuning on the Hamiltonian, and . The total detuning of the laser from the excited state is then given by . In this way, we can split the detuning between lasers and Hamiltonian in whichever way yields best computational efficiency for the problem at hand.
Next, consider a three manifold Λ-system with a single state in each manifold. Let us label the manifolds as g, r and e in order of overall energy, and drop the unnecessary substate subscripts. We address this system with two lasers, one tuned closely to g → e with frequency ωg→e and the other tuned closely to r → e with frequency ωr→e. We now choose , and the relevant detunings are then
| (13) |
| (14) |
| (15) |
| (16) |
| (17) |
By choosing and , one recovers the textbook example of the three level system with detunings appearing entirely on the Hamiltonian. As with the two level system above, one can split the detunings between lasers and Hamiltonian in whichever way yields best computational efficiency for the problem at hand.
Ref. [30] uses a choice of rotating frame that is equivalent to having one rotating frame per set of degenerate levels at zero field. This choice is conceptually easier to understand and potentially computationally advantageous, as it eliminates many high-frequency oscillations in the Hamiltonian. However, its construction has disadvantages as well, most notably not being able to include non-linear Zeeman couplings between different zero-field degenerate states. Nevertheless, between pylcp and the construction of Ref. [30], the largest difference appears to be the inclusion of oscillatory terms in the decay between excited states and ground states. Those terms are neglected here, as they are related to the frequency differences between different rotating frames, which, in our construction, is assumed to be large.
The choice of rotating frame(s) is left to the user, who determines the number of manifolds to use and provides the matrices that define the Hamiltonian for each manifold and their interactions with other manifolds. Which frame to use depends on a variety of factors, including desired accuracy, numerical efficiency, validity of any approximations in the Hamiltonian, and effects to be modelled. For example, encoding a Λ-system with two hyperfine ground states (here, |1〉 and |2〉) coupled via two different lasers through a single excited state (here |3〉) as a three-manifold system will exclude the possibility of cross-excitation (i.e., the laser driving |2〉 → |3〉 off-resonantly exciting |1〉 → |2〉). To capture such cross excitation, the system must instead be encoded as a two-manifold system. The magnitude of the external fields applied may also dictate the choice of rotating frame. For example, the choice of Ref. [30] can be advantageous for molecule simulations where the induced Zeeman shifts are small relative to the zero-field hyperfine spacing.
Before applying the radiation reaction approximation, we must first find the equations of motion. Inserting (12) into (5), and using , where δij is the Kronecker delta function,
| (18) |
Once again, we have maintained normal operator order. Taking the expectation value of (18) and focusing on the real part of evolution results in
| (19) |
where . This equation defines the decay in terms of the dnm matrices. pylcp represents the decay evolution as a matrix equation, , where ρ is a flattened vector of the expectation values of all ρij The contribution of each dipole operator connecting two manifolds is calculated separately; namely, where is calculated using (19) from dnm.
The remaining part of the operator is the imaginary component, which describes the coherences between the quantum states of different manifolds. The imaginary component is proportional to . We use the result , where is the classical field. When computing the expectation value of the classical field with this identity, the only operators that remain in (18) are the density operators. Therefore, we can compute the evolution due to the classical electric field in the same manner as that of the classical magnetic field.
To calculate imaginary part of the evolution due to all fields and , we insert and the full into (5), using the classical field values for B and E. This insertion naturally includes the imaginary part of (18). Computing the expectation value, (5) becomes a matrix equation, where the individual elements are given by
| (20) |
where is the expectation value of the Hamiltonian. Because the classical fields (i.e, the expectation value of the classical field operators) commute with the atomic density operators, we split the evolution between Hint, μn, and dnm, calculating the commutator for each separately. As with Γ, pylcp represents (20) as a matrix equation , where the corresponding elements of the matrix are calculated from (20) using the substitution . Likewise, matrices , and are calculated for the evolution due to , and , respectively.
The full evolution is then given by
| (21) |
Because commutators are computationally intensive, the matrices , and are only calculated once when the OBEs are initially generated and therefore cannot be time dependent. The OBEs are symmetric under population exchange, i.e., . Optionally, pylcp takes advantage of this symmetry to transform the matrices , and into evolution for the real and imaginary parts of ρij, reducing the effective number of coupled, first order differential by a factor of two and increasing computational speed.
The particle’s semiclassical motion can be calculated through
| (22) |
where r is the position of the atom or molecule, M is its mass, and a is a constant acceleration (typically gravity). The motion is also impacted by the momentum diffusion tensor, , where the i and j indices here represent spatial coordinates and P is the momentum of the atom. Evaluation of the momentum diffusion tensor is a complicated calculation that involves multiple commutators of the dnm operators. The result can be broken into two components: one component that depends on the history of the force applied (the stimulated emission component) and one that depends on the instantaneous populations of the excited states (the spontaneous emission component). We neglect the former and generalize the result of Ref. [28] for the latter, so
| (23) |
where is the decay rate of state i out of manifold m into lower manifold n ( is the appropriate diagonal element of the matrix). (We neglect the small directional dependence evaluated in Ref. [29].) To simulate the effect of the momentum diffusion tensor, pylcp uses a Monte-Carlo method. During integration of the atomic motion, the decay probability in a time step Δt is calculated to be . A pseudo-random number generator then generates a random number p, which is uniformly distributed on the interval (0, 1]. If , two randomly directed momentum kicks of 2ℏk are delivered to the atom in order to reproduce the diffusion (23). The integrator used has an adaptive time step, but it is constrained such that by default, minimizing the probability of multiple scattering events per time step.
2.1.1. Representation of the Hamiltonian
With the basis states |i, n〉 arranged in a vector by increasing state and manifold number, the Hamiltonian becomes a Nm×Nm matrix of submatrices, where Nm is the number of manifolds. In pylcp, we represent this Hamiltonian as a series of blocks Using labels i = g, e for the two extreme manifolds, the Hamiltonian blocks look like
| (24) |
where each element in the matrix Hg, He, etc. is itself a matrix. With this structure, the term μn · B is the field dependent term that mixes states within a given manifold m and dmn · Emn is the field dependent term that couples states of manifolds m and n.
To specify the Hamiltonian, the user provides the requisite Hn, μn, and dnm and combines them together in the hamiltonian class. The class stores the block structure of the Hamiltonian, and also contains methods useful for its manipulation. Because the dnm components can create photons, the user can specify the associated k and Γ with each dnm. The vectors μ and d are represented in spherical polar coordinates, allowing for easy translation into σ± circular polarization and π polarizations. For these vectors, we denote the component q = ±1, 0 as dq.
2.1.2. Fields
The electric field for an individual laser, labeled by l, is assumed to have the form
| (25) |
where the complex conjugate term is neglected by the rotating wave approximation. The user specifies all components of the laser field: the polarization vector , the amplitude El(r, t) (defined through the saturation intensity sl(r, t)), the kl(r, t) vector, the average detuning between the rotating frame and optical frequency Δl(t), and any potential phase modulation of the laser beam ϕl(t) in the laserBeam class. Each of these quantities may be constant or a function of the position r or time t. Laser beams are collected together into laserBeams objects by which manifold transition they address. If there are multiple manifold transitions, a Python dictionary should be made that is indexed by the manifold labels, e.g. g → e. Finally, the magnetic field B(r, t) can be specified simply as a user-defined function of position r and/or time t.
2.1.3. Units
For pylcp, ℏ = 1 so that angular frequencies and energies are equivalent. Thus, the user specifies , rather than . For other quantities, we specifically separate out the units, with dimensionless numbers denoted with a bar. For example, a position x is related to its dimensionless counterpart through , where x0 is the unit of x. When forming a complete Hamiltonian using the hamiltonian class, the user has the ability to set the units by specifying base units of length x0, time t0, magnetic field B0 and mass m.
To understand the units associated with d · E, let us briefly consider a two level system. The excited state decay rate is given by . We define a normalized , where . With this definition, . For the electric field, we use the on-resonant, two-level saturation parameter , where γ = Γ/2 to define the natural units for E. Inverting, we find that , so . We note that this definition of the saturation parameter is consistent with the more common , where, because the Hamiltonian is defined without a factor of 1/2 in the d · E term, Ω/2 = dE.
For the force, we have one additional unit to specify, the mass. If the user specifies the length, time, and magnetic field, then
| (26) |
The default unit selection for a two-manifold system is t0 = 1/Γ and x0 = 1/k, which yields for the prefactor ℏ/x0t0M = ℏkΓ/M. Taking into account the units on the left hand side of (26), we define
| (27) |
which defines the ‘dimensionless’ mass .
2.2. The Rate Equations
In the rate equation model, we neglect the coherences in the OBEs and instead focus exclusively on the populations in the state i in manifold . Here, we follow the construction of the rate equations from Ref. [33]. The evolution of is given by
| (28) |
where the first term accounts for optical pumping, the second for decays into the state, and the third decays from the state. The +(−) sign occurs when m < n (n > m). The manifold decay rate is
| (29) |
and the decay rate out of the excited state Γ, and the branching ratio,
| (30) |
We calculate the optical pumping rates , due to the laser l between states i and j in manifolds n and m, respectively. It is given by
| (31) |
where the excitation rate is3
| (32) |
and are the eigenenergies of states |j, n〉 and |i, n〉, and is polarization of laser l, rotated into the local coordinate system defined by the quantization axis. In this approximation, the quantization axis is assumed to be defined by the magnetic field. To determine and , each diagonal block of the Hamiltonian (24) is diagonalized at each new magnetic field B then the dnm matrices are rotated accordingly into the new basis. pylcp automatically diagonalizes and rotates these matrices as the atom moves through the magnetic and laser fields.
To determine , the polarization of the laser fields ϵl must be rotated onto a possibly changing quantization axis. By default, pylcp stores the polarization of a given laser beam as a vector in the spherical basis with assumed to be the quantization axis. To rotate to a new quantization axis defined by the local magnetic field , we need to apply a Wigner rotation matrix for an j = 1 angular momentum system (e.g., a photon). The specific form is given by
| (33) |
where α, β, and γ in this context are the Euler angles in the ZYZ convention. Thus, . For the rate equations, which square the rotated polarization, the angle α does not contribute, so pylcp neglects it (α only specifies the relative phase between the two circular components in the rotated coordinate system).
Finally, the motion of the atom is given by
| (34) |
Simulated spontaneous emission follows in the same way as in the OBEs.
2.3. Heuristic equation
A final governing equation is also included in pylcp, titled the ‘heuristic’ equation. This equation calculates the force on an atom assuming a F = 0 → F′ = 1 level structure. This level structure has equal dipole transition strengths for all three transitions, making the and
| (35) |
where is the qth component of the rotated polarization . Here, we have approximated the total saturation as , which is the approximation used in Ref. [16].
3. Examples
In this section, we cover several examples of laser cooling and show that we can use pylcp to reproduce standard results. The examples described herein are a small subset of the examples contained within the pylcp package. All examples are included in the user manual and are saved as jupyter notebooks that include comments and saved output figures.
3.1. Stationary atoms: internal dynamics
We start by considering well-known examples of internal atom dynamics [14, 15]. These examples are contained in the basics subdirectory of the pylcp package. Our first example is damped Rabi flopping. When a two-level atom (states |0〉 and |1〉) is illuminated with off-resonant laser light with detuning Δ = −4Γ and saturation s0 = 20, it drives oscillations in the population of the atomic states. The decay of the excited state leads to the oscillation decaying and the populations achieving an equilibrium value. In Fig. 1, the populations ρ00 and ρ11, as determined by both the OBEs and the rate equations, are shown. Unlike the OBEs, the rate equations show no oscillation. This is expected as the rate equations neglect the coherences between the atomic states. Nevertheless, the solutions of both the OBEs and rate equations asymptotically approach the same equilibrium populations.
Figure 1:

Populations of a two level atom ρ00 (blue) and ρ11 (orange) vs. time t showing damped Rabi flopping with both the OBEs (solid) and the rate equations (dashed). Here, the detuning is Δ/Γ = −4 and intensity is s0 = 20.
Next, consider a more complicated F = 2 → F′ = 3 atom initialized in |F = 2, mF = −2〉 and illuminated by π-polarized light with respect to the quantization axis, . In this configuration, the laser optically pumps the atoms into a stretched state with , corresponding to equal populations between ±mF with maximal population in mF = 0. The optical pumping process is depicted in Fig. 2, using a detuning Δ/Γ = −2.73 and s0 = 1.352464, which match the parameters used for an equivalent simulation in Ungar, et. al. [29]4. Fig. 2 shows the solutions of both the OBEs and the rate equations, which are nearly identical.
Figure 2:

Optical pumping on an F = 2 → F′ = 3 transition of an atom. The populations of the mF = −2, 1, 0, 1, 2 states are shown in blue, orange, green, red, and purple, respectively. The solution from the rate equations (OBEs) are shown as dashed (solid) curves. See text for other parameters.
Other two-level examples contained in basics subdirectory of the pylcp package, but omitted from the discussion here include power broadening, undamped Rabi flopping in a magnetic field, and optical pumping of an F = 1 → F′ = 2 transition in the presence of a magnetic field. These examples and the ones discussed above all use fields that are constant in time. To demonstrate its applicability to time varying fields, pylcp also includes an example of adiabatic rapid passage that reproduces Fig. 2 of Ref. [34].
Beyond the two-level systems considered above, a three-level atom can produce a multitude of more complicated physical phenomena. One well-known example is electromagnetically induced transparency. Consider a three-level atom in the Λ configuration, with ground state |g〉, intermediate metastable state |r〉, and excited state |e〉. Two lasers, with Rabi frequencies Ωge and Ωre, drive the |g〉 → |e〉 and |r〉 → |e〉 transitions, respectively. We assume . In this limit, when both lasers are resonant with their respective transitions, the strong |g〉 → |e〉 laser opens a transparency window in the otherwise absorptive |r〉 → |e〉 transition [35]. This transparency window can be seen by observed in the susceptibility through the coherence ρre. Figure 3 shows the numerically calculated ρre as a function of for three values of Δge/Γ, where Δie is the detuning of the laser driving the |i〉 → |e〉 transition from resonance. The Rabi frequencies for the two transitions are given by and For , the |r〉 → |e〉 absorption profile is not perturbed by the presence of the coupling laser driving |g〉 → |e〉, except for a small glitch in the susceptibility near Raman resonance at δ/Γ = 0. As |Δge| → 0, the susceptibility drops to zero when δ/Γ = 0 and the atom no longer absorbs photons from the |r〉 → |e〉 laser.
Figure 3:

Susceptibility (ρre) of a three-level atom as a function of δ = Δge − Δre, for Δge/Γ = −5 (left), −1 (middle), and −0.1 (right).
Another interesting three-level effect is stimulated Raman adiabatic passage (STIRAP) [36]. STIRAP is an adiabatic process that transfers population between two states in a three-level system. Consider the Λ system defined above in the electromagnetically induced transparency discussion. Counterintuitively, efficient population transfer from |g〉 to |r〉 requires the optical fields to first couple only |r〉 to |e〉 and then slowly change optical intensities until only |g〉 is coupled to |e〉. Fig. 4 shows a pylcp calculation of STIRAP, using pulses with Gaussian temporal profiles: and with and t0 = 500/Γ. For the correct pulse order Δt = 125/Γ (bottom panel), we see efficient population transfer from |g〉 to |r〉 with minimal population ρee in |e〉. For the incorrect pulse order Δt = −125/Γ (top panel), we see the opposite.
Figure 4:

STIRAP time dynamics of a Λ system with state populations ρgg (solid blue), ρrr (dashed orange) and ρee (dashed-dot green) with Gaussian-shaped pulses (see text). Top (bottom) shows the incorrect (correct) pulse order.
3.2. One-dimensional optical molasses
The examples in Sec. 3.1 exclusively examined the internal structure and dynamics of an atom. However, the pylcp package is focused on simulating the coupling of internal atomic dynamics to external atomic motion. One well-understood problem in this realm is one-dimensional optical molasses, where a two-level atom moves through an optical field generated by two counter-propagating laser beams [16].
We begin by calculating the equilibrium force on the atom in the optical molasses as a function of velocity [16, 37]. Fig. 5 shows the force calculated by pylcp using our three governing equations (see Sec. 2) with Δ/Γ = −2 and s = 1.5. Equilibrium forces in an optical molasses are most accurately described using either the OBEs or the rate equations, which accurately account for saturation from the beams for all velocities. The heuristic equation overestimates the saturation except near the origin, causing an underestimation of the force when |v| ≫ Γ/k. The damping force near the origin is nearly identical between the three governing equations when Δ/Γ is small.
Figure 5:

Force f as a function of velocity v in a one-dimensional two-level molasses. The three curves show the differences between the OBE (blue, solid), rate equations (orange, dashed), and heuristic equation (green, dot-dashed).
Figure 6 shows the temperatures of small clouds (N = 96 atoms) simulated with the heuristic equation. We see agreement within the statistical uncertainties with the expectation of Doppler cooling theory, namely
| (36) |
where and kB is the Boltzman constant [16]. In the present simulations, the temperature T is computed by binning the final velocities into bins with width δx and fitting the resulting histogram to a Gaussian with standard deviation σ, zero mean, and amplitude . The atoms start at rest and must evolve for a sufficient time to scatter enough photons to achieve a stable velocity distribution. Specifically, the integration time τ to achieve a temperature T must be at least the product of the inverse of the scattering rate Rsc and the number of scattering events Nsc needed to achieve a specific velocity distribution through a 1D random walk. For a velocity distribution width given by , where is the recoil velocity. Thus, the minimum integration time in Doppler-cooling simulations scales with M. For the present simulations, we choose an integration time based on M, Δ, and s such that T/TD can grow to roughly 10.
Figure 6:

Final temperature T vs. detuning Δ and s0 = 0.3, 1, 3 (blue, orange, green, respectively) for two-level atoms in a 1D molasses. Points show rate equation simulations, with error bars denoting 1-σ uncertainty of 96 simulations. Lines denote analytic Doppler temperature of (36).
We can extend this study of one-dimensional molasses with more complicated level structures. In particular, we focus on the F = 2 → F′ = 3 transition in 23Na, which was studied first by Ungar, et. al. [29]. Figure 7 shows the calculated equilibrium force vs. velocity and contains all of the essential features that were discussed in Ref. [29]. First, linear polarization ϕ ≠ 0 and the so-called ‘corkscrew’ polarization σ+σ− produce sub-Doppler force features near zero velocity that create additional damping. Second, compared to the ‘two state’ σ+σ+ polarization, σ+σ− produces excess force due to the sub-Doppler discontinuity at v = 0 that continues out to near v/k ≈ Δ, where one of the two lasers is dominantly resonant with the atom. In the example, but omitted here, we also replicate the dependence of the force on saturation s0 and detuning Δ observed in Ref. [29].
Figure 7:

Force f vs. velocity v in a one-dimensional F = 2 → F′ = 3 molasses with Δ/Γ = −2.5 and s0 = 1.0. The solid curve correspond to circularly polarized beams: σ+σ+ (orange) and σ+σ− (blue). Dashed lines show linearly-polarized input beams with angles ϕ = 0 (green), ϕ = π/4 (red), ϕ = π/2 (purple). Inset shows features close to the origin.
In addition to the static force profiles, we also replicate the temperature observed via Monte-Carlo in Ref. [29]. In particular, we have simulated 96 atoms in the σ+σ− configuration for a time t = 104/Γ. We sample the atoms’ velocity at a time interval δt = 500/Γ after allowing them to come into equilibrium with the light field for 2000/Γ. Fitting the resulting sampled velocities to a Gaussian reveals a temperature of 6.1(1.5) μK. This temperature compares nicely to the 8.2 μK obtained in Ref. [29]. We note that our temperature should be lower than that of Ref. [29] as we do not include contributions to the momentum diffusion tensor from stimulated emission, for which they include an approximate contribution.
Contained in the examples directory, but omitted here, is a calculation of one-dimensional molasses for a variety of different polarizations and level structures, including those that utilize type-II transitions that have dark states. Molasses operating on these transitions was studied in Ref. [38] and the essential results are reproduced in the examples.
Another type of sub-Doppler molasses that is useful is that of three-level Λ-enhanced cooling [39]. This molasses technique is unique compared to the others described above in that it uses a three-manifold system rather than a two-manifold. We have simulated this process using pylcp, and the script and results are contained with the other molasses examples. The numerical results match the theoretical results of Ref. [39].
3.3. Force, capture, and temperature in MOTs
Forces in a magneto-optical trap (MOT) depend on position as well as velocity. Let us consider the one-dimensional MOT, where two lasers, one travelling along with circular polarization σ− (relative to the quantization axis ) and the other travelling along with polarization σ+. These lasers interact with an F = 0 → F′ = 1 atom in a magnetic field of the form . Figure 8 shows the resulting forces, calculated using the heuristic equation (35) for a one-dimensional MOT. Here, we use laser parameters Δ/Γ = −1.5 and s0 = 1 and measure lengths in terms of the Zeeman detuning, ℏΓ/(μBB′). A particle initially at the origin of this non-conservative trap will be forced back toward the origin if it gains any velocity or is displaced.
Figure 8:

Force f vs. both position x and velocity v in a one-dimensional magneto-optical trap with laser parameters Δ/Γ = 1.5 and s0 = 1. The white curves show trajectories through phase space for atoms entering the MOT with different initial velocities v0.
The capture process into such a MOT can easily be simulated with pylcp. The white curves in Fig. 8 show trajectories in the classical phase space, calculated without random scattering. Here, atoms enter the MOT at a position x = −20(ℏΓ/μBB′) with varying initial velocity v0. Clearly, trajectories with v0 < 7Γ/k are damped to the origin and captured, whereas trajectories with v0 ≥ 7Γ/k escape. Employing a binary search algorithm, one can obtain the MOT capture velocity numerically. Figure 9 shows the result of such a calculation using the heuristic equation (35) along with the prediction of a simple model found in Ref. [40]. The two calculations agree rather well for small s0 ≤ 1, but diverge by more than 10 % for larger s0 > 1. This procedure has been extended to three-dimensional MOTs with non-standard geometry and should be the subject a forthcoming paper.
Figure 9:

Capture velocity vc vs. laser detuning Δ for s0 = 0.3 (blue), 1.0 (orange), and 3.0 (green). Solid curves are calculated using the heuristic equation (35); dashed curves are the theoretical result from Ref. [40].
The pylcp documentation also includes an example OBE calculation of the temperature of a three-dimensional, F = 0 → F′ = 1 magneto-optical trap. Using Δ/Γ = −2.5 and s0 = 1.25, we simulated the trajectories of 96 atoms for a time t = 105/Γ. By sampling the velocity distribution every 104/Γ for the latter half of the solution, we find a T/TD = 3.9(1). The example uses the default units described in Sec. 2.1.3 and takes the mass of the atom simulated to be , closest to 7Li which has .
Extending beyond the F = 0 → F′ = 1 atom to larger F and F′ in the one-dimensional case produces some intriguing results. Consider Fig. 10(a) which shows the force on a F = 1 → F′ = 2 atom, with ground state Landé g-factor gF = 0 and excited state g-factor , in a one-dimensional MOT. While not directly applicable to a specific atom, this level structure is a good model of an alkaline earth atom with nuclear spin, where gF ≈ 0. Curiously, the restoring force from the -going beam nearly completely disappears for v > 0 and vice versa for the beam travelling in .
Figure 10:

Anomalous forces in a F = 1 → F′ = 2 MOT with gF = 0 and . (a) Force f vs. position x and velocity v for Δ/Γ = −4 and s0 = 5. (b) Equilibrium populations Neq (solid) and pumping rates Ri,l from ground state mF = −1, 0, 1 (blue, orange, green, respectively) by the directed laser (dashed) and the directed laser (dash-dotted) along the horizontal solid line in (a). (c) Same as (b), but along the horizontal dashed line in (a). (d) Level diagram for v = 0 and x/(μBB′/ℏΓ) = −2 with laser configuration with polarization below. Diagonal arrows indicate pumping rates, with width and transparency indicating relative strength. (e) Same as (d), but with v/(Γ/k) = 4.5 and x/(μBB′/ℏΓ) = −6 and Doppler shifts shown.
The loss of restoring force is due to non-cycling transitions becoming resonant through Doppler shifts. Figure 10(b) and Fig. 10(c) show the equilibrium populations and pumping rates as a function of position for two different velocities [denoted as the white horizontal lines in Fig. 10(a)]. The pumping rates shown are the total pumping rates out of the mF = −1, 0, +1 states for both lasers, . For v = 0, shown in Fig. 10(b), the populations and pumping rates are symmetric about x = 0, and the resulting spin expectation value 〈Fz〉 is anti-symmetric. The anti-symmetry of 〈Fz〉 results from the symmetric nature of the optical pumping. The pumping rates out of mF = ±1 peak at positions given by x = ±ℏΔ/μBB′. The transitions out of mF = ±1 are driven by oppositely directed lasers, resulting in a restoring force. There is a non-negligible pumping rate out of mF = 0 driven by both lasers at larger |x|, but the pumping is driven by the correct lasers to produce a restoring force. For v = 5Γ/k, however, the optical pumping symmetry is lost, as shown in Fig. 10(c). The pumping rates out of mF = ±1 peak at x = ±ℏΔ/μBB′ − kv, shifting the peaks away from the origin. By itself, the shift is not sufficient to eliminate the restoring force; however, the transitions out of mF = 0 are also shifted. The resonant location of the transition out of mF = 0 by the -going laser overlaps with that of the transition out of mF = −1 from the -going laser. Rather than cycling between , the atoms are pumped into mF = 1, where they stop scattering photons and consequently experience no force. Repeating the force calculation for progressively larger values of F, the effect of non-cycling transitions becomes more drastic, with the force cutting off increasingly sharply around v = 0.
The force profiles in Fig. 10(a) still permit stable MOT operation in equilibrium. However, in MOTs that operate near the recoil limit, individual atoms may not be optically pumped appropriately as they traverse the MOT, leading to rapid atom loss. The problem of non-cycling transitions being Doppler shifted into resonance and destroying cycling is a well known in narrow-line MOTs for alkaline earth atoms [41]. For this reason, narrow-line MOTs of 87Sr, with F = 9/2, require a mixing laser to randomize population amongst the ground states of the atom in order to maintain optical cycling [41].
Finally, we have reproduced the calculation of Ref. [42] of a recoil-limited MOT. Using the rate equations with random scattering and the parameters of 88Sr, we simulate the narrow-line MOT formed on the 1S0 → 3P1 transition for t = 50 ms (≈ 2400/Γ). The resulting simulated images of the MOT with N = 1024 atoms are shown in Fig. 11. One of the most interesting features of narrow-line MOTs is that they sag under the effect of gravity. The vertical position and shape are determined by the position at which the Zeeman shift compensates for the laser detuning, denoted by the red, dashed ellipses in Fig. 11. One effect included in our simulations that was not discussed in Ref. [42] is atom loss. With such a large recoil velocity, a few properly directed photon recoils is enough to cause atoms to pass through the region of maximal force and be lost. We find that, for almost all detunings explored, we lose roughly 3 % of the atoms during the simulation, corresponding to a loss rate of 0.8(2) s−1, consistent with experimental results [41,43–45].
Figure 11:

Simulated MOT images of the narrow line 88Sr MOT formed on the 1S0 → 3P1 transition for various detunings Δ and s0 = 25. Gravity is in the direction. The red, dashed ellipses denote the spatial location where the beam detuning matches the Zeeman shift. This figure should be compared to Ref. [42].
Other MOT examples in the documentation include calculations of MOT damping forces and trapping frequencies (along with comparison to analytic formulas), the forces for MOTs operating on both D1 and D2 lines of alkali atoms [46], the forces for the variety of different type-I and type-II MOTs considered in Ref. [33], and the forces in the two-color CaF MOT of Ref. [47].
3.4. Bi-chromatic forces
While all the prior examples relied solely on spontaneous emission, pylcp can also calculate forces due to stimulated emission. A common setup for stimulated optical forces is the bi-chromatic force, which involves creating counterpropogating π pulse trains that transfer the atom to the excited state from one direction and stimulate emission into the ground state from the opposite direction. This stimulated optical force was examined theoretically and demonstrated experimentally in Ref. [48]. In Ref. [48], the pulses were made by shining two frequencies of light from both directions, each frequency detuned by ±Δ from the excited state. The phases between all four frequencies must be well established to ensure the proper direction of stimulated emission. Fig. 12 shows the calculation of the force for a two-level atom in this laser arrangement using pylcp. For each intensity, the force exceeds the spontaneous force limit of ℏkΓ, and has a host of curious features including Doppleron resonances. The bi-chromatic force simulations in pylcp could easily be extended to more complicated systems such as real atoms or molecules, allowing examination of bi-chromatic force operation on non-cycling transitions.
Figure 12:

Force f vs. velocity v for a two-level atom in an intense bi-chromatic standing wave for Δ/Γ = 39. The intensities are Ω = 39Γ (left), Ω = 43Γ (middle), and Ω = 47Γ (right), as in Fig. 1 of Ref. [48].
4. Conclusion
We have presented a software package that integrates a set of lasers, a magnetic field, and an atomic or molecular Hamiltonian to accurately simulate laser cooling physics by automatically generating the optical Bloch equations or rate equations. In this paper, we have demonstrated a host of useful computations previously documented in the literature, including Doppler and sub-Doppler cooling, capture of atoms and final equilibrium temperature of a MOT, limitations of trapping when additional level structure is added, and even recoil-limited MOTs such as 1S0 → 3P1 MOTs for Sr. We also demonstrated phenomena that rely on time dependence of the applied fields, including adiabatic rapid passage and stimulated Raman adiabatic passage. Finally, our examples also include forces that arise from coherent phenomena, like the bi-chromatic force.
We have begun to deploy pylcp to understand the properties of grating MOTs [49–52] with complicated level structure. These MOTs have quite peculiar properties, including a general spin polarization, asymmetric damping forces leading to asymmetric temperatures, and equilibrium trap positions that differ from the magnetic field zero. Indeed, they also appear to be sensitive to the internal level structure of the atom. For example, whereas a 88Sr grating MOT was realized recently on an F = 0 → F′ = 1 transition, a 87Sr atom with F = 9/2 → F′ = 11/2 transition was not realized in the same apparatus [52]. Studies are currently underway to determine whether a similar phenomenon as that in Fig. 10 are responsible for this failure in a grating MOT geometry.
While versatile, pylcp has some limitations that may be alleviated in a future version. First, our code does not include the possibility of static electric fields that can shift states within a manifold. Second, our governing equations are only valid in the single-atom limit, where we neglect secondary photon scattering and attenuation of a laser due to absorption. These effects are known to limit the achievable density and temperature in a MOT [53–55]. Thus, pylcp is only valid in the low-density limit, which makes it less valuable in simulating magneto-optical traps and molasses that are typically used on quantum degenerate gas experiments. Nevertheless, we anticipate that pylcp is sufficiently functional to begin analyzing novel forms of laser cooling and designing efficient, miniaturized systems for laser cooling.
Footnotes
Throughout this paper, bold face denotes vector quantities. Hats usually denote quantum mechanical operators, with the exception of , , and . In this case, the hat denotes the relevant Cartesian unit vector.
We do not reverse nm ordering as that merely denotes what manifolds d connect.
Note that there is a factor of two difference between d · E in Sec. 2.1.3 and the definition of the Rabi rate Ω used here.
Note that s0 therein is defined with the detuning included.
References
- [1].Ludlow AD, Boyd MM, Ye J, Peik E, Schmidt PO, Rev. Mod. Phys 87 (2015)637–701. doi: 10.1103/RevModPhys.87.637. [DOI] [Google Scholar]
- [2].Campbell SL, Hutson RB, Marti GE, Goban A, Darkwah Oppong N, McNally RL, Sonderhouse L, Robinson JM, Zhang W, Bloom BJ, Ye J, Science 358 (2017) 90–94. doi: 10.1126/science.aam5538. [DOI] [PubMed] [Google Scholar]
- [3].Elvin R, Hoth GW, Wright M, Lewis B, McGilligan JP, Arnold AS, Griffin PF, Riis E, Opt. Express 27 (2019) 38359. doi: 10.1364/oe.378632. [DOI] [PubMed] [Google Scholar]
- [4].Cronin AD, Schmiedmayer J, Pritchard DE, Rev. Mod. Phys 81 (2009) 1051–1129. doi: 10.1103/RevModPhys.81.1051. [DOI] [Google Scholar]
- [5].Becker D, Lachmann MD, Seidel ST, Ahlers H, Dinkelaker AN, Grosse J, Hellmig O, Müntinga H, Schkolnik V, Wendrich T, Wenzlawski A, Weps B, Corgier R, Franz T, Gaaloul N, Herr W, Lüdtke D, Popp M, Amri S, Duncker H, Erbe M, Kohfeldt A, Kubelka-Lange A, Braxmaier C, Charron E, Ertmer W, Krutzik M, Lämmerzahl C, Peters A, Schleich WP, Sengstock K, Walser R, Wicht A, Windpassinger P, Rasel EM, Nature 562 (2018) 391–395. doi: 10.1038/s41586-018-0605-1. [DOI] [PubMed] [Google Scholar]
- [6].Xu V, Jaffe M, Panda CD, Kristensen SL, Clark LW, Müller H, Science 366 (2019) 745–749. doi: 10.1126/science.aay6428. [DOI] [PubMed] [Google Scholar]
- [7].Kitching J, Appl. Phys. Rev 5 (2018) 031302. doi: 10.1063/1.5026238. [DOI] [Google Scholar]
- [8].Cohen Y, Jadeja K, Sula S, Venturelli M, Deans C, Marmugi L, Renzoni F, Applied Physics Letters 114 (2019) 073505. doi: 10.1063/1.5084004. [DOI] [Google Scholar]
- [9].Pezzè L, Smerzi A, Oberthaler MK, Schmied R, Treutlein P, Rev. Mod. Phys 90 (2018) 035005. doi: 10.1103/RevModPhys.90.035005. [DOI] [Google Scholar]
- [10].Bruzewicz CD, Chiaverini J, McConnell R, Sage JM, App. Phys. Rev 6 (2019) 021314. doi: 10.1063/1.5088164. [DOI] [Google Scholar]
- [11].Safronova MS, Budker D, Demille D, Kimball DFJ, Derevianko A, Clark CW, Rev. Mod. Phys 90 (2018) 025008. doi: 10.1103/RevModPhys.90.025008. [DOI] [Google Scholar]
- [12].Hutzler NR, Quantum Sci. Technol 5 (2020) 044011. doi: 10.1088/2058-9565/abb9c5. [DOI] [Google Scholar]
- [13].Norrgard EB, Barker DS, Eckel S, Fedchak JA, Klimov NN, Scherschligt J, Commun. Phys 2 (2019) 77. doi: 10.1038/s42005-019-0181-1. [DOI] [PMC free article] [PubMed] [Google Scholar]
- [14].Foot C, Atomic Physics, Oxford Master Series in Physics, Oxford University Press Inc., New York, 2005. [Google Scholar]
- [15].Metcalf H, van der Straten P, Laser Cooling and Trapping, Graduate Texts in Contemporary Physics, Springer-Verlag New York Inc., New York, 1999. [Google Scholar]
- [16].Lett PD, Phillips WD, Rolston SL, Tanner CE, Watts RN, Westbrook CI, J. Opt. Soc. Am. B 6 (1989) 2084–2107. doi: 10.1364/JOSAB.6.002084. [DOI] [Google Scholar]
- [17].Dalibard J, Cohen-Tannoudji C, J. Opt. Soc. Am. B 6 (1989) 2023–2045. doi: 10.1364/JOSAB.6.002023. [DOI] [Google Scholar]
- [18].Rushton JA, Aldous M, Himsworth MD, Rev. Sci. Instruments 85 (2014) 121501. doi: 10.1063/1.4904066. [DOI] [PubMed] [Google Scholar]
- [19].Bartolotta JP, Norcia MA, Cline JRK, Thompson JK, Holland MJ, Phys. Rev. A 98 (2018) 023404. doi: 10.1103/PhysRevA.98.023404. [DOI] [Google Scholar]
- [20].Raab EL, Prentiss M, Cable A, Chu S, Pritchard DE, Phys. Rev. Lett 59 (1987) 2631–2634. doi: 10.1103/PhysRevLett.59.2631. [DOI] [PubMed] [Google Scholar]
- [21]. https://qo.phy.auckland.ac.nz/toolbox/.
- [22].Johansson JR, Nation PD, Nori F, Comput. Phys. Commun 183 (2012) 1760. doi: 10.1016/j.cpc.2012.02.021. [DOI] [Google Scholar]
- [23].Johansson JR, Nation PD, Nori F, Comput. Phys. Commun 184 (2013) 1234. doi: 10.1016/j.cpc.2012.11.019. [DOI] [Google Scholar]
- [24]. http://rochesterscientific.com/ADM/.
- [25].Krämer S, Plankensteiner D, Ostermann L, Ritsch H, Quantumoptics.jl: A julia framework for simulating open quantum systems, Computer Physics Communications 227 (2018) 109–116. doi: 10.1016/j.cpc.2018.02.004. [DOI] [Google Scholar]
- [26]. https://www.github.com/jqiAMO/pylcp.
- [27]. https://python-laser-cooling-physics.readthedocs.io/en/stable.
- [28].Gordon JP, Ashkin A, Phys. Rev. A 21 (1980) 1606–1617. doi: 10.1103/PhysRevA.21.1606. [DOI] [Google Scholar]
- [29].Ungar PJ, Weiss DS, Riis E, Chu S, J. Opt. Soc. Am. B 6 (1989) 2058–2071. doi: 10.1364/JOSAB.6.002058. [DOI] [Google Scholar]
- [30].Devlin JA, Tarbutt MR, Phys. Rev. A 98 (2018) 063415. doi: 10.1103/PhysRevA.98.063415. [DOI] [Google Scholar]
- [31].Dalibard J, Dupont-Roc J, Cohen-Tannoudji C, J. Phys. France 43 (1982) 1617–1638. doi: 10.1051/jphys:0198200430110161700. [DOI] [Google Scholar]
- [32].Milonni PW, Am. J. Phys 52 (1984) 340–343. doi: 10.1119/1.13886. [DOI] [Google Scholar]
- [33].Tarbutt MR, New J Phys 17 (2015) 015007. doi: 10.1088/1367-2630/17/1/015007. [DOI] [Google Scholar]
- [34].Lu T, Miao X, Metcalf H, Phys. Rev. A 71 (2005) 061405. doi: 10.1103/PhysRevA.71.061405. [DOI] [Google Scholar]
- [35].Boller K-J, Imamoglu A, Harris SE, Phys. Rev. Lett 66 (1991) 2593–2596. doi: 10.1103/PhysRevLett.66.2593. [DOI] [PubMed] [Google Scholar]
- [36].Bergmann K, Theuer H, Shore BW, Rev. Mod. Phys 70 (1998) 1003–1025. doi: 10.1103/RevModPhys.70.1003. [DOI] [Google Scholar]
- [37].Chu S, Hollberg L, Bjorkholm JE, Cable A, Ashkin A, Phys. Rev. Lett 55 (1985)48–51. doi: 10.1103/PhysRevLett.55.48. [DOI] [PubMed] [Google Scholar]
- [38].Devlin JA, Tarbutt MR, New J Phys 18 (2016) 123017. doi: 10.1088/1367-2630/18/12/123017. [DOI] [Google Scholar]
- [39].Grier AT, Ferrier-Barbut I, Rem BS, Delehaye M, Khaykovich L, Chevy F, Salomon C, Phys. Rev. A 87 (2013) 063411. doi: 10.1103/PhysRevA.87.063411. [DOI] [PubMed] [Google Scholar]
- [40].Haubrich D, Höpe A, Meschede D, Opt. Commun 102 (1993) 225–230. doi: 10.1016/0030-4018(93)90387-K. [DOI] [Google Scholar]
- [41].Mukaiyama T, Katori H, Ido T, Li Y, Kuwata-Gonokami M, Phys. Rev. Lett 90 (2003) 113002. doi: 10.1103/PhysRevLett.90.113002. [DOI] [PubMed] [Google Scholar]
- [42].Hanley RK, Huillery P, Keegan NC, Bounds AD, Boddy D, Faoro R, Jones MP, J. Mod. Opt 65 (2018) 667–676. doi: 10.1080/09500340.2017.1401679. [DOI] [Google Scholar]
- [43].Katori H, Ido T, Isoya Y, Kuwata-Gonokami M 82 (1999) 1116–1119. doi: 10.1103/PhysRevLett.82.1116. [DOI] [Google Scholar]
- [44].Loftus TH, Ido T, Ludlow AD, Boyd MM, Ye J, Phys. Rev. Lett 93 (2004)073003. doi: 10.1103/PhysRevLett.93.073003. [DOI] [PubMed] [Google Scholar]
- [45].Stellmer S, Degenerate quantum gases of strontium, Ph.D. thesis, University of Innsbruck; (2013). [Google Scholar]
- [46].Flemming J, Tuboy AM, Milori DMBP, Marcassa LG, Zilio SC, Bagnato VS, Opt. Commun 135 (1997) 269–272. doi: 10.1016/S0030-4018(96)00660-8. [DOI] [Google Scholar]
- [47].Tarbutt MR, Steimle TC, Phys. Rev. A 92 (2015) 053401. doi: 10.1103/PhysRevA.92.053401. [DOI] [Google Scholar]
- [48].Söding J, Grimm R, Ovchinnikov Y, Bouyer P, Salomon C, Phys. Rev. Lett 78 (1997) 1420–1423. doi: 10.1103/PhysRevLett.78.1420. [DOI] [Google Scholar]
- [49].Lee J, Grover JA, Orozco LA, Rolston SL, J. Opt. Soc. Am. B 30 (2013)2869–2874. doi: 10.1364/JOSAB.30.002869. [DOI] [Google Scholar]
- [50].Nshii CC, Vangeleyn M, Cotter JP, Griffin PF, Hinds EA, Ironside CN, See P, Sinclair a. G., Riis E, Arnold a. S., Nat. Nanotechnol 8 (2013)321–324. doi: 10.1038/nnano.2013.47. [DOI] [PubMed] [Google Scholar]
- [51].Barker DS, Norrgard EB, Klimov NN, Fedchak JA, Scherschligt J, Eckel S, Phys. Rev. Applied 11 (2019) 064023. doi: 10.1103/PhysRevApplied.11.064023. [DOI] [PMC free article] [PubMed] [Google Scholar]
- [52].Sitaram A, Elgee PK, Campbell GK, Klimov NN, Eckel S, Barker DS, Rev. Sci. Instruments 91 (2020) 103202. doi: 10.1063/5.0019551. [DOI] [PubMed] [Google Scholar]
- [53].Walker T, Sesko D, Wieman C, Phys. Rev. Lett 64 (1990) 408–411. doi: 10.1103/PhysRevLett.64.408. [DOI] [PubMed] [Google Scholar]
- [54].Townsend CG, Edwards NH, Cooper CJ, Zetie KP, Foot CJ, Steane AM, Szriftgiser P, Perrin H, Dalibard J, Phys. Rev. A 52 (1995) 1423–1440. doi: 10.1103/PhysRevA.52.1423. [DOI] [PubMed] [Google Scholar]
- [55].Camara A, Kaiser R, Labeyrie G, Phys. Rev. A 90 (2014) 063404. doi: 10.1103/PhysRevA.90.063404. [DOI] [Google Scholar]
