Pulser combines (sums) the sampled amplitude, detuning, and phase contributions for each qubit when constructing the effective Hamiltonian.
However, this procedure does not reproduce the correct QuTiP Hamiltonian for pulse sequences intended to generate a Hamiltonian of the form
$$
H = \frac{\Omega(t)}{2} \sum_{i=1}^{N} \left[ \sigma_i^x + \sigma_i^y \right]
;-; \Delta(t) \sum_{i=1}^{N} \hat{n}_i
;+; \sum_{j>i} V_{ij} \hat{n}_i \hat{n}_j.
$$
Such a Hamiltonian can be constructed by applying two pulses sequentially:
- A first pulse with parameters
$$ (\Omega(t), \Delta(t), \phi = 0) $$
- A second pulse with parameters
$$(\Omega(t), \Delta(t), \phi = \pi/2)$$
Physically, these two pulses should generate independent contributions proportional to $\sigma^x$ and $\sigma^y$, respectively.
However, Pulser does not reconstruct the correct QuTiP Hamiltonian because it directly sums the phase arrays of pulses acting on the same target qubit instead of converting each pulse into its Cartesian components
$$
\Omega \cos(\phi), \sigma^x
\quad \text{and} \quad
\Omega \sin(\phi), \sigma^y
$$
before summation.
The relevant implementation can be found in:
pulser_core/pulser/sampler/samples.py (line 573 for global devices),
pulser_core/pulser/sampler/samples.py (line 581 for local devices).
As a result, the combined pulses yield:
- An effective amplitude of $2 \cdot \Omega(t)/2 = \Omega(t)$,
- A detuning of $\Delta(t)$,
- A phase equal to $0 + \pi/2 = \pi/2$,
which does not correspond to the intended Hamiltonian structure in the $\sigma^x / \sigma^y$ basis.
Below, we compare the Hamiltonian expected from QuTiP with the Hamiltonian returned by Pulser.
XY_Pulser_Error.ipynb
Pulser combines (sums) the sampled amplitude, detuning, and phase contributions for each qubit when constructing the effective Hamiltonian.
However, this procedure does not reproduce the correct QuTiP Hamiltonian for pulse sequences intended to generate a Hamiltonian of the form
Such a Hamiltonian can be constructed by applying two pulses sequentially:
$$ (\Omega(t), \Delta(t), \phi = 0) $$
Physically, these two pulses should generate independent contributions proportional to$\sigma^x$ and $\sigma^y$ , respectively.
However, Pulser does not reconstruct the correct QuTiP Hamiltonian because it directly sums the phase arrays of pulses acting on the same target qubit instead of converting each pulse into its Cartesian components
before summation.
The relevant implementation can be found in:
pulser_core/pulser/sampler/samples.py(line 573 for global devices),pulser_core/pulser/sampler/samples.py(line 581 for local devices).As a result, the combined pulses yield:
which does not correspond to the intended Hamiltonian structure in the$\sigma^x / \sigma^y$ basis.
Below, we compare the Hamiltonian expected from QuTiP with the Hamiltonian returned by Pulser.
XY_Pulser_Error.ipynb