pasqal-io / Pulser

Library for pulse-level/analog control of neutral atom devices. Emulator with QuTiP.
Apache License 2.0
159 stars 57 forks source link

Improve documentation of pulser simulation #608

Closed a-corni closed 6 months ago

a-corni commented 7 months ago

@MauroMendizabal brought to our attention that there is a confusion in our code and notebooks between Kraus operators and collapse operators. In Pulser-simulation, we are working with qutip.mesolve and define there collapse operators and not Kraus operators. Therefore, after discussion with @dehond, it is suggested to:

  1. Modify the name of the variable kraus_ops to local_collapse_ops in set_config.
  2. Delete the L_0 operators from both notebook and code. The L0 operators are useless from a theoretical point of view, and deleting them should not have an impact on the code since for a collapse operator $L_0 = \sqrt{\gamma} I$, its effect in the master equation is $L_0 \rho L_0^\dagger - 1/2 \rho L_0 L_0^\dagger - 1/2 L_0 L_0^\dagger \rho = \gamma (\rho - 1/2 \rho -1/2 \rho) = 0$. Eventually we could explicit the conversion from Kraus operator to collapse operators in the tutorial.
  3. Replace the link to Preskill's notes to Nielsen and Chuang's "Quantum Computation and Quantum Information": the collapse operators we use for the depolarizing channel are not presented in the documentation we associate to the notebook on effecitve noise. Namely, the depolarizing collapse operators we use are $\sqrt{p/4}\sigma_i$ (i in {x, y, z}), whereas the one presented in Preskill notes are $\sqrt{p/3}\sigma_i$. Both are correct, they are just convention, as presented by Nielsen and Chuang p 378. Moreover, all the concepts presented by Preskill are also presented by them.