cirq.NeutralAtomDevice

class cirq.NeutralAtomDevice(measurement_duration: cirq.DURATION_LIKE, gate_duration: cirq.DURATION_LIKE, control_radius: float, max_parallel_z: int, max_parallel_xy: int, max_parallel_c: int, qubits: Iterable[cirq.devices.grid_qubit.GridQubit])[source]

A device with qubits placed on a grid.

__init__(measurement_duration: cirq.DURATION_LIKE, gate_duration: cirq.DURATION_LIKE, control_radius: float, max_parallel_z: int, max_parallel_xy: int, max_parallel_c: int, qubits: Iterable[cirq.devices.grid_qubit.GridQubit]) → None[source]

Initializes the description of the AQuA device.

Parameters
  • measurement_duration – the maximum duration of a measurement.

  • gate_duration – the maximum duration of a gate

  • control_radius – the maximum distance between qubits for a controlled gate. Distance is measured in units of the indices passed into the GridQubit constructor.

  • max_parallel_z – The maximum number of qubits that can be acted on in parallel by a Z gate

  • max_parallel_xy – The maximum number of qubits that can be acted on in parallel by a local XY gate

  • max_parallel_c – the maximum number of qubits that can be acted on in parallel by a controlled gate. Must be less than or equal to the lesser of max_parallel_z and max_parallel_xy

  • qubits – Qubits on the device, identified by their x, y location. Must be of type GridQubit

Raises

ValueError – if the wrong qubit type is provided or if invalid parallel parameters are provided

Methods

can_add_operation_into_moment(operation, moment)

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

decompose_operation(operation)

Returns a device-valid decomposition for the given operation.

distance(p, q)

duration_of(operation)

Provides the duration of the given operation on this device.

neighbors_of(qubit)

Returns the qubits that the given qubit can interact with.

qubit_list()

qubit_set()

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

validate_circuit(circuit)

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

validate_gate(gate)

Raises an error if the provided gate isn’t part of the native gate set.

validate_moment(moment)

Raises an error if the given moment is invalid on this device

validate_operation(operation)

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