Qiskit Metal | for quantum device design & analysis
Project description
Qiskit Metal
Qiskit Metal is an open-source framework for engineers and scientists to design superconducting quantum devices with ease.
Installation
We encourage installing Qiskit Metal via the pip tool (a python package manager).
pip install qiskit-metal
PIP will handle all dependencies automatically and you will always install the latest (and well-tested) version.
It is also recommended that you make a new conda environment before installing:
conda env create -n <env_name> environment.yml
conda activate <env_name>
python -m pip install --no-deps -e .
Source Code Installation
To edit the code and truly customize the experience, if PyPI gives you trouble, or to install from source, follow the instructions in the documentation and/or the installation instructions for developers.
Creating Your First Quantum Component in Qiskit Metal:
Now that Qiskit Metal is installed, it's time to begin working with it. We are ready to try out a quantum chip example, which is simulated locally using the Qiskit MetalGUI element. This is a simple example that makes a qubit.
$ python
>>> from qiskit_metal import designs, draw, MetalGUI, Dict, open_docs
>>> design = designs.DesignPlanar()
>>> design.overwrite_enabled = True
>>> design.chips.main
>>> design.chips.main.size.size_x = '11mm'
>>> design.chips.main.size.size_y = '9mm'
>>> gui = MetalGUI(design)
Launch the Qiskit Metal GUI to interactively view, edit, and simulate a QDesign:
>>> gui = MetalGUI(design)
Let's create a new qubit (a transmon) by creating an object of this class.
>>> from qiskit_metal.qlibrary.qubits.transmon_pocket import TransmonPocket
>>> q1 = TransmonPocket(design, 'Q1', options=dict(connection_pads=dict(a=dict())))
>>> gui.rebuild()
>>> gui.edit_component('Q1')
>>> gui.autoscale()
Change options.
>>> q1.options.pos_x = '0.5 mm'
>>> q1.options.pos_y = '0.25 mm'
>>> q1.options.pad_height = '225 um'
>>> q1.options.pad_width = '250 um'
>>> q1.options.pad_gap = '50 um'
Update the component geoemtry, since we changed the options.
>>> gui.rebuild()
Get a list of all the qcomponents in QDesign and then zoom on them.
>>> all_component_names = design.components.keys()
>>> gui.zoom_on_components(all_component_names)
Closing the Qiskit Metal GUI.
>>> gui.main_window.close()
A script is available here, where we also show the overview of Qiskit Metal.
Community and Support
Watch the recorded tutorials
The streaming will also be recorded and made available here for offline review.
Take part in the live tutorials and discussion
Through June 2021 we are offering live tutorials and Q&A. Sign up to receive an invite to the upcoming sessions. The streaming will also be recorded and made available for offline review. Find here more details on schedule and use the Slack channel to give us feedback and to request the most relevant content to you.
Get help: Slack
Use the slack channel. Join qiskit slack and then join the #metal
channel to communicate with the developers and other participants. You may also use this channel to inquire about collaborations.
Contribution Guidelines
If you'd like to contribute to Qiskit Metal, please take a look at our contribution guidelines. This project adheres to Qiskit's code of conduct. By participating, you are expected to uphold this code. We use GitHub issues for tracking requests and bugs. Please join the Qiskit Slack community and use our Qiskit Slack channel for discussion and simple questions. For questions that are more suited for a forum we use the Qiskit tag in the Stack Exchange.
Next Steps
Now you're set up and ready to check out some of the other examples from our Qiskit Metal Tutorials repository or Qiskit Metal Documentation.
Authors and Citation
Qiskit Metal is the work of many people who contribute to the project at different levels. Metal was conceived and developed by Zlatko Minev at IBM; then co-led with Thomas McConkey. If you use Qiskit Metal, please cite as per the included BibTeX file. For icon attributions, see here.
Changelog and Release Notes
The changelog for a particular release is dynamically generated and gets
written to the release page on Github for each release. For example, you can
find the page for the 0.0.4
release here:
https://github.com/Qiskit/qiskit-metal/releases/tag/0.0.4
The changelog for the current release can be found in the releases tab:
The changelog provides a quick overview of notable changes for a given
release.
Additionally, as part of each release detailed release notes are written to
document in detail what has changed as part of a release. This includes any
documentation on potential breaking changes on upgrade and new features.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file qiskit_metal-0.0.4.tar.gz
.
File metadata
- Download URL: qiskit_metal-0.0.4.tar.gz
- Upload date:
- Size: 2.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.7.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf899fff6af38f9b936c2c36689b9d537da96e78591afbf784bc468764ae2f17 |
|
MD5 | 3c331f1fbe82c21eaa49b8f6cab69fc3 |
|
BLAKE2b-256 | 54e3d6100e7a7524d44977df3ad0eb7cfca708b96973ca8ce780456e7b776248 |
File details
Details for the file qiskit_metal-0.0.4-py3-none-any.whl
.
File metadata
- Download URL: qiskit_metal-0.0.4-py3-none-any.whl
- Upload date:
- Size: 2.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.7.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2dc7ff3b72e92f984ec79f545e05f2a9f112e27f6c512f30d85bcad5fd868b9a |
|
MD5 | cab67f491770a8b4c18712c86e19f97c |
|
BLAKE2b-256 | bf50236e7b07f3089156e021a5f2c7f97a079d93f8572696d75942c05761521c |