Precise shaping of laser light is crucial to trapping and manipulating ultracold atoms, with critical implications for quantum computing, quantum simulation and precision measurements. I will discuss a Python-based approach to the beam shaping problem that maximises our control of trapped particles.
Laser light can be used to trap, cool and manipulate atoms and microscopic particles, with applications ranging from simulating quantum systems to real-time manipulation of single atoms or biomolecules. The development of new laser beam shaping methods is therefore imperative to the progress of research in a variety of fields within optics, atomic physics and biophotonics.
Spatial light modulators offer a highly versatile method of time-dependent beam shaping, based on imprinting a phase profile onto an incident laser beam that determines the intensity and phase distribution of the trapping plane laser field. Any desired trapping plane field must therefore be expressed in terms of the corresponding input plane phase, a phase retrieval problem that can be solved by methods falling broadly into two categories: iterative Fourier transform algorithms, and those based on the minimisation of a cost function. I will present a versatile approach that falls into the latter category, describing how we use a conjugate gradient minimisation routine implemented in Python to directly target specific output plane features of interest. By using the Theano library to determine the cost function gradient, we have drastically streamlined the process of assessing cost function suitability, making possible our recent implementation of the simultaneous and independent control of both the intensity and phase of the trapping plane optical field. This latest development grants an extra dimension to our control of light field structure, and thus our ability to manipulate the properties of trapped particles.