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, . It must be greater than zero.
- lamb_dicke_parameters (np.ndarray) – The laser-ion coupling strength, .
Its shape must be
(3, N, N)
, where the dimensions indicate, respectively, axis, collective mode, and ion. - relative_detunings (np.ndarray) – The difference (in Hz) between each motional
mode frequency and the laser detuning from the qubit transition frequency .
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, ,
as a strictly lower triangular matrix of shape
(N, N)
. with indicates the relative phase between ions and , while for . If not provided, the function does not return the operational infidelities. - sample_count (int , optional) – The number of times 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 lengthT
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 ions is
where indicates axis dimension (, , or ), indicates collective mode, is the annihilation operator, and is the Pauli operator for ion .
The interaction Hamiltonian for Mølmer–Sørensen-type operations in the rotating frame with respect to is
where is the Pauli operator for ion and
indicates the coupling between ion and motional mode .
The corresponding unitary operation is given by 1
where
\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] ,The operational infidelity of the Mølmer–Sørensen gate is defined as 1: