Labber-software / Drivers

Instrument drivers for Labber
http://labber.org
Other
54 stars 53 forks source link

Massive pull request after DME experiments #113

Closed mortenkjaergaard closed 5 years ago

mortenkjaergaard commented 5 years ago

To many modifications to list, but this is predominantly a lot of improvements to Multi qubit pulse generator. This is the version used to realize high-fidelity gates and algorithms. Has support for new versions of CustomSequences, more flexible back end for composite gate definitions and much more.

Most important is the introduction if gates.py, software filtering of AWG signals as well as important factor-of-two fixing and a rounding error (leading to crashes) in definition of the slepian and netzero slepian waveform for CZ gates.

Examples for new CustomSequences:

In the old version one had to write lines like: self.add_gate([0], [Gate.Zp]) which has now been replaced by: self.add_gate(0, gates.Zp)

One can now also do arbitrary single-qubit gates to e.g. qubit N with the following lines: self.add_gate(N, gates.SingleQubitXYRotation(phi=<angle>, theta=<angle>)) One can do simultaneous pulses: self.add_gate([0,1], [gates.X, gates.X2p]) One can do more fancy gates: self.add_gate(0, gates.H) or self.add_gate([0,1] gates.CNOT) which automatically explodes a CNOT into (1 x H) CZ (1 x H). See gates.py for more details.