cirq_pasqal.pasqal_device.PasqalDevice

A generic Pasqal device.

The most general of Pasqal devices, enforcing only restrictions expected to be shared by all future devices. Serves as the parent class of all Pasqal devices, but can also be used on its own for hosting a nearly unconstrained device. When used as a circuit's device, the qubits have to be of the type cirq.NamedQubit and assumed to be all connected, the idea behind it being that after submission, all optimization and transpilation necessary for its execution on the specified device are handled internally by Pasqal.

qubits (NamedQubit): Qubits on the device, exclusively unrelated to a physical position.

TypeError if the wrong qubit type is provided.

maximum_qubit_number

supported_qubit_type

Methods

can_add_operation_into_moment

View source

Determines if it's possible to add an operation into a moment.

An operation can be added if the moment with the operation added is valid.

Args
operation The operation being added.
moment The moment being transformed.

Returns
Whether or not the moment will validate after adding the operation.

Raises
ValueError If either of the given moment or operation is invalid

decompose_operation

View source

Returns a device-valid decomposition for the given operation.

This method is used when adding operations into circuits with a device specified, to avoid spurious failures due to e.g. using a Hadamard gate that must be decomposed into native gates.

is_pasqal_device_op

View source

qid_pairs

Returns a set of qubit edges on the device, if possible.

This property can be overridden in child classes for special handling. The default handling is: GridQids and LineQids will have neighbors as edges, and others will be fully connected.

Returns
If the device has a finite set of qubits, then a set of all edges on the device is returned.

If the device has no well defined finite set of qubits (e.g. cirq.UnconstrainedDevice has this property), then None is returned.

qubit_list

View source

qubit_set

View source

Returns a set or frozenset of qubits on the device, if possible.

Returns
If the device has a finite set of qubits, then a set or frozen set of all qubits on the device is returned.

If the device has no well defined finite set of qubits (e.g. cirq.UnconstrainedDevice has this property), then None is returned.

validate_circuit

View source

Raises an error if the given circuit is invalid on this device.

A circuit is invalid if any of its moments are invalid or if there is a non-empty moment after a moment with a measurement.

Args
circuit The circuit to validate

Raises
ValueError If the given circuit can't be run on this device

validate_moment

Raises an exception if a moment is not valid.

Args
moment The moment to validate.

Raises
ValueError The moment isn't valid for this device.

validate_operation

View source

Raises an error if the given operation is invalid on this device.

Args
operation the operation to validate

Raises
ValueError If the operation is not valid

__eq__

__ne__