qat.purr.compiler.hardware_models module

class HardwareModel(shot_limit=-1, engine_types=None, builder_types=None)

Bases: object

Base class for all hardware models. Every model should return the builder class that should be used to build circuits/pulses for its particular back-end.

builder_types: List[TypeVar(AnyBuilder)]
engine_types: List[TypeVar(AnyEngine)]
get_builder()
get_engine()
class QuantumHardwareModel(shot_limit=10000, acquire_mode=None, repeat_count=1000, repetition_period=0.0001, engine_types=None, builder_types=None)

Bases: HardwareModel, Calibratable

Object modelling our superconducting hardware. Holds up-to-date information about a current piece of hardware, whether simulated or physical machine.

add_device(device)
add_physical_baseband(*basebands)
add_physical_channel(*physical_channels)
add_pulse_channel(*pulse_channels)
add_quantum_device(*devices)
constrain(angle)
get_device(id_)
get_devices_from_physical_channel(id_)
get_devices_from_pulse_channel(id_)
get_gate_U(qubit, theta, phi, lamb, pulse_channel=None)
get_gate_X(qubit, theta, pulse_channel=None)
get_gate_Y(qubit, theta, pulse_channel=None)
get_gate_Z(qubit, theta, pulse_channel=None)
get_gate_ZX(qubit, theta, target_qubit)
get_hw_x_pi_2(qubit, pulse_channel=None, amp_scale=None)
Return type:

List[Any]

get_hw_z(qubit, phase, pulse_channel=None)
Return type:

List[Any]

get_hw_zx_pi_4(qubit, target_qubit)
Return type:

List[Any]

get_physical_baseband(id_)
get_physical_channel(id_)
get_pulse_channel_from_device(ch_type, host_device_id, aux_device_ids=None)
get_pulse_channel_from_id(id_)
get_pulse_channels_from_physical_channel(physical_channel_id)
get_quantum_device(id_)
get_qubit(id_)

Returns a qubit based on id/index. If the passed-in object is already a Qubit object just returns that.

Return type:

Qubit

has_qubit(id_)
property is_calibrated
property qubits

Returns list of the qubits on this hardware sorted by index.

property resonators