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:
\[\begin{align*} \hat{H} = K_X \sum_{\langle i,j \rangle \in X}\sigma_i^x\sigma_j^x + \:\: K_Y \sum_{\langle i,j \rangle \in Y}\sigma_i^y\sigma_j^y + \:\: K_Z \sum_{\langle i,j \rangle \in Z}\sigma_i^z\sigma_j^z \end{align*}\]where \(\sigma\) is a Pauli operator and \(<i,j>\) represents the indices for neighbouring spins. The parameters \(K_X\), \(K_Y\), \(K_Z\) 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], [\frac{\sqrt{3}}{2}, \frac{1}{2}], [\frac{\sqrt{3}}{2}, -\frac{1}{2}]\), 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 \(K_X\), \(K_Y\), \(K_Z\) 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)) )