Graph.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(1D, complex)]) – A list of piecewise-constant drives \(\{\gamma_j\}\). The number of drives must be the same as the number of ions \(N\). Drive values must be one-dimensional arrays and in rad/s. Drive durations must be in seconds. All drives must have the same total duration, but can have different numbers of segments. This list must contain at least two elements. In other words, your system must contain at least two ions.

  • lamb_dicke_parameters (np.ndarray) – A 3D array of parameters \(\{\eta_{jkl}\}\) specifying the laser-ion coupling strength. Its shape must be (3, N, N) where the first dimension \(j\) indicates the axis, the second dimension \(k\) indicates the collective mode number, and the third dimension \(l\) indicates the ion.

  • relative_detunings (np.ndarray) – A 2D array \(\{\delta_{jk} = \nu_{jk} - \delta\}\) specifying the difference (in Hz) between each motional mode frequency \(\nu_{jk}\) and the laser detuning \(\delta\) (the detuning from the qubit transition frequency \(\omega_0\)). Its shape must be (3, N) where the first dimension \(j\) indicates the axis and the second dimension \(k\) indicates the collective mode number.

  • sample_times (list or tuple or np.ndarray or None, optional) – A 1D array of length \(T\) specifying the times \(\{t_i\}\) (in seconds) at which this function calculates the relative phases. If you omit it, this function calculates the phases only at the final time of the drives. If provided, it must be ordered and contain at least one element.

  • 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 the time; the second and the third dimensions indicate the ion. Otherwise, the shape is (N, N) where both dimensions indicate the ion. The relative phases are stored as a strictly lower triangular matrix. See the notes part for details.

Return type:


See also


Function to calculate the properties of an ion chain.


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


Corresponding operation for a global multitone beam.


The internal and motional Hamiltonian of \(N\) ions is

\[H_0 = \sum_{p = 1}^{3N} \hbar\nu_p \left(a_p^\dagger a_p + \frac{1}{2}\right) + \sum_{j = 1}^N \frac{\hbar \omega_0}{2} \sigma_{z,j} ,\]

where the axis dimension and collective mode dimension are combined into a single index \(p\) for simplicity, \(a_p\) is the annihilation operator for the mode \(p\), and \(\sigma_{z,j}\) is the Pauli \(Z\) operator for the ion \(j\). 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}^N \sigma_{x, j} \sum_{p = 1}^{3N} (-\beta_{pj}^*(t)a_p + \beta_{pj}(t) a_p^\dagger) ,\]

where \(\sigma_{x, j}\) is the Pauli \(X\) operator for the ion \(j\) and \(\beta_{pj}(t) = \eta_{pj} \frac{\gamma_j(t)}{2} e^{i\delta_p t}\), indicating the coupling of the ion \(j\) to the motional mode \(p\). Note that \(\delta_p\) is the angular relative detuning, which corresponds to \(2 \pi\) times the relative_detuning parameter that you passed. The corresponding unitary operation is given by [1]

\[U(t) = \exp\left[ \sum_{j=1}^N \sigma_{x, j} B_j(t) + i\sum_{j=1}^N\sum_{k=1}^{j - 1} (\phi_{jk}(t) + \phi_{kj}(t)) \sigma_{x, j} \sigma_{x, k} \right] ,\]


\[ \begin{align}\begin{aligned}B_j(t) &\equiv \sum_{p = 1}^{3N} \left(\eta_{pj}\alpha_{pj}(t)a_p^\dagger - \eta_{pj}^{\ast}\alpha_{pj}^\ast(t)a_p \right) ,\\\phi_{jk}(t) &\equiv \mathrm{Im} \left[ \sum_{p=1}^{3N} \int_{0}^{t} d \tau_1 \int_{0}^{\tau_1} d \tau_2 \beta_{pj}(\tau_1)\beta_{pk}^{\ast}(\tau_2) \right] ,\end{aligned}\end{align} \]


\[\alpha_{pj}(t) = \int_0^t d\tau \frac{\gamma_j(\tau)}{2} e^{i \delta_p \tau} .\]

This function calculates the relative phases \(\Phi_{jk}(t_i) = \phi_{jk}(t_i) + \phi_{kj}(t_i)\) for all ions pairs at time \(t_i\) and stores the result in the form of a strictly lower triangular matrix. That is, the \(jk\)-th element of that matrix records the relative phase between the ion \(j\) and \(k\), while the elements with indices \(j \leq k\) are zeros.



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.