{ "metadata": { "name": "", "signature": "sha256:90e7a65f51e5c7a421720785d1041d94d7177b99390a5fd7fc5bb25c7898fe57" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline\n", "import numpy as np\n", "import pylab as plt\n", "from matplotlib import animation\n", "# JSAnimation import available at https://github.com/jakevdp/JSAnimation\n", "# Documentation at http://nbviewer.ipython.org/github/jakevdp/JSAnimation/blob/master/animation_example.ipynb\n", "from JSAnimation import IPython_display as display\n", "\n", "swarm_params = { 'Npart' : 100 , 'Noverdense' : 0, 'Nunderdense': 0}\n", "color_dict = { 'particle' : 'k.', 'overdense' : 'r.', 'underdense' : 'b.'}\n", "collapseParam = 2\n", "\n", "fig = plt.figure()\n", "ax = plt.axes(xlim=(-100, 100), ylim=(-100, 100))\n", "line, = ax.plot([], [], 'b.', ms=10)\n", "\n", "class agent():\n", " def __init__(self,id_number,pars):\n", " self.name = id_number\n", " self.xpos = pars['x_init']\n", " self.ypos = pars['y_init']\n", " self.cat = pars['cat']\n", " self.direction = 2*np.math.pi*np.random.rand(1)\n", " return None\n", " \n", " def update_position(self, newx, newy):\n", " self.xpos = newx\n", " self.ypos = newy\n", " return None\n", " \n", " def changeDirection(self, newdir):\n", " self.direction = newdir\n", " \n", "def agentSep(agent1,agent2):\n", " return np.sqrt((agent1.xpos-agent2.xpos)**2+(agent1.ypos-agent2.ypos)**2)\n", "\n", "class swarm():\n", " \n", " def __init__(self, pars):\n", " \n", " self.members = []\n", " \n", " for i in np.arange(pars['Npart']):\n", " temp = agent(i,{'x_init':0, 'y_init':0, 'cat': 'particle'})\n", " self.members.append(temp)\n", " \n", " def timeEvolveBeforeDecoupling(self, N):\n", " counter = 0\n", " while counter < N:\n", " for member in self.members:\n", " member.update_position(member.xpos+np.cos(member.direction),member.ypos+np.sin(member.direction))\n", " counter += 1\n", " \n", " def timeEvolveAfterDecoupling(self,N):\n", " counter = 0\n", " while counter < N:\n", " for member in self.members:\n", " minDist = 10000\n", " ydiff = 1000\n", " xdiff = 1000\n", " for other in self.members:\n", " if agentSep(member,other) < minDist and other.name != member.name:\n", " minDist = agentSep(member,other)\n", " xdiff = other.xpos - member.xpos\n", " ydiff = other.ypos - member.ypos\n", " #member.changeDirection(np.arctan2(ydiff,xdiff))\n", " if agentSep(member,other) != 0:\n", " member.update_position(member.xpos+collapseParam*xdiff/agentSep(member,other),member.ypos+collapseParam*ydiff/agentSep(member,other))\n", " counter += 1\n", " \n", " def showCurrentState(self):\n", " plt.figure()\n", " plt.grid(b=True, which='major', color='0.65',linestyle='-')\n", " for member in self.members:\n", " plt.plot(member.xpos,member.ypos,'b.')\n", " \n", " def animInit(self):\n", " line.set_data([], [])\n", " return line,\n", " \n", " def makeAnim(self,i):\n", " if i < 50:\n", " self.timeEvolveBeforeDecoupling(1)\n", " else: \n", " self.timeEvolveAfterDecoupling(1)\n", " xvec = []\n", " yvec = []\n", " for member in self.members:\n", " xvec.append(member.xpos)\n", " yvec.append(member.ypos)\n", " line.set_data(np.array(xvec),np.array(yvec))\n", " return line\n", " \n", " def play(self):\n", " movie = animation.FuncAnimation(fig, self.makeAnim, init_func=self.animInit,\n", " frames=100, interval=20, blit=True)\n", " return movie" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nQmCC\n", "text": [ "" ] } ], "prompt_number": 44 }, { "cell_type": "code", "collapsed": false, "input": [ "classroom = swarm(swarm_params)\n", "classroom.timeEvolveBeforeDecoupling(5)\n", "classroom.showCurrentState()\n", "classroom.timeEvolveAfterDecoupling(10)\n", "classroom.showCurrentState()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nRU5ErkJggg==\n", "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nRK5CYII=\n", "text": [ "" ] } ], "prompt_number": 45 }, { "cell_type": "code", "collapsed": false, "input": [ "classroom = swarm(swarm_params)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 46 }, { "cell_type": "code", "collapsed": false, "input": [ "classroom.play()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n", "\n", "
\n", " \n", "
\n", " \n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
\n", " Once \n", " Loop \n", " Reflect \n", "
\n", "
\n", "\n", "\n", "\n" ], "metadata": {}, "output_type": "pyout", "prompt_number": 47, "text": [ "" ] } ], "prompt_number": 47 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 43 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }