This entry introduces closed loops on the Bloch sphere and the Berry phase, with examples using the accompanying Python code.
Certain unitary evolutions return a qubit state to its starting point. On the Bloch sphere these correspond to closed loops.
Two canonical examples are:
* The meridian loop: a full $2\pi$ rotation about the y-axis, starting at $|0\rangle$. * The equatorial loop: a full $2\pi$ rotation about the z-axis, starting at $|+\rangle = (|0\rangle + |1\rangle)/\sqrt{2}$.
Both loops close after one full rotation.
When a quantum state traces out a closed path, it accumulates a geometric phase. For a discretized path of states $\{\psi_k\}$, the Berry phase is estimated by
\[ \phi \approx -\operatorname{Im} \log \prod_k \langle \psi_k | \psi_{k+1} \rangle, \quad \psi_N = \psi_0. \]
For a qubit, this equals half the solid angle enclosed by the loop on $S^2$.
The function estimate_berry_phase implements this calculation. Example:
import hottbloch as h # Meridian loop (rotation around y-axis) states_a, loop_a = h.loop_meridian() phi_a = h.estimate_berry_phase(states_a) print("Berry phase (meridian loop):", phi_a) # Equatorial loop (rotation around z-axis) states_b, loop_b = h.loop_equator() phi_b = h.estimate_berry_phase(states_b) print("Berry phase (equatorial loop):", phi_b)
Typical output:
* Meridian loop: phase ≈ π. * Equatorial loop: phase ≈ –π.
Signs depend on orientation, but magnitudes match the expected half solid angle.
To plot both loops:
python hottbloch.py --out ./hott_outputs --loop meridian --theta 6.283185 python hottbloch.py --out ./hott_outputs --loop equator --theta 6.283185
Figures of the meridian and equatorial loops are saved in `./hott_outputs`.
Closed loops on the Bloch sphere give rise to Berry phases, a geometric property of quantum evolution. This provides the foundation for studying homotopies — continuous deformations between loops — in the next post.