-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Weilei Zeng at qlab01
committed
Apr 26, 2024
1 parent
71f51a3
commit 9525d04
Showing
1 changed file
with
165 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,165 @@ | ||
{ | ||
"cells": [ | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 1, | ||
"id": "24bc55f6-0c93-479c-9408-80e0b37eaa57", | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [ | ||
"# threshold simulation for surface codes" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 2, | ||
"id": "df077a0b-26a8-4138-a752-b50f5ed96215", | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [ | ||
"!pip freeze" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 3, | ||
"id": "7c5d6094-a2cd-4bd1-848b-c7495526fbc6", | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
"ename": "ImportError", | ||
"evalue": "cannot import name 'Matching' from 'pymatching' (unknown location)", | ||
"output_type": "error", | ||
"traceback": [ | ||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | ||
"\u001b[0;31mImportError\u001b[0m Traceback (most recent call last)", | ||
"Cell \u001b[0;32mIn [3], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mpymatching\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m Matching\n", | ||
"\u001b[0;31mImportError\u001b[0m: cannot import name 'Matching' from 'pymatching' (unknown location)" | ||
] | ||
} | ||
], | ||
"source": [ | ||
"from pymatching import Matching" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 2, | ||
"id": "0ab24e32-9bcd-40a5-9da6-98d5a5437afc", | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
"name": "stdout", | ||
"output_type": "stream", | ||
"text": [ | ||
"Requirement already satisfied: pymatching in /opt/conda/lib/python3.10/site-packages (2.0.1)\n", | ||
"Requirement already satisfied: stim in /opt/conda/lib/python3.10/site-packages (1.10.0)\n", | ||
"Requirement already satisfied: matplotlib in /opt/conda/lib/python3.10/site-packages (from pymatching) (3.6.2)\n", | ||
"Requirement already satisfied: networkx in /opt/conda/lib/python3.10/site-packages (from pymatching) (2.8.8)\n", | ||
"Requirement already satisfied: scipy in /opt/conda/lib/python3.10/site-packages (from pymatching) (1.9.3)\n", | ||
"Requirement already satisfied: numpy in /opt/conda/lib/python3.10/site-packages (from pymatching) (1.23.4)\n", | ||
"Requirement already satisfied: retworkx>=0.11.0 in /opt/conda/lib/python3.10/site-packages (from pymatching) (0.12.1)\n", | ||
"Requirement already satisfied: rustworkx==0.12.1 in /opt/conda/lib/python3.10/site-packages (from retworkx>=0.11.0->pymatching) (0.12.1)\n", | ||
"Requirement already satisfied: pillow>=6.2.0 in /opt/conda/lib/python3.10/site-packages (from matplotlib->pymatching) (9.2.0)\n", | ||
"Requirement already satisfied: cycler>=0.10 in /opt/conda/lib/python3.10/site-packages (from matplotlib->pymatching) (0.11.0)\n", | ||
"Requirement already satisfied: contourpy>=1.0.1 in /opt/conda/lib/python3.10/site-packages (from matplotlib->pymatching) (1.0.6)\n", | ||
"Requirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/lib/python3.10/site-packages (from matplotlib->pymatching) (1.4.4)\n", | ||
"Requirement already satisfied: pyparsing>=2.2.1 in /opt/conda/lib/python3.10/site-packages (from matplotlib->pymatching) (3.0.9)\n", | ||
"Requirement already satisfied: packaging>=20.0 in /opt/conda/lib/python3.10/site-packages (from matplotlib->pymatching) (21.3)\n", | ||
"Requirement already satisfied: fonttools>=4.22.0 in /opt/conda/lib/python3.10/site-packages (from matplotlib->pymatching) (4.38.0)\n", | ||
"Requirement already satisfied: python-dateutil>=2.7 in /opt/conda/lib/python3.10/site-packages (from matplotlib->pymatching) (2.8.2)\n", | ||
"Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib->pymatching) (1.16.0)\n" | ||
] | ||
} | ||
], | ||
"source": [ | ||
"#Only need to install onece for a container\n", | ||
"#!pip install pymatching stim --upgrade" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 9, | ||
"id": "e4b23f35-980e-4957-bf35-9c3237bb43ec", | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
"data": { | ||
"image/png": "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\n", | ||
"text/plain": [ | ||
"<Figure size 300x300 with 1 Axes>" | ||
] | ||
}, | ||
"metadata": {}, | ||
"output_type": "display_data" | ||
} | ||
], | ||
"source": [ | ||
"\"\"\"\n", | ||
"This code is supported by the website: https://www.guanjihuan.com\n", | ||
"The newest version of this code is on the web page: https://www.guanjihuan.com/archives/10909\n", | ||
"\"\"\"\n", | ||
"\n", | ||
"import numpy as np\n", | ||
"\n", | ||
"\n", | ||
"def main():\n", | ||
" x_array = np.arange(-2, 5.1)\n", | ||
" y_array = np.arange(-2, 5.1)\n", | ||
" coordinates = []\n", | ||
" for x in x_array:\n", | ||
" for y in y_array:\n", | ||
" coordinates.append([x, y])\n", | ||
" plot_dots(coordinates)\n", | ||
"\n", | ||
"\n", | ||
"def plot_dots(coordinates):\n", | ||
" import matplotlib.pyplot as plt\n", | ||
" fig, ax = plt.subplots(figsize=(3,3))\n", | ||
" plt.subplots_adjust(left=0.05, bottom=0.05, right=0.95, top=0.95)\n", | ||
" plt.axis('off')\n", | ||
" for i1 in range(len(coordinates)):\n", | ||
" for i2 in range(len(coordinates)):\n", | ||
" if np.sqrt((coordinates[i1][0] - coordinates[i2][0])**2+(coordinates[i1][1] - coordinates[i2][1])**2) < 1.1:\n", | ||
" ax.plot([coordinates[i1][0], coordinates[i2][0]], [coordinates[i1][1], coordinates[i2][1]], '-k', linewidth=1)\n", | ||
" for i in range(len(coordinates)):\n", | ||
" pass\n", | ||
" ax.plot(coordinates[i][0], coordinates[i][1], 'ro', markersize=10)\n", | ||
" # plt.savefig('square.eps') \n", | ||
" plt.show()\n", | ||
"\n", | ||
"\n", | ||
"main()" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": null, | ||
"id": "54c2ad79-8ddf-4894-9dfa-f0ee0e76fd21", | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [] | ||
} | ||
], | ||
"metadata": { | ||
"kernelspec": { | ||
"display_name": "Python 3 (ipykernel)", | ||
"language": "python", | ||
"name": "python3" | ||
}, | ||
"language_info": { | ||
"codemirror_mode": { | ||
"name": "ipython", | ||
"version": 3 | ||
}, | ||
"file_extension": ".py", | ||
"mimetype": "text/x-python", | ||
"name": "python", | ||
"nbconvert_exporter": "python", | ||
"pygments_lexer": "ipython3", | ||
"version": "3.10.6" | ||
} | ||
}, | ||
"nbformat": 4, | ||
"nbformat_minor": 5 | ||
} |