diff --git a/The hydrogen molecule ion.ipynb b/The hydrogen molecule ion.ipynb new file mode 100644 index 0000000..553efad --- /dev/null +++ b/The hydrogen molecule ion.ipynb @@ -0,0 +1,233 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# The Hydrogen molecule ion\n", + "\n", + "\n", + "For further reference look at Explain everything [Orbitals](https://drive.explaineverything.com/thecode/DRASNMU) and [Energy](https://drive.explaineverything.com/thecode/QBNXQVC).\n", + "\n", + "\n", + "Given the Born Oppenheimer approximation the wavefunction for the Hydrogen molecule ion is given as:\n", + "\n", + "\\begin{align}\n", + "\\psi_\\pm = \\frac{1}{\\sqrt{2 \\pm 2 s}} (s_a \\pm s_b)\n", + "\\end{align}\n", + "\n", + "where $s_a$ and $s_b$ are given as \n", + "\\begin{align}\n", + "s_a = \\frac{e^{-|r - r_a|}}{\\sqrt{\\pi}} && s_b = \\frac{e^{-|r - r_b|}}{\\sqrt{\\pi}} \n", + "\\end{align}\n", + "\n", + "and $s$ is the overlap integral \n", + "\n", + "\\begin{align}\n", + "s = \\int s_a s_b d r = \\left[1 + R + \\frac{1}{3} R^2\\right]e^{-R}\n", + "\\end{align}\n", + "\n", + "Where R is the distance between nucleus $a$ and $b$.\n", + "\n", + "\\begin{align}\n", + "R = |r_a - r_b| \n", + "\\end{align}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise 1\n", + "\n", + "Define a function overlap integral and plot it.\n", + "\n", + "```python\n", + "def overlap_integral(R):\n", + " \"\"\"input:\n", + " R: distance between r_a and r_b\n", + " output:\n", + " overlap integral s as defined above\n", + " \"\"\"\n", + "```\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise 2\n", + "\n", + "Define the wavefunctions $1s$ orbital.\n", + "\n", + "```python\n", + "def s_orbital(r_0, r):\n", + " \"\"\"\n", + " input:\n", + " r_0 is the center of the nuclei (r_a or r_b).\n", + " r is function variable as defined above\n", + " \n", + " output:\n", + " return the function values of the s_orbitals\n", + " \"\"\"\n", + "```\n", + "\n", + "Plot these and check that they look like nuclear cusps." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise 3\n", + "\n", + "\n", + "Using what you made in the previus exercises make the wavefunctions $\\psi_+$ and $\\psi_-$.\n", + "\n", + "```python\n", + "\n", + "def psi_plus(r_a, r_b, r):\n", + " \"\"\"\n", + " input:\n", + " r_a is the position of nuclei a\n", + " r_b is the position of nuclei b\n", + " r is the function variable\n", + " \n", + " output:\n", + " the fuction values of psi_plus\n", + " \"\"\"\n", + " \n", + "def psi_minus(r_a, r_b, r):\n", + " \"\"\"\n", + " input:\n", + " r_a is the position of nuclei a\n", + " r_b is the position of nuclei b\n", + " r is the function variable\n", + " \n", + " output:\n", + " the fuction values of psi_minus\n", + " \"\"\" \n", + " \n", + "```\n", + "\n", + "Plot the probability densities $s_a^2$, $s_b^2$, $\\psi_+^2$, $\\psi_-^2$ and the average probability of $s_a$ and $s_b$, $(s_a^2 + s_b^2)/2$.\n", + "\n", + "Plot the differences $\\psi_\\pm^2 - (s_a^2+s_b^2)/2$\n", + "\n", + "Try to vary the nuclear positions $r_a$ and $r_b$.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise 4\n", + "\n", + "In the lecture on [Energy of the Hydrogen ion](https://drive.explaineverything.com/thecode/QBNXQVC). We have the energy expressions \n", + "\n", + "\n", + "\\begin{align}\n", + "E_+ &= E_{1s} + \\frac{1}{R} - \\frac{(J + K)}{1 + s} \\\\ \n", + "E_- &= E_{1s} + \\frac{1}{R} - \\frac{(J - K)}{1 - s} \\\\ \n", + "\\end{align}\n", + "\n", + "where $E_{1s}$ is the 1st energy level of the Hydrogen atom which is $\\frac{1}{2}$ in atomic units. \n", + "\n", + "\\begin{align}\n", + "J &= \\langle s_a | V_b | s_a \\rangle = \\frac{1}{R} \\left[ 1 - ( 1 + R )e^{-2R} \\right] \\\\\n", + "K &= \\langle s_a | V_a | s_b \\rangle = (1 + R)e^{-R}\n", + "\\end{align}\n", + "\n", + "where $J$ corresponds to the Coulombic energy of interaction between electron density ^2 and the second nucleus $B$. $K$ has no classical analogue. We can think of it as representing the interaction of the overlap charge density $\\langle S_a | S_b \\rangle$ interacting with nucleus $A$.\n", + "\n", + "Define functions for $E_+$, $E_-$, $K(R)$ and $J(R)$\n", + "\n", + "```python\n", + "def K(R):\n", + "\n", + "def J(R):\n", + " \n", + "def E_plus(R):\n", + " \n", + "def E_minus(R):\n", + "```\n", + "\n", + "Plot $E_+$, $E_-$, $K(R)$, $J(R)$ and $S(R)$ and study them.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Plotting example\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "def my_sin(x):\n", + " return 2.0*np.sin(x)\n", + "\n", + "x = np.linspace(0, 10.0*np.pi, 1000)\n", + "y = my_sin(x)\n", + "\n", + "plt.plot(x, y)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}