Ions

The ions module provides functions to simulate and optimize Mølmer–Sørensen-type operations on trapped ion systems.

To calculate the properties of an ion chain, such as the Lamb–Dicke parameters and relative detunings, use boulderopal.ions.obtain_ion_chain_properties. To run a simulation or optimization, use the classes below to describe the system in terms of drives. For example to create a complex-valued drive for simulation use boulderopal.ions.Drive. Then pass the classes to either boulderopal.ions.ms_simulate or boulderopal.ions.ms_optimize depending on whether you want to run a simulation or an optimization.

If you want to model Mølmer–Sørensen interactions in graphs, see Mølmer–Sørensen gates.

For a quick introduction, see the Optimize Mølmer–Sørensen gates for trapped ions tutorial.

Classes

ComplexOptimizableDrive

A piecewise-constant complex-valued optimizable drive.

Drive

A piecewise-constant complex-valued drive.

OptimizableDrive

Abstract class for optimizable drives.

RealOptimizableDrive

A piecewise-constant real-valued optimizable drive.

Functions

ms_optimize

Find optimal pulses to perform a target Mølmer–Sørensen-type operation on a system composed of ions.

ms_simulate

Simulate a Mølmer–Sørensen-type operation on a system composed of ions.

obtain_ion_chain_properties

Calculate the Lamb–Dicke parameters, frequencies (or relative detunings if a laser detuning is provided), and eigenvectors of the collective motional modes of an ion chain.