This folder contains scripts and examples for different qubits types, all the way from basic to advanced protocols. It also includes various examples and results from labs as listed below.
Note that for them to work, you would need to download the latest version of the py-qua-tools.
These files showcase various experiments that can be done on a several flux-tunable transmons using the standard configuration.
- SWAP spectroscopy improved with predistortion digital filters.
- Two-qubit randomized benchmarking.
- Two-qubit cross-entropy benchmarking.
- Single- and Two-Qubit State and Process Tomography
These files showcase various experiments that can be done on a single fixed-frequency transmon.
- Qubit Frequency Tracking performed in the lab of Prof. David Schuster in the University of Chicago.
- Optimized readout with optimal weights.
These files showcase various experiments that can be done on a single flux-tunable transmon.
- Parametric Drive between flux-tunable-qubit and qubit-coupler performed in the lab of Prof. Alex Ma at Purdue University.
- Cryoscope performed in the lab of Prof. Sorin Paraoanu in Aalto University.
- DRAG Pulse Calibration.
- 2D Atom Sorting performed in the lab of Prof. Mark Saffman in the University of Wisconsin-Madison.
These files showcase various experiments that can be done on a Yb center (also works for other rare-earth ions) in a cryogenic nanophotonic cavity with a SNSPD and an AOM which is controlled via a digital channel.
- High resolution time-tagging performed in the lab of Prof. Faraon at Caltech.
These ESR protocols can be used in a variety of ensemble of defects in solids such as NV.
- CPMG performed in the lab of Prof. Sekhar at Darmouth College.
These files showcase various experiments that can be done on an NV center in a confocal setup with an SPCM and an AOM which is controlled via a digital channel.
These files showcase various experiments that can be done on a single spin driven by Electric Dipole Spin Resonance (EDSR). Set-ups including the Octave and/or QDAC2 are also supported.
These files showcase various experiments that can be done on a singlet-triplet qubit. Set-ups including the QDAC2 are also supported.
- Fast 2D scans using a spiral pattern performed in the lab of Prof. Natalia Ares in the University of Oxford.
If you wish to work with Jupyter notebooks, then you will need to convert the .py files into .ipynb files.
To do so you can either do it manually or install the ipynb-py-convert
package that can then be called from Jupyter
notebook cell or python file as in:
import os
import ipynb_py_convert
# iterate over files in current directory
for filename in os.listdir():
f = os.path.join(filename)
# checking if it is a file
if os.path.isfile(f):
# checking if it is a python file that we want to convert
if f[-3:] == ".py" and (f[0] in ["0", "1", "2"]):
print(f[:-2]+"ipynb")
ipynb_py_convert.convert(f, f[:-2]+"ipynb")
Moreover, in order to be able to change the parameters in the configuration.py file and update the jupyter kernel, you will need
to replace in all the files the line from configuration import *
by
from importlib import reload
import configuration
reload(configuration)
from configuration import *
This can be done easily by typing Ctrl + shift + F
in VS Code or Ctrl + shift + R
in PyCharm.
Finally, if you wish to benefit from the live plotting feature, then we advise you to work with the qt backend that can
be enabled in a given notebook by adding the magic line %matplotlib qt
.
To do it in all files, you can replace the line import matplotlib.pyplot as plt
by
import matplotlib.pyplot as plt
%matplotlib qt
using the shortcut command above. Note that you may need to install the PyQt package if it is not already in your python environment.