Transmon coupled to CPW resonator

[1]:
%load_ext autoreload
%autoreload 2

import qiskit_metal as metal
from qiskit_metal import designs, draw
from qiskit_metal import MetalGUI, Dict, Headings
import pyEPR as epr

Create the design in Metal

Setup a design of a given dimension. Dimensions will be respected in the design rendering. Note that the design size extends from the origin into the first quadrant.

[2]:
design = designs.DesignPlanar({}, True)
design.chips.main.size['size_x'] = '4mm'
design.chips.main.size['size_y'] = '6mm'

gui = MetalGUI(design)

Create one meander resonator connected to a transmons and open-to-ground qcomponents.

[3]:
from qiskit_metal.qlibrary.qubits.transmon_pocket import TransmonPocket
from qiskit_metal.qlibrary.tlines.meandered import RouteMeander
from qiskit_metal.qlibrary.terminations.open_to_ground import OpenToGround
[4]:
#Explore the options of the OpenToGround.
OpenToGround.get_template_options(design)
[4]:
{'width': '10um',
 'gap': '6um',
 'termination_gap': '6um',
 'pos_x': '0um',
 'pos_y': '0um',
 'orientation': '0',
 'chip': 'main',
 'layer': '1'}
[5]:
#Explore the options of the TransmonPocket.
TransmonPocket.get_template_options(design)
[5]:
{'pos_x': '0um',
 'pos_y': '0um',
 'connection_pads': {},
 '_default_connection_pads': {'pad_gap': '15um',
  'pad_width': '125um',
  'pad_height': '30um',
  'pad_cpw_shift': '5um',
  'pad_cpw_extent': '25um',
  'cpw_width': 'cpw_width',
  'cpw_gap': 'cpw_gap',
  'cpw_extend': '100um',
  'pocket_extent': '5um',
  'pocket_rise': '65um',
  'loc_W': '+1',
  'loc_H': '+1'},
 'pad_gap': '30um',
 'inductor_width': '20um',
 'pad_width': '455um',
 'pad_height': '90um',
 'pocket_width': '650um',
 'pocket_height': '650um',
 'orientation': '0',
 'hfss_inductance': '10nH',
 'hfss_capacitance': 0,
 'hfss_resistance': 0,
 'hfss_mesh_kw_jj': 7e-06,
 'q3d_inductance': '10nH',
 'q3d_capacitance': 0,
 'q3d_resistance': 0,
 'q3d_mesh_kw_jj': 7e-06,
 'gds_cell_name': 'my_other_junction'}
[6]:
#Explore the options of the RouteMeander.
RouteMeander.get_template_options(design)
[6]:
{'pin_inputs': {'start_pin': {'component': '', 'pin': ''},
  'end_pin': {'component': '', 'pin': ''}},
 'fillet': '0',
 'lead': {'start_straight': '0mm',
  'end_straight': '0mm',
  'start_jogged_extension': '',
  'end_jogged_extension': ''},
 'total_length': '7mm',
 'chip': 'main',
 'layer': '1',
 'trace_width': 'cpw_width',
 'meander': {'spacing': '200um', 'asymmetry': '0um'},
 'snap': 'true',
 'prevent_short_edges': 'true'}
[7]:
#Setup the TransmonPocket loacation and add a connection_pad.
q1 = TransmonPocket(design, 'Q1', options = dict(
    pad_width = '425 um',
    pocket_height = '650um',
    connection_pads=dict(
        readout = dict(loc_W=+1,loc_H=+1, pad_width='200um')
    )))
[8]:
#Setup the OpenToGround location and orientation.
otg_options = dict(pos_x='2.5mm',  pos_y='0.5mm', orientation='0')

otg = OpenToGround(design, 'open_to_ground', options=otg_options)
[9]:
coupler_options = Dict(
                        pin_inputs=Dict(
                                start_pin=Dict(component=q1.name, pin='readout'),
                        end_pin=Dict(
                                component=otg.name, pin='open')),
                        fillet='99.9um',
                        total_length = '5mm',
                        lead = Dict(start_straight = '200um'
                                    ))


bus = RouteMeander(design, 'coupler', options= coupler_options)

gui.rebuild()
gui.autoscale()
[10]:
# 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)
[11]:
#Save screenshot as a .png formatted file.
gui.screenshot()
../../_images/circuit-examples_C.Composite-bi-partite_21-OneTransmonsWithMeanderAndOTG_13_0.png
[12]:
# Screenshot the canvas only as a .png formatted file.
gui.figure.savefig('shot.png')

from IPython.display import Image, display
_disp_ops = dict(width=500)
display(Image('shot.png', **_disp_ops))

../../_images/circuit-examples_C.Composite-bi-partite_21-OneTransmonsWithMeanderAndOTG_14_0.png
[13]:
# Closing the Qiskit Metal GUI
gui.main_window.close()
[13]:
True
[ ]:

For more information, review the Introduction to Quantum Computing and Quantum Hardware lectures below

  • Superconducting Qubits I: Quantizing a Harmonic Oscillator, Josephson Junctions Part 1
Lecture Video Lecture Notes Lab
  • Superconducting Qubits I: Quantizing a Harmonic Oscillator, Josephson Junctions Part 2
Lecture Video Lecture Notes Lab
  • Superconducting Qubits I: Quantizing a Harmonic Oscillator, Josephson Junctions Part 3
Lecture Video Lecture Notes Lab
  • Superconducting Qubits II: Circuit Quantum Electrodynamics, Readout and Calibration Methods Part 1
Lecture Video Lecture Notes Lab
  • Superconducting Qubits II: Circuit Quantum Electrodynamics, Readout and Calibration Methods Part 2
Lecture Video Lecture Notes Lab
  • Superconducting Qubits II: Circuit Quantum Electrodynamics, Readout and Calibration Methods Part 3
Lecture Video Lecture Notes Lab