{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Schroedinger Equation for Hydrogen Atom\n", "\n", "\n", "The Schroedinger equation is:\n", "\n", "\\begin{eqnarray}\n", "(-\\frac{\\hbar^2}{2m}\\nabla^2-\\frac{Z e^2}{4\\pi\\varepsilon_0 r})\\psi(\\vec{r})=E \\psi(\\vec{r})\n", "\\end{eqnarray}\n", "\n", "using ansatz:\n", "\n", "$\\psi(\\vec{r}) = Y_{lm}(\\hat{r})\\; u(r)/r$\n", "\n", "and introducing dimensionless variables:\n", "\n", "\\begin{eqnarray}\n", "x = \\frac{r}{r_B}\\\\\n", "\\varepsilon = \\frac{E}{E_0}\n", "\\end{eqnarray}\n", "where\n", "\\begin{eqnarray}\n", "&& r_B = \\frac{4\\pi\\varepsilon_0 \\hbar^2}{m e^2} \\approx 0.529 A\\\\\n", "&& E_0 = \\frac{\\hbar^2}{2 m r_B^2} == Ry \\approx 13.6 eV\n", "\\end{eqnarray}\n", "\n", "we get the differential equation\n", "\n", "\\begin{eqnarray}\n", "u''(x)-\n", "\\left(\\frac{l(l+1)}{x^2}-\\frac{2Z}{x}-\\varepsilon\\right)u(x)=0\n", "\\end{eqnarray}\n", "\n", "Next we rewrite into the system of first order equations:\n", "\n", "\\begin{eqnarray}\n", "y = \\left(u(x),u'(x)\\right)\\\\\n", "\\frac{dy}{dx} = \\left(u'(x),u''(x)\\right)\n", "\\end{eqnarray}\n", "\n", "with boundary conditions\n", "\\begin{eqnarray}\n", "&&u(0) = 0 \\rightarrow \\psi(0)<\\infty\\\\\n", "&&u(\\infty)=0 \\rightarrow \\int |\\psi(r)|^2 r^2 dr \\propto \\int u^2(r)dr < \\infty\n", "\\end{eqnarray}\n", "\n", "Because boundary conditions are given at the two ends, we need so-called shooting method" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Shooting algorithm:**\n", "\n", "Suppose the two boundary condistions are given at $a$ and $b$, i.e., $u(a)=u(b)=0$. Then\n", "\n", "* Choose $u(a)=0$ and $u'(a)=c$, with $c$ some constant.\n", "* Solve for $u(x)$ to the other end, and check if $u(b)=0$.\n", "* Using root finding routine find energy $\\varepsilon$ for which u(b)=0. This is the bound state.\n", "* Continue with increasing energy $\\varepsilon$ until sufficient number of bound states is found" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Some remarks**\n", "\n", "* It turns out that forward integration of the radial Sch. Eq. is unstable. It is better to start integrating from infinity, and then continue down to zero.\n", "* It is better to use logarithmic mesh for radial variable rather than linear. Radial functions need smaller number of points in logarithmic mesh" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**The implementation will follow these steps**\n", "\n", "
integrate.odeintto integrate the one-electron Schroedinger equation. Note that the distance is measured in units of bohr radius and energy units is Rydberg ($1 Ry = 13.6058...eV$)\n", "
\n", "
\n", "
optimize.brentq,to compute zero to very high precision. Store the index and the energy of the bound state for further processing.
\n", " Populate first $Z$ lowest laying electron states and\n", " compute \n", " $\\rho = \\sum_{lm\\in occupied} u_{lm}^2(r)/(4\\pi r^2)$. \n", " Each state with quantum number $l$ can take $2(2l+1)$\n", " electrons. Be carefull, if atom is not one of the Nobel gases\n", " (He, Ne, ...) the last orbital is only partially filled.\n", "\n", "