{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from __future__ import print_function, division\n", "from sympy import symbols\n", "from sympy.core import S, pi, Rational\n", "from sympy.functions import sqrt, exp, factorial, gamma, tanh\n", "from sympy.functions import assoc_laguerre as L\n", "from sympy.functions import assoc_legendre as P\n", "from sympy.physics.quantum.constants import hbar\n", "\n", "from sympy import init_printing\n", "init_printing()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Morse potential\n", "\n", "The [Morse potential](https://en.wikipedia.org/wiki/Morse_potential) is given by\n", "\n", "$$ V(x) = D_e [1 - e^{-a(r-r_e)}])$$" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "x, lam = symbols(\"x lambda\")\n", "n = symbols(\"n\", integer=True)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def morse_psi_n(n, x, lam, xe):\n", " Nn = sqrt((factorial(n)*(2*lam - 2*n - 10))/gamma(2*lam - n))\n", " z = 2*lam*exp(-(x - xe))\n", " psi = Nn*z**(lam - n -S(1)/2) * exp(-S(1)/2*z) * L(n, 2*lam - 2*n - 1, z)\n", " return psi " ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def morse_E_n(n, lam):\n", " return 1 - 1/lam**2*(lam - n - S(1)/2)**2 " ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJwAAAA4BAMAAAD6G4yGAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAzRAiu5mrdu/dZjJE\niVS5jG64AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADdElEQVRYCa1XPWsUQRie+/Jub/e8I4VgY7aQ\nFDa5wsYqQQzaeUgMdjlt/Ghy/yApVBSDifiFlQpaJ4J9thREEpCUYgqF2OSCFhK/1t155515d2Zn\nLoG7IvO8z/PMs7uzO+9uGBveb3MqHF4Ya7QPtYYY57X9H0OMq0WlP0OMY+zw96HGeb19xjUiu3FM\nSpsSDQAuY4D3s96xphRCKjW6tCJ4JMUvBfGBvScShaXzIS23M5VSTvK1L29wxj+2c1pJFBWn5kJS\nFxdJQeDxGR5XvM+5WhzvEjED50NSlm2LUoUnY5t482Emrk+zqV/EeXC1VNFwJu6xJspSxB0euLlo\nXN3qFnHMejw8MI3zJpHVR4xbCXVFq2ncWqSJssS48Z6k8gGNu5RvSViMK7SsFhBo3G2rF+Oq1tUV\nU0mc/2tgXOmn1QICiXMcGs+O3XTHzSw9eYGO8gJHJ9pIyLFybe8GFOckx3hXUKWBapOcqrs692d5\nLOgKRogixjuAHynKQCuRoERXMAyKWO8BJsupRIHWhEc9O4YFif4WoAk5BRU14hXsI25+FaYVltV0\nHTW7yMibjYQ+zraBqf/WFVU3JxHvO674F6eYY62F3MA47PP+HZxijjW5EBBXPPos+T1YTZzNWP52\n04lzYvbbfpQgw8hVb4EPyZ/BZwdOf6TWxTnGeIC42ZDPfteu8JM1olLC0y7WNDWmLwAJGyi4x/x/\npksw+tqZxo/sMpDw3K1vMWbfZvLOqq6gEnnzeMjW2pyC/Xg2wX0glFEi9dxJSgHePBbZRMQpfkOV\nSFDp4plVKNUmI7KEcFXibY0tQKoSjLGG6FqqBUiRAGgeT4GxH/kKY+LRxjZBMgjkzaPRAUYuMzEA\nvJs843C1qn0apoTgzeO1UMq7eZaUGw0xDndOvjNtHsFGAEd2bpvnIU9wv3rS5vFm5wtYHU8vC6DL\nDHgxps1jKY7Fqdtf20x8vjjenWkGNA+RxmYRmOM0UOVlU1KM1jzWIyVlUbULdbOX5bOV1jy8TlZW\n1VdWaqeV84NMbx51+AJWKYj8DqvyuCPI5I1G87iV50q4U582r6dS4PyAMpqH2LxG6Ggc76Wk9cve\nmMGJgnXxwL8d5s+zsCXHGzaZYvsvxpLG2DerkgoHvFbGKl1X3iuXmKtdzWWBDFoOMV+qRPl8yo6F\nSvsPe7bRXZqxFwwAAAAASUVORK5CYII=\n", "text/latex": [ "$$1 - \\frac{1}{\\lambda^{2}} \\left(\\lambda - \\frac{1}{2}\\right)^{2}$$" ], "text/plain": [ " 2\n", " (λ - 1/2) \n", "1 - ──────────\n", " 2 \n", " λ " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "morse_E_n(0, lam)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from sympy.functions import cosh" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Pöschl-Teller potential\n", "\n", "\n", "The [Pösch-Teller potential](https://en.wikipedia.org/wiki/P%C3%B6schl%E2%80%93Teller_potential) is given by\n", "\n", "$$ V(x) = -\\frac{\\lambda(\\lambda + 1)}{2} \\operatorname{sech}^2(x)$$" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def posch_teller_psi_n(n, x, lam):\n", " psi = P(lam, n, tanh(x))\n", " return psi" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIMAAAAdBAMAAAB738JmAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAdqu7zZkQ7zKJVEQi\n3WYRMBq/AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACvUlEQVQ4EZ1TTWgTURD+kk032+62bnoo5KJR\nESwKhlZQsGg0KHgyehe3goin9qIIeli1eBHaKNSbNiiIB8FWD4IgrvTgRTSKFpQiURAqWknR+FNt\n68z7SbJKD8kHM/PNvDffvr8FqngiWaFaaJiYedky3HBntcHwJG31ZWzCT6geM91Es2zp051bNWk4\nFoEPM4kckGi4VTVYGeDTIk4D15qVsNNw+ov4DtxtWiIFRF17EBgSElZpWSV97TM0gw3oXOpZu9uz\n6CLifkvOxx1RnRS+zp3bqxKHZgpEffoqGeEbYJwwi8AztN/38VEU9wC2INqZLxSLebqUIcIG6xfQ\nNocp0PcjV4ENXIzkgSNMauhRNFktMRNZ5Dd1VLBSj2SYxAO6YyY1aAm6NIWjFNlglGlL8zBUva3E\n5AGtrKIqKigJm3asECsAbFiRoVPIwS4RJxwWfhR4v7CmgHdJF0PHz3S6QM8j9mjNAWZi48RFSTnF\nSB72a4o3RS+6RNhO/hWtZBoHgKzr/AF6S+xhlIBjmHVfAh0ZaVjVPbo/oLEQ3lDGEifx0MMWYBHK\no70AXMaYd4tGi9Kwwws1y+QUBZKAlTwUYDMwB+URHwc8ZHmaVZaGBc5Mfd6cEJSEmQ1GfPQKCemF\nhMhrElZF9AyQeB3kRtxYESPnvZAEbwTWT5j09mgjbPwsCNGUCNrxce5CfiCP2xf8kAQf541ImY9d\nH2eMfk6CLYPg5C6RHUQ+nsbYcHgVrSnY80bZKQEtOWEt+766ou+58NrR00K0O3DWJfp3nl1af/1H\nSnqxcnN1V/ILTYiNS9NNVzQRsT0IpfXJdDV5TIxNwdnka8qxg9a4DGq/Dj1QsCkMGSlNRewLZfWJ\nEajMzNBjIFOwpv45z0k98l900qrEWlU94J6Pt6HJfOLL4Kmqf6bIprANmNW8wfgX1iWwNkue7DYA\nAAAASUVORK5CYII=\n", "text/latex": [ "$$P_{\\lambda}^{\\left(n\\right)}\\left(\\tanh{\\left (x \\right )}\\right)$$" ], "text/plain": [ "assoc_legendre(λ, n, tanh(x))" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "posch_teller_psi_n(n, x, lam)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def morse_E_n(n, lam):\n", " if n <= lam:\n", " return -n**2/ 2\n", " else:\n", " raise ValueError(\"Lambda should not be greater than n.\")" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADMAAAAPBAMAAAC7N+rPAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEM3dMiK7mat272aJ\nRFQidGHIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA1ElEQVQYGWNggANFBgbW8jQHEJ9pIkstXJyB\nIewjA4MEA89fkBDX//8TEFJiFUCpRgaGVSAhphNTETIMDJxAqcUMDP0OQEEOZAmIlL4ATimgYnsB\nkK7d0x2QNIIMZGDg/QMi2QRYwc4BsYEAIsWcAGIDQTIDg5AxCKjApMogEgwM9QEwFlSKswEs0MTA\ncP4CmtRzBlaQ6kVAXSDnQAHILpYCBk6QVAEDgxFMHEiDpILPHG9mkFdgCGfgXoqQYu/63M2g////\nZwbmBgbWmnYk8xCKYCwACHYv/n5PyX0AAAAASUVORK5CYII=\n", "text/latex": [ "$$-12.5$$" ], "text/plain": [ "-12.5" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "morse_E_n(5, 6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### References\n", "\n", "- Pöschl, G.; Teller, E. (1933). \"Bemerkungen zur Quantenmechanik des anharmonischen Oszillators\". Zeitschrift für Physik 83 (3–4): 143–151. doi:10.1007/BF01331132.\n", "\n", "- Siegfried Flügge Practical Quantum Mechanics (Springer, 1998)\n", "Lekner, John (2007). \"Reflectionless eigenstates of the sech2 potential\". American Journal of Physics 875 (12): 1151–1157. doi:10.1119/1.2787015." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.core.display import HTML\n", "def css_styling():\n", " styles = open('./styles/custom_barba.css', 'r').read()\n", " return HTML(styles)\n", "css_styling()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 0 }