quantify_scheduler.device_under_test.quantum_device

Module containing the QuantumDevice object.

Module Contents

Classes

QuantumDevice

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.

Returns

  • 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_options()[source]

Generates the HardwareOptions datastructure used for compiling from the quantum-device layer to a hardware backend.

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

Returns a DeviceElement by name.

Parameters

name – The element name.

Returns

The element.

Raises

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.

Parameters

element – The element to add.

Raises
  • 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.

Parameters

name – The element name.

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

Returns a edge by name.

Parameters

name – The edge name.

Returns

The edge.

Raises

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.

Parameters

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.

Parameters

edge_name – The edge name.