{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "_A Jupyter Notebook from my scipython blog at https://scipython.com/blog/e-x-b-drift-for-an-arbitrary-electric-potential/_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# E x B drift for an arbitrary electric potential\n", "\n", "Consider a particle of charge $q$ and mass $m$ moving in a constant magnetic field, $\\boldsymbol{B} = (0, 0, B_z)$ perpendicular to an electric field derived from some potential $V(x,y)$: $\\boldsymbol{E} = -\\nabla V$. Concretely, suppose that $V(x,y)$ is a two-dimensional Gaussian function centred on $(x_0, y_0)$ with a characeristic width $\\alpha$:\n", "$$\n", "V(x,y) = \\exp\\left( -\\frac{(x-x_0)^2 + (y-y_0)^2}{\\alpha} \\right)\n", "$$\n", "The motion of a particle in this electromagnetic field can be shown to consist of gyromotion around an isocontour line of the electrostatic potential. This can be demonstrated by numerical integration of the Lorentz equation of motion, as illustrated below." ] }, { "cell_type": "code", "execution_count": 133, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy as np\n", "from scipy.integrate import odeint\n", "import matplotlib.pyplot as plt\n", "from matplotlib import animation, rc\n", "rc('animation', html='html5')" ] }, { "cell_type": "code", "execution_count": 134, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Setup a time grid on which to carry out the integration.\n", "dt = 0.001\n", "N = 10000\n", "tmax = (N-1)*dt\n", "t = np.linspace(0, tmax, N)" ] }, { "cell_type": "code", "execution_count": 152, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# particle mass, charge and charge/mass ratio.\n", "m, q = 0.01, 1\n", "qom = q / m\n", "# Parameters for the electrostatic potential, a 2D Gaussian\n", "# centred at (Vx0, Vy0) with characteristic width alpha.\n", "alpha = 10\n", "Vx0, Vy0 = 1,1\n", "\n", "# Initial particle position and velocity.\n", "x0, vx0, y0, vy0 = (0, 7.6, 0, 0)\n", "\n", "# Fixed, constant magnetic field in z-direction\n", "Bz = 0.3\n", "def get_Bz(x, y):\n", " \"\"\"Return Bz at point (x, y) in space.\"\"\"\n", " return Bz\n", "\n", "def get_V(x, y):\n", " \"\"\"Electrostatic potential function.\"\"\"\n", " V = np.exp(-((x-Vx0)**2+(y-Vy0)**2)/alpha)\n", " return V\n", "\n", "def get_E(x, y):\n", " \"\"\"Return the electric field, (Ex, Ey) = -∇V at point (x, y) in space.\"\"\"\n", " V = get_V(x, y) \n", " return 2*(x-Vx0)/alpha * V, 2*(y-Vy0)/alpha * V" ] }, { "cell_type": "code", "execution_count": 167, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 167, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Draw the contours of electrostatic potential.\n", "cN = 100\n", "x = np.linspace(-5, 6, cN)\n", "y = np.linspace(-5, 6 ,cN)\n", "X, Y = np.meshgrid(x, y)\n", "\n", "# Make sure we have a contour along the guiding centre so add the gyroradius,\n", "# rlam, to a contour position on the particle's trajectory.\n", "rlam = vx0 / qom / Bz\n", "levels = get_V(np.array([5,4,3,2,1]) + rlam, np.array([0]*5))\n", "plt.contour(X, Y, get_V(X, Y), colors='k', levels=levels)\n", "# Draw markers representing the magnetic field coming out of the plane of the plot.\n", "plt.scatter(X[::cN//10, ::cN//10], Y[::cN//10, ::cN//10], marker='o', edgecolors='gray', s=200, c='white')\n", "plt.scatter(X[::cN//10, ::cN//10], Y[::cN//10, ::cN//10], marker='.', c='gray')" ] }, { "cell_type": "code", "execution_count": 168, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def deriv(X, t):\n", " \"\"\"Return the derivatives x, dxdt, y, dydt to the ODE solved.\"\"\"\n", " x, xdot, y, ydot = X\n", " Bz = get_Bz(x, y)\n", " Ex, Ey = get_E(x, y)\n", " xdotdot = qom * (Ex + ydot * Bz)\n", " ydotdot = qom * (Ey - xdot * Bz)\n", " return xdot, xdotdot, ydot, ydotdot " ] }, { "cell_type": "code", "execution_count": 169, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 169, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Integrate the ODE with the provided initial conditions.\n", "X0 = (x0, vx0, y0, vy0)\n", "P = odeint(deriv, X0, t)\n", "x, _, y, _ = P.T\n", "\n", "plt.xlim(-5,6)\n", "plt.ylim(-5,6)\n", "plt.plot(x,y)" ] }, { "cell_type": "code", "execution_count": 171, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.show()" ] }, { "cell_type": "code", "execution_count": 150, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def init():\n", " \"\"\"Initialize the trajectory animation.\"\"\"\n", " \n", " fig = plt.figure()\n", " ax = fig.add_subplot(111)\n", " \n", " levels = get_V(np.array([5,4,3,2,1]) + rlam, np.array([0]*5))\n", " ax.contour(X, Y, get_V(X, Y), colors='k', levels=levels)\n", " # Draw markers representing the magnetic field coming out of the plane of the plot.\n", " ax.scatter(X[::cN//10, ::cN//10], Y[::cN//10, ::cN//10], marker='o', edgecolors='gray', s=200, c='white')\n", " ax.scatter(X[::cN//10, ::cN//10], Y[::cN//10, ::cN//10], marker='.', c='gray')\n", "\n", " ln, = ax.plot(x[0], y[0])\n", " \n", " return fig, ax, ln\n", "\n", "def animate(i):\n", " \"\"\"The main animation function, called for each frame.\"\"\"\n", " \n", " ln.set_data(P[:i,0], P[:i,2])\n", "\n", "fig, ax, ln = init()\n", "anim = animation.FuncAnimation(fig, animate, frames=5000, interval=5, blit=False)" ] }, { "cell_type": "code", "execution_count": 151, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "execution_count": 151, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import HTML\n", "HTML(anim.to_html5_video())" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [conda env:py35]", "language": "python", "name": "conda-env-py35-py" }, "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.5.2" } }, "nbformat": 4, "nbformat_minor": 1 }