# 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. 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.