# ms_simulate

boulderopal.ions.ms_simulate(drives, duration, lamb_dicke_parameters, relative_detunings, target_phases=None, sample_count=128)

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

This function builds a graph describing the Mølmer–Sørensen operation and calls boulderopal.execute_graph to simulate the ion dynamics.

Parameters:
• drives (list[Drive]) – A list of drives addressing the ions. Each ion can only be addressed by a single drive, but there may be ions not addressed by any drive.

• duration (float) – The duration, in seconds, of the dynamics to be simulated, $$T$$. It must be greater than zero.

• lamb_dicke_parameters (np.ndarray) – The laser-ion coupling strength, $$\{\eta_{jkl}\}$$. Its shape must be (3, N, N), where the dimensions indicate, respectively, axis, collective mode, and ion.

• relative_detunings (np.ndarray) – The difference $$\{\delta_{jk} = \nu_{jk} - \delta\}$$ (in Hz) between each motional mode frequency and the laser detuning from the qubit transition frequency $$\omega_0$$. Its shape must be (3, N), where the dimensions indicate, respectively, axis and collective mode.

• target_phases (np.ndarray or None, optional) – The target total relative phases between ion pairs, $$\{\Psi_{ln}\}$$, as a strictly lower triangular matrix of shape (N, N). $$\Psi_{ln}$$ with $$l > n$$ indicates the relative phase between ions $$l$$ and $$n$$, while $$\Psi_{ln} = 0$$ for $$l \leq n$$. If not provided, the function does not return the operational infidelities.

• sample_count (int, optional) – The number of times $$T$$ between 0 and duration (included) at which the evolution is sampled. Defaults to 128.

Returns:

The result of the execute_graph call. Its output item is a dictionary containing information about the evolution of the system, with the following keys:

sample_times

The times at which the evolution is sampled, as an array of shape (T,).

phases

Acquired phases $$\{\Phi_{ln}(t_i) = \phi_{ln}(t_i) + \phi_{nl}(t_i)\}$$ for each sample time and for all ion pairs, as a strictly lower triangular matrix of shape (T, N, N). $$\Phi_{ln}(t_i)$$ with $$l > n$$ indicates the relative phase between ions $$l$$ and $$n$$, while $$\Phi_{ln}(t_i) = 0$$ for $$l \leq n$$.

displacements

Displacements $$\{\eta_{jkl}\alpha_{jkl}(t_i)\}$$ for all mode-ion combinations, as an array of shape (T, 3, N, N), where the dimensions indicate, respectively, time, axis, collective mode, and ion.

infidelities

A 1D array of length T with the operational infidelities of the Mølmer–Sørensen gate at each sample time, $$\mathcal{I}(t_i)$$. Only returned if target relative phases are provided.

Return type:

dict

boulderopal.ions.Drive

Class describing non-optimizable drives.

boulderopal.ions.ms_optimize

Find optimal pulses to perform Mølmer–Sørensen-type operations on trapped ions systems.

boulderopal.ions.obtain_ion_chain_properties

Calculate the properties of an ion chain.

Notes

The internal and motional Hamiltonian of $$N$$ ions is

$H_0 = \sum_{j=1}^{3} \sum_{k=1}^{N} \hbar\nu_{jk} \left(a_{jk}^\dagger a_{jk} + \frac{1}{2}\right) + \sum_{l=1}^N \frac{\hbar \omega_0}{2} \sigma_{z,l} ,$

where $$j$$ indicates axis dimension ($$x$$, $$y$$, or $$z$$), $$k$$ indicates collective mode, $$a_{jk}$$ is the annihilation operator, and $$\sigma_{z,l}$$ is the Pauli $$Z$$ operator for ion $$l$$.

The interaction Hamiltonian for Mølmer–Sørensen-type operations in the rotating frame with respect to $$H_0$$ is

$H_I(t) = i\hbar \sum_{j=1}^{3} \sum_{k=1}^{N} \sum_{l=1}^N \sigma_{x,l} \left(-\beta_{jkl}^*(t)a_{jk} + \beta_{jkl}(t) a_{jk}^\dagger\right) ,$

where $$\sigma_{x,l}$$ is the Pauli $$X$$ operator for ion $$l$$ and

$\beta_{jkl}(t) = \eta_{jkl} \frac{\gamma_l(t)}{2} \exp(i 2 \pi \delta_{jk} t)$

indicates the coupling between ion $$l$$ and motional mode $$(j,k)$$.

The corresponding unitary operation is given by [1]

$U(t) = \exp\left[ \sum_{l=1}^N \sigma_{x,l} B_l(t) + i\sum_{l=1}^N\sum_{n=1}^{l-1} (\phi_{ln}(t) + \phi_{nl}(t)) \sigma_{x,l} \sigma_{x,n} \right] ,$

where

\begin{align}\begin{aligned}B_l(t) &\equiv \sum_{j=1}^{3} \sum_{k=1}^{N} \left(\eta_{jkl}\alpha_{jkl}(t)a_{jk}^\dagger - \eta_{jkl}^{\ast}\alpha_{jkl}^\ast(t)a_{jk} \right) ,\\\phi_{ln}(t) &\equiv \mathrm{Im} \left[ \sum_{j=1}^{3} \sum_{k=1}^{N} \int_{0}^{t} d \tau_1 \int_{0}^{\tau_1} d \tau_2 \beta_{jkl}(\tau_1)\beta_{jkn}^{\ast}(\tau_2) \right] ,\\\alpha_{jkl}(t) &\equiv \int_0^t d\tau \frac{\gamma_l(\tau)}{2} \exp(i 2 \pi \delta_{jk} \tau) .\end{aligned}\end{align}

The operational infidelity of the Mølmer–Sørensen gate is defined as [1]:

$\mathcal{I} = 1 - \left| \left( \prod_{n=1}^N \prod_{l=n+1}^N \cos ( \Phi_{ln} - \Psi_{ln}) \right) \left( 1 - \sum_{j=1}^3 \sum_{k=1}^N \sum_{l=1}^N \left[ |\eta_{jkl} \alpha_{jkl}|^2 \left(\bar{n}_{jk}+\frac{1}{2} \right) \right] \right) \right|^2 ,$

References