{ "cells": [ { "cell_type": "markdown", "id": "4d81c328-a160-42ad-9c8d-ee047042f808", "metadata": {}, "source": [ "# Hydrogen Atom\n", "\n", "In this notebook we will perform 3D finite difference calculations for an atomic simulation.\n", "We will solve the eigenvalue equation $(-\\frac{\\Delta}{2} - \\frac{1}{|r|}) \\Psi = E \\Psi$, \n", "which defines the time independent simulation of a hydrogen atom." ] }, { "cell_type": "code", "execution_count": 1, "id": "0691d7a0-c303-4504-abaa-8a4671f528b2", "metadata": {}, "outputs": [], "source": [ "from copy import deepcopy\n", "import numpy as np\n", "from trainsum.numpy import trainsum as ts\n", "from trainsum.typing import UniformGrid, TensorTrain\n", "import matplotlib.pyplot as plt\n", "from string import ascii_lowercase\n", "\n", "def get_coords_idxs(grid: UniformGrid, idx: int):\n", " \"\"\"Get a 1D-slice of the grid in real coordinated and indices.\"\"\"\n", " ndim = len(grid.dims)\n", " idxs = np.zeros((ndim, grid.dims[idx].size()), dtype=ts.index_type)\n", " for i in range(ndim):\n", " if i == idx:\n", " idxs[i] = np.arange(grid.dims[idx].size())\n", " else:\n", " idxs[i] = grid.dims[i].size()//2\n", " coords = grid.to_coords(idxs)[idx]\n", " return coords, idxs\n", "\n", "# set global cross options for max_rank = 50 for function construction\n", "cross_opts = ts.cross(max_rank=50, eps=1e-10)\n", "ts.set_options(cross_opts)" ] }, { "cell_type": "markdown", "id": "d2688fc5-27cd-400b-b3a0-141a01a8d0a3", "metadata": {}, "source": [ "First we define a utility function for calculating the coordinates and slices of a uniform grid instance.\n", "We also set the global options for cross interpolation related algorithms." ] }, { "cell_type": "code", "execution_count": 2, "id": "2ff23904-0a83-4505-a015-726c882d3efa", "metadata": {}, "outputs": [], "source": [ "# define the domain on which the problem is solved\n", "ndim = 3\n", "shape = ts.trainshape(2**10, 2**10, 2**10)\n", "domains = [ts.domain(-20, 20) for _ in range(ndim)]\n", "grid = ts.uniform_grid(shape.dims, domains)" ] }, { "cell_type": "markdown", "id": "420bb75a-b2d6-400d-8cc4-8298087aecbe", "metadata": {}, "source": [ "In this cell we define the overall settings. We will work in three dimensions with 1024\n", "points in each direction. The intervals are from -20 to 20 Bohr Radii." ] }, { "cell_type": "code", "execution_count": 3, "id": "917cbd4b-58e1-4a39-a57e-dfae7a404f8a", "metadata": {}, "outputs": [], "source": [ "def laplace(grid: UniformGrid, idx: int) -> TensorTrain[NDArray]:\n", " \"\"\"\n", " Get the tensor train which represents the finite difference\n", " laplace operator with the dimension defined by idx.\n", " \"\"\"\n", " train = None\n", " with ts.exact():\n", " for i, dim in enumerate(grid.dims):\n", " if i == idx:\n", " tmp = -2.0 * ts.shift(dim, 0) # rank=1\n", " tmp += 1.0 * ts.shift(dim, -1) # rank=2\n", " tmp += 1.0 * ts.shift(dim, 1) # rank=2\n", " tmp *= -0.5 / grid.spacings[0]**2\n", " else:\n", " tmp = ts.shift(dim, 0) # is the identity\n", " if train is None:\n", " train = tmp\n", " else:\n", " train.extend(tmp)\n", " return train\n", "\n", "# create the Laplace operators for each direction (x, y, z)\n", "laplace_ops = [laplace(grid, i) for i in range(ndim)]" ] }, { "cell_type": "markdown", "id": "d14a729d-858e-40a0-b35d-6737f721b7cd", "metadata": {}, "source": [ "Before we can solve the equation we need to define all operators. Here we define the finite difference\n", "Laplace operator, which (for a single dimension) represents a tridiagonal Toeplitz matrix with -2 on the main\n", "diagonal and 1 on the diagonals above and below. For multiple dimensions it is the outer product of this\n", "Toeplitz matrix and the identities in the other directions (done here via the extend)." ] }, { "cell_type": "code", "execution_count": 4, "id": "3a09b8d4-ef12-4fd5-a81d-f13de48b3997", "metadata": {}, "outputs": [ { "data": { "image/png": "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2LG4cOECAOD+++9Ht27d8N1332HPnj2YN2+e3zcJESlWu162joikYzabhcFgEG+//XaDx9566y0RHR0tqqqq3PM+++wzoVar3Vf37Nq1q1i6dKnX866//nrx+OOPCyGEOHbsmAAg/vCHP3gtk5CQIFasWOGettlsolu3buLOO+90z7v11lvFU0895Z5OSkoSv/nNb9zTTqdTxMXFiTfeeKPR/lauXClSU1Pd04sXLxaDBw/2Wmb79u3CZDI1uPJvz549xbp164QQQkRERIjc3NxGX4eIGsd9PojIy+HDh2GxWDB27Fifjw0ePBgdOnRwzxs1ahScTicKCwsRHh6OoqIijBo1yut5o0aN8tpkAQDDhw9336+oqEBxcTFGjBjhnqfVajF8+PAGm16uNGjQIPd9lUqF+Ph4lJWVuedt2rQJr776Ko4ePYqqqirY7XaYTKYm17lv3z5UVVWhc+fOXvMvXbqEo0ePAgDmzJmDRx55BH/5y18wbtw4TJkyBT179mxyvURUh5tdiMhLeHh4QF7HM8C0xZWbOlQqFZxOJwAgPz8f999/P+644w58+umn2Lt3LxYsWACr1drkOquqqpCQkICCggKvn8LCQjzzzDMA6o6SOXjwICZOnIitW7diwIABLdpMREQMH0R0hd69eyM8PBxbtmxp8Fj//v2xb98+VFdXu+d9++23UKvV6Nu3L0wmE7p27Ypvv/3W63nffvstBgwY0OhrRkZGIiEhAbt27XLPs9vt2LNnT5t62bFjB5KSkrBgwQIMHz4cvXv3xokTJ7yW0ev1cDgcXvOGDRuGkpISaLVa9OrVy+snJibGvVyfPn0we/ZsbN68GXfffTdycnLaVC/RLwU3uxCRl7CwMDz33HN49tlnodfrMWrUKJw9exYHDx7E/fffj8WLF2PatGnIysrC2bNn8dvf/hYPPPAAunTpAgB45plnsHjxYvTs2RNDhgxBTk4OCgoK8O677zb5uk899RSWLVuG3r17o1+/flizZg3Ky8vb1Evv3r1x8uRJbNy4Eddffz0+++yzBqMTPXr0wLFjx1BQUIBu3bohIiIC48aNQ1paGiZPnowVK1agT58+KCoqwmeffYa77roLAwcOxDPPPIN7770XycnJOH36NL777jvcc889baqX6JeC4YOIGli4cCG0Wi0WLVqEoqIiJCQk4LHHHoPRaMT//u//4qmnnsL1118Po9GIe+65B2vWrHE/98knn0RFRQXmzp2LsrIyDBgwAB9//DF69+7d5GvOnTsXxcXFmDZtGtRqNR5++GHcddddqKioaHUfkyZNwuzZs/HEE0/AYrFg4sSJWLhwIbKystzL3HPPPfjggw8wZswYlJeXIycnB5mZmfj888+xYMECPPTQQzh79izi4+Nxyy23oEuXLtBoNDh//jwefPBBlJaWIiYmBnfffTeys7NbXSvRL4lKNLc3FxEREZEfcZ8PIiIiCiiGDyIiIgoohg8iIiIKKIYPIiIiCiiGDyIiIgoohg8iIiIKKIYPIiIiCiiGDyIiIgoohg8iIiIKKIYPIiIiCiiGDyIiIgoohg8iIiIKqP8Hq21IzMNsrZIAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# create the -1/r potential of the hydrogen nucleus\n", "pot_func = lambda idxs: -1.0/np.sqrt(np.sum(grid.to_coords(idxs)**2, axis=0))\n", "pot = ts.tensortrain(shape, pot_func)\n", "\n", "# plot a slice\n", "plt.figure(figsize=(6,4))\n", "coords, idxs = get_coords_idxs(grid, 0)\n", "plt.plot(coords, pot[idxs])\n", "plt.xlabel(\"coordinates\")\n", "plt.ylabel(\"a.u.\")\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "38363194-cd3d-4666-b282-82ab0f226481", "metadata": {}, "source": [ "Having defined the Laplace operator we need to get the $\\frac{1}{|r|}$ potential. This\n", "is simply done by using the cross interpolation." ] }, { "cell_type": "code", "execution_count": 5, "id": "8064e410-4941-4d05-9930-930ae7746bd4", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# create a start guess as a Gaussian shaped function\n", "gauss_func = lambda idxs: np.exp(-0.01*np.sum(grid.to_coords(idxs)**2, axis=0))\n", "guess = ts.tensortrain(shape, gauss_func)\n", "\n", "# normalize the tensor train\n", "norm = ts.einsum_expression(\"ijk,ijk->\", shape, shape)\n", "guess /= np.sqrt(np.asarray(norm(guess, guess)))\n", "\n", "# plot a slice\n", "plt.figure(figsize=(6,4))\n", "coords, idxs = get_coords_idxs(grid, 0)\n", "plt.plot(coords, guess[idxs])\n", "plt.xlabel(\"coordinates\")\n", "plt.ylabel(\"a.u.\")\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "104da484-21f2-4da2-af24-bcba19963dd2", "metadata": {}, "source": [ "The last thing before we can start defining the solver is the definition of an initial guess.\n", "Here we sample a gaussian-shaped function." ] }, { "cell_type": "code", "execution_count": 6, "id": "a4b5a71d-56a5-4302-ad1d-b515ed5ce3dc", "metadata": {}, "outputs": [], "source": [ "# define the linear maps which act as the operator for the problem\n", "laplace_maps = [ts.linear_map(\"imjnko,mno->ijk\", op, guess.shape) for op in laplace_ops]\n", "pot_map = ts.linear_map(\"mno,mno->mno\", pot, guess.shape)\n", "\n", "# define a strategy and a lanczos solver to solve the local problems\n", "strat = ts.sweeping_strategy(ncores=2, nsweeps=10)\n", "lanczos_solver = ts.lanczos(nsteps=5, subspace=25, eps=1e-10)\n", "\n", "# define the tensorized eigenvalue solver\n", "eig_solver = ts.eigsolver(\n", " *laplace_maps, pot_map,\n", " strategy=strat,\n", " eps=1e-10)" ] }, { "cell_type": "markdown", "id": "b31e69eb-4241-427d-a3a4-d9664e9b1c4a", "metadata": {}, "source": [ "Having fully defined our equation it is time to define the solver. For doing so\n", "we must provide the linear maps via einsum equations." ] }, { "cell_type": "code", "execution_count": 7, "id": "a42f2832-5805-4973-bdf3-022427adf5e9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-0.49239050677424277\n", "-0.49923885657076283\n", "-0.49969803852571487\n" ] } ], "source": [ "# callback for printing and retrieval of local results\n", "vals = []\n", "def callback(local_range, local_result):\n", " print(local_result.value, end=\"\\r\", flush=True)\n", " vals.append(local_result.value)\n", " return False\n", "\n", "# solve the equation with rank=5\n", "eig_solver.decomposition = ts.svdecomposition(max_rank=15, cutoff=1e-15)\n", "guess = eig_solver(guess, callback=callback)\n", "print()\n", "\n", "# solve the equation with rank=10\n", "eig_solver.decomposition = ts.svdecomposition(max_rank=10, cutoff=1e-15)\n", "guess = eig_solver(guess, callback=callback)\n", "print()\n", "\n", "# solve the equation with rank=15\n", "eig_solver.decomposition = ts.svdecomposition(max_rank=20, cutoff=1e-15)\n", "guess = eig_solver(guess, callback=callback)\n", "print()" ] }, { "cell_type": "markdown", "id": "dbf3efd3-7fe8-4bd9-8a72-4d50a197fe34", "metadata": {}, "source": [ "Now we can run the algorithm. For DMRG solver it is often useful to start with a low rank and\n", "increase the rank step by step. The correct solution would be 0.5. Due to the discretization error\n", "it is not reached." ] }, { "cell_type": "code", "execution_count": 8, "id": "7a7a1c21-f3a5-4f7d-a043-735733c8d9ce", "metadata": {}, "outputs": [ { "data": { "image/png": "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7YbfbdiwAWFhYbY/zgHLKkMLFixATEwMlEolwsLCEB4ejqKiIrt7lZY4ceIEjhw5UqNtN910E4Drz9+4ceNw66234oEHHkBkZCTGjx+PTz75hAkD8iqck4DIjfTt2xcqlQo//vgj2rdvj4iICNx0000YOHAg3nrrLej1evz0008YPXo0AKCoqAiDBg2CWq3G4sWLkZCQAJVKhf379+Ppp5+2u+DdcsstiI2NxSeffIJ7770XX331FcrLy+0y/dbyH374ITQaTY34GrOMYF2f7ptMJtu8B9XVtg2wfKriKtwhRiIicl/W6+99991XY3y/VY8ePWqdgLgp54iIiMC6detq3R8eHm73uLHXvnHjxuH555/H5cuXERgYiC+//BL33HOP3T3Dww8/jLVr1+Kxxx5DSkoKgoKCIJFIMH78+Ab/OG/sfYXZbEb37t3x6quv1lo+JiYGgKVXw48//ojvv/8e33zzDbZs2YINGzbg9ttvR0ZGRp3tJvIkTBIQuREfHx/069cPP/30E9q3b2/r5jdw4EDo9XqsW7cO+fn5uO222wBYVgi4cuUKPvvsM9s2ADhz5kyt9d999914/fXXodPpsGHDBsTGxuKWW26x7bdOPhgREYHU1NRmtSEkJARFRUU1tp87d86ue39jWWM6fPhwvTE1duhBeHg4/Pz8cPz48Rr7jh07BqlUaruRICIicobw8HAEBgbCZDLVe627cTWADh06AECtqwLduC0hIQFbt27Frbfeatf9v6XGjRuHRYsW4dNPP0VkZCR0Oh3Gjx9vV+Z///sfJk2ahFdeecW2raKiotb7hRs19r4iISEBhw4dwpAhQxq8J5BKpRgyZAiGDBmCV199FS+88AL+7//+D99//32z73+I3AmHGxC5mYEDByIrKwvff/+9LUkQFhaGLl26YNmyZbYywPUsf/WsfmVlJd56661a6x43bhz0ej3ef/99bNmyBXfffbfd/rS0NKjVarzwwgswGAw1jm/Msn8JCQn45ZdfUFlZadv29ddf1+jC31i9e/dGXFwcVqxYUeMmoXq7/f39AaDBGw6ZTIZhw4bhiy++sLvZys/Px/r16zFgwACo1epmxUpERNQcMpkMY8aMwaefforDhw/X2F/X9Tc6OhrdunXDBx98YDfn0A8//IDffvvNruzdd98Nk8mEJUuW1KjHaDQ26g/22nTp0gXdu3fHhg0bsGHDBkRFRdl9cAFY2ndjD4SVK1faLb9cl8beV9x99924cOEC/vWvf9Woo7y83DbfU2FhYY39SUlJAFBjqUQiT8WeBERuZuDAgXj++edx/vx5uwmDbrvtNrzzzjuIjY1Fu3btAAD9+/dHSEgIJk2ahEceeQQSiQQffvhhnd3ge/fujY4dO+L//u//oNfr7YYaAIBarcbbb7+N+++/H71798b48eMRHh6OnJwcfPPNN7j11lvx5ptv1hv/Aw88gP/9739IT0/H3XffjVOnTuGjjz5q9hKJUqkUb7/9Nu666y4kJSVhypQpiIqKwrFjx3DkyBF89913AIA+ffoAAB555BGkpaVBJpPV+CTD6rnnnrOtkfyPf/wDcrkc77zzDvR6PV566aVmxUlERNQSL774Ir7//nskJydj2rRp6Nq1KwoLC7F//35s3bq11j9uAeCFF17AyJEjceutt2LKlCm4evUq3nzzTXTr1s0ucTBo0CA8+OCDWLp0KQ4ePIhhw4ZBoVDgxIkT2LhxI15//XX87W9/a1bs48aNw4IFC6BSqTB16lRIpfafU95555348MMPERQUhK5duyIzMxNbt25FmzZtGqy7sfcV999/Pz755BM89NBD+P7773HrrbfCZDLh2LFj+OSTT/Ddd9+hb9++WLx4MX788UeMGDECHTp0QEFBAd566y20a9fONpEzkccTbV0FImoWnU4nyGQyITAwUDAajbbtH330kQBAuP/+++3K79y5U7jlllsEX19fITo6WnjqqaeE7777rsYSQlb/93//JwAQOnbsWGcM33//vZCWliYEBQUJKpVKSEhIECZPnizs3bvXVqauJRAFQRBeeeUVoW3btoJSqRRuvfVWYe/evXUugbhx40a7Y2tb3kkQBOHnn38Whg4dKgQGBgr+/v5Cjx49hJUrV9r2G41G4eGHHxbCw8MFiURitxwiblgCURAsS0mmpaUJAQEBgp+fn/DnP/9Z2LVrl12ZutpY2xJNRERELZWfny/MnDlTiImJERQKhaDRaIQhQ4YIa9asEQSh7mvkxx9/LCQmJgpKpVLo1q2b8OWXXwpjxowREhMTa5xjzZo1Qp8+fQRfX18hMDBQ6N69u/DUU08Jubm5tjIdOnQQRowYUePYG6/lVidOnBAACACEn3/+ucb+q1evClOmTBHCwsKEgIAA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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plot some results\n", "fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(12, 4))\n", "coords, idxs = get_coords_idxs(grid, 0)\n", "ax[0].plot(coords, guess[idxs])\n", "ax[0].set_xlabel(\"coordinates\")\n", "ax[0].set_ylabel(\"a.u.\")\n", "ax[0].set_title(\"wavefunction\")\n", "ax[0].grid()\n", "\n", "ax[1].plot(vals)\n", "ax[1].set_xlabel(\"iteration\")\n", "ax[1].set_ylabel(\"a.u.\")\n", "ax[1].set_title(\"eigenvalues\")\n", "ax[1].grid()\n", "plt.show()" ] } ], "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.2" } }, "nbformat": 4, "nbformat_minor": 5 }