ions.ms_phases(drives, lamb_dicke_parameters, relative_detunings, sample_times=None, *, name=None)

Calculate the relative phases for all pairs of ions described by a Mølmer–Sørensen-type interaction when single-tone individually-addressed laser beams are used.

Use this function to calculate the acquired phases for all ion pairs at the final time of the drives, or at the sample times that you provide.

  • drives (list[Pwc or None]) – The piecewise-constant drives, \(\{\gamma_j\}\), one for each of the \(N\) ions. Drive values must be in rad/s and durations must be in seconds. All drives must have the same total duration, but can have different segmentations. This list must contain at least two elements (your system must have at least two ions). If an ion is not addressed, you can pass None for its drive (this leads to a more efficient calculation than passing a zero drive).

  • 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.

  • sample_times (np.ndarray or None, optional) – The times (in seconds) at which to calculate the relative phases, \(\{t_i\}\). If you provide it, it must be 1D, ordered, and contain at least one element. If you omit it, the phases are only calculated at the final time of the drives.

  • name (str or None, optional) – The name of the node.


Acquired phases \(\{\phi_{jk}(t_i) + \phi_{kj}(t_i)\}\) for all ion pairs. If you provide sample_times, the shape of the returned value is (T, N, N), where the first dimension indicates time, and the second and third dimensions indicate ions. Otherwise, the shape is (N, N), with the outer time dimension removed. The relative phases are stored as a strictly lower triangular matrix. See the notes part for details.

Return type:


See also


Final operational infidelity of a Mølmer–Sørensen gate.


Corresponding operation for a global multitone beam.


Function to calculate the properties of an ion chain.


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] ,\]


\[ \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} \]

This function calculates the relative phases for all ions pairs at sample times \(\{t_i\}\),

\[\Phi_{ln}(t_i) = \phi_{ln}(t_i) + \phi_{nl}(t_i),\]

and stores them in a strictly lower triangular matrix. That is, \(\Phi_{ln}(t_i)\) with \(l > n\) gives the relative phase between ions \(l\) and \(n\), while \(\Phi_{ln}(t_i) = 0\) for \(l \leq n\).



Refer to the How to optimize error-robust Mølmer–Sørensen gates for trapped ions user guide to find how to use this and related nodes.