Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update README file #278

Merged
merged 3 commits into from
Jan 30, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 32 additions & 21 deletions Quantum-Control-Applications/README.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,45 @@
# Quantum Control Applications

This folder contains scripts and examples for different qubits types, all the way from basic to advanced protocols.
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](https://github.com/qua-platform/py-qua-tools#installation).

## Superconducting Qubits
### [Two flux tunable transmons](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Two-Flux-Tunable-Transmons)
### [Two flux tunable transmons](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Two-Flux-Tunable-Coupled-Transmons)
These files showcase various experiments that can be done on a several flux-tunable transmons using the [standard configuration](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Two-Flux-Tunable-Transmons/Standard%20Configuration#two-flux-tunable-transmons-with-the-standard-configuration).
#### <u> Advanced use-cases: </u>
* [SWAP spectroscopy improved with predistortion digital filters](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Two-Flux-Tunable-Transmons/Use%20Case%201%20-%20Two%20qubit%20gate%20optimization%20with%20cryoscope#two-qubit-swap-spectroscopy-improved-with-pre-distortion-digital-filters).
* [Two-qubit randomized benchmarking](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Two-Flux-Tunable-Transmons/Use%20Case%202%20-%20Two-Qubit-Randomized-Benchmarking#two-qubit-randomized-benchmarking).
* [Two-qubit cross-entropy benchmarking](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Two-Flux-Tunable-Transmons/Use%20Case%203%20-%20Two-Qubit%20Cross-Entropy%20Benchmarking).
* [SWAP spectroscopy improved with predistortion digital filters](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Two-Flux-Tunable-Coupled-Transmons/Use%20Case%201%20-%20Two%20qubit%20gate%20optimization%20with%20cryoscope).
* [Two-qubit randomized benchmarking](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Two-Flux-Tunable-Coupled-Transmons/Use%20Case%202%20-%20Two-Qubit-Randomized-Benchmarking).
* [Two-qubit cross-entropy benchmarking](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Two-Flux-Tunable-Coupled-Transmons/Use%20Case%203%20-%20Two-Qubit%20Cross-Entropy%20Benchmarking).
* [Single- and Two-Qubit State and Process Tomography](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Two-Flux-Tunable-Coupled-Transmons/Use%20Case%204%20-%20Single-%20and%20Two-Qubit%20State%20and%20Process%20Tomography)

### [Single fixed frequency transmon](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Single-Fixed-Transmon#single-fixed-transmon-superconducting-qubit)
These files showcase various experiments that can be done on a single fixed-frequency transmon.
### [Two fixed coupled transmons](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Two-Fixed-Coupled-Transmons)
These files showcase various experiments that can be done on two fixed coupled transmons.
#### <u> Advanced use-cases: </u>
* [Qubit Frequency Tracking](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Single-Fixed-Transmon/Use%20Case%201%20-%20Schuster%20Lab%20-%20Qubit%20Frequency%20Tracking#qubit-frequency-tracking)
performed in the lab of Prof. David Schuster in the University of Chicago.
* [Optimized readout with optimal weights](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Single-Fixed-Transmon/Use%20Case%202%20-%20Optimized%20readout%20with%20optimal%20weights#optimized-readout-with-optimal-weights).
* [Two qubit RB with cross-resonance gates](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Two-Fixed-Coupled-Transmons/Use%20Case%201%20Two%20qubit%20RB%20without%20baking).

### [Single flux tunable transmon](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Single-Flux-Tunable-Transmon#single-flux-tunable-transmon)
### [Single flux tunable transmon](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Single-Flux-Tunable-Transmon)
These files showcase various experiments that can be done on a single flux-tunable transmon.
#### <u> Advanced use-cases: </u>
* [Parametric Drive between flux-tunable-qubit and qubit-coupler](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Single-Flux-Tunable-Transmon/Use%20Case%203%20-%20Ma%20Lab%20-%20Parametric%20Drive%20iSWAP#parametric-drive-between-flux-tunable-qubit-and-qubit-coupler)
* [Parametric Drive between flux-tunable-qubit and qubit-coupler](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Single-Flux-Tunable-Transmon/Use%20Case%203%20-%20Ma%20Lab%20-%20Parametric%20Drive%20iSWAP#parametric-drive-between-flux-tunable-qubit-and-qubit-coupler)
performed in the lab of Prof. Alex Ma at Purdue University.
* [Cryoscope](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Single-Flux-Tunable-Transmon/Use%20Case%201%20-%20Paraoanu%20Lab%20-%20Cryoscope#cryoscope)
* [Cryoscope](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Single-Flux-Tunable-Transmon/Use%20Case%201%20-%20Paraoanu%20Lab%20-%20Cryoscope#cryoscope)
performed in the lab of Prof. Sorin Paraoanu in Aalto University.
* [DRAG Pulse Calibration](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Single-Flux-Tunable-Transmon/Use%20Case%202%20-%20DRAG%20coefficient%20calibration#derivative-removal-by-adiabatic-gate-drag-and-ac-stark-shift-calibration).
* [Robust qubit control using phase-modulated pulses](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Single-Flux-Tunable-Transmon/Use%20Case%204%20-%20Paraoanu%20Lab%20-%20Robust%20qubit%20control%20using%20phase-modulated%20pulses)
performed in the lab of Prof. Sorin Paraoanu in Aalto University.

### [Single fixed frequency transmon](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Single-Fixed-Transmon)
These files showcase various experiments that can be done on a single fixed-frequency transmon.
#### <u> Advanced use-cases: </u>
* [Qubit Frequency Tracking](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Single-Fixed-Transmon/Use%20Case%201%20-%20Schuster%20Lab%20-%20Qubit%20Frequency%20Tracking#qubit-frequency-tracking)
performed in the lab of Prof. David Schuster in the University of Chicago.
* [Optimized readout with optimal weights](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/Single-Fixed-Transmon/Use%20Case%202%20-%20Optimized%20readout%20with%20optimal%20weights#optimized-readout-with-optimal-weights).


### [3D storage cavity](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Superconducting/3D-storage-cavity)
These files showcase various experiments that can be done on a qubit coupled to a 3d storage cavity.

## [AMO Qubits](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/AMO)
### Rydberg Arrays
Expand All @@ -40,7 +51,7 @@ These files showcase various experiments that can be done on a single flux-tunab
## Optically addressable spin qubits

### [Cryogenic nanophotonic cavity](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Optically%20addressable%20spin%20qubits/Cryogenic%20nanophotonic%20cavity#single-yb-center-in-a-cyrogenic-nanophotonic-cavity)
These files showcase various experiments that can be done on a Yb center (also works for other rare-earth ions) in a
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.
#### <u> Advanced use-cases: </u>
* [High resolution time-tagging](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Optically%20addressable%20spin%20qubits/Cryogenic%20nanophotonic%20cavity/Use%20case%201%20-%20Faraon%20Lab%20-%20sub-ns%20timetagging#high-resolution-time-tagging)
Expand All @@ -56,11 +67,11 @@ These files showcase various experiments that can be done on an NV center in a c
which is controlled via a digital channel.

## Quantum-dots
### [Single Spin with EDSR](https://github.com/qua-platform/qua-libs/blob/main/Quantum-Control-Applications/Quantum-Dots/Single_Spin_EDSR/README.md)
### [Single Spin with EDSR](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Quantum-Dots/Single_Spin_EDSR)
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.

### [Singlet-Triplet qubit](https://github.com/qua-platform/qua-libs/blob/main/Quantum-Control-Applications/Quantum-Dots/Singlet_Triplet_Qubit/README.md)
### [Singlet-Triplet qubit](https://github.com/qua-platform/qua-libs/tree/main/Quantum-Control-Applications/Quantum-Dots/Singlet_Triplet_Qubit)
These files showcase various experiments that can be done on a singlet-triplet qubit.
Set-ups including the QDAC2 are also supported.

Expand All @@ -69,8 +80,8 @@ Set-ups including the QDAC2 are also supported.
performed in the lab of Prof. Natalia Ares in the University of Oxford.

# Convert the files to ipynb
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
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:
```python
import os
Expand All @@ -86,8 +97,8 @@ for filename in os.listdir():
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
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
``` python
from importlib import reload
import configuration
Expand All @@ -96,7 +107,7 @@ 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
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
``` python
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@


def instruct_to_integer(instruct):

"""
input:
instruct: a list of instructions such as [('x90', 0), ('I', 1), ('CNOT', 01)]
Expand Down Expand Up @@ -55,7 +54,6 @@ def instruct_to_integer(instruct):


def generate_sequence_list(depth):

"""
for a given depth, generate ONE random sequence containing 2q clifford gates at a certain depth
input:
Expand Down Expand Up @@ -106,7 +104,6 @@ def generate_sequence_list(depth):


def generate_sequence_list_interleaved(depth):

"""
for a given depth, generate ONE random sequence containing 2q clifford gates at a certain depth
interleaved by CNOT
Expand Down
Loading