StarQubit¶
- class StarQubit(design: QDesign, name: str = None, options: Dict = None, make=True, component_template: Dict = None)[source]¶
A single configurable circle with multiple pads.
Inherits BaseQubit class.
Create a circular transmon qubit with up to 4 connectors and one readout.
- Default Options:
radius: ‘300um’ – Radius of the circle defining the star shape
center_radius: ‘100um’ – Measure of how thick the central island is
gap_couplers: ‘25um’ – Gap between the star and the coupling resonator
gap_readout: ‘10um’ – Gap between the star and the readout resonator
connector_length: ‘75um’ – Length of the rectangular part of the connector
trap_offset: ‘20um’ – Offset between trapezoid coordinates for side wall angle
junc_h: ‘30um’ – Junction height
cpw_width=’0.01’, – Junction width
rotation_cpl1: ‘0.0’ – Rotation for one of the coupling resonators ‘36.0’, ‘0.0’,
rotation_cpl2: ‘72.0’ – Rotation for the readout resonator ‘108.0’,’72.0’,
rotation_rdout: ‘144.0’ – Rotation for one of the coupling resonators ‘180.0’,’144.0’,
rotation_cpl3: ‘216.0’ – Rotation for one of the coupling resonators’252.0’,’216.0’,
rotation_cpl4: ‘288.0’ – Rotation for one of the coupling resonators ‘324.0’,’288.0’,
number_of_connectors: ‘4’ – Total number of coupling resonators
resolution: ‘16’
cap_style: ‘round’ – round, flat, square
subtract: ‘False’
helper: ‘False’
Create a new Metal component and adds it’s default_options to the design.
- Parameters:
design (QDesign) – The parent design.
name (str) – Name of the component. Auto-named if possible.
options (dict) – User options that will override the defaults. Defaults to None.
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 True.
component_template (dict) – User can overwrite the template options for the component that will be stored in the design, in design.template, and used every time a new component is instantiated. Defaults to None.
- Raises:
ValueError – User supplied design isn’t a QDesign
- Note: Information copied from QDesign class.
self._design.overwrite_enabled (bool): When True - If the string name, used for component, already exists in the design, the existing component will be deleted from design, and new component will be generated with the same name and newly generated component_id, and then added to design.
When False - If the string name, used for component, already exists in the design, the existing component will be kept in the design, and current component will not be generated, nor will be added to the design. The variable design.self.status will still be NotBuilt, as opposed to Initialization Successful.
Either True or False - If string name, used for component, is NOT being used in the design, a component will be generated and added to design using the name.
Attributes
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.
Methods
StarQubit.add_dependency
(parent, child)Add a dependency between one component and another.
StarQubit.add_pin
(name, points, width[, ...])Adds a pin from two points which are normal/tangent to the intended plane of the pin.
StarQubit.add_qgeometry
(kind, geometry[, ...])Add QGeometry.
WARNING: Do NOT use this method during generation of component instance.
Delete the QComponent.
StarQubit.get_pin
(name)Interface for components to get pin data.
StarQubit.get_template_options
(design[, ...])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.
The make function implements the logic that creates the geometry (poly, path, etc.) from the qcomponent.options dictionary of parameters, and the adds them to the design, using qcomponent.add_qgeometry(...), adding in extra needed information, such as layer, subtract, etc.
This function creates a circle to be accessed later.
This function creates the coordinates for trapezoid
This function draws the coulping resonators.
This function creates the coordinates for the pins
This function draws the outer circle.
This function creates the coordinates for the pins
This function creates the pockets.
This function creates the coordinates for trapezoid
This function draws the readout resonator.
This function creates the coordinates for trapezoid
StarQubit.make_rotation
(obj, num)This function rotates objects.
StarQubit.parse_options
([options])Parse the options, converting string into interpreted values.
StarQubit.parse_value
(value)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.
StarQubit.qgeometry_dict
(element_type)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.
StarQubit.qgeometry_list
([element_type])Returns a list of element qgeometry (shapely geometry) of the component as a python list of shapely geometries.
StarQubit.qgeometry_plot
([ax, plot_kw])Draw all the qgeometry of the component (polys and path etc.)
StarQubit.qgeometry_table
(element_type)Returns the entire element table for the component.
Builds the QComponent.
StarQubit.to_script
([thin, is_part_of_chip])- param thin:
If true then any key in the QComponent's options whose value