theatlasroom / nanotune

Code for automatically tuning quantum dots

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nanotune is a QCoDeS- and Python-based automated tuning software, which uses supervised machine learning to enable autonomous bring-up of gate-defined quantum dots.

What it does

Defining quantum dots in semiconductor-based heterostructures is an essential step in initializing solid-state qubits. With growing device complexity and increasing number of functional devices required for measurements, a manual approach to finding suitable gate voltages to confine electrons electrostatically is impractical.

Nanotune automates typical manual measurements and replaces the exerimenter's decision about next tuning steps by supervised machine learning. It has enabled the implementation of a two-stage device characterization and dot-tuning process, which first determines whether devices are functional and then attempts to tune the functional devices to the single or double quantum-dot regime. Measurement quality assessement and charge state detection on charge stability diagrams is done using four binary classifiers trained with experimental data, reflecting real device behavior.

While autonomous tuning has been demonstrated on spin qubit devices in GaAs, published here, nanotune can easly be used to implement tuning sequences for other devices structures and materials.

Nanotune also provides a data processing pipeline starting from data aquisition to machine learning algorihtm application. This allowed to conduct the comparison between synthetic and experimental training data detailed here.

Word of caution

The code in this repo is still under developement. The following sub-modules are not stable:

  • labelling/*
  • model/*
  • classification/*
  • device/deviceconfigurator
  • device_tuner/tuningreport
  • device_tuner/fivedottuner

Submodules which are likely to change in the future are:

  • device/device
  • device_tuner/tuner
  • data/dataset

Getting Started

Requirements

nanotune requires a working python 3.7+ installation. We recommend using Anaconda or Miniconda for managing nanotune's python environment.

Installing

At the moment, nanotune is only available from GitHub. After cloning, you can set up a python environment in your preferred way, either using the requirements.txt or environment.yml. When using conda, simply navigate into the outer nanotune folder in a terminal and type:

conda env create -f environment.yml
conda activate nanotune
pip install -e .

License

Code of Conduct

nanotune strictly adheres to the Microsoft Open Source Code of Conduct.

Acknowledgments

A special thanks goes to Matthias Troyer, Maja Cassidy, David Reilly and Charles Marcus for initiating, supervising and pushing over the finish line the PhD project, which resulted in the original version of nanotune. Chris Granade, Nathan Wiebe, John Hornibrook - your inputs were invaluable in implementing several modules. Alice Mahoney, Sebastian Pauka, Rachpon Kalra - thank you for setting up fridges and prepping devices, making it possible for automated tuning to be developed, tested and demonstrated. William H.P. Nielsen and Jens Nielsen - both your patience and help with qcodes was essential.

About

Code for automatically tuning quantum dots

License:MIT License


Languages

Language:Jupyter Notebook 53.0%Language:Python 47.0%