{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# How to use a QComponent" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For convenience, let's begin by enabling [automatic reloading of modules](https://ipython.readthedocs.io/en/stable/config/extensions/autoreload.html?highlight=autoreload) when they change." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, let's import Qiskit Metal:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "

Welcome to Qiskit Metal!

\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import qiskit_metal as metal\n", "from qiskit_metal import designs, draw\n", "from qiskit_metal import MetalGUI, Dict, open_docs\n", "\n", "%metal_heading Welcome to Qiskit Metal!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Just as we did in the \"Start Here\" notebook, we'll open the Qiskit Metal GUI and work with simple planar designs:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "design = designs.DesignPlanar()\n", "gui = MetalGUI(design)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's load a QComponent with all default options, corresponding to a transmon qubit. This particular QComponent is stored in the library qiskit_metal.qlibrary.qubits and we'll create a new object of the class TransmonPocket. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Select a QComponent to create (The QComponent is a python class named `TransmonPocket`)\n", "from qiskit_metal.qlibrary.qubits.transmon_pocket import TransmonPocket\n", "\n", "# Create a new qcomponent object \n", "q1 = TransmonPocket(design)\n", "gui.rebuild() # rebuild the design and plot " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that this QComponent consists of two large metallic pads with a thin strip of metal connecting them, corresponding to a Josephson Junction. The transmon qubit is centered at the origin by default. In the GUI, we can see that the ID assigned to our QComponent is \"1\" and that the QComponent class is \"Transmon Pocket.\" \n", "\n", "Note that since we didn't give the Qcomponent an explicit name, one was assigned automatically (\"Pocket_1\") which we can also see in the GUI. Taking a look at the actual qcomponent python script, we see that there is a \"short name\" defined in the qcomponent metadata (short_name = \"Pocket\" in the dictionary), which is where this name comes from. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is easy to give a specific name to a Qcomponent object. We can delete the QComponent \"Pocket_1\" by just clicking the \"Delete all\" button in the Qiskit Metal GUI. Alternatively, this can done by executing the following command, which deletes all components in the design (more on deleting later in this tutorial): " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# Delete all QComponents in our design, which in this case is just the transmon pocket \"Pocket_1\"\n", "design.delete_all_components()\n", "gui.rebuild() # rebuild the design and plot " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then, we can create the same transmon pocket with the name \"Q1\" by typing the command:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Create a new qcomponent object with name 'Q1' \n", "q1 = TransmonPocket(design, 'Q1')\n", "gui.rebuild() # rebuild the design and plot " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The QComponent we've just created as a name \"Q1\" and a Qcomponent ID of 2, since an ID of 1 was already used for the now-deleted \"Pocket_1\" object. It is worth noting that the QComponent we've just created is not functional yet; it's just two rectangular metal pads with a thin strip of metal connecting them. In order for a QComponent to be functional in an actual design, we will need to add a few additional things, such as qpins defining where the transmon pocket connects to coplanar waveguides (CPWs). We will discuss this in more detail later in the tutorial. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# QComponent Default Options" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "QComponents come with some default options, which are used in the make function of the qcomponent to create the qgeometry that you see in the GUI. These options are parsed by Qiskit Metal, and can be changed using either the GUI or the script API. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see what the options and other parameters are for our Qcomponent by typing the following command:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\u001b[95m\u001b[1mname: \u001b[94m\u001b[1mQ1\u001b[0m\n", "\u001b[95m\u001b[1mclass: \u001b[94m\u001b[1mTransmonPocket \u001b[0m\n", "\u001b[95m\u001b[1moptions: \u001b[0m\n", " 'pos_x' : '0um', \n", " 'pos_y' : '0um', \n", " \u001b[1m'connection_pads' \u001b[0m: {\n", " },\n", " 'chip' : 'main', \n", " 'pad_gap' : '30um', \n", " 'inductor_width' : '20um', \n", " 'pad_width' : '455um', \n", " 'pad_height' : '90um', \n", " 'pocket_width' : '650um', \n", " 'pocket_height' : '650um', \n", " 'orientation' : '0', \n", " 'hfss_wire_bonds' : False, \n", " 'q3d_wire_bonds' : False, \n", " 'hfss_inductance' : '10nH', \n", " 'hfss_capacitance' : 0, \n", " 'hfss_resistance' : 0, \n", " 'hfss_mesh_kw_jj' : 7e-06, \n", " 'q3d_inductance' : '10nH', \n", " 'q3d_capacitance' : 0, \n", " 'q3d_resistance' : 0, \n", " 'q3d_mesh_kw_jj' : 7e-06, \n", " 'gds_cell_name' : 'my_other_junction', \n", "\u001b[95m\u001b[1mmodule: \u001b[94m\u001b[1mqiskit_metal.qlibrary.qubits.transmon_pocket\u001b[0m\n", "\u001b[95m\u001b[1mid: \u001b[94m\u001b[1m2\u001b[0m" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "q1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see the full list of template options for the class by typing this command:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'pos_x': '0um',\n", " 'pos_y': '0um',\n", " 'connection_pads': {},\n", " '_default_connection_pads': {'pad_gap': '15um',\n", " 'pad_width': '125um',\n", " 'pad_height': '30um',\n", " 'pad_cpw_shift': '5um',\n", " 'pad_cpw_extent': '25um',\n", " 'cpw_width': 'cpw_width',\n", " 'cpw_gap': 'cpw_gap',\n", " 'cpw_extend': '100um',\n", " 'pocket_extent': '5um',\n", " 'pocket_rise': '65um',\n", " 'loc_W': '+1',\n", " 'loc_H': '+1'},\n", " 'chip': 'main',\n", " 'pad_gap': '30um',\n", " 'inductor_width': '20um',\n", " 'pad_width': '455um',\n", " 'pad_height': '90um',\n", " 'pocket_width': '650um',\n", " 'pocket_height': '650um',\n", " 'orientation': '0',\n", " 'hfss_wire_bonds': False,\n", " 'q3d_wire_bonds': False,\n", " 'hfss_inductance': '10nH',\n", " 'hfss_capacitance': 0,\n", " 'hfss_resistance': 0,\n", " 'hfss_mesh_kw_jj': 7e-06,\n", " 'q3d_inductance': '10nH',\n", " 'q3d_capacitance': 0,\n", " 'q3d_resistance': 0,\n", " 'q3d_mesh_kw_jj': 7e-06,\n", " 'gds_cell_name': 'my_other_junction'}" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "TransmonPocket.get_template_options(design)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Modifying the Options" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can modify the QComponent by changing the default options. This can be done using either the python API or the GUI. Here's an example where we'll move the transmon from (0,0) to (2,2), while also modifying the pad height and width:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# Change options\n", "q1.options.pos_x = '2.0 mm'\n", "q1.options.pos_y = '2.0 mm'\n", "q1.options.pad_height = '250 um'\n", "q1.options.pad_width = '300 um'\n", "\n", "# Update the geoemtry and render to the gui, since we changed the options\n", "gui.rebuild()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Copying a QComponent " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can copy a QComponent using the \"design.copy_qcomponent\" command. Let's make a copy of our transmon qubit, which is located at (2,2) and place the copy at (-2,2):" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "# Copy q1 and place the new Qcomponent (\"q1_copy\") at (-2,2):\n", "q1_copy = design.copy_qcomponent(q1, 'Q1_copy')\n", "q1_copy.options['pos_x']='-2.0mm'\n", "gui.rebuild()\n", "gui.autoscale()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also copy multiple QComponents at the same time. For example, let's suppose we want to take our two transmon qubits at (-2,2) and (2,2) and create copies which are located at (-2,2) and (-2,2):" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "# Let's copy the two QComponents and change the y-coordinates of the copies to both be -2:\n", "newcopies = design.copy_multiple_qcomponents([q1, q1_copy], ['Q3', 'Q4'], [dict(pos_y='-2.0mm'), dict(pos_y='-2.0mm')])\n", "gui.rebuild()\n", "gui.autoscale()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "tags": [ "nbsphinx-thumbnail" ] }, "outputs": [ { "data": { "image/png": "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5XJl/X2PELJjbKxjB8N2ktBfEMoAbIwQYmpqarVcmXQ6nU6nu/IgznmhUEin04hmoGVubs6yrI4ZDLFY7Ibrr+vKU2TfGxkZQTQDfWHbhTKc80tfYr6aBx544ODBg4ODg5t0/8vbE088MTQ0tHPnzq1uyBbjnMtCCHIVyfLSC20/k1dKg1NKFxcXKaWZTGbtS5b/7Pt+o9GQ25f07tfblk6dOlUqlV772tdudUO2nux7skuss+/V6/VisTg+Pr7OSwghcmmu53nImCmXy0888cTtt9++1Q3pS67rfve7333Pe96zeW9iMtreXqEMpfTBBx88ffr0Jt3/ueee27FjRzKZ3KT7X96OHj2aSqWGhoa2uiFbTG7u6rpua9+T1gfA8n1P2j5OZC2Q1hBL6/jyy9tekssUo9EoQpnZ2dlGo7Fv376tbsjWk4tT6Cta/U2u0F7ZryiljUajVCqNjo6u3d/afmaMxeNx9L16vX7s2LHvf//7+E9xEXzff/LJJx966KHN+6/327/922S7hTLXXHPN17/+9c0rZvDtb3/75ptvHhvrnJoAa7vvvvvGx8cPHDiw1Q3pS48//rimaRhXuDhHjhxZWlq67bbbtrohfenMmTMvvPDCu9/97q1uSF/K5/P33Xff+9///q1uSF9yHOerX/3qb/7mb25eKKNp2o8ffWp7hTKKoqy2CeelE0K8733vo5TOzMw88sgjuq4fPnw4Go1u0uMuP+985zvlD0ePHp2amrrtttuW14WEtd16663lcvm+++6rVCo33HDDNddcgy9561QulycnJ4UQnufhD3ajnn766ePHj0cikeWbEsP6jYyMHD58+Hvf+97b3/72K3CR86XgnJ88eTIajT722GNvetObNrUY0hVUzJFSyhibnJy85557YrFYPB7HRn0bIge0C4XCl7/85S996Uuu6251i/oJpXR2drZcLg8ODn7xi188evToVreob3zhC1+Ym5tbWlr6q7/6q81LpLtcvfDCC+l0enZ29p577sF/vYtg2/bf//3ff/nLXy4Wi1vdlj7z9NNPf+UrX5mYmJCFhjf1WVdQKCM9/PDDjuM89dRT+XwehRM2ynGcr33ta3fccQe+3l2EgwcP/tqv/drb3/72oaGh1dZyQxvf948dO/a+973v7rvvfumll5rN5la3qM/8xm/8xuHDh9/znvecOHEC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\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 500 } }, "output_type": "display_data" } ], "source": [ "gui.screenshot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we have four transmon qubits located at the corners of a square: (-2,-2), (-2,2), (2,2) and (2,-2). " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Deleting a QComponent" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We saw in an earlier example how to delete all QComponents in a design using the either the \"design.delete_all_components\" command or by using the \"Delete all\" button in the GUI. But what if we only want to delete specific QComponents without deleting everything in a design? \n", "\n", "We can delete a specific qcomponent using either the GUI or the python API. If you wish to remove a specific QComponent, you can do so using the \"delete_component\" or \"_delete component\" commands. The first takes the string reference to a Qcomponent, while the second takes an integer reference to a QComponent. Suppose we want to remove qubit 'Q1'. Presently, we do not need to pass a Boolean corresponding to whether we want to force the delete (true=1) even if the component has dependencies, or whether the deletion should not be executed in the event the QComponent does have dependencies (false=0). The bool option is for future potential possibilities of having Qcomponents with dependencies. " ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "design.delete_component('Q1')\n", "gui.rebuild()\n", "gui.autoscale()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also delete without checking for QComponent dependencies at all. In this case, we pass only the QComponent ID. As an example, we can force delete 'Q1_copy\" which has QComponent ID=3 by typing:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "design._delete_component(3)\n", "gui.rebuild()\n", "gui.autoscale()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Renaming a QComponent " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the first example in this notebook, we created a QComponent named \"Pocket_1\" then deleted it and created one with the name \"Q1.\" One can also simply rename a QComponent without deleting it and creating a new one. We can rename a QComponent by using the \"design_rename.component\" command. For example, let's rename \"Q3\" and \"Q4\" to \"Q_three\" and \"Q_four\", respectively. Note that \"Q3\" has a QComponent ID of 4, while \"Q4\" has a Qcomponent ID of 5. " ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "design.rename_component(4,'Q_three') # rename \"Q3\" to \"Q_three\"\n", "design.rename_component(5,'Q_four') # rename \"Q4\" to \"Q_four\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Overwriting a QComponent" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to enable component overwrite of qcomponents with the same name, we can use the following command:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "design.overwrite_enabled = True" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This allows for the qcomponent to be modified and re-built without having to delete it. Without this line, a qcomponent would have to be deleted before recreating it with different options. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Closing the Qiskit Metal GUI" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gui.main_window.close()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "celltoolbar": "Tags", "kernelspec": { "display_name": "Python 3", "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.7.8" } }, "nbformat": 4, "nbformat_minor": 4 }