chalmers-qubit
A simulation framework for Chalmers devices that can be used to simulate the running of quantum algorithms with realistic noise. We follow qutip-qip to build a processor that can take in a quantum circuit (e.g., a QASM cicruit) and performs a master equation simulation adding noise such as T1 and T2. It is also possible to perform a Monte-Carlo trajectory simulation and customize the processor to add various types of noise such as ZZCrossTalk.
The package is under development and testing.
Installation
The main requirement to use this package is qutip-qip based on qutip: The Quantum Toolbox in Python. The requirements are already specified in the setup.cfg
file and you can install the package chalmers_qubit
simply by downloading this folder or cloning this repository and running:
to get the minimal installation. However, it might be beneficial to install an editable version. In the editable version, changes to the code are reflected system-wide without requiring a reinstallation.
If you do not care about making changes to the source code and just want to try out the package (e.g., from Google Colab), you can do a git+ install with
Usage
The usage of the package follows qutip-qip where first, a quantum circuit is defined using qutip-qip
and then run on one of the custom Chalmers processors, e.g., the processor called sarimner. The custom processor is defined in chalmers_qubit.devices.sarimner.processor
and can be initialized with a model
, compiler
and noise
.
Note that only gates with compilation instructions in chalmers_qubit/sarimner/compiler.py
will work for this particular processor.
Notebooks exploring the usage of the simulator is available in docs/examples/
.
It is also possible to import QASM circuits.
Development
In order to add new custom pulses or modify the device, edit the processor, or compiler the tutorials and detailed instructions in qutip-qip.
The tutorials show examples of how to customize the processor. If you have installed the package in the develop mode, any changes to the processor, e.g., adding a new gate will be reflected immediately system-wide without requiring a reinstallation of the package.
Support
This package was built from contributions by Pontus VikstÄl and Shahnawaz Ahmed.
Contact vikstal@chalmers.se, shahnawaz.ahmed95@gmail.com or anton.frisk.kockum@chalmers.se for help and support.