{ "cells": [ { "cell_type": "markdown", "id": "981abadc", "metadata": {}, "source": [ "# PhysNet, block by block: reproducing the original implementation with `xnn`\n", "\n", "[PhysNet (Unke & Meuwly, *JCTC* **15**, 3678, 2019)](https://doi.org/10.1021/acs.jctc.9b00181)\n", "is a message-passing HDNN that predicts **energies, forces, partial charges and\n", "dipoles**, with the physics (switched/shielded electrostatics of the predicted\n", "charges and Grimme D3(BJ) dispersion) built into the energy expression. The\n", "original implementation ([MMunibas/PhysNet](https://github.com/MMunibas/PhysNet))\n", "is TensorFlow 1.x; `xnn.dnn.models.physnet` is a pure-PyTorch translation on\n", "the xnn abstractions. This notebook walks through every block and checks each\n", "against the **original TF graph** on the same inputs, ending with a whole-model\n", "weight transplant and an energy/force/charge parity check at machine precision,\n", "the same protocol as the MACE / NequIP / Allegro / CACE companions.\n", "\n", "> The original only ever ran in float32. Three tiny **harness** patches (noted\n", "> inline, none changing the math) let its graph run in float64 here so the\n", "> comparison is at machine precision: dropout with `keep_prob=1` is replaced by\n", "> the identity, the RBF layer receives the model dtype (upstream forgets to\n", "> forward it), and the activation's `log(2)` constant is computed in float64." ] }, { "cell_type": "markdown", "id": "cf94a519", "metadata": {}, "source": [ "## 0. Setup: TF1 compatibility mode + `float64`" ] }, { "cell_type": "code", "execution_count": 1, "id": "b795483d", "metadata": { "execution": { "iopub.execute_input": "2026-07-20T04:18:27.577827Z", "iopub.status.busy": "2026-07-20T04:18:27.577616Z", "iopub.status.idle": "2026-07-20T04:18:32.132629Z", "shell.execute_reply": "2026-07-20T04:18:32.132080Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "xnn: 0.1.0 | tensorflow: 2.21.0 | torch: 2.12.1+cpu\n" ] } ], "source": [ "# silence the expected warnings / TF chatter\n", "import logging, os, warnings\n", "os.environ[\"TF_CPP_MIN_LOG_LEVEL\"] = \"3\"\n", "logging.disable(logging.WARNING)\n", "warnings.filterwarnings(\"ignore\")\n", "\n", "import subprocess, sys, tempfile\n", "import numpy as np\n", "\n", "# ---- the original TF1 PhysNet (cloned on demand) ----\n", "UPSTREAM = os.environ.get(\"PHYSNET_UPSTREAM_PATH\",\n", " os.path.join(tempfile.gettempdir(), \"physnet-upstream\"))\n", "if not os.path.isdir(UPSTREAM):\n", " subprocess.run([\"git\", \"clone\", \"--depth\", \"1\",\n", " \"https://github.com/MMunibas/PhysNet\", UPSTREAM], check=True)\n", "\n", "import tensorflow.compat.v1 as tf\n", "tf.disable_eager_execution()\n", "tf.get_logger().setLevel(\"ERROR\")\n", "sys.modules[\"tensorflow\"] = tf # upstream modules do `import tensorflow as tf`\n", "# upstream applies dropout with keep_prob = 1.0 (identity); its float32\n", "# placeholder trips TF2's dtype check in float64 graphs\n", "tf.nn.dropout = lambda x, keep_prob=None, **kw: x\n", "\n", "sys.path.insert(0, UPSTREAM)\n", "import neural_network.NeuralNetwork as _nnmod\n", "from neural_network.NeuralNetwork import NeuralNetwork\n", "\n", "# upstream forgets to forward dtype to RBFLayer (float32 hard-coded)\n", "_OrigRBF = _nnmod.RBFLayer\n", "_nnmod.RBFLayer = lambda K, cutoff, scope=None: _OrigRBF(K, cutoff, scope=scope, dtype=tf.float64)\n", "\n", "import torch\n", "torch.set_default_dtype(torch.float64)\n", "import xnn\n", "print(\"xnn:\", xnn.__version__, \"| tensorflow:\", tf.__version__, \"| torch:\", torch.__version__)" ] }, { "cell_type": "markdown", "id": "5ccf2344", "metadata": {}, "source": [ "### A toy system\n", "\n", "A charged 8-atom H/C/O cluster with the **full ordered pair list**, upstream's\n", "default molecular mode (no long-range cutoff), so every term including the\n", "un-damped electrostatics is exercised." ] }, { "cell_type": "code", "execution_count": 2, "id": "752599c5", "metadata": { "execution": { "iopub.execute_input": "2026-07-20T04:18:32.140426Z", "iopub.status.busy": "2026-07-20T04:18:32.140264Z", "iopub.status.idle": "2026-07-20T04:18:32.155081Z", "shell.execute_reply": "2026-07-20T04:18:32.148159Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "8 atoms, 56 ordered pairs, total charge 1.0\n" ] } ], "source": [ "F_DIM, K, SR_CUT, NB, NRA, NRI, NRO = 24, 16, 4.0, 3, 2, 3, 1\n", "Q_TOT = 1.0\n", "\n", "rng = np.random.default_rng(7)\n", "N = 8\n", "R_np = rng.uniform(0, 3.5, (N, 3))\n", "Z_np = np.array([8, 1, 1, 6, 1, 1, 1, 1])\n", "idx_i = np.repeat(np.arange(N), N - 1) # centers\n", "idx_j = np.concatenate([[j for j in range(N) if j != i] for i in range(N)]) # neighbors\n", "print(f\"{N} atoms, {len(idx_i)} ordered pairs, total charge {Q_TOT}\")" ] }, { "cell_type": "markdown", "id": "37344553", "metadata": {}, "source": [ "## The PhysNet architecture in one picture\n", "\n", "1. **Embedding** *(eq 3)*: nuclear charges index a 95-row learnable table of\n", " $F$-vectors: every element up to Pu, no species list.\n", "2. **Radial basis** *(eqs 7–8)*: $g_k(r) = \\phi(r)\\,e^{-\\beta_k(e^{-r}-\\mu_k)^2}$,\n", " learnable centers/widths (softplus-positive), smooth cutoff $\\phi$. The\n", " $e^{-r}$ argument biases the learnable attention masks toward exponential\n", " decay; bound-state wave functions decay exponentially.\n", "3. **Modules** ($N_{\\rm module}$ stacked): an interaction block computes the\n", " message $v$ from gated features and the attention mask $G\\,g(r_{ij})$\n", " *(eqs 5–6)* and refines atom-wise through pre-activation residual blocks\n", " *(eq 4)*; an output block per module predicts $(E_i^m, q_i^m)$ through a\n", " zero-initialized head *(eq 9)*.\n", "4. **Scale/shift** *(eq 10)*: module outputs are summed and scaled/shifted per\n", " element.\n", "5. **Charges → physics** *(eqs 12–14)*: charges are corrected to the exact\n", " total charge, then enter a shielded ($1/\\sqrt{r^2+1}$), smoothstep-switched\n", " Coulomb term; D3(BJ) dispersion (with learnable $s_6, s_8, a_1, a_2$)\n", " completes the energy. Dipoles come from eq 15." ] }, { "cell_type": "code", "execution_count": 3, "id": "b16d818d", "metadata": { "execution": { "iopub.execute_input": "2026-07-20T04:18:32.156834Z", "iopub.status.busy": "2026-07-20T04:18:32.156607Z", "iopub.status.idle": "2026-07-20T04:18:43.596678Z", "shell.execute_reply": "2026-07-20T04:18:43.589049Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "parameters: original 31064 | xnn 31064 (identical tables and layers)\n" ] } ], "source": [ "# --- build both models once; every block below compares their internals ---\n", "act = lambda x: tf.nn.softplus(x) - np.log(2.0) # float64-exact shifted softplus\n", "nn = NeuralNetwork(F=F_DIM, K=K, sr_cut=SR_CUT, lr_cut=None, num_blocks=NB,\n", " num_residual_atomic=NRA, num_residual_interaction=NRI,\n", " num_residual_output=NRO, use_electrostatic=True,\n", " use_dispersion=True, Eshift=0.1, Escale=1.3,\n", " Qshift=0.01, Qscale=0.9, activation_fn=act,\n", " dtype=tf.float64, scope=\"nn\", seed=7)\n", "\n", "Z_t = tf.constant(Z_np, tf.int32); R_t = tf.constant(R_np, tf.float64)\n", "ii_t = tf.constant(idx_i, tf.int32); jj_t = tf.constant(idx_j, tf.int32)\n", "Qt_t = tf.constant([Q_TOT], tf.float64)\n", "\n", "Dij_op = nn.calculate_interatomic_distances(R_t, ii_t, jj_t)\n", "rbf_op = nn.rbf_layer(Dij_op)\n", "x0_op = tf.gather(nn.embeddings, Z_t)\n", "xs_ops, outs_ops = [x0_op], []\n", "for i in range(NB):\n", " xs_ops.append(nn.interaction_block[i](xs_ops[-1], rbf_op, ii_t, jj_t))\n", " outs_ops.append(nn.output_block[i](xs_ops[-1]))\n", "Ea_op, Qa_raw_op, _, nh_op = nn.atomic_properties(Z_t, R_t, ii_t, jj_t)\n", "Qa_op = nn.scaled_charges(Z_t, Qa_raw_op, Q_tot=Qt_t)\n", "Eele_op = nn.electrostatic_energy_per_atom(Dij_op, Qa_op, ii_t, jj_t)\n", "from neural_network.grimme_d3.grimme_d3 import edisp as tf_edisp, d3_autoang, d3_autoev\n", "Edisp_op = d3_autoev * tf_edisp(Z_t, Dij_op / d3_autoang, ii_t, jj_t,\n", " s6=nn.s6, s8=nn.s8, a1=nn.a1, a2=nn.a2)\n", "E_op, F_op = nn.energy_and_forces(Z_t, R_t, ii_t, jj_t, Q_tot=Qt_t)\n", "\n", "sess = tf.Session()\n", "sess.run(tf.global_variables_initializer())\n", "# the k2f and output heads are zero-initialized upstream (they would leave the\n", "# network body unexercised) -- randomize them for a meaningful comparison\n", "rng_w = np.random.default_rng(107)\n", "for v in tf.global_variables():\n", " if \"k2f/W\" in v.name or \"dense_layer/W\" in v.name:\n", " sess.run(v.assign(0.2 * rng_w.standard_normal(v.shape.as_list())))\n", "vals = {v.name: sess.run(v) for v in tf.global_variables()}\n", "\n", "# ---- the xnn PhysNet, weights transplanted ----\n", "from xnn.common.config import from_dict\n", "from xnn.common.models import build_model, ForceStressOutput\n", "\n", "cfg = from_dict({\"model\": {\"name\": \"physnet\", \"cutoff\": SR_CUT,\n", " \"n_features\": F_DIM, \"n_rbf\": K, \"n_interactions\": NB,\n", " \"extra\": {\"num_residual_atomic\": NRA,\n", " \"num_residual_interaction\": NRI,\n", " \"num_residual_output\": NRO}}})\n", "x = build_model(cfg.model)\n", "\n", "def transplant_tf_to_torch(x, vals, num_blocks, scope=\"nn\"):\n", " \"\"\"Copy every variable of the original TF PhysNet into the xnn PhysNet.\"\"\"\n", " import torch\n", " def g(name): return torch.tensor(np.asarray(vals[f\"{scope}/{name}:0\"]))\n", " with torch.no_grad():\n", " x.embeddings.copy_(g(\"embeddings\"))\n", " x.rbf_layer.centers.copy_(g(\"rbf_layer/centers\"))\n", " x.rbf_layer.widths.copy_(g(\"rbf_layer/widths\"))\n", " x.Eshift.copy_(g(\"Eshift\")); x.Escale.copy_(g(\"Escale\"))\n", " x.Qshift.copy_(g(\"Qshift\")); x.Qscale.copy_(g(\"Qscale\"))\n", " x._s6.copy_(g(\"s6\")); x._s8.copy_(g(\"s8\"))\n", " x._a1.copy_(g(\"a1\")); x._a2.copy_(g(\"a2\"))\n", " def cd(dst, sc, bias=True):\n", " dst.weight.copy_(g(f\"{sc}/W\"))\n", " if bias: dst.bias.copy_(g(f\"{sc}/b\"))\n", " def cr(dst, sc):\n", " cd(dst.dense, f\"{sc}/dense\"); cd(dst.residual, f\"{sc}/residual\")\n", " for b in range(num_blocks):\n", " ib, sc = x.interaction_blocks[b], f\"interaction_block{b}\"\n", " il = ib.interaction\n", " cd(il.k2f, f\"{sc}/interaction_layer/k2f\", bias=False)\n", " cd(il.dense_i, f\"{sc}/interaction_layer/dense_i\")\n", " cd(il.dense_j, f\"{sc}/interaction_layer/dense_j\")\n", " for k, r in enumerate(il.residuals):\n", " cr(r, f\"{sc}/interaction_layer/residual_layer{k}\")\n", " cd(il.dense, f\"{sc}/interaction_layer/dense\")\n", " il.u.copy_(g(f\"{sc}/interaction_layer/u\"))\n", " for k, r in enumerate(ib.residuals):\n", " cr(r, f\"{sc}/residual_layer{k}\")\n", " ob = x.output_blocks[b]\n", " for k, r in enumerate(ob.residuals):\n", " cr(r, f\"output_block{b}/residual_layer{k}\")\n", " ob.dense.weight.copy_(g(f\"output_block{b}/dense_layer/W\"))\n", "\n", "transplant_tf_to_torch(x, vals, NB)\n", "p_tf = sum(int(np.prod(v.shape)) for k, v in vals.items())\n", "p_x = sum(p.numel() for p in x.parameters())\n", "print(f\"parameters: original {p_tf} | xnn {p_x} (identical tables and layers)\")" ] }, { "cell_type": "markdown", "id": "944853ee", "metadata": {}, "source": [ "## Block 1: Element embedding · eq 3\n", "\n", "$\\mathbf{x}_i^0 = \\mathbf{e}_{Z_i}$: a learnable 95-row table indexed directly\n", "by nuclear charge (uniform $[-\\sqrt3, \\sqrt3]$ init). No one-hot, no species\n", "list; PhysNet is alchemical by construction." ] }, { "cell_type": "code", "execution_count": 4, "id": "f5210ce0", "metadata": { "execution": { "iopub.execute_input": "2026-07-20T04:18:43.599203Z", "iopub.status.busy": "2026-07-20T04:18:43.598305Z", "iopub.status.idle": "2026-07-20T04:18:43.643255Z", "shell.execute_reply": "2026-07-20T04:18:43.642408Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "embedding shape: (8, 24)\n", "max |xnn - original| = 0.0\n" ] } ], "source": [ "x0_tf = sess.run(x0_op)\n", "x0_x = x.embeddings[torch.tensor(Z_np)]\n", "print(\"embedding shape:\", tuple(x0_x.shape))\n", "print(\"max |xnn - original| =\", np.abs(x0_x.detach().numpy() - x0_tf).max())" ] }, { "cell_type": "markdown", "id": "56879359", "metadata": {}, "source": [ "## Block 2: Radial basis functions · eqs 7–8\n", "\n", "$g_k(r_{ij}) = \\phi(r_{ij})\\exp\\!\\big(-\\beta_k(\\exp(-r_{ij})-\\mu_k)^2\\big)$ with\n", "$\\phi(r) = 1 - 6x^5 + 15x^4 - 10x^3$. Centers equally spaced on\n", "$[\\exp(-r_{\\rm cut}), 1]$ and a shared width, both stored pre-softplus so they\n", "stay positive while training (compare paper fig 2)." ] }, { "cell_type": "code", "execution_count": 5, "id": "859b9e79", "metadata": { "execution": { "iopub.execute_input": "2026-07-20T04:18:43.645064Z", "iopub.status.busy": "2026-07-20T04:18:43.644945Z", "iopub.status.idle": "2026-07-20T04:18:44.646460Z", "shell.execute_reply": "2026-07-20T04:18:44.645687Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "max |Dij diff| = 4.440892098500626e-16\n", "max |rbf diff| = 8.673617379884035e-16\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArIAAAEhCAYAAACDY0PwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlcelbwAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzsnXd4VNXWh9+Z9IT03htJCIHQQ5UuYgERRYoo2HtFPq+9XBEbXnsXuCoKFoqoIL2LgdBDAum9TioJqTPfH+MZMpmeQsC73+fJozln7332FDK/WWet35KpVCoVAoFAIBAIBALBZYa8pzcgEAgEAoFAIBB0BCFkBQKBQCAQCASXJULICgQCgUAgEAguS4SQFQgEAoFAIBBclgghKxAIBAKBQCC4LBFCViAQCAQCgUBwWSKErEAgEAgEAoHgskQIWYFAIBAIBALBZYkQsgLBZUx6ejoymYwvv/yyp7fyj8Xe3p7HHntM83t5eTkymYx3333X4rXMndtTr2tnHpshSktLcXFxYd26dV225qXM+fPnuf/++/Hz80Mmk7Fw4ULy8/ORyWR8+OGHPbKngoICHBwc2Lx5c49cXyDoToSQFQguQVpaWpDJZFo/zs7OjBo1ilWrVvX09rT29+KLL+qc37ZtGzKZjG+//dbitXv6Q1/QtTz33HNERUUxY8aMnt7KRWHZsmV899137Ny5E5VKxcqVK7vlOk1NTaxZs4Zrr72WgIAAXFxcGDx4MB999BHNzc1aYwMDA7nvvvtYtGgRLS0t3bIfgaCnEEJWILiEmT17NiqVCqVSycmTJwkJCWH+/Pl8+umnPb01DcuWLaOoqKint3HR8PLyQqVSaUVp/yl09WMrKipixYoVPPTQQ8hksi5Z81Jn27ZtDB06lNjYWM2xoKAgVCoVDz30UJdd54cffuCWW24hLi6OP//8k/z8fB5//HEWL17MzTffrDP+wQcf5PTp02zYsKHL9iAQXAoIISsQXAbIZDLCwsJYsWIFrq6u/Oc//+npLQEwadIkmpub9UZlBYKvvvoKa2trbrrppp7eykWjtLQUBweHbr+Oq6srW7du5c033yQ0NBQXFxduvfVWFi1axPr16zl8+LDW+N69ezN8+PBL6kuwQNAVCCErEFxGODg4EBISQl5ens65n3/+mdjYWOzs7IiPj+ePP/7QnKurq8PNzY358+frzGtoaMDLy0srivPee+/Rv39/evXqRUBAADNmzODo0aM6c8PCwnjooYdYvnw5p0+fNrn/5uZmli5dSt++fbG3t8fDw4PZs2eTnZ0NwL59+wgODgbg4Ycf1qQvGItktc0n/f7774mLi8PGxoZff/0VAGtra806tra2REREsHjxYurq6rTWKSkpYf78+bi5ueHm5sZtt91GTU2NzvUM5ZGaex1L+eabb4iKisLe3p5Bgwbx22+/6Ywx99qmXldDj83c90N7Nm7cyLBhw3B2dtY63vY166rHZ+mapt6L7dfU995qy6+//opMJiMlJYXffvtNJzVIX7pMcXEx8+bN03nPtc/L1se0adOYMGGCzvHevXsDkJWVpXNu4sSJ7Nq1i9raWqNrCwSXE0LICgSXEQ0NDeTm5mrEnsSWLVvYs2cPW7duJTs7m/DwcG644QZKSkoAcHJyYuHChfz000+UlZVpzV2zZg0KhYI777wTgM8++4zFixfz3HPPUVRUxMmTJ7nrrrt4++239e7p2WefxdnZmaeeesro3pVKJTfccAPvvPMOL774IsXFxSQmJlJbW8uoUaMoLS1lzJgxGpH+wQcfoFKpUKlUZuXL/vbbb+zdu5dNmzZx6NAhPD09AXU+r7SOQqHgo48+YtWqVTz44INaz+ukSZM4cOAAGzduJDc3lxtvvJH77rvP5HUlzLmOpfz6668cPHiQXbt2kZ6ezrBhw5g+fbpO0Y4517b0de3svPPnz3PkyBGGDh16UR6fJWua815si6H3Vluuu+46VCoVMTExXHvttZr9qlQqvV88z58/z8SJE0lMTOS3334jNzeXm2++uVPvF+nxA8TExOicS0hIoKWlhQMHDnTqGgLBJYVKIBBccjQ3N6sA1ezZs1UqlUqlVCpV2dnZqrlz56oA1YcffqhSqVSqtLQ0FaBKSEjQmp+Tk6MCVMuWLdMcO3PmjEomk6lef/11rbHDhw9XBQcHq1pbW1UqlUo1Z84cVWxsrFn7u/POO1UqlUr15ptvqgDVrl27VCqVSrV161YVoPrmm280c9asWaMCVD/++KPWWlVVVSo3NzfVU089pVKpVKq8vDwVoPrggw/Meq6k56B///5mjVepVKoPP/xQJZfLVfX19SqVSqX67LPPVIBq586dWuM+/fRTFaB69NFHNcfKyspUgOo///mPxdcxd670mAYO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FZE11Y7VxcUFd3d3cnJy9J5XKpVkZmaaFLJyuZyIiAiz0guqq6spKCgwS8h21IZLpVKxb98+xowZo/e8n58f/v7+HDt2zOK1zUWpVLJ69Wquv/76br2OPmbNmsXBgwfJzc29KNdzc3PjoYceYvPmzRw+fFj/oN694euvwcVF+/jGjRAToy4U68auawKBQCC4QI8JWel2YftcOzc3N4O3EisrK1GpVHz99dc8+OCDJCcns2TJEmJiYjh9+rTBay1duhRXV1fNT09HbxsbG6mrqzMpZJuamqitrdUbkQVt54KysjJNkZY+2nvJGir0kjCUWmAsImvIucBYoZdEUFAQlZWVOl9KWlpayM/PNylkwXh6QV5eHnK53GCebluio6PNErKnT58mNDRUxxqtPX5+fjg7O3fIhiszM5Nz584x0EjXqYSEhG5tjrBv3z7OnTvHY489RkFBQYe7n3UEb29vJk+ezOrVq7u1JW9bgoODueuuu/j666/JyMigpaVF82NwD/X18MgjkJurTjnYteui7FUgEAj+17HuqQtLhvTto6PV1dUGhYE05/z58xw+fFjTb37cuHEsXryY3377Te+8p59+mieeeELze01NTY+K2crKSmxsbOjVq5fOOanYS6VSoVAoDI4DXSFrKK0AdL1kS0tLddq0tsXPz49z585RV1eHk5MTzc3NKBQKo0IWLhR8DR48GFBH8woLC01GZB0dHfHy8iIvL4/Y2FjN8YKCAuzs7PRGpdsTFhZmsG1reno6kZGRBoV+W6Kioti5cycqlcrobfTk5GTi4uJMrieTyejXr5/Z49ty6NAhBg8ejLW14X+qQ4cOZd26ddTW1hrMee4o9fX1rF+/noULF+Ls7Mzo0aPZvn07d911V5dexxhXX301f/75J4cPH2bYsGHdco2WlhYyMzPJzc0lPz+foqIiysvLufHGGxkwYAD29vaAOnfX2dkZV1dXvL29CQgIICgoiEgnJ3pFR0N2NkyaBOPHd8s+BQKBQKBNjwnZ0NBQ7OzsyMjI0DqekZFBVFSU3jkeHh54e3szbtw4jSCRyWSMHz+eb775xuC17OzsNHm4lwJSWoE+keTu7k5LSws1NTUGPWQlLBGyPj4+lJeX09raipWVlcFmCBL29va4urpSXFxMZGQkxcXF2NnZaXUi00d794GysjJUKpXRNAYJKb2grZCV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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "Dij_tf, rbf_tf = sess.run([Dij_op, rbf_op])\n", "ei = torch.tensor(np.stack([idx_j, idx_i]))\n", "pos = torch.tensor(R_np)\n", "D_x = (pos[ei[1]] - pos[ei[0]]).norm(dim=-1)\n", "rbf_x = x.rbf_layer(D_x)\n", "print(\"max |Dij diff| =\", np.abs(D_x.numpy() - Dij_tf).max())\n", "print(\"max |rbf diff| =\", np.abs(rbf_x.detach().numpy() - rbf_tf).max())\n", "\n", "r = torch.linspace(0.01, SR_CUT, 400)\n", "with torch.no_grad():\n", " G = x.rbf_layer(r)\n", "fig, ax = plt.subplots(figsize=(7, 3))\n", "ax.plot(r, G.numpy(), lw=0.8, color=\"k\", alpha=0.6)\n", "ax.plot(r, x.rbf_layer.cutoff_fn(r).numpy(), \"r:\", lw=2, label=r\"cutoff $\\phi(r)$\")\n", "ax.set_xlabel(\"r [A]\"); ax.set_ylabel(r\"$g_k(r)$\"); ax.legend()\n", "ax.set_title(\"PhysNet radial basis (paper fig 2)\"); plt.tight_layout(); plt.show()" ] }, { "cell_type": "markdown", "id": "5d991804", "metadata": {}, "source": [ "## Block 3: Interaction blocks (messages + residual refinements) · eqs 4–6\n", "\n", "$\\tilde v_i = \\sigma(W_I \\sigma(x_i) + b_I) + \\sum_j G g(r_{ij}) \\circ\n", "\\sigma(W_J \\sigma(x_j) + b_J)$, refined through pre-activation residual blocks,\n", "then $x' = u \\circ x + W\\sigma(v) + b$ with the learnable gate $u$. The\n", "attention mask ``k2f`` selects features by distance; the shifted-softplus is\n", "evaluated in its exact form ``max(x,0) + log1p(exp(-|x|))`` (PyTorch's\n", "``F.softplus`` goes linear above threshold 20 and would cost ~1e-9)." ] }, { "cell_type": "code", "execution_count": 6, "id": "c4e851e8", "metadata": { "execution": { "iopub.execute_input": "2026-07-20T04:18:44.648182Z", "iopub.status.busy": "2026-07-20T04:18:44.648062Z", "iopub.status.idle": "2026-07-20T04:18:48.226398Z", "shell.execute_reply": "2026-07-20T04:18:48.225678Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "block 0: max |feature diff| = 8.882e-16\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "block 1: max |feature diff| = 1.110e-15\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "block 2: max |feature diff| = 1.776e-15\n" ] } ], "source": [ "xs_tf = sess.run(xs_ops)\n", "xt = x0_x\n", "for b in range(NB):\n", " xt = x.interaction_blocks[b](xt, rbf_x, ei[1], ei[0])\n", " print(f\"block {b}: max |feature diff| = \"\n", " f\"{np.abs(xt.detach().numpy() - xs_tf[b + 1]).max():.3e}\")" ] }, { "cell_type": "markdown", "id": "3fcc1e68", "metadata": {}, "source": [ "## Block 4: Output blocks, scale/shift, charge correction · eqs 9–10, 14\n", "\n", "Each module's zero-initialized head yields $(E_i^m, q_i^m)$; sums are scaled\n", "and shifted **per element** ($E_{\\rm shift}$ doubles as the per-species\n", "reference energy; xnn' ``atomic_energies`` loads straight into it). Raw\n", "charges are then corrected by $\\tfrac{1}{N}(Q - \\sum_i q_i)$ so they sum to the\n", "exact total charge." ] }, { "cell_type": "code", "execution_count": 7, "id": "b1dccb15", "metadata": { "execution": { "iopub.execute_input": "2026-07-20T04:18:48.228457Z", "iopub.status.busy": "2026-07-20T04:18:48.228337Z", "iopub.status.idle": "2026-07-20T04:18:56.607374Z", "shell.execute_reply": "2026-07-20T04:18:56.606746Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "module 0: max |output diff| = 3.331e-16\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "module 1: max |output diff| = 3.331e-16\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "module 2: max |output diff| = 7.772e-16\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "max |scaled Ea diff| = 4.440892098500626e-16\n", "max |corrected q diff| = 8.604228440844963e-16\n", "sum q = 1.0000000000000002 (= Q_tot = 1.0)\n", "max |nh penalty diff| = 1.1102230246251565e-16\n" ] } ], "source": [ "outs_tf, Ea_tf, Qa_tf, nh_tf = sess.run([outs_ops, Ea_op, Qa_op, nh_op])\n", "xt = x0_x\n", "for b in range(NB):\n", " xt = x.interaction_blocks[b](xt, rbf_x, ei[1], ei[0])\n", " o = x.output_blocks[b](xt)\n", " print(f\"module {b}: max |output diff| = \"\n", " f\"{np.abs(o.detach().numpy() - outs_tf[b]).max():.3e}\")\n", "\n", "Ea_x, Qa_raw_x, Dij_x, nh_x, feats_x = x.atomic_properties(\n", " torch.tensor(Z_np), ei, pos[ei[1]] - pos[ei[0]])\n", "Qa_x = x.scaled_charges(Qa_raw_x, torch.zeros(N, dtype=torch.long), 1,\n", " torch.tensor([Q_TOT]))\n", "print(\"max |scaled Ea diff| =\", np.abs(Ea_x.detach().numpy() - Ea_tf).max())\n", "print(\"max |corrected q diff| =\", np.abs(Qa_x.detach().numpy() - Qa_tf).max())\n", "print(\"sum q =\", float(Qa_x.sum()), f\"(= Q_tot = {Q_TOT})\")\n", "print(\"max |nh penalty diff| =\", abs(float(nh_x) - float(nh_tf)))" ] }, { "cell_type": "markdown", "id": "46eee9cd", "metadata": {}, "source": [ "## Block 5: Switched, shielded electrostatics · eqs 12–13\n", "\n", "$E_{\\rm ele} = k_e/2\\; q_i q_j \\big[(1{-}s(r))/\\sqrt{r^2+1} + s(r)/r\\big]$ with\n", "the smoothstep $s$ switching at $r_{\\rm cut}/2$: shielded at short range to\n", "avoid the singularity, exact Coulomb beyond. With a long-range cutoff the\n", "expression is force-shifted to vanish smoothly." ] }, { "cell_type": "code", "execution_count": 8, "id": "3da296d0", "metadata": { "execution": { "iopub.execute_input": "2026-07-20T04:18:56.614503Z", "iopub.status.busy": "2026-07-20T04:18:56.614379Z", "iopub.status.idle": "2026-07-20T04:18:57.014723Z", "shell.execute_reply": "2026-07-20T04:18:56.997314Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "electrostatic energy per atom [eV]: [-4.85618 0.24051 0.07047 -1.32503 0.15197 -0.17815 0.1629 0.6113 ]\n", "max |Eele diff| = 5.828670879282072e-15\n" ] }, { "data": { "image/png": "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CAgIwNSpU3HkyBHk5eXh2LFjePPNN+Hv74833ngDgKrn4oUXXsDy5csRGhqKvLw87Ny5E2FhYTA0NHxkXNrupy5p8315FIlEgp9++gmffvopZs6ciXnz5gFQXdJbsWIF9u3bhylTpuDmzZsoKirC3bt38euvv2LQoEF1eizPPPMMJk+ejFmzZmHp0qVISEhAQUEBrly5gq+//hofffSRztscOXIkYmJiKk1DVCEwMBD/+Mc/cO/ePaSnp+Pzzz/H4cOH8fXXX8PIyAiA6h8OAwMDvPfee8jMzERcXBymT59e5aVebbdZH8eqq2HDhqF379547733cOjQIeTl5SE0NBTLly/Xqofur7/+wqRJk3D27FlkZ2cjNzcXx48fx/DhwyGTydSfo4fbtG/fHt7e3vVwRNQsNfiwE6J6kJycLF5++WVhZWUlrKysxCuvvCJycnKqnBpl5cqVwsfHR8hkMuHr6ys2bNggNm3aJACI8PBwIUTlqT4qxMTECADi559/1iiPj4/XGK368DbWrl0rWrduLUxMTERAQIDYtWtXpWMoKysTS5YsEZ07dxZmZmbC2tpaBAcHi++//15j1K4ux1qd/Px8sXDhQtGtWzdhZWUlpFKpaNOmjRg9erT4888/RVlZmbpuVlaWmD59unB1dRVGRkaiZcuW4u233xaZmZka20xPTxcvvviisLCwEDY2NmLKlCmisLBQq1HA2u5HH9+Xh1UXw5IlS4REIhHvvPOOenqT8+fPi//7v/8TDg4OwsTERLRt21a8/vrr6s+ZEKqRp0FBQZX2UzGK9fPPP6+0rmvXrqJPnz6VytetWye6d+8uLCwshIWFhQgICBCff/65ehohIbSfBqawsFDY2tqKL774otq4du3aJTp06CBMTExEu3btxLp16yptZ9u2bcLf31/IZDLRunVrsXjxYhEaGioAiJCQkFptU5tjren8VUfbUcBCqEboT548Wdja2goLCwsxatQokZSUJNzc3MQrr7xS435KS0vFpk2bRP/+/YW9vb0wMTERnp6eYtKkSSIqKqpS/ezsbCGVSsWSJUu0PhaiR5EIocUd2kSks+joaHh7e2PVqlV488039R0Okc6++uorrFy5EtHR0eoe5qKiIpiamuLzzz+vsqeqNupjm/pQXl4OmUyGd955B4sWLaqz7S5atAjff/89oqKiahyZTaQL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7IzvvvsOL730ksbxd+/eXX05c/To0bCzs8P69esRHx8PDw8PHDx4sMZ7bBsrV1dXdO/eXaPM2toaPXv2VI+SlkqlOHHiBL799lssXboUdnZ2OHjwIPr379+gsUqEaKZzWRARERE1U03qHkAiIiIiejQmgERERETNDBNAIiIiomaGCSARERFRM8MEkIiIiKiZYQJIRERE1MwwASQiIiJqZprcRNBERPVl586dKCkpgaGhocaE6to4cuQIMjIyAAAjR45s9BMCE1HjxgSQiEhLb7zxBvz9/dG6detKCWBWVhYOHToEf3//Kp9/e+LECYSHh2Pv3r2IiYlhAkhEesUngRARacnGxgarV6/GCy+8UGndt99+izlz5qBXr14IDQ2tsn10dDS8vb0RExMDT0/Peo6WiKh6vAeQiJq9kJAQ3L17F0lJSdi9ezfCwsJ03sbatWsxa9YsnDlzBrdu3aqHKImI6g4TQCJq9mbMmIEpU6agR48eWLt2LcLDw3Vqf/z4cSQmJuKzzz5Dv379sHr16nqKlIiobvAeQCIiALGxsYiIiICNjY3ObdesWYOxY8fCysoKU6ZMwT//+U988803MDY2rvtAiYjqAHsAiYgATJgwoVbJX05ODnbs2IEpU6YAAMaMGQNAdVmZiOhJxR5AIiIALi4utWr3+++/QyaT4d69e7h37x4AwN/fH2vWrMFzzz1XhxESEdUdJoBERAAkEkmt2q1evRr+/v74888/1WUODg7YsWMHEhIS4ObmVkcREhHVHSaARES1FB4ejoiICCQmJlbqQezatSvWrVuHTz/9VE/RERFVj/cAEhHV0urVq9GlS5cqLx+PGTMG69atA6daJaInEXsAiajZGzlyJNq0aaNV3dOnT0MIgRdffBFKpRLvvfdelfVeeuklREZG4t69e/Dy8sKRI0dw7dq1ugybiKjW+CQQIiItTZo0CQUFBTAxMcGGDRt0avvpp58iKioKALB06VI4ODjUR4hERFphAkhERETUzPAeQCIiIqJmhgkgERERUTPDBJCIiIiomWECSERERNTMMAEkIiIiamaYABIRERE1M0wAiYiIiJoZJoBEREREzQwTQCIiIqJmhgkgERERUTPDBJCIiIiomfl/SZqPVFumFHIAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Eele_tf = sess.run(Eele_op)\n", "Eele_x = x.electrostatic_energy_per_atom(D_x, Qa_x, ei[1], ei[0])\n", "print(\"electrostatic energy per atom [eV]:\", Eele_x.detach().numpy().round(5))\n", "print(\"max |Eele diff| =\", np.abs(Eele_x.detach().numpy() - Eele_tf).max())\n", "\n", "rr = torch.linspace(0.05, SR_CUT, 300)\n", "sw = x._switch(rr)\n", "chi = (1 - sw) / torch.sqrt(rr**2 + 1) + sw / rr\n", "fig, ax = plt.subplots(figsize=(6.5, 3))\n", "ax.plot(rr, (1 / rr).numpy(), \"r:\", lw=2, label=\"1/r\")\n", "ax.plot(rr, chi.numpy(), \"k-\", label=\"switched/shielded\")\n", "ax.set_ylim(0, 3); ax.set_xlabel(\"r [A]\"); ax.legend()\n", "ax.set_title(\"damped Coulomb kernel (paper fig 3)\"); plt.tight_layout(); plt.show()" ] }, { "cell_type": "markdown", "id": "9348d4ee", "metadata": {}, "source": [ "## Block 6: Grimme D3(BJ) dispersion\n", "\n", "`xnn.dnn.models.d3` is an independently written implementation of the\n", "D3(BJ) dispersion (coordination numbers, Gaussian-weighted C6 interpolation\n", "from the reference tables, BJ damping) that reproduces the TF `grimme_d3`\n", "module exactly; the tables ship with xnn. $s_6, s_8, a_1, a_2$\n", "are learnable through a softplus, initialized to the HF values.\n" ] }, { "cell_type": "code", "execution_count": 9, "id": "e5936c30", "metadata": { "execution": { "iopub.execute_input": "2026-07-20T04:18:57.017327Z", "iopub.status.busy": "2026-07-20T04:18:57.016714Z", "iopub.status.idle": "2026-07-20T04:18:57.156444Z", "shell.execute_reply": "2026-07-20T04:18:57.155844Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "dispersion energy per atom [eV]: [-0.122002 -0.102835 -0.094091 -0.200128 -0.12701 -0.071694 -0.096155\n", " -0.109732]\n", "max |Edisp diff| = 8.326672684688674e-17\n", "s6, s8, a1, a2 = [1.0, 0.9171, 0.3385, 2.883]\n" ] } ], "source": [ "Edisp_tf = sess.run(Edisp_op)\n", "Edisp_x = x.dispersion_energy_per_atom(torch.tensor(Z_np), D_x, ei[1], ei[0])\n", "print(\"dispersion energy per atom [eV]:\", Edisp_x.detach().numpy().round(6))\n", "print(\"max |Edisp diff| =\", np.abs(Edisp_x.detach().numpy() - Edisp_tf).max())\n", "print(\"s6, s8, a1, a2 =\", [round(float(v), 4) for v in (x.s6, x.s8, x.a1, x.a2)])" ] }, { "cell_type": "markdown", "id": "50e84c9e", "metadata": {}, "source": [ "## Capstone: transplant a *whole* PhysNet and compare E, F, q, p\n", "\n", "The end-to-end check through `ForceStressOutput` (same autograd-forces path as\n", "every xnn model): same weights → same function." ] }, { "cell_type": "code", "execution_count": 10, "id": "4b64f712", "metadata": { "execution": { "iopub.execute_input": "2026-07-20T04:18:57.158203Z", "iopub.status.busy": "2026-07-20T04:18:57.157987Z", "iopub.status.idle": "2026-07-20T04:19:04.572992Z", "shell.execute_reply": "2026-07-20T04:19:04.572008Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "E original = -0.562483036399 xnn = -0.562483036399\n", "|dE| = 4.00e-15 max|dF| = 7.17e-15 max|dq| = 8.60e-16\n", "dipole [eA] = [[ 0.92905 -0.18352 -0.29534]]\n" ] } ], "source": [ "from xnn.common.data import AtomicGraph\n", "\n", "E_tf, F_tf = sess.run([E_op, F_op])\n", "graph = AtomicGraph(pos=pos.clone(), atomic_numbers=torch.tensor(Z_np),\n", " edge_index=ei, cell_shifts=torch.zeros(len(idx_i), 3, dtype=torch.long),\n", " batch=torch.zeros(N, dtype=torch.long), n_atoms=torch.tensor([N]),\n", " cell=None, pbc=None)\n", "graph.total_charge = torch.tensor([Q_TOT])\n", "out = ForceStressOutput(x)(graph)\n", "print(f\"E original = {float(E_tf):.12f} xnn = {float(out['energy']):.12f}\")\n", "print(f\"|dE| = {abs(float(out['energy']) - float(E_tf)):.2e} \"\n", " f\"max|dF| = {np.abs(out['forces'].detach().numpy() - F_tf).max():.2e} \"\n", " f\"max|dq| = {np.abs(out['charges'].detach().numpy() - Qa_tf).max():.2e}\")\n", "print(\"dipole [eA] =\", out[\"dipole\"].detach().numpy().round(5))\n", "sess.close()" ] }, { "cell_type": "markdown", "id": "f65eea63", "metadata": {}, "source": [ "## Summary\n", "\n", "| block | original TF PhysNet | `xnn` | max diff (float64) |\n", "|---|---|---|---|\n", "| element embedding (eq 3) | `tf.gather(embeddings, Z)` | `embeddings[Z]` | 0 |\n", "| radial basis (eqs 7–8) | `RBFLayer` | `_RBF` | ~1e-15 |\n", "| interaction + residual blocks (eqs 4–6) | `InteractionBlock` | `_InteractionBlock` | ~1e-14 |\n", "| output blocks + scale/shift (eqs 9–10) | `OutputBlock` + gathers | `_OutputBlock` + tables | ~1e-14 |\n", "| charge correction (eq 14) | `scaled_charges` | `scaled_charges` | ~1e-15 |\n", "| electrostatics (eqs 12–13) | `electrostatic_energy_per_atom` | same math, independent code | ~1e-15 |\n", "| D3(BJ) dispersion | `grimme_d3` (TF) | `xnn.dnn.models.d3` | ~1e-15 |\n", "| **whole model** | | | **E, F, q to float64 round-off** |\n", "\n", "The xnn PhysNet is an independent pure-PyTorch implementation of the\n", "original TensorFlow 1.x PhysNet, verified against it block by block: one model class on the shared xnn abstractions\n", "(`InteratomicPotential`, `scatter_sum`, `ForceStressOutput` autograd\n", "forces/stress), with charges and dipoles as extra outputs. Next:\n", "`physnet_argon_train_test.ipynb` trains both implementations on Argon MD\n", "data.\n" ] } ], "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" } }, "nbformat": 4, "nbformat_minor": 5 }