{ "cells": [ { "cell_type": "markdown", "id": "89bbcebd", "metadata": {}, "source": [ "# A.4 Full chip design" ] }, { "cell_type": "markdown", "id": "8117d06f", "metadata": {}, "source": [ "[](https://colab.research.google.com/github/qiskit-community/qiskit-metal/blob/main/docs/circuit-examples/full-design-flow-examples/A.4-Full-chip-design.ipynb)\n", "[](https://mybinder.org/v2/gh/qiskit-community/qiskit-metal/main?labpath=docs%2Fcircuit-examples%2Ffull-design-flow-examples%2FA.4-Full-chip-design.ipynb)\n", "\n", "> 💡 **Running in Colab or Binder?** Skip the desktop GUI install — the cell below grabs the lite (no-Qt) wheel, and `qm.gui(design)` auto-picks an inline matplotlib viewer with the same API as the desktop `MetalGUI`." ] }, { "cell_type": "markdown", "id": "simulation-pathways", "metadata": {}, "source": [ "> 🧠**Other simulation pathways.** This notebook uses Ansys and ElmerFEM side by side. A third route is the pip-installable gmsh + scikit-fem solver for eigenmodes, couplings and capacitance (tutorials 4.43–4.45); AWS Palace is available through SQDMetal, with a native integration in progress. [Simulation pathways](https://qiskit-community.github.io/qiskit-metal/simulation-pathways.html) summarizes what each solver computes, how to install it, and which tutorials use it." ] }, { "cell_type": "code", "execution_count": 1, "id": "af37ab8e", "metadata": { "execution": { "iopub.execute_input": "2026-09-27T06:08:32.845144Z", "iopub.status.busy": "2026-09-27T06:08:32.844842Z", "iopub.status.idle": "2026-09-27T06:08:32.849500Z", "shell.execute_reply": "2026-09-27T06:08:32.848450Z" } }, "outputs": [], "source": [ "# In Colab / Binder, uncomment to install Quantum Metal (lite, no Qt).\n", "# Locally you should already have it via `pip install quantum-metal` or\n", "# `pip install 'quantum-metal[gui]'` for the desktop GUI.\n", "# !pip install -q quantum-metal\n", "# For the gmsh / ElmerFEM section, also:\n", "# Colab only (not needed locally): gmsh's Linux wheel needs system graphics libraries Colab lacks.\n", "# !apt-get -qq update && apt-get -qq install -y libglu1-mesa libgl1 libxcursor1 libxft2 libxinerama1 libxfixes3 libxrender1 libxext6 libfontconfig1 > /dev/null\n", "# !pip install -q \"quantum-metal[mesh]\"" ] }, { "cell_type": "markdown", "id": "a4860a96", "metadata": {}, "source": [ "> 💡 **Desktop GUI or inline.** `metal.gui(design)` opens the desktop `MetalGUI` when Qt and a display are available and falls back to an inline viewer (Colab, Binder, a server) with the same API, so `gui.rebuild()` and `gui.screenshot()` work in both. See [1.1 Quick start](https://qiskit-community.github.io/qiskit-metal/tut/1-Overview/1.1-Quick-start.html) and [`docs/headless-usage.rst`](https://qiskit-community.github.io/qiskit-metal/headless-usage.html).\n", ">\n", "> The analysis sections use Ansys (Q3D and HFSS); their outputs are from a run with Ansys installed. The layout and the GDS export run anywhere." ] }, { "cell_type": "code", "execution_count": 2, "id": "70ecabbc", "metadata": { "execution": { "iopub.execute_input": "2026-09-27T06:08:32.856324Z", "iopub.status.busy": "2026-09-27T06:08:32.855171Z", "iopub.status.idle": "2026-09-27T06:08:35.293892Z", "shell.execute_reply": "2026-09-27T06:08:35.291693Z" } }, "outputs": [ { "data": { "text/html": [ "\n", "
qm.view(design); gui.rebuild(), gui.screenshot(), gui.edit_component(...) work as in the desktop GUI.pip install 'quantum-metal[gui]' and re-import.| \n", " | bus_01_connector_pad_Q_Main | \n", "bus_02_connector_pad_Q_Main | \n", "bus_03_connector_pad_Q_Main | \n", "bus_04_connector_pad_Q_Main | \n", "bus_05_connector_pad_Q_Main | \n", "ground_main_plane | \n", "pad_bot_Q_Main | \n", "pad_top_Q_Main | \n", "readout_connector_pad_Q_Main | \n", "
|---|---|---|---|---|---|---|---|---|---|
| bus_01_connector_pad_Q_Main | \n", "41.02176 | \n", "-0.24001 | \n", "-0.11719 | \n", "-0.04481 | \n", "-0.07874 | \n", "-29.00822 | \n", "-9.26982 | \n", "-1.06835 | \n", "-0.69738 | \n", "
| bus_02_connector_pad_Q_Main | \n", "-0.24001 | \n", "41.00041 | \n", "-0.75929 | \n", "-0.07826 | \n", "-0.04484 | \n", "-28.98620 | \n", "-1.07415 | \n", "-9.21369 | \n", "-0.10640 | \n", "
| bus_03_connector_pad_Q_Main | \n", "-0.11719 | \n", "-0.75929 | \n", "45.49485 | \n", "-0.75936 | \n", "-0.11710 | \n", "-31.95144 | \n", "-1.30891 | \n", "-9.60366 | \n", "-0.15780 | \n", "
| bus_04_connector_pad_Q_Main | \n", "-0.04481 | \n", "-0.07826 | \n", "-0.75936 | \n", "41.02315 | \n", "-0.24004 | \n", "-29.00650 | \n", "-1.07408 | \n", "-9.21787 | \n", "-0.10629 | \n", "
| bus_05_connector_pad_Q_Main | \n", "-0.07874 | \n", "-0.04484 | \n", "-0.11710 | \n", "-0.24004 | \n", "41.00041 | \n", "-28.98777 | \n", "-9.26969 | \n", "-1.06800 | \n", "-0.69718 | \n", "
| ground_main_plane | \n", "-29.00822 | \n", "-28.98620 | \n", "-31.95144 | \n", "-29.00650 | \n", "-28.98777 | \n", "308.85307 | \n", "-33.31374 | \n", "-32.77926 | \n", "-31.47933 | \n", "
| pad_bot_Q_Main | \n", "-9.26982 | \n", "-1.07415 | \n", "-1.30891 | \n", "-1.07408 | \n", "-9.26969 | \n", "-33.31374 | \n", "95.77645 | \n", "-31.23494 | \n", "-7.05105 | \n", "
| pad_top_Q_Main | \n", "-1.06835 | \n", "-9.21369 | \n", "-9.60366 | \n", "-9.21787 | \n", "-1.06800 | \n", "-32.77926 | \n", "-31.23494 | \n", "97.45815 | \n", "-1.13125 | \n", "
| readout_connector_pad_Q_Main | \n", "-0.69738 | \n", "-0.10640 | \n", "-0.15780 | \n", "-0.10629 | \n", "-0.69718 | \n", "-31.47933 | \n", "-7.05105 | \n", "-1.13125 | \n", "42.10847 | \n", "
| \n", " | fQ | \n", "EC | \n", "EJ | \n", "alpha | \n", "dispersion | \n", "gbus | \n", "chi_in_MHz | \n", "χr MHz | \n", "gr MHz | \n", "
|---|---|---|---|---|---|---|---|---|---|
| 1 | \n", "5.334856 | \n", "349.017036 | \n", "11.671114 | \n", "-418.169804 | \n", "304.17916 | \n", "[46.33925002733205, 44.187331992065, -42.60569... | \n", "[-0.5299131495471634, -9.027355440831576, -5.3... | \n", "0.529913 | \n", "46.339250 | \n", "
| 2 | \n", "5.293479 | \n", "343.185353 | \n", "11.671114 | \n", "-410.316354 | \n", "266.531163 | \n", "[44.48347532561871, 43.91119291374231, -40.557... | \n", "[-0.46063358481393896, -7.215266047760587, -4.... | \n", "0.460634 | \n", "44.483475 | \n", "
| 3 | \n", "5.17092 | \n", "326.250466 | \n", "11.671114 | \n", "-387.687301 | \n", "177.943279 | \n", "[43.075350634431345, 44.952056360711815, -42.4... | \n", "[-0.3648586676742546, -4.484695488473718, -2.8... | \n", "0.364859 | \n", "43.075351 | \n", "
| 4 | \n", "5.108373 | \n", "317.801003 | \n", "11.671114 | \n", "-376.493737 | \n", "143.687618 | \n", "[43.13448774561514, 43.30507017705921, -44.091... | \n", "[-0.3364016456250303, -3.3214019525977982, -2.... | \n", "0.336402 | \n", "43.134488 | \n", "
| 5 | \n", "5.074637 | \n", "313.297364 | \n", "11.671114 | \n", "-370.553464 | \n", "127.750448 | \n", "[43.277211774574475, 45.44982592921459, -43.97... | \n", "[-0.3238225188245248, -3.2664264401609686, -2.... | \n", "0.323823 | \n", "43.277212 | \n", "
| 6 | \n", "5.041406 | \n", "308.897746 | \n", "11.671114 | \n", "-364.767715 | \n", "113.602489 | \n", "[43.129687798475445, 46.338514084696286, -45.2... | \n", "[-0.3078723909186688, -3.0514480686225833, -2.... | \n", "0.307872 | \n", "43.129688 | \n", "
| 7 | \n", "5.023692 | \n", "306.56726 | \n", "11.671114 | \n", "-361.709895 | \n", "106.643367 | \n", "[43.19413642807277, 46.657953431831764, -45.44... | \n", "[-0.3017295453629039, -2.9276804873799436, -2.... | \n", "0.301730 | \n", "43.194136 | \n", "
| 8 | \n", "5.008631 | \n", "304.593954 | \n", "11.671114 | \n", "-359.124452 | \n", "101.0268 | \n", "[43.35990049055785, 46.99778023673387, -46.254... | \n", "[-0.2981493080591482, -2.837011006665539, -2.1... | \n", "0.298149 | \n", "43.359900 | \n", "
| 9 | \n", "4.995019 | \n", "302.81687 | \n", "11.671114 | \n", "-356.799016 | \n", "96.177974 | \n", "[43.46480555843615, 47.44716630141518, -46.470... | \n", "[-0.29435169781569703, -2.77574777235584, -2.0... | \n", "0.294352 | \n", "43.464806 | \n", "
| 10 | \n", "4.989574 | \n", "302.107679 | \n", "11.671114 | \n", "-355.871761 | \n", "94.296886 | \n", "[43.597944296844695, 47.654276741440626, -46.5... | \n", "[-0.294078462456382, -2.7551199777315323, -2.0... | \n", "0.294078 | \n", "43.597944 | \n", "
| 11 | \n", "4.98144 | \n", "301.050061 | \n", "11.671114 | \n", "-354.489758 | \n", "91.547639 | \n", "[43.550558591120705, 48.01342068567195, -46.89... | \n", "[-0.2903720998583706, -2.7305526898818075, -2.... | \n", "0.290372 | \n", "43.550559 | \n", "
| 12 | \n", "4.975829 | \n", "300.321846 | \n", "11.671114 | \n", "-353.538756 | \n", "89.693095 | \n", "[43.677893070257284, 48.10303127872349, -47.06... | \n", "[-0.28996661844835814, -2.6961457251648193, -2... | \n", "0.289967 | \n", "43.677893 | \n", "
| 13 | \n", "4.97308 | \n", "299.965387 | \n", "11.671114 | \n", "-353.073412 | \n", "88.796586 | \n", "[43.74422948775013, 48.268028637087, -47.10813... | \n", "[-0.28981954135701093, -2.693030802856854, -2.... | \n", "0.289820 | \n", "43.744229 | \n", "
| 14 | \n", "4.969275 | \n", "299.47245 | \n", "11.671114 | \n", "-352.430083 | \n", "87.568934 | \n", "[43.73302237009102, 48.38885048108347, -47.226... | \n", "[-0.2882553488551673, -2.6768170445299937, -2.... | \n", "0.288255 | \n", "43.733022 | \n", "
| 15 | \n", "4.966898 | \n", "299.164667 | \n", "11.671114 | \n", "-352.028505 | \n", "86.809485 | \n", "[43.77570019556721, 48.46146286708871, -47.343... | \n", "[-0.2879360055703413, -2.6664620128030103, -1.... | \n", "0.287936 | \n", "43.775700 | \n", "
| 16 | \n", "4.963607 | \n", "298.739021 | \n", "11.671114 | \n", "-351.47328 | \n", "85.76811 | \n", "[43.82048616757409, 48.50402461483827, -47.339... | \n", "[-0.2873072774566821, -2.6459305257029584, -1.... | \n", "0.287307 | \n", "43.820486 | \n", "
| \n", " | Q_Main_readout_connector_pad | \n", "Q_Main_bus_01_connector_pad | \n", "Q_Main_bus_02_connector_pad | \n", "Q_Main_bus_03_connector_pad | \n", "Q_Main_bus_04_connector_pad | \n", "Q_Main_bus_05_connector_pad | \n", "Q_Main_pad_top | \n", "Q_Main_pad_bot | \n", "ground_plane | \n", "
|---|---|---|---|---|---|---|---|---|---|
| Q_Main_readout_connector_pad | \n", "53.61 | \n", "-0.83 | \n", "-0.12 | \n", "-0.18 | \n", "-0.12 | \n", "-0.83 | \n", "-1.20 | \n", "-7.98 | \n", "-42.36 | \n", "
| Q_Main_bus_01_connector_pad | \n", "-0.83 | \n", "53.83 | \n", "-0.27 | \n", "-0.13 | \n", "-0.05 | \n", "-0.09 | \n", "-1.15 | \n", "-11.49 | \n", "-39.82 | \n", "
| Q_Main_bus_02_connector_pad | \n", "-0.12 | \n", "-0.27 | \n", "53.96 | \n", "-0.90 | \n", "-0.09 | \n", "-0.05 | \n", "-11.54 | \n", "-1.17 | \n", "-39.82 | \n", "
| Q_Main_bus_03_connector_pad | \n", "-0.18 | \n", "-0.13 | \n", "-0.90 | \n", "57.95 | \n", "-0.90 | \n", "-0.13 | \n", "-10.95 | \n", "-1.40 | \n", "-43.35 | \n", "
| Q_Main_bus_04_connector_pad | \n", "-0.12 | \n", "-0.05 | \n", "-0.09 | \n", "-0.90 | \n", "53.86 | \n", "-0.27 | \n", "-11.61 | \n", "-1.16 | \n", "-39.65 | \n", "
| Q_Main_bus_05_connector_pad | \n", "-0.83 | \n", "-0.09 | \n", "-0.05 | \n", "-0.13 | \n", "-0.27 | \n", "54.13 | \n", "-1.16 | \n", "-11.55 | \n", "-40.05 | \n", "
| Q_Main_pad_top | \n", "-1.20 | \n", "-1.15 | \n", "-11.54 | \n", "-10.95 | \n", "-11.61 | \n", "-1.16 | \n", "105.80 | \n", "-34.33 | \n", "-33.85 | \n", "
| Q_Main_pad_bot | \n", "-7.98 | \n", "-11.49 | \n", "-1.17 | \n", "-1.40 | \n", "-1.16 | \n", "-11.55 | \n", "-34.33 | \n", "103.55 | \n", "-34.47 | \n", "
| ground_plane | \n", "-42.36 | \n", "-39.82 | \n", "-39.82 | \n", "-43.35 | \n", "-39.65 | \n", "-40.05 | \n", "-33.85 | \n", "-34.47 | \n", "300.00 | \n", "
Error:
| Lj1 | \n", "13 | \n", "
|---|---|
| eigenmode | \n", "\n", " |
| 0 | \n", "4550.03 | \n", "
| 1 | \n", "7388.26 | \n", "
| 2 | \n", "14788.98 | \n", "
| \n", " | \n", " | 0 | \n", "1 | \n", "2 | \n", "
|---|---|---|---|---|
| Lj1 | \n", "\n", " | \n", " | \n", " | \n", " |
| 13 | \n", "0 | \n", "297.70 | \n", "5.00e-01 | \n", "1.16e-01 | \n", "
| 1 | \n", "0.50 | \n", "3.17e-04 | \n", "1.73e-04 | \n", "|
| 2 | \n", "0.12 | \n", "1.73e-04 | \n", "2.28e-05 | \n", "