.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/condensed/topology/plot_iqhe_hall_conductance.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_api_gallery_condensed_topology_plot_iqhe_hall_conductance.py: The Integer Quantum Hall Effect: Quantized Hall Conductance from Chern Numbers ==================================================================================== Von Klitzing, Dorda, and Pepper's 1980 discovery -- a two-dimensional electron gas in a strong magnetic field develops a Hall conductance quantized to extraordinary precision, :math:`\sigma_{xy} = \nu\,e^2/h` with :math:`\nu` an exact integer -- is reproduced here on its lattice (Bloch) incarnation, the Harper-Hofstadter model (:func:`~physicskit.condensed.models.harper_hofstadter_hamiltonian`): a square lattice threaded by a uniform flux :math:`p/q` per plaquette. At flux :math:`1/3` the spectrum splits into three magnetic sub-bands; feeding each one, in turn, into :func:`~physicskit.condensed.topology.compute_chern_number` (the same TKNN machinery used for the Haldane model) gives the exact integer Chern number of that band, and summing the Chern numbers of every filled band below a gap gives that gap's quantized Hall conductance directly -- the numerical content of the TKNN formula that explains *why* von Klitzing's measurement came out an integer at all. .. GENERATED FROM PYTHON SOURCE LINES 23-29 .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from physicskit.condensed.models import harper_hofstadter_hamiltonian from physicskit.condensed.topology import compute_chern_number .. GENERATED FROM PYTHON SOURCE LINES 30-34 Three magnetic sub-bands at flux 1/3 ------------------------------------------ Odd ``q`` avoids the exact band touchings that occur for some even flux denominators, where individual-band Chern numbers become ill-defined. .. GENERATED FROM PYTHON SOURCE LINES 34-59 .. code-block:: Python p, q = 1, 3 k2_grid = np.linspace(0, 2 * np.pi, 200) bands = np.array([np.linalg.eigvalsh(harper_hofstadter_hamiltonian(0.0, k2, p, q)) for k2 in k2_grid]) chern_numbers = compute_chern_number(lambda k1, k2: harper_hofstadter_hamiltonian(k1, k2, p, q), grid_size=30) sigma_xy = np.cumsum(chern_numbers) print(f"flux = {p}/{q}: band Chern numbers = {chern_numbers} (sum = {sum(chern_numbers)})") print(f"quantized Hall conductance below each gap (units of e^2/h): {list(sigma_xy[:-1])}") fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(11, 4.3)) for n in range(q): ax1.plot(k2_grid, bands[:, n], color="steelblue") ax1.set_xlabel(r"$k_2$") ax1.set_ylabel("E") ax1.set_title(f"Hofstadter sub-bands at flux {p}/{q} (k1 = 0)") ax2.bar(range(1, q + 1), sigma_xy, color="firebrick") ax2.axhline(0, color="black", lw=0.5) ax2.set_xticks(range(1, q + 1)) ax2.set_xlabel("bands filled") ax2.set_ylabel(r"$\sigma_{xy}$ ($e^2/h$)") ax2.set_title("Quantized Hall conductance below each gap") fig.tight_layout() .. image-sg:: /api/gallery/condensed/topology/images/sphx_glr_plot_iqhe_hall_conductance_001.png :alt: Hofstadter sub-bands at flux 1/3 (k1 = 0), Quantized Hall conductance below each gap :srcset: /api/gallery/condensed/topology/images/sphx_glr_plot_iqhe_hall_conductance_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none flux = 1/3: band Chern numbers = [-1, 2, -1] (sum = 0) quantized Hall conductance below each gap (units of e^2/h): [np.int64(-1), np.int64(1)] .. GENERATED FROM PYTHON SOURCE LINES 60-65 Every gap's conductance is an exact integer, and the three bands' Chern numbers sum to exactly zero -- the full three-band Hilbert space, taken together, is topologically trivial, as it must be for any complete set of bands of a lattice Hamiltonian; the nontrivial physics is entirely in how that zero splits across the individual gaps. .. GENERATED FROM PYTHON SOURCE LINES 65-67 .. code-block:: Python plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.063 seconds) .. _sphx_glr_download_api_gallery_condensed_topology_plot_iqhe_hall_conductance.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_iqhe_hall_conductance.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_iqhe_hall_conductance.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_iqhe_hall_conductance.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_