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

See also

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