From add9a7d2c67da03ea203c0a0afc5d3cb11490cb0 Mon Sep 17 00:00:00 2001
From: Antonio Manesco <am@antoniomanesco.org>
Date: Wed, 20 Dec 2023 12:07:43 +0100
Subject: [PATCH] update molecule example

---
 examples/data/diatomic_molecule_example.nc | Bin 13468 -> 13468 bytes
 examples/diatomic_molecule.ipynb           |  40 ++++++++++-----------
 2 files changed, 18 insertions(+), 22 deletions(-)

diff --git a/examples/data/diatomic_molecule_example.nc b/examples/data/diatomic_molecule_example.nc
index 72606ebef5db3c368507c337ae52eae4c014103b..ce12b5654e9af2fa8dc3f48c0027c55bcd229af5 100644
GIT binary patch
literal 13468
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

literal 13468
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
YpSW|lN3^c#^Wgu}_@58z@7OT^9|G?*Z~y=R

diff --git a/examples/diatomic_molecule.ipynb b/examples/diatomic_molecule.ipynb
index 4b6a18f..9905412 100644
--- a/examples/diatomic_molecule.ipynb
+++ b/examples/diatomic_molecule.ipynb
@@ -12,7 +12,7 @@
     "import kwant\n",
     "import numpy as np\n",
     "import matplotlib.pyplot as plt\n",
-    "from codes import utils, hf, kwant_examples\n",
+    "from codes import utils, hf, model\n",
     "from tqdm import tqdm\n",
     "from itertools import product"
    ]
@@ -98,27 +98,26 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 88,
    "id": "41bd9f60-8f29-4e7c-a0c4-a0bbf66445b2",
    "metadata": {},
    "outputs": [],
    "source": [
     "def compute_vals(\n",
-    "    tb_model,\n",
-    "    int_model,\n",
+    "    model,\n",
     "    filling=2,\n",
     "):\n",
     "\n",
     "    # Run SCF loop to find groundstate Hamiltonian.\n",
     "    scf_model = hf.find_groundstate_ham(\n",
-    "        tb_model=tb_model,\n",
-    "        int_model=int_model,\n",
+    "        model,\n",
     "        filling=filling,\n",
-    "        tol=1e-4,\n",
-    "        nk=2,\n",
+    "        solver=hf.finite_system_solver,\n",
+    "        cutoff_Vk=0,\n",
+    "        optimizer_kwargs={'M':2},\n",
     "    )\n",
     "    # Diagonalize groundstate Hamiltonian.\n",
-    "    vals, vecs = np.linalg.eigh(scf_model[next(iter(scf_model))])\n",
+    "    vals, _ = np.linalg.eigh(scf_model[next(iter(scf_model))])\n",
     "    # Extract Fermi energy.\n",
     "    E_F = utils.get_fermi_energy(vals, filling)\n",
     "    return vals - E_F"
@@ -154,7 +153,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 89,
    "id": "32b9e7c5-db12-44f9-930c-21e5494404b8",
    "metadata": {
     "tags": []
@@ -176,14 +175,11 @@
     "\n",
     "    vals = []\n",
     "    for U in tqdm(Us):\n",
-    "        gap_U = []\n",
     "        vals_U = []\n",
     "        for V in Vs:\n",
     "            int_model = {(): U * onsite_int + V * nn_int}\n",
-    "            _vals = compute_vals(\n",
-    "                tb_model=tb_model,\n",
-    "                int_model=int_model,\n",
-    "            )\n",
+    "            full_model = model.Model(tb_model=tb_model, int_model=int_model)\n",
+    "            _vals = compute_vals(full_model)\n",
     "            vals_U.append(_vals)\n",
     "        vals.append(vals_U)\n",
     "    return np.asarray(vals)"
@@ -191,7 +187,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 90,
    "id": "6a8c08a9-7e31-420b-b6b4-709abfb26793",
    "metadata": {
     "tags": []
@@ -201,7 +197,7 @@
      "name": "stderr",
      "output_type": "stream",
      "text": [
-      "100%|██████████| 20/20 [00:17<00:00,  1.13it/s]\n"
+      "100%|██████████| 20/20 [00:05<00:00,  3.98it/s]\n"
      ]
     }
    ],
@@ -214,7 +210,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 91,
    "id": "e17fc96c-c463-4e1f-8250-c254d761b92a",
    "metadata": {},
    "outputs": [],
@@ -239,13 +235,13 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": 92,
    "id": "868cf368-45a0-465e-b042-6182ff8b6998",
    "metadata": {},
    "outputs": [
     {
      "data": {
-      "image/png": "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+uorBYOpTXXzxJQxAAAAAAAAW614ytgVV1yhSy65RN26dZNlWTr77LMlSa+99pr69euX0jlpCAEAAAAAAO8LhA4Pu/1ZqqSkRAMHDlR5ebnGjx+vSCQiSQoGg5o5c2ZK50zpbt944w3l5OTo+OOPlyQ9++yzWrRokfr376+SkhKFwywMBwAAAAAAskfda+ft9mez73//+/W2TZo0KeXzpdQQuuaaazRz5kwdf/zx+vDDDzVhwgRddNFFevLJJ/XVV19p3rx5KRcEAAAAAACQdhmaMvbggw/qrrvu0u7duzVgwADNmzdPZ5xxRopF/t19993X7GN//OMfJ33+lBpC7777rk488URJ0pNPPqkzzzxTS5Ys0SuvvKIJEybQEAIAAAAAANnFsg4Pu/1JWrZsmaZPn64HH3xQw4cP14IFCzRmzBht27ZNPXv2bEGx0r333tus4yzLcq4hZIxRLBaTJP3xj3/UeeedJ0kqKirSvn37UjklAAAAAABAxphASMZmnSC7fY255557NGXKFF155ZWSpHnz5umFF17Q/PnzVVpamnKtkrRjx44WfX9TUnoeasiQIbrjjjv02GOPaf369Ro7dqykw8UWFhamtUAAAAAAAIAWq5syZjckVVZWJoyqqqoGT1ddXa0tW7aouLg4YXtxcbE2btyY8dtpqZSeELr33nt12WWX6ZlnntEtt9yiPn36SJKeeuopnXbaaWktsDk650UUaRtx/Lp+URszSR1fXRtr9rFR0/xzJ3XeJGtG60HeMyuZvGdD1iXy7lW5HfKUm0vWM8XEkshvdW1y5442/9yxmuafO5nzovUg65mXqbyTdbRGhxeVbnxaWN2+oqKihO1z5sxRSUlJveP37dunaDRa78GYwsJC7dmzp+UFf8snn3yilStXaufOnaqurk7Yd8899yR9vpQaQieccILeeuutetvvuusuBYPBVE4JAAAAAACQMcYcHnb7Jam8vFz5+fnx7XWveG+M9a0mkzGm3raW+u///m+df/756t27t9555x0NHDhQH330kYwxOvnkk1M6Z1JTxgKBgILBYL1x5JFHaujQoVq1apVycnJSKgQAAAAAACBTosY0OSQpPz8/YTTWEOrUqZOCwWC9p4H27t2b9uV0Zs2apZ/85Cd66623lJubq+XLl6u8vFwjRozQ+PHjUzpnUk8IrVixosHtX375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",
+      "image/png": "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",
       "text/plain": [
        "<Figure size 1300x300 with 5 Axes>"
       ]
@@ -262,7 +258,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": 93,
    "id": "0cb395cd-84d1-49b4-89dd-da7a2d09c8d0",
    "metadata": {},
    "outputs": [],
@@ -287,7 +283,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.11.5"
+   "version": "3.11.6"
   },
   "widgets": {
    "application/vnd.jupyter.widget-state+json": {
-- 
GitLab