{
"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
}