A Pasqal virtual device with qubits in 3d.
Inherits From: PasqalDevice
cirq_pasqal.pasqal_device.PasqalVirtualDevice(
    control_radius: float,
    qubits: Sequence[ThreeDQubit | GridQubit | LineQubit]
) -> None
A virtual representation of a Pasqal device, enforcing the constraints
typically found in a physical device. The qubits can be positioned in 3d
space, although 2d layouts will be supported sooner and are thus
recommended. Only accepts qubits with physical placement.
Args | 
control_radius
 | 
the maximum distance between qubits for a controlled
gate. Distance is measured in units of the coordinates passed
into the qubit constructor.
 | 
qubits
 | 
Qubits on the device, identified by their x, y, z position.
Must be of type ThreeDQubit, TwoDQubit, LineQubit or GridQubit.
 | 
Raises | 
ValueError
 | 
if the wrong qubit type is provided or if invalid
parameter is provided for control_radius.
 | 
Attributes | 
maximum_qubit_number
 | 
 | 
metadata
 | 
Returns the associated Metadata with the device if applicable.
 | 
supported_qubit_type
 | 
 | 
Methods
distance
View source
distance(
    p: Any, q: Any
) -> float
Returns the distance between two qubits.
| Args | 
p
 | 
qubit involved in the distance computation
 | 
q
 | 
qubit involved in the distance computation
 | 
| Raises | 
ValueError
 | 
If p or q not part of the device
 | 
| Returns | 
| 
The distance between qubits p and q.
 | 
is_pasqal_device_op
View source
is_pasqal_device_op(
    op: cirq.Operation
) -> bool
minimal_distance
View source
minimal_distance() -> float
Returns the minimal distance between two qubits in qubits.
| Args | 
qubits
 | 
qubit involved in the distance computation
 | 
| Raises | 
ValueError
 | 
If the device has only one qubit
 | 
| Returns | 
| 
The minimal distance between qubits, in spacial coordinate units.
 | 
qubit_list
View source
qubit_list()
validate_circuit
View source
validate_circuit(
    circuit: cirq.AbstractCircuit
) -> None
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
View source
validate_moment(
    moment: cirq.Moment
)
Raises an error if the given moment is invalid on this device.
| Args | 
moment
 | 
The moment to validate.
 | 
| Raises | 
ValueError
 | 
If the given moment is invalid.
 | 
validate_operation
View source
validate_operation(
    operation: cirq.Operation
)
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__
__eq__(
    other: _SupportsValueEquality
) -> bool
__ne__
__ne__(
    other: _SupportsValueEquality
) -> bool