HexagonTile

class HexagonTile(origin: array, qubit_count=None, qubit_data=None, operators=None, optype='cZ-aXX')[source]

Bases: Tile

Hexagon Tile

Weight 6 operators (0,1,2):

                      q0      q1
                      v0      v1
                       o-----o
                  q3  /       \  q4
                  v5 o    0    o v2
    q2      q3        \       /
    v0      v1      q6 o-----o q7
     o-----o        v4         v3
q5  /       \  q6  .(0,0)
v5 o    1    o v2    q6       q7
    \       /        v0       v1
     o-----o           o-----o
    v4      v3    q9  /       \ q10
    q8      q9    v5 o    2    o v2
                      \       /
                       o-----o
                     v4       v3
                    q11       q12


                  o-----o
                 /       \
          o-----o    0    o
         /       \       /
        o    1    o-----o
         \       /       \
          o-----o    2    o
                 \       /
                  o-----o

Weight 2 operators (3,4,5,6,7,8,9,10,11):

                   q0
                 o v1
              3 /
               o v0
                 q3

q2   4     q3    q3        q4
v1 o-----o v0  o v1      o v1
                \ 5     / 6
                 o v0  o v0
                   q6    q7

              v0 o-----o v1
              q6    7    q7

                   q6    q7
                 o v0  o v0
q8    10    q9  / 8     \ 9
v1 o-----o v0  o         o v1
                 q9        q10
               o v0
                \ 11
                 o v1
                   q11

                 o
               3/
         o--4--o         o
                \5      /6
                 o--7--o
                /8      \9
         o--10-o         o
                \11
                 o

Hexagon Tile

Tile:

                    q0      q1
                    v0      v1
                    o-----o
                q3  /       \  q4
                v5 o    0    o v2
    q2      q3        \       /
    v0      v1      q6 o-----o q7
    o-----o        v4         v3
q5  /       \  q6  .(0,0)
v5 o    1    o v2    q6       q7
    \       /        v0       v1
    o-----o           o-----o
    v4      v3    q9  /       \ q10
    q8      q9    v5 o    2    o v2
                    \       /
                    o-----o
                    v4       v3
                    q11       q12


                o-----o
                /       \
        o-----o    0    o
        /       \       /
    o    1    o-----o
        \       /       \
        o-----o    2    o
                \       /
                o-----o

Weight 2 operators (3,4,5,6,7,8,9,10,11):

                    q0
                o v1
            3 /
                o v0
                q3

q2   4     q3    q3        q4
v1 o-----o v0  o v1      o v1
                \ 5     / 6
                o v0  o v0
                    q6    q7

            v0 o-----o v1
            q6    7    q7

                    q6    q7
                o v0  o v0
q8    10    q9  / 8     \ 9
v1 o-----o v0  o         o v1
                q9        q10
                o v0
                \ 11
                o v1
                    q11

                o
                3/
        o--4--o         o
                \5      /6
                o--7--o
                /8      \9
        o--10-o         o
                \11
                o

Face colors for faces [0,1,2] are [“yellowgreen”,”tomato”,”steelblue”] and red for the weight 2 faces.

Preformatted operators are stored in HexagonTile.wf_operator_dict

The operator variable may be used to define the operators specifically. The operator must be a list of PauliList objects where each PauliList describes the opertors to be built for the faces as indexed above 0,1,2,3, … If the PauliList contains k Paulis then k operators will be created for the given face. If a face is not wanted then that face should be listed as None. See HexagonTile.wf_operator_dict for examples.

Parameters:
  • origin (np.array) – Coordinates of origin of tile (shell)

  • qubit_count – Qubit counter. Defaults to None.

  • qubit_data – Qubit data. Defaults to None.

  • operators – Operators for tile faces. Defaults to None.

  • optype (optional) – Which of the listed opertor mapppings to used. Defaults to “pXZXZ”.

A appropriately scalled lattice basis for tiling with the HexagonTile can be accessed from [HexagonTile.u_vec, HexagonTile.v_vec]

Raises:

QiskitError – Unsupported operator type

Returns:

Returns a Checker Board tile (shell) with provided origin

Return type:

Shell

Methods

classmethod draw()

Display the tile

Return type:

None

Attributes

face_colors = ['yellowgreen', 'tomato', 'steelblue', 'red', 'red', 'red', 'red', 'red', 'red', 'red', 'red', 'red']
faces_wf_components = [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11]]
h = 0.5
num_faces = 12
num_qubits = 13
r = 0.8660254037844386
size = array([3.        , 3.46410162])
u_vec = array([3, 0])
v_vec = array([1.5       , 2.59807621])
wf_coordinates = [[[0, 1.7320508075688772], [1.0, 1.7320508075688772], [1.5, 0.8660254037844386], [1, 0], [0, 0], [-0.5, 0.8660254037844386]], [[-1.5, 0.8660254037844386], [-0.5, 0.8660254037844386], [0, 0], [-0.5, -0.8660254037844386], [-1.5, -0.8660254037844386], [-2, 0]], [[0, 0], [1, 0], [1.5, -0.8660254037844386], [1.0, -1.7320508075688772], [0, -1.7320508075688772], [-0.5, -0.8660254037844386]], [[-0.5, 0.8660254037844386], [0, 1.7320508075688772]], [[-0.5, 0.8660254037844386], [-1.5, 0.8660254037844386]], [[0, 0], [-0.5, 0.8660254037844386]], [[1, 0], [1.5, 0.8660254037844386]], [[0, 0], [1, 0]], [[0, 0], [-0.5, -0.8660254037844386]], [[1, 0], [1.5, -0.8660254037844386]], [[-0.5, -0.8660254037844386], [-1.5, -0.8660254037844386]], [[-0.5, -0.8660254037844386], [0, -1.7320508075688772]]]
wf_loop_indicator = [True, True, True, False, False, False, False, False, False, False, False, False]
wf_operator_dict = {'cX': [PauliList(['XXXXXX']), PauliList(['XXXXXX']), PauliList(['XXXXXX']), None, None, None, None, None, None, None, None, None], 'cYZX2-hXX': [PauliList(['XZYXZY']), PauliList(['XZYXZY']), PauliList(['XZYXZY']), None, PauliList(['XX']), None, None, PauliList(['XX']), None, None, PauliList(['XX']), None], 'cZ': [PauliList(['ZZZZZZ']), PauliList(['ZZZZZZ']), PauliList(['ZZZZZZ']), None, None, None, None, None, None, None, None, None], 'cZ-aXX': [PauliList(['XXXXXX']), PauliList(['XXXXXX']), PauliList(['XXXXXX']), PauliList(['XX']), PauliList(['XX']), PauliList(['XX']), PauliList(['XX']), PauliList(['XX']), PauliList(['XX']), PauliList(['XX']), PauliList(['XX']), PauliList(['XX'])], 'dXZ': [PauliList(['XXXXXX', 'ZZZZZZ']), PauliList(['XXXXXX', 'ZZZZZZ']), PauliList(['XXXXXX', 'ZZZZZZ']), None, None, None, None, None, None, None, None, None], 'dZX': [PauliList(['ZZZZZZ', 'XXXXXX']), PauliList(['ZZZZZZ', 'XXXXXX']), PauliList(['ZZZZZZ', 'XXXXXX']), None, None, None, None, None, None, None, None, None]}
wf_q_indices = [[0, 1, 4, 7, 6, 3], [2, 3, 6, 9, 8, 5], [6, 7, 10, 12, 11, 9], [3, 0], [3, 2], [6, 3], [7, 4], [6, 7], [6, 9], [7, 10], [9, 8], [9, 11]]