A Toolkit for solving the Optical Bloch Rate Equations in alkali metal atoms based on the QuantumOptics.jl package in Julia
Description
The Optical Bloch Equations (OBEs) are useful for calculating the evolution of the density matrix of an atomic ensemble under the action of some Hamiltonian. A common situation concerns atoms with hyperfine structure that interact with an external magnetic field and laser radiation. When the spectral linewidth of the laser radiation is much larger than the natural linewidth of the transition, the mode spacing is much smaller than the natural linewidth, and the spectral linewidth is much larger than the characteristic evolution time of the density matrix, the OBEs can be reduced to rate equations for Zeeman coherences. We present a toolkit for solving these rate equations based on the QuantumOptics.jl package in the Julia language. Using these tools makes the code much more readable than previous implementations in C/C++, but almost as fast and easier to parallelize. The toolkit includes functions for calculating the steady-state solution of density matrix of alkali metal atoms in the presence of an external magnetic field and exposed to a pump laser beam of arbitrary polarization and propagation direction. Based on this density matrix, the toolkit offers functions to determine the fluorescence intensity of arbitrary polarization and direction as well as the absorption of a weak probe beam, also of arbitrary polarization and propagation direction. It can also produce a plot of the electronic angular momentum distribution of the atom based on the calculated density matrix. The toolkit is available on Github and has been validated by comparing its results to legacy code written in C/C++ and experimental measurements. As a test case, we show how the toolkit can be used to optimize a simple atomic magnetometer.