squadds.components package#

Submodules#

squadds.components.cavity_claw module#

class squadds.components.cavity_claw.CavityClaw(*args, **kwargs)[source]#

Bases: QComponent

QubitCavity class represents a coupled qubit-cavity system. It contains methods to create the qubit, cavity, coupler, and CPWs.

Return type:

Any

component_metadata#

Component metadata

copier(d, u)[source]#
make()[source]#
make_cavity()[source]#

This method is used to create a cavity in the coupled system. It calls the make_coupler() and make_cpws() methods to create the necessary components.

make_coupler()[source]#

Creates a coupler based on the specified coupling type in the cavity options.

Returns:

None

make_cpws()[source]#

Creates the CPWs (Coplanar Waveguides) for the coupled systems.

Returns:

None

make_pins()[source]#

Adds pins to the coupled system.

Retrieves pin information from the coupler and adds the pins to the system.

Parameters:

None

Returns:

None

make_qubit()[source]#

Creates a qubit based on the specified qubit options.

Returns:

None

make_wirebond_pads()[source]#
show(gui, include_wirebond_pads=False)[source]#
to_gds(options, include_wirebond_pads=False)[source]#

squadds.components.claw_coupler module#

class squadds.components.claw_coupler.TransmonClaw(*args, **kwargs)[source]#

Bases: BaseQubit

The base TransmonClaw class.

Inherits BaseQubit class.

‘claw_width’ and ‘claw_gap’ define the width/gap of the CPW line that makes up the connector. Note, DC SQUID currently represented by single inductance sheet

Add connectors to it using the connection_pads dictionary. See BaseQubit for more information.

Sketch:

Below is a sketch of the claw

                            claw_length
Claw:       _________                    Gap:
            |   ________________             _________    ____________
      ______|  |                             _________|  |____________
            |  |________________
            |_________
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.

Default Options:
  • cross_width: ‘20um’ – Width of the CPW center trace making up the Crossmon

  • cross_length: ‘200um’ – Length of one Crossmon arm (from center)

  • cross_gap: ‘20um’ – Width of the CPW gap making up the Crossmon

  • _default_connection_pads: Dict
    • connector_type: ‘0’ – 0 = Claw type, 1 = gap type

    • claw_length: ‘30um’ – Length of the claw ‘arms’, measured from the connector center trace

    • ground_spacing: ‘5um’ – Amount of ground plane between the connector and Crossmon arm (minimum should be based on fabrication capabilities)

    • claw_width: ‘10um’ – The width of the CPW center trace making up the claw/gap connector

    • claw_gap: ‘6um’ – The gap of the CPW center trace making up the claw/gap connector

    • connector_location: ‘0’ – 0 => ‘west’ arm, 90 => ‘north’ arm, 180 => ‘east’ arm

Return type:

Any

TOOLTIP = 'Simple Metal Transmon Cross.'#
component_metadata#

Component metadata

default_options#

Default options.

make()[source]#

This is executed by the GUI/user to generate the qgeometry for the component.

make_connection_pad(name)[source]#

Makes individual connector pad.

Parameters:

name (str) – Name of the connector pad

make_connection_pads()[source]#

Goes through connector pads and makes each one.

make_pocket()[source]#

Creates a pocket for the claw coupler.

This method uses the parsed values from the user options to determine the dimensions of the pocket. The pocket is created based on the cross width, cross length, cross gap, and chip name.

Parameters:

None

Returns:

None

squadds.components.coupled_systems module#

class squadds.components.coupled_systems.QubitCavity(*args, **kwargs)[source]#

Bases: QComponent

QubitCavity class represents a coupled qubit-cavity system. It contains methods to create the qubit, cavity, coupler, and CPWs.

Return type:

Any

component_metadata#

Component metadata

copier(d, u)[source]#
make()[source]#
make_cavity()[source]#

This method is used to create a cavity in the coupled system. It calls the make_coupler() and make_cpws() methods to create the necessary components.

make_coupler()[source]#

Creates a coupler based on the specified coupling type in the cavity options.

Returns:

None

make_cpws()[source]#

Creates the CPWs (Coplanar Waveguides) for the coupled systems.

Returns:

None

make_pins()[source]#

Adds pins to the coupled system.

Retrieves pin information from the coupler and adds the pins to the system.

Parameters:

None

Returns:

None

make_qubit()[source]#

Creates a qubit based on the specified qubit options.

Returns:

None

make_wirebond_pads()[source]#
show(gui, include_wirebond_pads=False, **kwargs)[source]#
to_gds(filename, include_wirebond_pads=False)[source]#

squadds.components.jjs module#

class squadds.components.jjs.JjDolan(*args, **kwargs)[source]#

Bases: QComponent

The base “JjDolan” inherits the “QComponent” class.

NOTE TO USER: Please be aware that when designing with this qcomponent, one must take care in accounting for the junction qgeometry when exporting to to GDS and/or to a simulator. This qcomponent should not be rendered for EM simulation.

This creates a “Dolan”-style Josephson Junction consisting a single junction slightly separated, adhearing to LFL’s prefererances.

Default Options:
  • bridge_length: ‘28um’ – lenght between pads

  • JJ_width: ‘0.188um’ – Josephson Junction width

  • bridge_layer: 1 – GDS layer for bridge, make sure it’s different from qubit + JJs

  • JJ_layer: 2 – GDS layer for JJ, make sure it’s different from qubit + bridge

Return type:

Any

TOOLTIP = 'Josephson Junctions used at LFL'#
component_metadata#

Component metadata

default_options#

Default options.

make()[source]#
class squadds.components.jjs.SquidLoopDolan(*args, **kwargs)[source]#

Bases: QComponent

The base “SquidLoopDolan” inherits the “QComponent” class.

NOTE TO USER: Please be aware that when designing with this qcomponent, one must take care in accounting for the junction qgeometry when exporting to to GDS and/or to a simulator. This qcomponent should not be rendered for EM simulation.

This creates a “Dolan”-style SQUID loop consisting of a slightly separated loop with 2 symmetrical JJs on each side.

Default Options:
  • SQUID_width: ‘63um’ – inner width (x-axis) of SQUID loop

  • SQUID_length: ‘9um’ – inner length (y-axis) of SQUID loop

  • stem1_length: ‘7um’ – length between bottom pad and loop

  • stem2_length: ‘7um’ – length between side pad and loop

  • stem1_offset: ‘0um’ – aligns stem1 some distance away from center

  • stem2_offset: ‘0um’ – aligns stem2 some distance away from center

  • JJ_width: ‘0.3um’ – correlated to setting the Lj of your SQUID

  • JJ_offset: ‘0um’ – aligns the JJs some distance away from center

  • mirror: 0 – input 0 or 1, want to mirror about the x-axis?

  • SQUID_layer: 1 – GDS layer for loop, make sure it’s different from qubit + JJs

  • JJ_layer: 2 – GDS layer for JJs, make sure it’s different from qubit + loop

Return type:

Any

component_metadata#

Component metadata

default_options#

Default drawing options

make()[source]#
make_junction()[source]#

Makes the JJs

make_loop()[source]#

Makes the SQUID loop structure

squadds.components.qubits module#

class squadds.components.qubits.TransmonCross(*args, **kwargs)[source]#

Bases: BaseQubit

The base TransmonCross class.

Inherits BaseQubit class.

Simple Metal Transmon Cross object. Creates the X cross-shaped island, the “junction” on the south end, and up to 3 connectors on the remaining arms (claw or gap).

‘claw_width’ and ‘claw_gap’ define the width/gap of the CPW line that makes up the connector. Note, DC SQUID currently represented by single inductance sheet

Add connectors to it using the connection_pads dictionary. See BaseQubit for more information.

Sketch:

Below is a sketch of the qubit

                            claw_length
Claw:       _________                    Gap:
            |   ________________             _________    ____________
      ______|  |                             _________|  |____________
            |  |________________
            |_________
source/transmon_cross.png
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.

Default Options:
  • cross_width: ‘20um’ – Width of the CPW center trace making up the Crossmon

  • cross_length: ‘200um’ – Length of one Crossmon arm (from center)

  • cross_gap: ‘20um’ – Width of the CPW gap making up the Crossmon

  • _default_connection_pads: Dict
    • connector_type: ‘0’ – 0 = Claw type, 1 = gap type

    • claw_length: ‘30um’ – Length of the claw ‘arms’, measured from the connector center trace

    • ground_spacing: ‘5um’ – Amount of ground plane between the connector and Crossmon arm (minimum should be based on fabrication capabilities)

    • claw_width: ‘10um’ – The width of the CPW center trace making up the claw/gap connector

    • claw_gap: ‘6um’ – The gap of the CPW center trace making up the claw/gap connector

    • connector_location: ‘0’ – 0 => ‘west’ arm, 90 => ‘north’ arm, 180 => ‘east’ arm

  • style: ‘default’ – Change the Josephson Junction style.

    NOTE TO USER: Non-default choices shouldn’t be rendered for simulation. They are for GDS rendering. Choose from the following: * ‘default’ – Used for simulation in Ansys * ‘SQUID_LOOP_Dolan’ – Makes a SQUID loop in Dolan style. Use ‘SQUID_LOOP’ for options. * ‘Dolan_JJ’ – Makes a Josephson Junction in Dolan style. Use ‘Dolan_JJ’ for options.

  • SQUID_LOOP: Dict
    • SQUID_width: ‘40um’ – Interior width (x-axis) of the SQUID LOOP

    • SQUID_length: ‘5um’ – Interior length (y-axis) of the SQUID LOOP

    • SQUID_offset: ‘5um’ – Distance between the edge of the bottom pad and the grounding plane across of the cross

    • JJ_width: ‘150nm’ – Josephson Junction width. Governs Lj.

    • JJ_flip: False – Switch the direction of the Josephson Junctions.

  • Dolan_JJ: Dict
    • JJ_width: ‘150nm’ – Josephson Junction width. Governs Lj.

    • JJ_flip: False – Switch the direction of the Josephson Junctions.

Return type:

Any

TOOLTIP = 'Simple Metal Transmon Cross used at LFL'#
component_metadata#

Component metadata

default_options#

Default options.

make()[source]#

This is executed by the GUI/user to generate the qgeometry for the component.

make_connection_pad(name)[source]#

Makes individual connector pad.

Parameters:

name (str) – Name of the connector pad

make_connection_pads()[source]#

Goes through connector pads and makes each one.

make_pocket()[source]#

Makes a basic Crossmon, 4 arm cross.

class squadds.components.qubits.TransmonCrossFL(*args, **kwargs)[source]#

Bases: TransmonCross

The base TransmonCrossFL class. Inherits TransmonCross class Description:

Simple Metal Transmon Cross object. Creates the X cross-shaped island, the “junction” on the south end, and up to 3 connectors on the remaining arms (claw or gap). ‘claw_width’ and ‘claw_gap’ define the width/gap of the CPW line that makes up the connector. Note, DC SQUID currently represented by single inductance sheet Add connectors to it using the connection_pads dictonary. See BaseQubit for more information. Flux line is added by default to the ‘south’ arm where the DC SQUID is located, default is a symmetric T style Default Options: Convention: Values (unless noted) are strings with units included, (e.g., ‘30um’) * make_fl - (Boolean) If True, adds a flux line * fl_style - (String) Choose a style to construct the flux line

  • “none” - Qiskit’s default.
    • t_top - length of the flux line for mutual inductance to the SQUID

    • t_inductive_gap - amount of metallization between the flux line and SQUID

    • t_offset - degree by which the tail of the T is offset from the center

    • t_width - width of the flux line’s transmission line center trace

    • t_gap - dielectric gap of the flux line’s transmission line

  • “tapered” - Tapered / trapazoidal flux line.
    • t_length length of the flux line

    • t_width_i width of side further away from the qubit

    • t_width_f width of side closer to the qubit

    • t_gap_i dielectric gap of flux line’s tranmission line, further away from qubit

    • t_gap_f dielectric gap of flux line’s tranmission line, closer to qubit

    • t_punch_through length of how much the flux line punches through ground plane

    • t_hanger_para_length length of hanger which moves along the x-axis

    • t_hanger_para_width width of hanger which moves along the x-axis

    • t_hanger_para_gap dielectric gap of the x-axis hanger

    • t_hanger_perp_length length of hanger which moves along the y-axis

    • t_hanger_perp_width width of hanger which moves along the y-axis

    • t_hanger_perp_gap dielectric gap of the y-axis hanger

source/transmon_cross_fl.png
Return type:

Any

TOOLTIP = 'The base `TransmonCrossFL` class.'#
component_metadata#

Component metadata

default_options#

Default drawing options

make()[source]#

Define the way the options are turned into QGeometry.

make_flux_line()[source]#

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

This is Qiskit Metal’s default.

make_flux_line_tapered()[source]#

Creates the charge line which is taper w/ a hanging bar.

Activates when all of these conditions are met: - self.options.make_fl == True - self.options.fl_options.lfl_style == “tapered”

Module contents#