From 71b58482f524115e05e274271bcff201f28d0131 Mon Sep 17 00:00:00 2001 From: Prajjwal singh Date: Wed, 18 Mar 2026 02:45:53 +0530 Subject: [PATCH] Add tutorial for picket-fence model Hamiltonian --- examples/picket_fence_model.ipynb | 224 ++++++++++++++++++++++++++++++ 1 file changed, 224 insertions(+) create mode 100644 examples/picket_fence_model.ipynb diff --git a/examples/picket_fence_model.ipynb b/examples/picket_fence_model.ipynb new file mode 100644 index 0000000..5a367b0 --- /dev/null +++ b/examples/picket_fence_model.ipynb @@ -0,0 +1,224 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "19a595e0-431b-45da-b01b-39357a58c4e7", + "metadata": {}, + "source": [ + "\n", + "# Tutorial: Constructing and Solving a Picket-Fence Model Hamiltonian\n", + "\n", + "## What this tutorial covers\n", + "\n", + "**In this tutorial, we:**\n", + " \n", + "**- construct a model Hamiltonian using the ModelHamiltonian package**\n", + " \n", + "**- generate one- and two-body integrals**\n", + " \n", + "**- solve the system using Full Configuration Interaction (FCI)**\n", + " \n", + "**- analyze how the ground state energy scales with system size**\n", + " \n", + "**This workflow reflects the typical pipeline used in model Hamiltonian studies.**\n", + "\n", + "**The picket-fence model consists of equally spaced energy levels with pairing interactions between fermions.**\n", + "**Despite its simplicity, it captures key features of many-body quantum systems and is often used as a benchmark model.**\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "402f5c4b", + "metadata": {}, + "outputs": [], + "source": [ + "# import libraries\n", + "import numpy as np\n", + "from moha import HamHeisenberg\n", + "from pyscf import fci" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "648afcbd-415d-4564-b9b6-a04706a43a0f", + "metadata": {}, + "outputs": [], + "source": [ + "def compute_energy(L, J_eq, J_ax, mu):\n", + " connectivity = np.zeros((L, L))\n", + " connectivity[np.arange(L-1), np.arange(L-1)+1] = 1\n", + " connectivity[0, -1] = 1\n", + " connectivity += connectivity.T\n", + "\n", + " ham = HamHeisenberg(connectivity=connectivity, J_eq=J_eq, J_ax=J_ax, mu=mu)\n", + "\n", + " e0 = ham.generate_zero_body_integral()\n", + " h1 = ham.generate_one_body_integral(dense=True, basis='spatial basis')\n", + " h2 = ham.generate_two_body_integral(dense=True, basis='spatial basis', sym=4)\n", + "\n", + " h2_ch = np.transpose(h2, (0, 2, 1, 3))\n", + " e, _ = fci.direct_spin0.kernel(h1, h2_ch, L, L)\n", + "\n", + " return (e + e0) / L" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "ea3a9947-6366-4f46-b0a5-269b02a1edb7", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "# Store results\n", + "L_values = [4, 6, 8]\n", + "energies = []\n", + "\n", + "for L in L_values:\n", + " connectivity = np.zeros((L, L))\n", + " connectivity[np.arange(L-1), np.arange(L-1)+1] = 1\n", + " connectivity[0, -1] = 1\n", + " connectivity += connectivity.T\n", + "\n", + " ham = HamHeisenberg(connectivity=connectivity, J_eq=J_eq, J_ax=J_ax, mu=mu)\n", + "\n", + " e0 = ham.generate_zero_body_integral()\n", + " h1 = ham.generate_one_body_integral(dense=True, basis='spatial basis')\n", + " h2 = ham.generate_two_body_integral(dense=True, basis='spatial basis', sym=4)\n", + "\n", + " h2_ch = np.transpose(h2, (0, 2, 1, 3))\n", + " e, _ = fci.direct_spin0.kernel(h1, h2_ch, L, L)\n", + "\n", + " energy_per_site = compute_energy(L, J_eq, J_ax, mu)\n", + " energies.append(energy_per_site)\n", + "\n", + "# Plot results\n", + "plt.figure()\n", + "plt.plot(L_values, energies, 'o-', label='Energy per site')\n", + "\n", + "\n", + "plt.axhline(y=min(energies), linestyle='--', label='Approx limit')\n", + "plt.legend()\n", + "\n", + "plt.xlabel(\"System size (L)\")\n", + "plt.ylabel(\"Ground state energy per site\")\n", + "plt.title(\"Energy scaling with system size\")\n", + "plt.grid()\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "cdeb2903-a36c-4768-b3b7-2c28e044ebec", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Approximate ground state energy (per site): -0.421535\n" + ] + } + ], + "source": [ + "print(f\"Approximate ground state energy (per site): {min(energies):.6f}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "62239386-98e6-4afc-8bac-dcc6af2f047f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Effect of interaction strength:\n", + "J_eq=0.5, energy per site=-0.197336\n", + "J_eq=1.0, energy per site=-0.394672\n", + "J_eq=1.5, energy per site=-0.592008\n" + ] + } + ], + "source": [ + "# Effect of interaction strength (J_eq)\n", + "print(\"Effect of interaction strength:\")\n", + "\n", + "for g in [0.5, 1.0, 1.5]:\n", + " energy = compute_energy(6, g, g/2, mu)\n", + " print(f\"J_eq={g}, energy per site={energy:.6f}\")" + ] + }, + { + "cell_type": "markdown", + "id": "f520a9c0-4d32-4c49-9555-c4e26c796127", + "metadata": {}, + "source": [ + "### Effect of interaction strength\n", + "\n", + "**We explore how the interaction strength affects the ground state energy.**\n", + "**We explore how the interaction strength affects the ground state energy.\n", + "Increasing the coupling strength leads to a lower energy, indicating stronger\n", + "correlations in the system and highlighting the role of interactions in determining\n", + "the system's behavior.**" + ] + }, + { + "cell_type": "markdown", + "id": "deff9b4e-23a5-4e06-a865-e288474e649e", + "metadata": {}, + "source": [ + "### Remarks\n", + "\n", + "**The system sizes considered here are small due to the exponential scaling of FCI.**\n", + "**For larger systems, approximate methods would be required.**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "facbe877-f510-40b7-8afb-bca95b92a5c0", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.14.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}