class TransmonPocketCL(design, name: str | None = None, options: Dict | None = None, options_connection_pads: dict | None = None, make: bool = True, **kwargs)[source]

The base TransmonPocketCL class.

Inherits TransmonPocket class.

Create a standard pocket transmon qubit for a ground plane, with two pads connected by a junction (see drawing below).

Connector lines can be added using the connection_pads dictionary. Each connector line has a name and a list of default properties.

This is a child of TransmonPocket, see TransmonPocket for the variables and description of that class.

|               |
|_______________|       ^
________x________       |  N
|               |       |
BaseQubit Default Options:
  • connection_pads: empty Dict – The dictionary which contains all active connection lines for the qubit.

  • _default_connection_pads: empty Dict – The default values for the (if any) connection lines of the qubit.

TransmonPocket Default Options:
  • pad_gap: ‘30um’ – The distance between the two charge islands, which is also the resulting ‘length’ of the pseudo junction

  • inductor_width: ‘20um’ – Width of the pseudo junction between the two charge islands (if in doubt, make the same as pad_gap). Really just for simulating in HFSS / other EM software

  • pad_width: ‘455um’ – The width (x-axis) of the charge island pads

  • pad_height: ‘90um’ – The size (y-axis) of the charge island pads

  • pocket_width: ‘650um’ – Size of the pocket (cut out in ground) along x-axis

  • pocket_height: ‘650um’ – Size of the pocket (cut out in ground) along y-axis

  • _default_connection_pads: Dict
    • pad_gap: ‘15um’ – Space between the connector pad and the charge island it is nearest to

    • pad_width: ‘125um’ – Width (x-axis) of the connector pad

    • pad_height: ‘30um’ – Height (y-axis) of the connector pad

    • pad_cpw_shift: ‘5um’ – Shift the connector pad cpw line by this much away from qubit

    • pad_cpw_extent: ‘25um’ – Shift the connector pad cpw line by this much away from qubit

    • cpw_width: ‘cpw_width’ – Center trace width of the CPW line

    • cpw_gap: ‘cpw_gap’ – Dielectric gap width of the CPW line

    • cpw_extend: ‘100um’ – Depth the connector line extends into ground (past the pocket edge)

    • pocket_extent: ‘5um’ – How deep into the pocket should we penetrate with the cpw connector (into the fround plane)

    • pocket_rise: ‘65um’ – How far up or downrelative to the center of the transmon should we elevate the cpw connection point on the ground plane

    • loc_W: ‘+1’ – Width location only +-1

    • loc_H: ‘+1’ – Height location only +-1

Default Options:
  • make_CL: True – If a charge line should be included.

  • cl_gap: ‘6um’ – The cpw dielectric gap of the charge line

  • cl_width: ‘10um’ – The cpw trace width of the charge line

  • cl_length: ‘20um’ – The length of the charge line ‘arm’ coupling the the qubit pocket. Measured from the base of the 90 degree bend.

  • cl_ground_gap: ‘6um’ – How much ground is present between the charge line and the qubit pocket.

  • cl_pocket_edge: ‘0’ – What side of the pocket the charge line is. -180 to +180 from the ‘west edge’, will round to the nearest 90.

  • cl_off_center: ‘50um’ – Distance from the center axis the qubit pocket is referenced to

  • design (QDesign) – The parent design.

  • name (str) – Name of the component.

  • options (dict) – User options that will override the defaults. Defaults to None.

  • options_connection_pads (dict) – User options for connection pads on qubit

  • make (bool) – True if the make function should be called at the end of the init. Options be used in the make function to create the geometry. Defaults to None.




the full module name with the class name.


Component metadata


Default drawing options

Return a reference to the parent design object.

The unique id of component within a design.


The Qiskit Metal Logger.

Name of the component.


A dictionary of the component-designer-defined options.


The names of the pins.


Get a list of the names of the element tables.


Dictionary of pins.


Metadata allows a designer to store extra information or analysis results.


Stores the latest status of the component.


TransmonPocketCL.add_dependency(parent, child)

Add a dependency between one component and another.

TransmonPocketCL.add_pin(name, points, width)

Adds a pin from two points which are normal/tangent to the intended plane of the pin.

TransmonPocketCL.add_qgeometry(kind, geometry)

Add QGeometry.


WARNING: Do NOT use this method during generation of component instance.


Delete the QComponent.


Interface for components to get pin data.


Creates template options for the Metal Component class required for the class to function, based on the design template; i.e., be created, made, and rendered.


Define the way the options are turned into QGeometry.


Creates the charge line if the user has charge line option to TRUE.


Makes n individual connector.


Makes standard transmon in a pocket.


Makes standard transmon in a pocket.


Parse the options, converting string into interpreted values.


Parse a string, mappable (dict, Dict), iterable (list, tuple) to account for units conversion, some basic arithmetic, and design variables.


Use the element_handler to get a list of all the table names used in QGeometry.


Fetched the component bound dict_value.


Returns a dict of element qgeometry (shapely geometry) of the component as a python dict, where the dict keys are the names of the qgeometry and the corresponding values are the shapely geometries.


Returns a list of element qgeometry (shapely geometry) of the component as a python list of shapely geometries.

TransmonPocketCL.qgeometry_plot([ax, plot_kw])

Draw all the qgeometry of the component (polys and path etc.)


Returns the entire element table for the component.


Builds the QComponent.

TransmonPocketCL.to_script([thin, ...])

param thin:

If true then any key in the QComponent's options whose value