Skip to content
Snippets Groups Projects
test_jupyter_extensions.ipynb 33.7 KiB
Newer Older
Markus Holzer's avatar
Markus Holzer committed
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from pystencils.session import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "dh = ps.create_data_handling(domain_size=(256, 256), periodicity=True)\n",
    "c_field = dh.add_array('c')\n",
    "dh.fill(\"c\", 0.0, ghost_layers=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "for x in range(129):\n",
    "    for y in range(258):\n",
    "        dh.cpu_arrays['c'][x, y] = 1.0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x7f5fa4f1cdc0>"
Markus Holzer's avatar
Markus Holzer committed
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
Markus Holzer's avatar
Markus Holzer committed
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f5fa4f425b0>"
Markus Holzer's avatar
Markus Holzer committed
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scalar_field(dh.cpu_arrays[\"c\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "ur = ps.Assignment(c_field[0, 0], c_field[1, 0])\n",
    "ast = ps.create_kernel(ur, target=dh.default_target, cpu_openmp=True)\n",
    "kernel = ast.compile()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "c_sync = dh.synchronization_function(['c'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def timeloop(steps=10):\n",
    "    for i in range(steps):\n",
    "        c_sync()\n",
    "        dh.run_kernel(kernel)\n",
    "    return dh.gather_array('c')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "ps.jupyter.set_display_mode('video')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<video controls width=\"80%\">\n",
       " <source src=\"data:video/x-m4v;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAAGY9tZGF0AAACcgYF//9u3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE2MCByMzAxMSBjZGU5YTkzIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAyMCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTAgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTEzIGxvb2thaGVhZF90aHJlYWRzPTIgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAOjWWIhAvyYoAAqcScnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/jpjbGB7AAzGAv7sCipqrccEuOuIt9wAQv19XnkMpGlotPm4GczKBOwyaRQEfbjkIzAXIjSREc//2ziZbN/UzdeETcuEXwGTTXk02oxGpWgc6S67htGL9CBekqo/X9B3HgDmoP/f+ceQBarBL+ZXP9oApPT4HbR3wS/wYCzUhqYDZhE+OOUh99X0hW1mMGaeH/8J8ABkkSBohw/FnngsMbX9xCvvvvvvvvvvvvvvv8f+HgsE4Cjp/jaBACYDCwrG0AVtB8IgdLCBIQUcc8YNbW1tbW1wgGAB/QKwjjDRnUSaTcpkpn4BiH/BYGsLgACAj7CCFNYDJAOgLRDuIdEO7Qhpra2tra2tr4//0CsN7B0TptvPp9/8fhoOBLgOCcXpbOECwQlgC8w+QmlLBBmP4/D+gVglwejFLY4JOiAaSWHBpJfkNENbXx+AfsFYawIHG1W5BCoGcBoAX8mYqjmeQAjl3MJWNspK5uIV99999999999999/j7/DhQTwAI4v2wAECXNli4J6h+uuuuuuuuuuuuu+8NQTKoJxQDfffffffffffffffTBIp4IRQNHbW1tbW1rp5ujgAEaWlpaWlpaWunplrpgiF3BHfffffffffffffffXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXT09ddddddPT1111111109PXT1111111111111111111111111111111111111111111111111109PXXXXXXT09ddddddddPT109ddddddddddddddddddddddddddddddf+OmIskYHsADMYC/uwKKmqqjpqLMqldrgAhfr6vPIZSNLRafNwM5tMDm1BhEJokv32mhMzAfJhYivf9/oMhowv51Mu8f+6jhQ3ThF8CiXa2u/3+C8Qkp6CTpJrqPY3MAT+hz/XurDsLAHNlD3fWmIJk7Ct+5XN9oAUnPS8WjkkLeDAWakNTAbMInxxykPvq+kK2sxgzQdr/9/6h+uuuuuuuuuuuuuuunp6666666enrrrrrrrrp6eunrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrvv9dddddddddddddddddPT11111109PXXXXXXXXT09dPXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXT09ddddddPT1111111109PXT1111111111111111111111111111111111111111111111111109PXXXXXXT09ddddddddPT109ddddddddddddddddddddddddddddddf+OOBhsPcABnuJskZxCX40DQ+ZSYa7JpymxA6ZqOcdY3Q4ACZOIaL8uToowzoOzhLnLS5KSXtFhNoRCF5Sl9uHRwU8uYWmuP0By+L+nN5BY56IiXACsbIO1idRHFfNO8IPEK4T25XEFRA55n41o8NY6X/7zhhlgjEZvTj7VYALmCDpmtchD74Px3/+/6h+uuuuuuuuuuuuuuunp6666666enrrrrrrrrp6eunrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrvv9dddddddddddddddddPT11111109PXXXXXXXXT09dPXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXT09ddddddPT1111111109PXT1111111111111111111111111111111111111111111111111109PXXXXXXT09ddddddddPT109ddddddddddddddddddddddddddddddf+OOEDsPcABnuJskZxCX40DQ+ZSYa7JpoKKUgqYyOESdf+hwAEycQ0X5cnRRhlzQABloKxB1aLCbQiELylL7a3iF8iU5VGz/7uv9y+L4QUaCQt7oP/vABWNkHaxOojivtjwADMD+ONiuIKiBzy/xqLC3Q4/+98MMsEYjN6cfarABcwQdM1rkIffB+O//3/UP11111111111111109PXXXXXXT09ddddddddPT109ddddddddddddddddddddddddddddddd9/rrrrrrrrrrrrrrrrrp6euuuuuunp666666666enrp666666666666666666666666666666666666666666666666666enrrrrrrp6euuuuuuuunp66euuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuunp6666666enrrrrrrrrp6eunrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr//6cKBzgAPsCQRv+3n4UUa80OCs/Hu7kze6VgMIuLjmJU+3V8IXHhF/iIbivd3b5FxO4FUc4civi6h6nBEX5kMFdVsQG//5xsAAQAhZOIQdWkhGxGJCTOX/3aB1zmCKn44bOb/3gAuYECpmtchD77/XUO11111111111111109PXXXXXXT09ddddddddPT109ddddddddddddddddddddddddddddddd9/rrrrrrrrrrrrrrrrrp6euuuuuunp666666666enrp666666666666666666666666666666666666666666666666666enrrrrrrp6euuuuuuuunp66euuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuunp6666666enrrrrrrrrp6eunrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr++kILliw9gEj9ewIAd9NQZtHWN97jCKU63fW8Wwp19ngwYNE4rbS3pqs5rzuCNgwyYrHJQ++D+H+AQDgggIocwHhfKaIlzoYf/gGAWghwAE2QaSd2RO3XIIlQMZU9d5w+I/41rX2mt99999//jD2hUSl4ACbINJu7Iit1yCJUDGVPTec++++++/8OMYBaC6Ah9c7gBmRojF1IqO/3MRjOu4qXAptFwcIEhADRKhOdAeiRhCY/DoQkxa2s6Lr/xh9AqP/+UyUy1hdC/+TSbk0m8XYTC2mvhx6AgQXBgADb2VDpHe2HiCCulgiOjrJuB6AjgdGWWzcmk06rntbW0U1tbWLRUDc5DJDPj0YBH6ce//ABhdKZskfeD9mQ0ikM9oi/hj/guwHAEkWW+gIwcQBME0CU5bXayaTf+AQANAtBKDomWW5iTQill0ZB6M4HOpYc6ltcP4BgGwWhYBDaarVz8ITIgBcADOv2xGX8YPDg+33/+P0GCGAAkzCS7O6KpM41kBGqBzKnz639999999//j9AghgAJMwkuzui9s41kBGqBzKnz6399999/8MfxghwANWCOcxjnEu59++ofrrrrrrrrrrrrrrvr/qxeL8UHsABMfilBvqswhfE+u2TVp6cADx0ERW2IrR/LDGiUdUl1bq99xkCq2OVMNW7//dQ3tqF7/gzIwABAo+8tZnaGu/3vv9wnwPf3AU8ZRGM9bHuqd3EkB0VSUocxmt//ylY9V7tfU3sDY/9pOlGkN//XfEIlpNQ//3b8QIOQWV33XbxOJMxzfm/9/18d/Lf+tv+4fFAAM33333/cDDCAH2HoANbnOSfu8A4AB4CPEy1jjEG6Ikzr3vwHzpmEWx0xxJN4bJsVhX6qkcwSXkEIQV1qwOxXmA0bTtbWh1A7JRy5fXWNMSpTFKw3tf9X07rl4ngJKfIQpkZRX/+7AgBrF5lBF8dVhf/OhdisW7euPpKbFLZdd9udXxzvf/777fm2zfFUHEiUVspDDcPigAGb7777/2YPmWgoHAAHGSCZ+NetCEECf/uBI6kNDsSYp55xFbosX42yyBzyN6I6sA7mTLRu37yzY1LYr+2/f5EHQABtbW1paWl+BLwwfTBAAA2cTQ7liVl6Rw3MUboWw2QY0x5DeO5jm3EKywnJNtArJJxUP/3mtA5ZvH6S3+xoO3aV543f4AEItZHMXVP2y2y0bbYMP1USZFEJXRc4oXlJGv3wf4YcP6CZQFPCa5zktYSRk3geLKxzV/Pz+Yjp5IOuf/n/aDtrS0tLa8WZ1Cg6vpggAAbcjQdnzUj8cFxLRq0PSyJv4/JTeifBqe+1jK2c6f+8hvFUxRItRE6vZNtIHZJNSr/960Dlm+fpPf7Gg7dpXnjd/6uZGK1ndF77+qya0YidvD3BIaJEQdM/f6uKFZSN/7/f/D8P6CZQFPCa5zktYSRk3g4srHNX8/P5iOnkg9r/+/+0HRQDXXS119YF0fVewQAAuWBiJvFahZu0D6AZCUJtNHF3IBGk1ifciqy4GtWnHWv5/X5//MbV2MQS7aVlN8Yk0dji6ikYqcTBST+xujf/RCFlBvJdoZLDHH5LdV78zNmPv+i0HvnF1e5/uyUS5licwn/f9f5f4TPoEnHzlNchXlx/e+VDs8tZ/7//X+ZmO9ff/z/uG77777+rAoaBuvYIAAFmIlhXtVCBi8EwI0QVraQnP7+xZEAHDClTNfrYRBu7omTd3vz1DbiKhNq9D5jBMxnEWjnOoa33zMh2JQN5Rdw9H9kp/2bCrghqcvdTam/cbOhuVVb61Rokgz577/n/L/CRwJ+L8CcdEJv7+9RF2kH+N75YbBxPH33311111111111111111131111111311111131111111111111113311111133111111331111111111111111111111111111111111111111111111111111111111111111111111111111111111114AAAA80GaOBfgLQ/n4ESAiqCHcDRzY/AP0GxeBwZWjnnQgF0FRlkoy/Bi5ZRcvxMDR4CQwb4a8RIfo7xPg48x3zvE+DjzHfO8T4OPMd87xPg48x3zvE+DjzHfO8T4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\" type=\"video/mp4\">\n",
Markus Holzer's avatar
Markus Holzer committed
       " Your browser does not support the video tag.\n",
       "</video>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ani = ps.plot.scalar_field_animation(timeloop, rescale=True, frames=12)\n",
    "ps.jupyter.display_animation(ani)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "ps.jupyter.set_display_mode('image_update')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
Markus Holzer's avatar
Markus Holzer committed
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f5fa4e07160>"
Markus Holzer's avatar
Markus Holzer committed
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ani = ps.plot.scalar_field_animation(timeloop, rescale=True, frames=12)\n",
    "ps.jupyter.display_animation(ani)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "def grid_update_function(image):\n",
    "    for i in range(40):\n",
    "        c_sync()\n",
    "        dh.run_kernel(kernel)\n",
    "    return dh.gather_array('c')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
Markus Holzer's avatar
Markus Holzer committed
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f5fc03ea6a0>"
Markus Holzer's avatar
Markus Holzer committed
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "animation = ps.jupyter.make_imshow_animation(dh.cpu_arrays[\"c\"], grid_update_function, frames=300)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "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.8.5"
Markus Holzer's avatar
Markus Holzer committed
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}