Module containing the QuantumDevice object.

Module Contents#



The QuantumDevice directly represents the device under test (DUT) and contains a

class QuantumDevice(name: str)[source]#

Bases: qcodes.instrument.base.Instrument

The QuantumDevice directly represents the device under test (DUT) and contains a description of the connectivity to the control hardware as well as parameters specifying quantities like cross talk, attenuation and calibrated cable-delays. The QuantumDevice also contains references to individual DeviceElements, representations of elements on a device (e.g, a transmon qubit) containing the (calibrated) control-pulse parameters.

This object can be used to generate configuration files for the compilation step from the gate-level to the pulse level description. These configuration files should be compatible with the compile() function.

generate_compilation_config() quantify_scheduler.backends.graph_compilation.SerialCompilationConfig[source]#

Generates a compilation config for use with a QuantifyCompiler.

generate_hardware_config() Dict[str, Any][source]#

Generates a valid hardware configuration describing the quantum device.


  • The hardware configuration file used for compiling from the quantum-device layer to a hardware backend.

  • .. warning – The config currently has to be specified by the user using the hardware_config parameter.

generate_device_config() quantify_scheduler.backends.graph_compilation.DeviceCompilationConfig[source]#

Generates a device config to compile from the quantum-circuit to the quantum-device layer.

generate_hardware_compilation_config() quantify_scheduler.backends.types.common.HardwareCompilationConfig | None[source]#

Generates a hardware compilation config to compile from the quantum-device to the control-hardware layer.

get_element(name: str) quantify_scheduler.device_under_test.device_element.DeviceElement[source]#

Returns a DeviceElement by name.


name – The element name.


The element.


KeyError – If key name is not present in self.elements.

add_element(element: quantify_scheduler.device_under_test.device_element.DeviceElement) None[source]#

Adds an element to the elements collection.


element – The element to add.

  • ValueError – If a element with a duplicated name is added to the collection.

  • TypeError – If element is not an instance of the base element.

remove_element(name: str) None[source]#

Removes a element by name.


name – The element name.

get_edge(name: str) qcodes.instrument.base.Instrument[source]#

Returns a edge by name.


name – The edge name.


The edge.


KeyError – If key name is not present in self.edges.

add_edge(edge: quantify_scheduler.device_under_test.edge.Edge) None[source]#

Adds the edges.


edge – The edge name connecting the elements. Has to follow the convention ‘element_0’-‘element_1’

remove_edge(edge_name: str) None[source]#

Removes an edge by name.


edge_name – The edge name.