quantum_device#
Module containing the QuantumDevice object.
Module Contents#
Classes#
| The QuantumDevice directly represents the device under test (DUT). | 
- class QuantumDevice(name: str)[source]#
- Bases: - quantify_scheduler.json_utils.JSONSerializableMixin,- qcodes.instrument.base.Instrument- The QuantumDevice directly represents the device under test (DUT). - This 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.- hardware_config: quantify_scheduler.device_under_test.hardware_config.HardwareConfig[source]#
- The input dictionary used to generate a valid HardwareCompilationConfig using - generate_hardware_compilation_config(). This configures the compilation from the quantum-device layer to the control-hardware layer.- Useful methods to write and reload the configuration from a json file are - load_from_json_file()and- write_to_json_file().
 - to_json() str[source]#
- Convert the - QuantumDevicedata structure to a JSON string. Overrides the base mixin method to perform additional checks.- Returns:
- The json string containing the serialized QuantumDevice. 
 
 - generate_compilation_config() quantify_scheduler.backends.graph_compilation.SerialCompilationConfig[source]#
- Generate a config for use with a - QuantifyCompiler.
 - generate_hardware_config() dict[str, Any][source]#
- Generate 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_configparameter.
 
 
 - generate_device_config() quantify_scheduler.backends.graph_compilation.DeviceCompilationConfig[source]#
- Generate a device config. - This config is used to compile from the quantum-circuit to the quantum-device layer. 
 - generate_hardware_compilation_config() quantify_scheduler.backends.types.common.HardwareCompilationConfig | None[source]#
- Generate a hardware compilation config. - The compilation config is used to compile from the quantum-device to the control-hardware layer. 
 - get_element(name: str) quantify_scheduler.device_under_test.device_element.DeviceElement[source]#
- Return a - DeviceElementby name.- Parameters:
- name – The element name. 
- Returns:
- The element. 
- Raises:
- KeyError – If key - nameis not present in self.elements.
 
 - add_element(element: quantify_scheduler.device_under_test.device_element.DeviceElement) None[source]#
- Add 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 - elementis not an instance of the base element.
 
 
 - remove_element(name: str) None[source]#
- Removes an element by name. - Parameters:
- name – The element name. 
 
 - get_edge(name: str) qcodes.instrument.base.Instrument[source]#
- Returns an edge by name. - Parameters:
- name – The edge name. 
- Returns:
- The edge. 
- Raises:
- KeyError – If key - nameis not present in- self.edges.
 
 - add_edge(edge: quantify_scheduler.device_under_test.edge.Edge) None[source]#
- Add the edges. - Parameters:
- edge – The edge name connecting the elements. Has to follow the convention ‘element_0’-‘element_1’