Simulating the Heisenberg Model
The Heisenberg model is the canonical testbed for quantum simulation of many-body dynamics. Its spins interact through all three Pauli components, so the terms do not commute — exactly the regime where Trotterization is both necessary and interesting.
The Heisenberg Hamiltonian
For a chain of spin- particles the (isotropic) Heisenberg Hamiltonian couples neighbours by
The part is a hopping (exchange) term that swaps spin excitations between sites; the part is an Ising energy. Because and , we cannot exponentiate in closed form on hardware — we Trotterize each bond into three two-qubit rotations.
One bond, three rotations
Focus on a single bond (). The exact one-step evolution factorises (to first order) into the three commuting-on-paper pieces:
Each factor is a two-qubit Pauli rotation with . The base case is the rotation, which has a clean CNOT decomposition:
The CNOT maps the joint parity of the two qubits into qubit 1, an phases by that parity, and the second CNOT uncomputes it.
Changing basis for and
and are just in a rotated single-qubit basis:
- : since , conjugating the block by a Hadamard on each qubit gives the rotation.
- : since (the sign drops out of the symmetric ), conjugating the block by on each qubit gives the rotation.
So all three Pauli rotations reuse the same CNOT––CNOT core, wrapped in a different single-qubit basis change.
Starting state: the Néel state
We initialise the two spins in the Néel (antiferromagnetic) state — one spin up, one down — by flipping qubit 1 with an gate. Under the Heisenberg dynamics the exchange term makes the excitation hop, so amplitude leaks from into ; this spin transport is the physics the circuit is meant to capture.
Try it
Prepare , then apply one first-order Trotter step of the 2-spin Heisenberg interaction at , (so ). Build the , , and rotation blocks as described. The grader checks the final state vector.
Sign in on the full site to ask questions and join the discussion.