{ "cells": [ { "cell_type": "markdown", "id": "c0584767", "metadata": {}, "source": [ "# BAMBOO on charged / polar molecular dimers: why the charge-equilibrium term matters\n", "\n", "BAMBOO (`xnn.hybrid.models.bamboo.BAMBOO`, Gong *et al.* 2024) splits the atomic\n", "energy into a **semi-local** neural-network term (a graph equivariant\n", "transformer within a 5 Å cutoff) and a **charge-equilibrium electrostatic**\n", "term built from predicted partial charges and summed over *all* pairs. On\n", "molecular dimers held apart by more than the cutoff, the semi-local term is\n", "blind to the other monomer; only the all-pairs electrostatics can bind them.\n", "\n", "We reproduce the spirit of the LES long-range experiment (the same charged /\n", "polar bio-fragment dimers), but here the long-range physics is **intrinsic to\n", "BAMBOO**: we simply toggle `use_electrostatics` and show the electrostatic model\n", "extrapolates the binding curves that the short-range-only variant cannot.\n", "\n", "> **Fidelity vs. training.** The block-by-block fidelity notebook\n", "> (`examples/fidelity_checks/bamboo_verification.ipynb`) proves the\n", "> *implementation* matches `bytedance/bamboo` to machine precision. This\n", "> notebook is about what the *architecture* buys you.\n" ] }, { "cell_type": "markdown", "id": "f81a20d9", "metadata": {}, "source": [ "## 0. Setup" ] }, { "cell_type": "code", "execution_count": 1, "id": "09111c58", "metadata": { "execution": { "iopub.execute_input": "2026-07-20T04:24:46.834911Z", "iopub.status.busy": "2026-07-20T04:24:46.834784Z", "iopub.status.idle": "2026-07-20T04:24:49.467149Z", "shell.execute_reply": "2026-07-20T04:24:49.466303Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "xnn 0.1.0 | device: cuda\n" ] } ], "source": [ "import logging, warnings\n", "logging.disable(logging.WARNING); warnings.filterwarnings(\"ignore\")\n", "import time\n", "import numpy as np\n", "import torch\n", "import matplotlib.pyplot as plt\n", "import ase.io\n", "torch.set_default_dtype(torch.float32); torch.manual_seed(0)\n", "DEVICE = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n", "import xnn\n", "print(\"xnn\", xnn.__version__, \"| device:\", DEVICE)" ] }, { "cell_type": "markdown", "id": "73e4ce46", "metadata": {}, "source": [ "## 1. The three dimer classes and the train/test split\n", "\n", "Each dimer's total energy and forces are DFT references; we train on the\n", "*binding* energy (total minus the two isolated-monomer references), which has\n", "the same forces and removes the huge atomic baseline. We fit the **10 closest**\n", "separations and test on the **3 farthest** (pure extrapolation, well beyond the\n", "5 Å cutoff), the protocol of the long-range paper." ] }, { "cell_type": "code", "execution_count": 2, "id": "363d9021", "metadata": { "execution": { "iopub.execute_input": "2026-07-20T04:24:49.469238Z", "iopub.status.busy": "2026-07-20T04:24:49.469147Z", "iopub.status.idle": "2026-07-20T04:24:49.585040Z", "shell.execute_reply": "2026-07-20T04:24:49.584406Z" } }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "6557514fd86b45bfa62e7fcb21812c5e", "version_major": 2, "version_minor": 0 }, "text/plain": [ "lode_dimers:bio_scan: 0%| | 0/39 [00:00" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1, 3, figsize=(12, 3.2))\n", "for a, cl in zip(ax, CLASSES):\n", " d = [s[\"distance\"] for s in data[cl]]; e = [s[\"e_bind\"] if False else s[\"energy\"] for s in data[cl]]\n", " a.plot(d, e, \"o-\", color=\"k\")\n", " a.axvspan(data[cl][10][\"distance\"] - 0.2, data[cl][-1][\"distance\"] + 0.2,\n", " color=\"tab:orange\", alpha=0.15, label=\"test (extrapolation)\")\n", " a.set_title(f\"{cl} dimer\"); a.set_xlabel(\"separation [Å]\"); a.set_ylabel(\"binding E [eV]\")\n", " a.legend(fontsize=8)\n", "plt.tight_layout(); plt.savefig(\"dimer_reference_curves.png\", dpi=110); plt.show()" ] }, { "cell_type": "markdown", "id": "0ce818c4", "metadata": {}, "source": [ "## 2. Two BAMBOO models: identical, except the electrostatic term\n", "\n", "A small BAMBOO (feature width 32, 4 heads, 2 GET layers). The only difference\n", "is `use_electrostatics`: the **LR** model keeps the charge-equilibrium term, the\n", "**SR** model drops it (pure semi-local GET)." ] }, { "cell_type": "code", "execution_count": 4, "id": "a53589d5", "metadata": { "execution": { "iopub.execute_input": "2026-07-20T04:24:50.283346Z", "iopub.status.busy": "2026-07-20T04:24:50.283228Z", "iopub.status.idle": "2026-07-20T04:24:50.286207Z", "shell.execute_reply": "2026-07-20T04:24:50.285693Z" } }, "outputs": [], "source": [ "from xnn.common.config import from_dict\n", "from xnn.common.models import build_model, ForceStressOutput\n", "\n", "def make(use_elec):\n", " cfg = from_dict({\"model\": {\"name\": \"bamboo\", \"cutoff\": 5.0, \"n_features\": 32,\n", " \"n_rbf\": 16, \"n_interactions\": 2,\n", " \"extra\": {\"num_heads\": 4, \"use_electrostatics\": use_elec}}})\n", " return ForceStressOutput(build_model(cfg.model)).to(DEVICE)" ] }, { "cell_type": "markdown", "id": "beeed8f7", "metadata": {}, "source": [ "## 3. Train both, per class: same data, loss, optimiser, schedule\n", "\n", "BAMBOO's charge head starts near zero (a `tanh` around 0); like the reference\n", "long-range fits it needs **warm restarts** to escape before a low-lr polish.\n", "The loss weights energy heavily (the binding curve) alongside forces." ] }, { "cell_type": "code", "execution_count": 5, "id": "23247e52", "metadata": { "execution": { "iopub.execute_input": "2026-07-20T04:24:50.288212Z", "iopub.status.busy": "2026-07-20T04:24:50.288098Z", "iopub.status.idle": "2026-07-20T04:33:06.524409Z", "shell.execute_reply": "2026-07-20T04:33:06.523394Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "trained 6 models in 496s\n" ] } ], "source": [ "def run_stage(m, loader, epochs, lr0, step, ew, fw):\n", " opt = torch.optim.Adam(m.parameters(), lr=lr0, amsgrad=True)\n", " sch = torch.optim.lr_scheduler.StepLR(opt, step, 0.9)\n", " for _ in range(epochs):\n", " for b in loader:\n", " b = b.to(DEVICE); out = m(b)\n", " loss = ew * ((out[\"energy\"] - b.energy) ** 2).mean() + \\\n", " fw * ((out[\"forces\"] - b.forces) ** 2).mean()\n", " opt.zero_grad(); loss.backward()\n", " torch.nn.utils.clip_grad_norm_(m.parameters(), 10.0); opt.step()\n", " sch.step()\n", "\n", "def train(m, tr):\n", " loader = DataLoader(AtomicDataset(tr, 5.0), batch_size=10, shuffle=True,\n", " collate_fn=collate)\n", " for _ in range(6):\n", " run_stage(m, loader, 150, 1e-2, 10, 100, 1000) # warm restarts\n", " run_stage(m, loader, 400, 1e-3, 40, 100, 1000) # polish\n", "\n", "models = {}\n", "t0 = time.time()\n", "for cl in CLASSES:\n", " tr, _ = splits[cl]\n", " for kind, use in [(\"LR\", True), (\"SR\", False)]:\n", " torch.manual_seed(0)\n", " m = make(use); train(m, tr); models[(cl, kind)] = m\n", "print(f\"trained 6 models in {time.time() - t0:.0f}s\")" ] }, { "cell_type": "markdown", "id": "b8a9a05b", "metadata": {}, "source": [ "## 4. Binding curves + force parity (the payoff)" ] }, { "cell_type": "code", "execution_count": 6, "id": "88295532", "metadata": { "execution": { "iopub.execute_input": "2026-07-20T04:33:06.527060Z", "iopub.status.busy": "2026-07-20T04:33:06.526909Z", "iopub.status.idle": "2026-07-20T04:33:11.558054Z", "shell.execute_reply": "2026-07-20T04:33:11.557260Z" } }, "outputs": [ { "data": { "image/png": "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LLY9NzcXvXr1wrJly9C7d+9KSEj03x08eBC7d+9GVlYWWrRogTlz5tSKSc9TUlKwceNG3L17F3l5eWjevDlmzZqF+vXrix2tQj179gzDhw8vtt3V1RW//PKL8nVMTAy+/fZbPHz4ENbW1pg5cybat29fmVErXGpqKt5+++1i25s2baq80fnJJ58gICCg2DHdu3ev1gv4ZGdnl/jvtEaNGpV6o3vXrl04fPgwvLy81B2PqMIdO3YMO3fuRHp6OpydnfHZZ5/V+EdN8/PzlSsbJycnw97eHpMnT65xI6KXLFmCCxcuFNu+fft2ZdFIEARs374dhw8fRn5+PgYMGIDp06crp1Opjvbu3Vvi/P9z5szBiBEjEBUVhbFjx5bYdvXq1ejWrZu6I6pFYGBgiSt09+nTB19//XWJbb7++mtkZGTU6KmvWCQkIiIiIiIiIiKq5WrGMCQiIiIiIiIiIiJ6YywSEhERERERERER1XIsEhIREREREREREdVyLBISERERERERERHVciwSEhERERERERER1XIsEhIREREREREREdVyLBISERERERERERHVciwSElGlCQ0NxalTp5Cbmyt2FCIionJJS0vDiRMnEBcXJ3YUIiKicrt48SLu3bsndgyqZiSCIAhihyCimu/vv//GBx98AAcHB0gkEpw/f17sSERERGXKzMxEu3bt0LBhQ/j6+uLChQto0qSJ2LGIiIjKNHPmTFy/fh3p6emYOXMmpk2bJnYkqiY0xQ5AROr3/PlznD17FiNHjoSmpvr+bx8TE4OrV68CABwdHdGmTRvlvkOHDmHz5s0YNGgQOnfujKdPn6Ju3brK/ampqTh58iQAwNLSEm5ubmrLSURE1cPRo0fRvHlzNGrUSK3vs3//figUCshkMgwfPly53cfHB+3bt8euXbuwfv16nDx5sliR8NSpU0hJSQEAjBgxAtra2mrNSkREVZuPjw9SU1PRo0cPtb7PjRs3EBkZCQDo1auXyrXV6dOnERAQgISEBIwZM6ZYkdDf3x/+/v4AgPbt26Nx48ZqzUrVBx83JqphEhMTsXfvXigUCuW20NBQjBkzBjk5OWp975s3b2L8+PE4fPgwHjx4oLLPzc0Nv/76KzZu3AipVKrSiQFAeno6Dh8+jOXLl2PlypVqzUlERFXPkSNHEBERobJtxowZ+Pvvv9X+3mPHjsXmzZuVN6uKODs7w9/fH1u3boWnpye6d+9erO358+exc+dOjBkzBmlpaWrPSkREVYe3tzeuXLmisu3PP//E6tWr1f7e69evx+LFi3H48GEkJiaq7GvXrh1WrVqFlStXom/fvsXaBgUF4fDhw/j4449x9uxZtWel6oMjCYlqmKCgIIwZMwbDhg2Djo4OAMDc3BweHh7Q0tJS+/vr6elh7969xbYPGzYMU6dOxYkTJ/DDDz8U21+/fn3s3bsXCxYswN27d9Wek4iIqpZPP/0UK1euRMOGDZXbhgwZUmmjGxYsWIABAwaobDMxMUGnTp0wZcoUtGvXDq1atSrW7vvvv4ePjw9Onz5dKTmJiKjq+L//+z88evQI3bp1U25r3bo1zM3NK+X9e/bsiW3bthXbPnHiRPTt2xcKhQJRUVHF9o8cORIjR46Eg4NDZcSkaoRFQqKXZGZm4vbt25DL5Wjbti0sLCxU9j979gy3b9+Gjo4O2rRpAxMTE+W+hIQEXLhwAR4eHvDz80NERARatGihcoGTmZmJo0ePAgC0tbXRqFEjtGzZEhKJpNh5Ro8ejTt37iAyMhI9e/aEjo5OmW3T09OVc/15enpCS0sLDRs2hIODA4YNGwYNDQ2VzxIeHg5fX18YGRmhS5cukMlkJWYICAhAeHg4mjZt+sZzMZ08eRI5OTmYN28edu3ahc8+++yNzkNERCW7f/8+YmJi0KRJEzRr1kxlX25uLm7evInU1FQ4OzsXK7wdOnQIbdu2haamJh48eABDQ0N06dJFpW86d+4cEhMTIZFIYGVlhdatW8PAwKDE80gkEty/fx8NGjRA69atX9n29OnTyM7Oxq1bt6CjowMNDQ2MGjUK/fr1g52dncp7pKen4/r165DL5ejYsSPq1atXYgaZTAYfHx/o6+ujU6dOxfrA8sjNzcX+/fuxfPlyLFmyBMHBwXBycnrt8xARUcmio6Ph6+sLU1NTtGnTRuV6BAACAgIQGhoKGxsbtG7dWmXqpLt370Iul6NVq1bw9vZGamoqunfvrtK/BAcHw9vbGwBgaGgIFxcX2NraqrzHi+e5fv06cnJyMGTIkFe2DQwMREhICJ48eaIcJNG9e3c0b94c9evXV3kPhUKB27dvIy4uDo0bN0bLli1LzNCmTRvl48odOnSAqanpG32vu3btwsiRIxEUFIRdu3Zh8eLFb3Qeqn1YJCR6gbe3N/r164dGjRrBwsICAQEB+Oqrr/Dhhx8CKBzSvXTpUnTo0AH5+fl48OABtm/fjmHDhgEA/Pz8MGbMGOzatQuxsbEwMzPD9evX8d1332HWrFkAgKysLBw+fBgAIJfLcefOHTRs2BCnTp1CnTp1VM7z559/Ij4+Hg4ODmjVqhWMjIzKbJuenq4c7n706FFIpVL06NEDgiBgzJgxGDx4MPT19QEAc+fOxa+//oquXbsiMjIScrkcJ0+eVF5YFmX466+/EB8fD3Nzc/z999/47rvvMHv27Nf+bnfs2IHRo0dj+vTp+P777+Ht7Y3WrVu/yX8mIiJ6gVwux8CBA/Ho0SO0adMGYWFhaNKkCQ4ePAiJRAIfHx8MGzYMpqamsLGxwc2bN+Hu7o7Nmzcrz/Hxxx+jTZs2CAwMhKurK+7cuYOWLVvi+PHjygu2S5cuITQ0FIIgIDw8HFFRUTh48CDeeustlfO0bdsWwcHBaN26NYYPH47WrVu/su2FCxeQnZ2N+/fvIzk5Gdra2hg1ahRmzJiBL7/8Ujkn4fnz5zFy5Eg0btwY+vr6uH37Nn766SdMmTJFJUO7du0QGhoKZ2dn3Lt3Dw4ODrhw4cJrFwqL+tx58+bh9OnT2LFjB7777rs3+u9ERESqvv/+e6xYsQJdu3ZFdnY2kpKSsH//fjRt2hRZWVkYM2YM7t69i7Zt2+LRo0eQyWQ4evSosgC3bds2XLt2DdnZ2bC3t8eTJ0/w7NkznD17Fq6urgAKp10q+rs8JSUFV69exfz587FkyRJljm3btilvPtnb28PBwQFDhgx5Zdvg4GCEhYUhIyNDeZyTkxN2794Nf39/5ZyEz58/x4ABAxAfHw8XFxfcunUL3bt3Vw7qeDFDfn4+GjRogKdPnyIqKgoXLlyAi4vLa32v6enpOHDgALy8vBAUFIQNGzZg0aJFKjf+iEolEJHSuHHjhPHjxytf5+TkCCdOnBAEQRAuXbokGBkZCUFBQcr9Bw4cEIyNjYXk5GRBEATh7NmzAgBh4sSJymP27NkjaGtrC48fPy7xPXNycoR27doJK1euVG4rOs/8+fPLzFtS2ytXrggAhOzsbOW2GzduCACE9PR0QRAE4fz584KGhoZw69YtQRAEIS8vTxg8eLDQrVu3YhlePPe2bdsEPT09IS8vr8Q8np6egpGRUbHtT58+FbS0tIQbN24IgiAIAwYMEKZPn17iOebPny/07t27zM9NRET/OnbsmGBiYiJkZGQotx0+fFgoKCgQcnNzBXt7e2Ht2rXKfU+fPhWsrKyEPXv2KLeZmZkJdnZ2wrNnzwRBEIT4+HjB0tJS+Omnn0p931WrVgktWrRQ2WZmZia0aNFCSEtLKzNzSW1tbGyE33//XWWbnZ2dsHXrVkEQBCE7O1uwtbUV5s6dq9y/c+dOQSaTCeHh4SoZOnToIGRmZgqCIAgJCQlCnTp1BC8vr1LzaGhoCCdPniy2vX///sKsWbOU72VpaVliH+jt7S0AUH5/RERUtoKCAqFOnTrCkSNHlNvCwsIEHx8fQRAEYebMmULv3r2FnJwcQRAEQaFQCGPHjhXc3d2Vx3/yyScCAOX1WkFBgTBq1Ciha9eupb6vn5+fIJPJhMDAQJXzSKVS5bXR67SdNWuW8Pbbb6sc9/nnnwv9+/dXvp4yZYrg6uqq7BsjIyMFU1NTYf369SoZtLW1hQcPHii3DRw4UBg7dmypeTw8PFSuO4ts3bpVsLW1FQoKCoTnz58LMplMuHjxYonnaNy4sfDrr7+W+bmpduHCJUQv0NXVRVRUFJKTkwEAMpkMAwcOBADs3LkTTk5O8PPzg6enJ/bv34+8vDxkZGQoh6EXmTdvnvL30aNHw8rKSnl3CQAEQcD9+/dx+PBhHDp0CLa2trh9+3axPDNnziy2rbxty7Jnzx707t0bHTp0AABoampiwYIFuHLlCuLi4lSOnTp1qvJ3Nzc3ZGVlISYm5rXeb9euXWjSpAk6deoEAJg0aRJ2794NuVz+WuchIqLidHV1IZfLERwcrNz2zjvvQCqV4sKFC4iMjETdunVx4MABeHp64sKFC2jcuDEuXLigcp4PP/xQOYeSpaUlxo8fj/3796scExUVhdOnT2Pfvn3Q0tKCv78/srKyip3n5ceQy9u2LNeuXUN0dDQWLlyo3DZ+/HjUrVsXhw4dUjl2woQJ0NPTAwDUrVsXzZo1U/l+yiM6Ohpnz57FRx99BAAYNWoUsrKycOLEidc6DxERFSeVSiGTyeDv74+CggIAUE6lpFAo8H//939o0aIFjh49Ck9PT3h6esLKyqpY39WiRQvl9ZpUKsW8efNw7do1xMbGKo/JyMjA5cuX4enpCX9/f5iZmRWbA71jx47Ka6MXlaftq+zbtw/Tp09X9o0NGjTA+PHji83j3rVrV+UISADo0aPHa/ddALB9+3Z8+OGHkEqlMDU1xfDhw7F9+/bXPg/VTnzcmOgFS5cuxcSJE2FtbY127dph4MCBmDZtGoyMjPD48WMkJyfjwIEDKm3c3d2VC4QUsbe3L/a6aHn6p0+fok+fPkhKSoKrqysMDQ3x6NEj5aPGL7KyslJ5/TptyxIZGVlsPqqi15GRkbC2tlZuf3EejKJHzl53leTff/8dTk5Oyo6wqLh66NAhjB49+rXORUREqnr16oWZM2eiV69eqFevHnr37o3JkyejVatWePz4MbS1tXHkyBGVNjY2NnB0dFTZ9nLf1bBhQ/zxxx/K1zNmzMDvv/+O9u3bw9zcHNnZ2QAK5+p9cd7Al/uu12lblsjISBgbG6v0SxKJBI0aNVL2sUVensNJJpO9dt+1c+dOWFhYIDAwEIGBgQCA5s2bY8eOHRg6dOhrnYuIiIr7888/MWvWLPz444/o3r073n33XXh4eCAlJQWpqanw8/PDkydPVNoULcYhlRaOdyqp7wIK+wwbGxscPXoU48ePh729Pezt7SGTyZCVlYWnT5+qtCup7ypv27KkpaUhOTlZOW1GkcaNGxe7EVcRfVdQUBBu3ryJYcOGKa+9LC0tsWXLFmzatAmGhoavdT6qfVgkJHqBjY0NTp06heTkZFy6dAnfffcdDhw4gPv378PQ0BBNmzYtceXelyUnJ8PS0lLlddHojB9++AH6+vrw9vZWzo00e/Zs3Lx5s9h5Xp434nXalsXc3BxJSUkq24peV/RKXLdu3cKjR4/QokULldGUrVu3Vs5TSERE/83q1auxfPly3Lt3D3/99Rc6dOgAb29vGBoaIjc3F9u2bVPOSVuaolH0L74u6hPu37+Pn3/+GaGhocqbSjdv3sTx48chCIJKu5f7rtdpWxZzc3Okp6cjPz9fZeL6pKSkCu+7BEHAzp074ezsrNJ32djY4PDhw3j69Cnq1q1boe9JRFTbDBw4EAMHDkRYWBhOnTqFadOmITw8HJ9//jk0NDQwYcIEjB8/vsxzlNR3Af9e08yaNQuLFi1SedKrfv36r+y7XqdtWQwMDKCjo1PitZc6VkDevn07HBwc4O3trfK0m5GREfbu3YvJkydX+HtSzcLHjYleUDQs3cTEBMOGDcPy5cvh4+MDuVyOAQMG4OzZswgLC1Npk5CQoBwiX+TFC4qQkBD4+/uja9euAIAnT57AwcFBWeSTy+U4duxYufKVp23RRWBZd53eeustnD17Funp6cptnp6esLa2Vt59qyg7duxAnz59sHfvXpWfbdu24fz584iKiqrQ9yMiqm2ePHmCgoICaGlpoVOnTtiwYQMMDAxw7949uLm5QVtbG1u2bFFpU1BQgISEBJVtL0+LcejQIZW+S1dXV2XU38sj68vKV562+vr6ZfZd7du3h6amJv73v/8ptwUFBSEgIEBl8ZSKcPHiReXiKi/2XZ6ennB0dMSuXbsq9P2IiGobuVyO58+fAygcVTdt2jSMHDkSN2/ehEwmg5ubG7Zs2QKFQqHS7sXHiAHgzp07Ktu8vLxgZWWlvKZJSEhQWZX+5s2bxc5RmvK0fVXfJZFI0LlzZ3h5eSm3KRQKeHl5VXjflZ+fjz/++AOLFy8udu318ccfY8eOHRX6flQzcSQh0QvmzZuHnJwc9OzZE1paWti8eTOGDBkCmUyGiRMn4vDhw+jatSumT5+OevXqwdfXF6dOnYKfn5/KiomrVq1Srgi8du1aDBw4ULm61bBhwzBmzBg0atQIlpaW2LlzJ54/f16uO0nlaevg4AAjIyMsXrwYb731VrGh7UDhyo9btmyBm5sbJk2ahPDwcKxfvx5//PGHyuiM/yo7Oxv79u3DDz/8UGyfi4sLGjZsiJ07d+Krr76qsPckIqptrl27huXLl2PkyJFo0KABLly4AIlEgl69esHS0hLr1q3DjBkzEBQUhI4dOyImJgYHDx7EN998g8GDByvPExAQgJEjR6Jfv344duwYHj16pCzmde7cGfr6+nj33XcxePBg3Lp1C56enuXKV9627dq1w44dO6CnpwddXV2MGjVKZb+VlRUWLVqEDz/8EEFBQTAwMMCPP/6IYcOGoWfPnv/hGyxux44d6NGjB0xMTIrtGzZsGH7//XfMnTu3Qt+TiKg2yc7ORseOHTF48GC4uroiPj4ee/bswaZNmwAAGzduRM+ePdGjRw+MHj0aeXl5uHDhAurWrYutW7cqz6Ovr4++ffti2rRpiI2NxQ8//IAtW7YoVw1+55138PnnnyMuLg7JyclYv379K0fWFylP23bt2mH9+vX4+eefYWZmhu7duxc7z/fff49u3brhgw8+QJcuXXDo0CE8efJEZYXlinD8+HEkJiZiyJAhxfYVDYAJDAyEs7Nzhb4v1SwcSUj0gt27d2P8+PEICQnBgwcPMGvWLOVcEVpaWjh+/Dg2bNiA2NhY3LlzB87OzvDx8Sk2J+GNGzegoaGB+/fvY8aMGTh48KBy34gRI+Dl5YX4+Hjcu3cP06dPx7Zt29C3b1/lMZaWlvDw8CiWrzxt9fX1cf78eWhpaeHo0aO4f/8+zM3N4eHhoewstbS0cPXqVYwbNw43b95Ebm4uLl68qPKeJWXQ09ODh4dHmXNZ5OXlYe/evbh//z6CgoIwYMCAUudumj9/vnLS+tTUVOzduxcPHz4s9dxERFScu7s79uzZg7y8PFy6dAkODg7w8fFB/fr1AQBTpkzB7du3YWpqisuXLwMoHD3+YoEQANatW4d+/frh3r17cHR0xJ07d9CgQQMAhSPsb968CQcHB1y8eBENGjTA5cuX4eHhoTIv7ogRI4rNMVjeths2bMDQoUNx/vx5HD16FAAwZMgQlTl0v/rqK+zevRvR0dHw8fHB0qVLsW/fPpX3KylDnz590KJFizK/x0uXLuHQoUNQKBTQ0tLC9OnTSzxu7NixcHFxQXx8PADg1KlTOH36dJnnJiIiVcbGxrh//z4aNWqEa9euISkpCceOHVM+XtysWTMEBARg2LBhuHPnDqKjozF58mSVAiEA9OzZE7/88gvCw8Px9OlT/O9//8MHH3yg3L9jxw5MmzYNN2/exNOnT3H06FFMmzYNTZs2VR7Tvn37Ekf1laftO++8g59//hkPHjzA4cOHkZCQgNatW8PNzU15TNu2beHt7Y169erh6tWr6NSpE3x8fFSmpyopg5OTk3JRltKEh4dj7969ePr0KeLi4jBv3jyYmZkVO65169aYNGmSciEUf39/7N27FxkZGWWen2ofifA6D9QTUZnOnTuHvn37vtY8FTXJrVu3sHbtWgBA//798eGHH5a7bUxMjHJUhouLCxYvXqyWjEREVJy5uTk2bdpUa+eJfe+991BQUABDQ8Nij2a/yrx58xAdHQ0A2Lp1a4krOxMRUcWbMmUKEhMTyz39RU2zYcMGXL9+HUDhTbTXGSF44MAB5fc2adIk9OnTRy0ZqfphkZCoAtX2IiEREVVPtb1ISERE1U9tLxISqQPnJCSqQKU9JkxERFSVlfSILhERUVXWvn17lYUYiei/40hCIiIiIiIiIiKiWo4LlxAREREREREREdVyLBISERERERERERHVciwSEhERERERERER1XIsEhIREREREREREdVyLBISERERERERERHVciwSEhERERERERER1XIsEhIREREREREREdVyLBISERERERERERHVciwSEhERERERERER1XL/D1WPeb82/J0BAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def bind_curve(m, S):\n", " m.eval(); ds = AtomicDataset(S, 5.0)\n", " d = np.array([s[\"distance\"] for s in S])\n", " p = np.array([float(m(ds[i].to(DEVICE))[\"energy\"].detach()) for i in range(len(S))])\n", " return d, p\n", "\n", "def force_rmse(m, S):\n", " m.eval(); ds = AtomicDataset(S, 5.0)\n", " diffs = [((m(ds[i].to(DEVICE))[\"forces\"].detach().cpu() -\n", " torch.tensor(S[i][\"forces\"], dtype=torch.float32)) ** 2)\n", " for i in range(len(S))]\n", " return float(torch.cat(diffs).mean().sqrt()) * 1000\n", "\n", "fig, ax = plt.subplots(1, 3, figsize=(13, 3.6))\n", "results = {}\n", "for j, cl in enumerate(CLASSES):\n", " tr, te = splits[cl]; a = ax[j]\n", " a.plot([s[\"distance\"] for s in data[cl]], [s[\"energy\"] for s in data[cl]],\n", " \"o\", color=\"k\", label=\"DFT\", zorder=5, ms=4)\n", " for kind, col in [(\"SR\", \"tab:green\"), (\"LR\", \"tab:red\")]:\n", " d, p = bind_curve(models[(cl, kind)], data[cl])\n", " a.plot(d, p, \"-\", color=col, label=kind)\n", " _, pe = bind_curve(models[(cl, kind)], te)\n", " eR = np.sqrt(((pe - np.array([s[\"energy\"] for s in te])) ** 2).mean()) * 1000\n", " results[(cl, kind)] = (eR, force_rmse(models[(cl, kind)], te))\n", " a.axvspan(te[0][\"distance\"] - 0.2, te[-1][\"distance\"] + 0.2,\n", " color=\"tab:orange\", alpha=0.12)\n", " a.set_title(f\"{cl} dimer\"); a.set_xlabel(\"separation [Å]\")\n", " a.set_ylabel(\"binding E [eV]\"); a.legend(fontsize=8)\n", "plt.tight_layout(); plt.savefig(\"dimer_sr_vs_lr.png\", dpi=110); plt.show()" ] }, { "cell_type": "markdown", "id": "27eb104d", "metadata": {}, "source": [ "## 5. Summary: the electrostatic term extrapolates, the short-range one flattens" ] }, { "cell_type": "code", "execution_count": 7, "id": "2cf0d139", "metadata": { "execution": { "iopub.execute_input": "2026-07-20T04:33:11.560530Z", "iopub.status.busy": "2026-07-20T04:33:11.560408Z", "iopub.status.idle": "2026-07-20T04:33:11.564294Z", "shell.execute_reply": "2026-07-20T04:33:11.563590Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "class SR E LR E SR F LR F\n", " test binding-E [meV] test F [meV/Å]\n", "------------------------------------------------\n", "CC 354.9 15.2 42.7 23.5\n", "CP 106.3 28.2 39.7 9.6\n", "PP 15.0 10.8 3.4 3.0\n", "\n", "BAMBOO's built-in charge-equilibrium electrostatics binds the monomers beyond the\n", "5 Å GET cutoff; the short-range-only variant cannot see the other monomer and\n", "flattens past the cutoff. No LES wrapper needed -- the long-range physics is\n", "intrinsic to the BAMBOO energy split.\n" ] } ], "source": [ "print(f\"{'class':<6}{'SR E':>10}{'LR E':>10} {'SR F':>10}{'LR F':>10}\")\n", "print(f\"{'':6}{'test binding-E [meV]':>20} {'test F [meV/Å]':>21}\")\n", "print(\"-\" * 48)\n", "for cl in CLASSES:\n", " se, sf = results[(cl, \"SR\")]; le, lf = results[(cl, \"LR\")]\n", " print(f\"{cl:<6}{se:>10.1f}{le:>10.1f} {sf:>10.1f}{lf:>10.1f}\")\n", "print(\"\\nBAMBOO's built-in charge-equilibrium electrostatics binds the monomers \"\n", " \"beyond the\\n5 Å GET cutoff; the short-range-only variant cannot see the \"\n", " \"other monomer and\\nflattens past the cutoff. No LES wrapper needed -- the \"\n", " \"long-range physics is\\nintrinsic to the BAMBOO energy split.\")" ] }, { "cell_type": "markdown", "id": "adafe160", "metadata": {}, "source": [ "## Where the binding comes from: predicted charges and the energy split\n", "\n", "BAMBOO reports the electrostatic energy separately (`energy_elec`) and the\n", "per-atom partial charges. On the farthest CC frame, the binding is almost\n", "entirely electrostatic, and the predicted charges separate into the two\n", "oppositely-charged monomers." ] }, { "cell_type": "code", "execution_count": 8, "id": "a77298b0", "metadata": { "execution": { "iopub.execute_input": "2026-07-20T04:33:11.566052Z", "iopub.status.busy": "2026-07-20T04:33:11.565984Z", "iopub.status.idle": "2026-07-20T04:33:11.617801Z", "shell.execute_reply": "2026-07-20T04:33:11.616922Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "farthest CC dimer @ 15.0 Å:\n", " E_nn = -1.015 eV\n", " E_elec = +1.214 eV (the long-range binding)\n", " total charge = +1.37e-06 (conserved)\n", " |dipole| = 11.86\n" ] } ], "source": [ "m = models[(\"CC\", \"LR\")].model # the bare BAMBOO (unwrap ForceStressOutput)\n", "ds = AtomicDataset(data[\"CC\"], 5.0)\n", "far = ds[len(data[\"CC\"]) - 1].to(DEVICE)\n", "out = m(far)\n", "print(f\"farthest CC dimer @ {data['CC'][-1]['distance']:.1f} Å:\")\n", "print(f\" E_nn = {float(out['energy_nn'][0]):+.3f} eV\")\n", "print(f\" E_elec = {float(out['energy_elec'][0]):+.3f} eV (the long-range binding)\")\n", "print(f\" total charge = {float(out['charges'].sum()):+.2e} (conserved)\")\n", "print(f\" |dipole| = {float(out['dipole'][0].norm()):.2f}\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.13.12" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "1b994550020a4a209e8b62e9b317acbf": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "ProgressView", "bar_style": "", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_43a6c9d3580943709c552c31408772eb", "max": 39.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_337e760f764240bfb14dd15afd03d8fe", "tabbable": null, "tooltip": null, "value": 39.0 } }, "3066a5bc6267403e84bfaa6861d3a5df": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "337e760f764240bfb14dd15afd03d8fe": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "43a6c9d3580943709c552c31408772eb": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "6557514fd86b45bfa62e7fcb21812c5e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_a3ca9c2e78db463ab8d7b29a4a954bab", "IPY_MODEL_1b994550020a4a209e8b62e9b317acbf", "IPY_MODEL_d89f4fa9c8984e5c98cfc5c87cb0e085" ], "layout": "IPY_MODEL_ce277d13e40f4dd0a3798c3c46fa65b4", "tabbable": null, "tooltip": null } }, "9a26879d458643499b5d4a74a537b930": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null } }, "a3ca9c2e78db463ab8d7b29a4a954bab": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_c0147d2de19940eeab079ea679066c68", "placeholder": "​", "style": "IPY_MODEL_9a26879d458643499b5d4a74a537b930", "tabbable": null, "tooltip": null, "value": "lode_dimers:bio_scan:   0%" } }, "b4d4aeb53c564c418642ad98c7566d89": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null } }, "c0147d2de19940eeab079ea679066c68": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "ce277d13e40f4dd0a3798c3c46fa65b4": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": "hidden", "width": null } }, "d89f4fa9c8984e5c98cfc5c87cb0e085": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_3066a5bc6267403e84bfaa6861d3a5df", "placeholder": "​", "style": "IPY_MODEL_b4d4aeb53c564c418642ad98c7566d89", "tabbable": null, "tooltip": null, "value": " 0/39 [00:00<?, ? struct/s]" } } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 5 }