Spin#

from qiskit.quantum_info import SparsePauliOp, Statevector

import quantum_simulation_recipe as qsr
from quantum_simulation_recipe.spin import *

1D Nearest-neighbor interaction#

\[H=\sum_{j=1}^{n-1} J_j^x X_j X_{j+1} + J_j^y Y_j Y_{j+1} + J_j^z Z_j Z_{j+1} + \sum_{j=1}^{n} h_j^x X_j + h_j^y Y_j + h_j^z Z_j,\]

where \(J\) is the interaction strength and \(h_j\) is the strength of the external field (random disorder).

H = Nearest_Neighbour_1d(4, Jx=1, hz=0.2)
H.ham
SparsePauliOp(['IIXX', 'IXXI', 'XXII', 'IIIZ', 'IIZI', 'IZII', 'ZIII'],
              coeffs=[1. +0.j, 1. +0.j, 1. +0.j, 0.2+0.j, 0.2+0.j, 0.2+0.j, 0.2+0.j])

Parity grouping#

H.ham_par
[SparsePauliOp(['IIXX', 'XXII', 'IIIZ', 'IZII'],
               coeffs=[1. +0.j, 1. +0.j, 0.2+0.j, 0.2+0.j]),
 SparsePauliOp(['IXXI', 'IIZI', 'ZIII'],
               coeffs=[1. +0.j, 0.2+0.j, 0.2+0.j])]

Power-law interaction#

\[ H=\sum_{j=1}^{n} \sum_{k=j+1}^n \frac{1}{(j-k)^\alpha} (J^x X_j X_{k} + J^y Y_j Y_{k} + J^z Z_j Z_{k}) + \sum_{j=1}^{n} h_j^x X_j + h_j^y Y_j + h_j^z Z_j, \]
H = Power_Law(4, alpha=4, Jx=1, hz=0.2)
H.ham
SparsePauliOp(['IIXX', 'IXIX', 'XIIX', 'IXXI', 'XIXI', 'XXII', 'IIIZ', 'IIZI', 'IZII', 'ZIII'],
              coeffs=[1.      +0.j, 0.0625  +0.j, 0.012346+0.j, 1.      +0.j, 0.0625  +0.j,
 1.      +0.j, 0.2     +0.j, 0.2     +0.j, 0.2     +0.j, 0.2     +0.j])

XYZ grouping#

H.ham_xyz
[SparsePauliOp(['IIXX', 'IXIX', 'XIIX', 'IXXI', 'XIXI', 'XXII'],
               coeffs=[1.      +0.j, 0.0625  +0.j, 0.012346+0.j, 1.      +0.j, 0.0625  +0.j,
  1.      +0.j]),
 SparsePauliOp(['IIIZ', 'IIZI', 'IZII', 'ZIII'],
               coeffs=[0.2+0.j, 0.2+0.j, 0.2+0.j, 0.2+0.j])]

Higher dimension lattice#

todo