kqcircuits.qubits.qubit
- class kqcircuits.qubits.qubit.Qubit[source]
Bases:
Element
Base class for qubit objects without actual produce function.
Collection of shared sub routines for shared parameters and producing shared aspects of qubit geometry including
possible fluxlines
e-beam layers for SQUIDs
SQUID name parameter
It is customary to also define probepoints for a qubit. Simply define two refpoints as appropriate probepoints. For single island qubits:
self.refpoints["probe_ground"] = pya.DPoint(...) self.refpoints["probe_island"] = pya.DPoint(...) self.cell.shapes(self.get_layer("ground_grid_avoidance")).insert( pya.DBox(-20.0, -20.0, 20.0, 20.0).moved(self.refpoints["probe_ground"]))
For double island qubits:
self.refpoints["probe_island_1"] = pya.DPoint(...) self.refpoints["probe_island_2"] = pya.DPoint(...)
- LIBRARY_NAME = 'Qubit Library'
- LIBRARY_DESCRIPTION = 'Library for qubits.'
- LIBRARY_PATH = 'qubits'
- produce_squid(transf, only_arms=False, **parameters)[source]
Produces the squid.
Creates the squid cell and inserts it with the given transformation as a subcell. Also inserts the squid parts in “base_metal_gap_wo_grid”-layer to “base_metal_gap_for_EBL”-layer. It also returns a
right_side
refpoint, calculated from base_metal_gap_wo_grid layer’s bounding box to help with arm_length calculation in JunctionTestPads.- Parameters:
transf (DCplxTrans) – squid transformation
parameters – other parameters for the squid
only_arms – Boolean argument that allows to choose whether to create the arms and the squid device or only the arms
- Returns:
Relative refpoints for the squid
- Return type:
(dict)
- produce_fluxline(rot=0, displacement=0, 0, **parameters)[source]
Produces the fluxline.
Creates the fluxline cell and inserts it as a subcell. The “flux” and “flux_corner” ports are made available for the qubit. By default, fluxlines align their “origin_fluxline” refpoint to “origin_squid” refpoint in the direction of “port_common”. However, the user might tweak the alignment direction by using the argument rot and the relative position by an extra pya.DVector(x, y) allowing to tune the position to achieve the desired design parameters.
- Parameters:
rot – Extra rotation of the fluxline, in degrees
displacement (DVector) – fluxline x/y displacement (ignored if center alignment is available)
parameters – parameters for the fluxline to overwrite default and subclass parameters
mirror_squid (Boolean) - Mirror SQUID by its Y axis, default=
False
junction_total_length (Double) - Simulation junction total length, default=
33
, unit=µm
junction_upper_pad_width (Double) - Simulation junction upper metal pad width, default=
8
, unit=µm
junction_upper_pad_length (Double) - Simulation junction upper metal pad length, default=
13
, unit=µm
junction_lower_pad_width (Double) - Simulation junction lower metal pad width, default=
8
, unit=µm
junction_lower_pad_length (Double) - Simulation junction lower metal pad length, default=
12
, unit=µm
include_background_gap (Boolean) - Add base metal gap below the junction, default=
True
junction_type (String) - Junction Type, default=
Manhattan
, choices=['No Squid', 'Manhattan', 'Manhattan Single Junction', 'Sim']
junction_width (Double) - Junction width (only used for code generated element), default=
0.02
, unit=μm
junction_parameters (String) - Extra Junction Parameters, default=
{}
_junction_parameters (String) - Previous state of *_parameters, default=
{}
loop_area (Double) - Loop area, default=
100
, unit=μm^2
fluxline_type (String) - Fluxline Type, default=
Fluxline Standard
, choices=['none', 'Fluxline Standard', 'Fluxline Straight']
fluxline_parameters (String) - Extra Fluxline Parameters, default=
{}
_fluxline_parameters (String) - Previous state of *_parameters, default=
{}