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=KX∑⟨i,j⟩∈Xσxiσxj+KY∑⟨i,j⟩∈Yσyiσyj+KZ∑⟨i,j⟩∈Zσziσzjwhere σ 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
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)) )