pytket.architecture

class pytket.architecture.Architecture

Class describing the connectivity of qubits on a general device.

__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: pytket.architecture.Architecture) -> None

Produces an empty architecture

  1. __init__(self: pytket.architecture.Architecture, connections: Sequence[tuple[int, int]]) -> None

The constructor for an architecture with connectivity between qubits.

Parameters:

connections – A list of pairs representing qubit indices that can perform two-qubit operations

  1. __init__(self: pytket.architecture.Architecture, connections: Sequence[tuple[pytket.unit_id.Node, pytket.unit_id.Node]]) -> None

The constructor for an architecture with connectivity between qubits.

Parameters:

connections – A list of pairs representing Nodes that can perform two-qubit operations

static from_dict(arg0: dict) pytket.architecture.Architecture

Construct Architecture instance from JSON serializable dict representation of the Architecture.

get_adjacent_nodes(self: pytket.architecture.Architecture, node: pytket.unit_id.Node) set[pytket.unit_id.Node]

given a node, returns adjacent nodes in Architecture.

get_distance(self: pytket.architecture.Architecture, node_0: pytket.unit_id.Node, node_1: pytket.unit_id.Node) int

given two nodes in Architecture, returns distance between them

to_dict(self: pytket.architecture.Architecture) dict

Return a JSON serializable dict representation of the Architecture.

Returns:

dict containing nodes and links.

valid_operation(self: pytket.architecture.Architecture, uids: Sequence[pytket.unit_id.Node]) bool

nodes can be executed on the Architecture connectivity graph.

Parameters:

uids – list of UnitIDs validity is being checked for

property coupling

Returns the coupling map of the Architecture as UnitIDs.

property nodes

Returns all nodes of architecture as Node objects.

class pytket.architecture.FullyConnected

A specialised non-Architecture object emulating an architecture with all qubits connected. Not compatible with Routing or Placement methods.

__init__(self: pytket.architecture.FullyConnected, n: int, label: str = 'fcNode') None

Construct a fully-connected architecture.

Parameters:
  • n – number of qubits

  • label – Name for Node in FullyConnected Architecture

static from_dict(arg0: dict) pytket.architecture.FullyConnected

Construct FullyConnected instance from dict representation.

to_dict(self: pytket.architecture.FullyConnected) dict

JSON-serializable dict representation of the architecture.

Returns:

dict containing nodes

property nodes

All nodes of the architecture as Node objects.

class pytket.architecture.RingArch

Inherited Architecture class for number of qubits arranged in a ring.

__init__(self: pytket.architecture.RingArch, nodes: int, label: str = 'ringNode') None

The constructor for a RingArchitecture with some undirected connectivity between qubits.

Parameters:
  • qubits (number of)

  • label – Name for Node in RingArch Architecture

class pytket.architecture.SquareGrid

Inherited Architecture class for qubits arranged in a square lattice of given number of rows and columns. Qubits are arranged with qubits values increasing first along rows then along columns i.e. for a 3 x 3 grid:

0 1 2

3 4 5

6 7 8

__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: pytket.architecture.SquareGrid, n_rows: int, n_columns: int, label: str = ‘gridNode’) -> None

The constructor for a Square Grid architecture with some undirected connectivity between qubits.

Parameters:
  • n_rows – The number of rows in the grid

  • n_columns – The number of columns in the grid

  • label – Name for Node in SquareGrid Architecture

  1. __init__(self: pytket.architecture.SquareGrid, n_rows: int, n_columns: int, n_layers: int = 1, label: str = ‘gridNode’) -> None

The constructor for a Square Grid architecture with some undirected connectivity between qubits.

Parameters:
  • n_rows – The number of rows in the grid

  • n_columns – The number of columns in the grid

  • n_layers – The number of layers of grids

  • label – Name for Node in SquareGrid Architecture

qind_to_squind(self: pytket.architecture.SquareGrid, index: int) tuple[int, int]

Converts a single qubit index to a (row,column) index for a square grid.

Parameters:

index – The global qubit index

Returns:

the corresponding grid index as a pair (row,column)

squind_to_qind(self: pytket.architecture.SquareGrid, row: int, column: int) int

Converts a (row,column) index for a square grid to a single qubit index

Parameters:
  • row – The given row index

  • column – The given column index

Returns:

the corresponding global qubit index