{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# **Numerical Solution of the Schrödinger Equation for the Double Square Well Potential**\n", "\n", "**Authors:** Dou Du, Taylor James Baird and Giovanni Pizzi \n", "\n", " Go back to index\n", "\n", "**Source code:** https://github.com/osscar-org/quantum-mechanics/blob/master/notebook/quantum-mechanics/2quantumwells.ipynb\n", "\n", "\n", "This notebook displays interactively the eigenfunctions for a double square well potential (DSWP) in one dimension, as obtained from the numerical solution of the associated Shrödinger equation. The double square well\n", "potential is a simple but effective model to describe physical systems.\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## **Goals**\n", "* Understand one of the numerical methods used to solve the time-independent Shrödinger equation.\n", "* Understand the importance of the DSWP model for real material systems.\n", "* Investigate quantum tunneling in the double square well potential system." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## **Background Theory**\n", "\n", "[**More in the background theory.**](./theory/theory_2quantumwells.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## **Tasks and exercises**\n", "\n", "1. Start from a small gap distance (e.g. 0.1) between the two quantum wells.\n", "Fix the depth and width for both wells with the default value. Keep both wells\n", "identical. Slowly increase (use 0.1 as step value) the gap distance and record \n", "the two lowest eigenvalues at each gap distance. What do you \n", "see when the gap distance is increasing? What chemical reaction can \n", "you think of for this process?\n", "\n", "
\n", " Solution\n", " When the gap distance is increasing, the energy difference between \n", " the two lowest eigenvalues becomes smaller. In the large gap distance, \n", " the wavefunctions are localized at both quantum wells, which converge \n", " to single quantum well solutions. This process is ideal to describe \n", " the H$_2$ bond breaking.\n", "
\n", "\n", "2. In the DSWP for H$_2$ molecule and ammonia maser examples, we employed symmetric double wells, which means the width and depth are identical\n", "for both wells. However, the two wells can be different. What kinds\n", "of chemical systems can be described by two different quantum wells?\n", "\n", "
\n", " Solution\n", " Generally, the double square well potential can be employed to characterize diatomic molecules, which only contain two atoms. There are two categories \n", " of diatomic molecules, namely homonuclear and heteronuclear molecules. \n", " Homonuclear diatomic molecules consist of two identical atoms, \n", " such as H$_2$, O$_2$, and N$_2$. Heteronuclear diatomic molecules have \n", " two different atoms like CO, NO, and HCl. The symmetric DSWP is a reasonable \n", " model for homonuclear diatomic molecules since the electron-nuclear \n", " interactions are the same for both nuclei. On the other hand, one needs \n", " to set two different quantum wells to approximate heteronuclear \n", " diatomic molecules.\n", "
\n", "\n", "3. What is the disadvantage of this double square well potential model?\n", "How would one improve the model?\n", "\n", "
\n", " Solution\n", " Even though the DSWP is successful in the explanation of some quantum \n", " systems, the model is still too simple to be applied in many cases and far from the real potential. \n", " One can replace the square well with another, more realistic potential, \n", " for example, a quartic function as shown in the \n", " \"Avoided Crossing \n", " in 1D Asymmetric Quantum Well\" notebook.\n", "
\n", " \n", "4. By making a comparison with the solutions expected from classical considerations, think of how quantum mechanical tunnelling manifests in this system. Furthermore, try to think of the role this phenomenon plays in the operation of an ammonia maser.\n", "\n", "
\n", " Solution\n", " In the classical picture of this system, one would never expect a particle with energy $E$, smaller than the height of the well, $V$, to be observed in the region between the two wells or to move from its original well to the other. However, we can observe in the figure that in the quantum mechanical treatment of the system, there is in fact a non-zero probability of finding a particle in the region between the two wells and for hopping between wells. This later behaviour is referred to as tunnelling. This phenomenon is one of the core principles behind an ammonia (NH$_3$) maser which relies on the tunnelling of the nitrogen atom through the potential barrier produced by the plane of hydrogen atoms. See the background theory notebook for an illustration of this.\n", "
\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "## Interactive visualization\n", "(be patient, it might take a few seconds to load)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib widget\n", "\n", "from numpy import linspace, sqrt, ones, arange, diag, argsort, zeros\n", "from scipy.linalg import eigh_tridiagonal\n", "import matplotlib.pyplot as plt\n", "from ipywidgets import FloatSlider, jslink, VBox, HBox, Button, Label, RadioButtons" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "colors = ['#e41a1c','#377eb8','#4daf4a','#984ea3','#ff7f00','#ffff33','#a65628','#f781bf']\n", "ixx = 0\n", "\n", "def doublewell_potential(x, width1, depth1, width2, depth2, dist):\n", " xa = zeros(len(x))\n", " xb = zeros(len(x))\n", " \n", " for i in range(len(x)):\n", " if x[i] > -dist/2.0 - width1 and x[i] < -dist/2.0:\n", " xa[i] = depth1\n", "\n", " for i in range(len(x)):\n", " if x[i] > dist/2.0 and x[i] < dist/2.0 + width2:\n", " xb[i] = depth2\n", " \n", " return xa + xb\n", " \n", " \n", "def diagonalization(hquer, L, N, pot = doublewell_potential, width1 = 0.5, depth1 = -0.2,\n", " width2 = 0.5, depth2 = -0.2, dist = 1.0):\n", " \"\"\"Calculated sorted eigenvalues and eigenfunctions. \n", "\n", " Input:\n", " hquer: Planck constant\n", " L: set viewed interval [-L,L] \n", " N: number of grid points i.e. size of the matrix \n", " pot: potential function of the form pot\n", " x0: center of the quantum well\n", " width: the width of the quantum well\n", " depth: the depth of the quantum well\n", " Ouput:\n", " ew: sorted eigenvalues (array of length N)\n", " ef: sorted eigenfunctions, ef[:,i] (size N*N)\n", " x: grid points (arry of length N)\n", " dx: grid space\n", " V: Potential at positions x (array of length N)\n", " \"\"\"\n", " x = linspace(-L, L, N+2)[1:N+1] # grid points \n", " dx = x[1] - x[0] # grid spacing\n", " V = pot(x, width1, depth1, width2, depth2, dist)\n", " z = hquer**2 /2.0/dx**2 # second diagonals\n", "\n", " ew, ef = eigh_tridiagonal(V+2.0*z, -z*ones(N-1)) \n", " ew = ew.real # real part of the eigenvalues\n", " ind = argsort(ew) # Indizes f. sort. Array\n", " ew = ew[ind] # Sort the ew by ind\n", " ef = ef[:, ind] # Sort the columns\n", "\n", " ef = ef/sqrt(dx) # Correct standardization \n", " return ew, ef, x, dx, V\n", "\n", "\n", "def plot_eigenfunctions(ax, ew, ef, x, V, width=1, Emax=0.05, fak=2.0, single = 0):\n", " \"\"\"Plot of the lowest eigenfunctions 'ef' in the potential 'V (x)'\n", " at the level of the eigenvalues 'ew' in the plot area 'ax'.\n", " \"\"\"\n", " \n", " if psi_x.value == \"Wavefunction\":\n", " fig.suptitle('Numerical Solution ($\\psi$) of One Dimension Schrödinger Equation', fontsize = 13)\n", " else:\n", " fig.suptitle('Numerical Solution ($\\psi^2$) of One Dimension Schrödinger Equation', fontsize = 13)\n", " \n", " fak = fak/100.0;\n", " \n", " ax[0].axhspan(0.0, Emax, facecolor='lightgrey')\n", " \n", " ax[0].set_xlim([min(x), max(x)])\n", " ax[0].set_ylim([min(V)-0.05, Emax])\n", " \n", " ax[0].set_xlabel(r'$x/a$', fontsize = 10)\n", " ax[0].set_ylabel(r'$V(x)/V_0\\ \\rm{, Eigenfunctions}$', fontsize = 10)\n", " \n", " ax[1].set_xlim([min(x), max(x)])\n", " ax[1].set_ylim([min(V)-0.05, Emax])\n", " \n", " ax[1].yaxis.set_label_position(\"right\")\n", " ax[1].yaxis.tick_right()\n", " \n", " ax[1].get_xaxis().set_visible(False)\n", " ax[1].set_ylabel(r'$\\rm{\\ Eigenvalues}$', fontsize = 10)\n", " \n", " indmax = sum(ew<=0.0) \n", " if not hasattr(width, \"__iter__\"): \n", " width = width*ones(indmax) \n", " for i in arange(indmax):\n", " if psi_x.value == \"Wavefunction\":\n", " ax[0].plot(x, fak*(ef[:, i])+ew[i], linewidth=width[i]+.1, color=colors[i%len(colors)])\n", " else:\n", " ax[0].plot(x, fak*abs(ef[:, i])**2+ew[i], linewidth=width[i]+.1, color=colors[i%len(colors)])\n", "\n", " ax[1].plot(x, x*0.0+ew[i], linewidth=width[i]+2.5, color=colors[i%len(colors)])\n", " \n", " ax[0].plot(x, V, c='k', linewidth=1.6)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "15ff867b559e45179788483dae486e64", "version_major": 2, "version_minor": 0 }, "image/png": "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crmatY4zZ85o1qxZmjJlimJiYjzLp06dqvT0dCUlJWnr1q164okn9PXXXzf6a+VC1dXVqq6u9jx3u92SpMrKyuZuEgAAlnf+uGeM8XNPWu983610DD/f1/P547zQ0FCFhoa2er3tLW+1immHZs+ebSR5faxfv94888wzpk+fPo3ef9VVV5l58+Y1+XNqamrM+PHjzcCBA43b7fbadsOGDUaS2bhx42X1mwcPHjx48Ogoj9LS0qYP+u1UaWmp38fvSj1mz5590W20at5qjXZ5hnfmzJlNXqGXlpamLVu26PDhw41eO3r0qBITE72+v7a2VhMnTtSePXu0YsWKBn9tXMygQYMUHBys3bt3a9CgQRdt88QTT+iRRx7xPK+vr9eJEycUFxcnh8Phdf0dVWVlpbp3767S0tIm/x90dIxVyzBezcdYtQzj1TRjjKqqqpSSkuLvrrRaSkqKSktLFR0dbZljuDFGx48fV2xsrAIC/lW1eqmzu1bNW63RLgNvfHy84uPjm2yXnZ0tt9utdevWaciQIZKktWvXyu12a/jw4Zd83/nB3717twoKChQXF9fkz9q2bZtqa2uVnJx8yTYX+8jgh3UquLiYmBgOHM3EWLUM49V8jFXLMF7eOZ1Of3fhsgQEBKhbt27+7kaLtWTcrZq3WsPSF61dffXVGj16tGbMmKGioiIVFRVpxowZGjNmTIMrBvv27avFixdLks6ePau7775bGzZs0MKFC1VXVyeXyyWXy6WamhpJ0rfffqunn35aGzZs0N69e7V06VJNmDBBAwcO1A033OCXbQUAAPAHO+QtSwde6dyVfZmZmcrJyVFOTo6uvfZavfPOOw3alJSUeAq4y8rKlJeXp7KyMg0YMEDJycmex/krDUNCQvT5559r1KhRysjI0EMPPaScnBx99tlnCgwM9Pk2AgAA+JPV81a7LGloidjYWL377rte25gLrhJNS0tr8qrR7t27a9WqVVekf/AuNDRUs2fPvqyrRzsKxqplGK/mY6xahvFCR2T1vOUwTfUGAAAAsDDLlzQAAAAA3hB4AQAAYGsEXgAAANgagRcAAAC2RuCFTz3zzDMaPny4IiIimn1TDmOM5syZo5SUFIWHh+vWW2/Vtm3b2raj7UR5eblyc3PldDrldDqVm5uriooKr++599575XA4GjyGDRvmmw770Guvvab09HSF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", "text/html": [ "\n", "
\n", "
\n", " Figure\n", "
\n", " \n", "
\n", " " ], "text/plain": [ "Canvas(header_visible=False, layout=Layout(width='750px'), toolbar=Toolbar(toolitems=[('Home', 'Reset original…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "127881134b5545aa97019aa3594d4b9f", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(FloatSlider(value=0.5, description='Width (left): ', max=1.0, min=0.1, style=SliderStyle(descri…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "4d4edbd9cfb249a59040f11b8aff6119", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(FloatSlider(value=0.5, description='Width (right): ', max=1.0, min=0.1, style=SliderStyle(descr…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "34f6e394e0d34c999c1e32fd5273ad16", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(FloatSlider(value=0.5, description='Gap distance: ', max=1.5, style=SliderStyle(description_wid…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "956ed60c5d804986b66f7cfa7a656d67", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(RadioButtons(description='Show:', options=('Wavefunction', 'Probability density'), value='Wavef…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "L = 1.5 # x range [-L,L]\n", "N = 200 # Number of grid points \n", "hquer = 0.06 # Planck constant\n", "sigma_x = 0.1 # Width of the Guassian function\n", "zeiten = linspace(0.0, 10.0, 400) # Time\n", "\n", "style = {'description_width': 'initial'}\n", "\n", "swidth1 = FloatSlider(value = 0.5, min = 0.1, max = 1.0, description = 'Width (left): ', style = style)\n", "sdepth1 = FloatSlider(value = -0.2, min = -1.0, max = 0.0, description = 'Depth (left): ', style = style)\n", "\n", "swidth2 = FloatSlider(value = 0.5, min = 0.1, max = 1.0, description = 'Width (right): ', style = style)\n", "sdepth2 = FloatSlider(value = -0.2, min = -1.0, max = 0.0, description = 'Depth (right): ', style = style)\n", "\n", "sdist = FloatSlider(value = 0.5, min = 0.0, max = L, description = r'Gap distance: ', style = style)\n", "sfak = FloatSlider(value = 2, min = 1.0, max = 5.0, step = 0.5, description = r'Zoom factor: ', style = style)\n", "\n", "psi_x = RadioButtons(options=[\"Wavefunction\", \"Probability density\"], value=\"Wavefunction\", description=\"Show:\")\n", "\n", "ew, ef, x, dx, V = diagonalization(hquer, L, N)\n", " \n", "fig, ax = plt.subplots(1, 2, figsize=(7,5), gridspec_kw={'width_ratios': [10, 1]})\n", "fig.canvas.header_visible = False\n", "fig.canvas.layout.width = \"750px\"\n", "\n", "fig.canvas.header_visible = False\n", "plot_eigenfunctions(ax, ew, ef, x, V)\n", "\n", "plt.show()\n", "\n", "def on_width_change1(change):\n", " global ew, ef, x, dx, V\n", " \n", " try:\n", " ann.remove()\n", " ann1.remove()\n", " except:\n", " pass\n", " \n", " ax[0].lines = [];\n", " ax[1].lines = [];\n", " ew, ef, x, dx, V = diagonalization(hquer, L, N, \n", " width1 = swidth1.value, depth1 = sdepth1.value,\n", " width2 = swidth2.value, depth2 = sdepth2.value,\n", " dist = sdist.value)\n", " plot_eigenfunctions(ax, ew, ef, x, V)\n", "\n", "def on_depth_change1(change):\n", " global ew, ef, x, dx, V\n", " \n", " try:\n", " ann.remove()\n", " ann1.remove()\n", " except:\n", " pass\n", " \n", " ax[0].lines = [];\n", " ax[1].lines = [];\n", " ew, ef, x, dx, V = diagonalization(hquer, L, N, \n", " width1 = swidth1.value, depth1 = sdepth1.value,\n", " width2 = swidth2.value, depth2 = sdepth2.value,\n", " dist = sdist.value)\n", " plot_eigenfunctions(ax, ew, ef, x, V)\n", " \n", "\n", "def on_width_change2(change):\n", " global ew, ef, x, dx, V\n", " \n", " try:\n", " ann.remove()\n", " ann1.remove()\n", " except:\n", " pass\n", " \n", " ax[0].lines = [];\n", " ax[1].lines = [];\n", " ew, ef, x, dx, V = diagonalization(hquer, L, N, \n", " width1 = swidth1.value, depth1 = sdepth1.value,\n", " width2 = swidth2.value, depth2 = sdepth2.value,\n", " dist = sdist.value)\n", " plot_eigenfunctions(ax, ew, ef, x, V)\n", " \n", "def on_depth_change2(change):\n", " global ew, ef, x, dx, V\n", " \n", " try:\n", " ann.remove()\n", " ann1.remove()\n", " except:\n", " pass\n", " \n", " ax[0].lines = [];\n", " ax[1].lines = [];\n", " ew, ef, x, dx, V = diagonalization(hquer, L, N, \n", " width1 = swidth1.value, depth1 = sdepth1.value,\n", " width2 = swidth2.value, depth2 = sdepth2.value,\n", " dist = sdist.value)\n", " plot_eigenfunctions(ax, ew, ef, x, V)\n", " \n", "def on_dist_change(change):\n", " global ew, ef, x, dx, V\n", " \n", " try:\n", " ann.remove()\n", " ann1.remove()\n", " except:\n", " pass\n", " \n", " ax[0].lines = [];\n", " ax[1].lines = [];\n", " ew, ef, x, dx, V = diagonalization(hquer, L, N, \n", " width1 = swidth1.value, depth1 = sdepth1.value,\n", " width2 = swidth2.value, depth2 = sdepth2.value,\n", " dist = sdist.value)\n", " plot_eigenfunctions(ax, ew, ef, x, V)\n", " \n", "def on_xfak_change(change):\n", " \n", " try:\n", " ann.remove()\n", " ann1.remove()\n", " except:\n", " pass\n", " \n", " ax[0].lines = [];\n", " ax[1].lines = [];\n", "\n", " plot_eigenfunctions(ax, ew, ef, x, V, fak = sfak.value, single = ixx)\n", "\n", "def on_press(event):\n", " global ann, ann1, ixx\n", " \n", " ixx = min(enumerate(ew), key = lambda x: abs(x[1]-event.ydata))[0]\n", " \n", " for i in range(len(ax[1].lines)):\n", " ax[0].lines[i].set_alpha(0.1)\n", " ax[1].lines[i].set_alpha(0.1)\n", " ax[0].lines[i].set_linewidth(1.1)\n", " \n", " ax[0].lines[ixx].set_alpha(1.0)\n", " ax[1].lines[ixx].set_alpha(1.0)\n", " ax[0].lines[ixx].set_linewidth(2.0)\n", " \n", " try:\n", " ann.remove()\n", " ann1.remove()\n", " except:\n", " pass\n", " \n", " ann = ax[0].annotate(s = 'n = ' + str(ixx+1), xy = (0, ew[ixx]), xytext = (-0.15, ew[ixx]), xycoords = 'data', color='k', size=15)\n", " ann1 = ax[1].annotate(s = str(\"{:.3f}\".format(ew[ixx])), xy = (0, ew[ixx]), xytext = (-1.2, ew[ixx]+0.005), xycoords = 'data', color='k', size=9)\n", "\n", "cid = fig.canvas.mpl_connect('button_press_event', on_press)\n", "\n", "def on_update_click(b):\n", " for i in ax[0].lines:\n", " i.set_alpha(1.0)\n", " for i in ax[1].lines:\n", " i.set_alpha(1.0)\n", "\n", " try:\n", " ann.remove()\n", " ann1.remove()\n", " except:\n", " pass\n", " \n", "update = Button(description=\"Show all\")\n", "update.on_click(on_update_click)\n", "\n", "swidth1.observe(on_width_change1, names = 'value')\n", "sdepth1.observe(on_depth_change1, names = 'value')\n", "swidth2.observe(on_width_change2, names = 'value')\n", "sdepth2.observe(on_depth_change2, names = 'value')\n", "sdist.observe(on_dist_change, names = 'value')\n", "sfak.observe(on_xfak_change, names = 'value')\n", "psi_x.observe(on_width_change1, names = 'value')\n", "\n", "label1 = Label(value=\"(click on a state to select it)\");\n", "\n", "display(HBox([swidth1, sdepth1]), HBox([swidth2, sdepth2]), HBox([sdist, sfak]), HBox([psi_x, update, label1]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* **Width:** the width of the quantum well.\n", "* **Depth:** the depth of the quantum well.\n", "* **Zoom factor:** the zoom factor of the eigenfunctions. \n", "* **Gap distance:** the distance between two quantum wells (edge to edge)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "## **Legend**\n", "\n", "(How to use the interactive visualization)\n", "\n", "### Interactive figures \n", "\n", "There are two subplots shown above. The wide figure on the left shows \n", "the well potential and the square moduli of the eigenfunctions, $|\\psi|^2$, of different \n", "states. The narrow figure on the right shows the eigenvalues.\n", "One can highlight the square modulus of a particular eigenfunction, $|\\psi|^2$, along with its corresponding eigenvalue \n", "by clicking on the plot. All the other states will \n", "be hidden from the plot. \n", "\n", "### Controls\n", "\n", "There are sliders to adjust the depth and width of the quantum well potentials. \n", "One can also tune the distance between the two quantum wells. \n", "By clicking the \"Show all\" button, one can see all states again.\n", "The radio button is used to choose whether to show the wavefunctions $\\psi$ or the \n", "probability densities $|\\psi|^2$." ] }, { "cell_type": "code", "execution_count": null, "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.9.7" }, "voila": { "authors": "Dou Du and Giovanni Pizzi" } }, "nbformat": 4, "nbformat_minor": 4 }