Loading [MathJax]/jax/output/HTML-CSS/jax.js

qml.spin.kitaev

kitaev(n_cells, coupling=None, boundary_condition=False)[source]

Generates the Hamiltonian for the Kitaev model on the honeycomb lattice.

The Kitaev model Hamiltonian is represented as:

ˆH=KXi,jXσxiσxj+KYi,jYσyiσyj+KZi,jZσziσzj

where σ is a Pauli operator and <i,j> represents the indices for neighbouring spins. The parameters KX, KY, KZ are the coupling constants defined for the Hamiltonian, where X, Y, Z represent the set of edges in the Honeycomb lattice between spins i and j with real-space bond directions [0,1],[32,12],[32,12], respectively.

Parameters
  • n_cells (list[int]) – Number of cells in each direction of the grid.

  • coupling (tensor_like[float]) – Coupling between spins. It can be an array of length 3 defining KX, KY, KZ coupling constants. Default value is 1.0 for each coupling constant.

  • boundary_condition (bool or list[bool]) – Specifies whether or not to enforce periodic boundary conditions for the different lattice axes. Default is False indicating open boundary condition.

Raises

ValueError – if coupling doesn’t have correct dimensions.

Returns

Hamiltonian for the Kitaev model.

Return type

Sum

Example

>>> n_cells = [2, 2]
>>> k = np.array([0.5, 0.6, 0.7])
>>> spin_ham = qml.spin.kitaev(n_cells, coupling=k)
>>> spin_ham
(
  0.5 * (X(0) @ X(1))
  + 0.5 * (X(2) @ X(3))
  + 0.5 * (X(4) @ X(5))
  + 0.5 * (X(6) @ X(7))
  + 0.6 * (Y(1) @ Y(2))
  + 0.6 * (Y(5) @ Y(6))
  + 0.7 * (Z(1) @ Z(4))
  + 0.7 * (Z(3) @ Z(6))
)