Skip to main content

QDsim

QDsim stands for Quantum Dots simulator. It efficiently and quickly simulates charge stability diagrams for large quantum dot devices (even 100+ dots). It was developed to make the simulation process as quick and as user-friendly as possible. It is based on the constant interaction model, therefore it does not account for the quantum mechanical effects of the dots, but its simplicity allows for quick and efficient creation of datasets.

Description

The package is composed of two main classes: QDDevice and QDSimulator. The QDDevice class is used to create a quantum dot device, which can be either a pre-defined device or a custom device. The QDSimulator class is used to set up the simulation environment and run the simulation.

The package is designed to be user-friendly and efficient, allowing for the simulation of charge stability diagrams for large quantum dot devices (even 100+ dots) in a matter of minutes.

In order to simulate the charge stability diagram of an (arbitrary) quantum dot device, just do the following:

  1. Take advantage of a pre-defined device or create your own custom device via a QDDevice object;
  2. Set up the simulation environment (e.g. sensor locations, gates to be scanned, voltage ranges, etc.) via a QDSimulator object and run the simulation;
  3. Save the data (and/or plots) and enjoy!

A practical example is shown below in the Usage section.

All the features available are described in the tutorial folder, in which you can find 4 different Jupyter notebooks, each with a step-by-step guide on how to use the package. Each notebooks focuses on a different aspect of the package, from the creation of a custom device to the simulation of a charge stability diagram, with all its possible options and features. We suggest to read them in order, as they are designed to be read sequentially, from the first to the last. They were designed to reduce redundancy of information and to provide a clear and concise guide on how to fully take advantage of the package.

Installation

This package was developed on Python 3.9.18, and the requirements are tested for this version. It is recommended to use this version to avoid compatibility issues.

The package can be installed via pip by executing:

pip install qdsim

For the installation in development/editable mode, use the option -e.

In order to use the package, it is required to manually install either the MOSEK solver (licensed, free for academics) or the SCIP solver (open source).

Usage

Here is a quick example of how to use this project. Look at the tutorial folder for more examples and a step-by-step guide on how to use the package.

from qdsim import QDDevice, QDSimulator

# Step 1: Create a quantum dot device
# use a pre-defined double dot device
qddevice = QDDevice() # Create a QDDevice object
qddevice.one_dimensional_dots_array(n_dots=2) # Create a 1D array of 2 quantum dots

# Step 2: Set up the simulator
qdsimulator = QDSimulator('Electrons')
# set the sensor location from which the charge stability diagram is measured
qdsimulator.set_sensor_locations([[2, 1]])
# Simulate the charge stability diagram
qdsimulator.simulate_charge_stability_diagram(
    qd_device=qddevice, v_range_x=[-5, 20], solver='MOSEK',
    v_range_y=[-5, 20], n_points_per_axis=60,
    scanning_gate_indexes=[0, 1])

# Step 3: Plot the charge stability diagram
qdsimulator.plot_charge_stability_diagrams()

Contributing

We welcome contributors and collaborators. The person wanting to contribute can start by opening an issue and they will hear from us.

Authors and acknowledgment

Here is a list of authors who have contributed to this project:

We also want to thank Francesco Borsoi, Brennan Undseth, and Menno Veldhorst for their fruitful discussions and suggestions.

License

This work is licensed under a MIT License

Release files for QDsim 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for QDsim 1.0.1
File Size Uploaded
qdsim-1.0.1.tar.gz 28.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for QDsim 1.0.1
File Interpreter ABI Platform
QDsim-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 59.1 kB

Release files / qdsim-1.0.1.tar.gz

Download URL qdsim-1.0.1.tar.gz
Size 28.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f4ace67bc2562b83bef620e5916cfb06728a0298819299c30b802bfc6625481f
BLAKE2b-256 checksum
How to use checksums
86dc4fda1dbfcf36bcd6e9fbbc0339bd53801ee40c955173751979d9b394c96f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.13

Release files / QDsim-1.0.1-py3-none-any.whl

Download URL QDsim-1.0.1-py3-none-any.whl
Size 30.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f86d5fe6f3ba2a757fee6b931f4ecc34ab51ac7a6f1d8ddf57572aaaa20bceb3
BLAKE2b-256 checksum
How to use checksums
5e43a27e902fd58913cae93b8b599b4b621b7916da11a0ada7d08bd5e5ba1460
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.13

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page