{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Reading data and 1-D plotting with DISPATCH" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**NB**: Remember to set the `PYTHONPATH` environment variable to `$DISPATCH_DIR/utilities/python`, where `$DISPATCH_DIR` is the location of your DISPATCH repository." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook assumes you have already compiled DISPATCH for the 1-D MHD shock experiment (`make`) and run the code (`./dispatch.x`) successfully.\n", "The data can be found in the `data` directory.\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "scrolled": true }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import matplotlib.gridspec as gridspec\n", "import dispatch\n", "import dispatch.select\n", "import itertools" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, read a snapshot." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "parsing ../../../experiments/mhd_shock/data/00009/snapshot.nml\n", " parsing io_nml\n", " adding property io\n", " parsing snapshot_nml\n", " parsing idx_nml\n", " adding property idx\n", " parsing units_nml\n", " adding property units\n", " parsing cartesian_params\n", " adding property cartesian\n", "parsing ../../../experiments/mhd_shock/data/00009/rank_00000_patches.nml\n", " added 3 patches\n", "\n", "timer:\n", "snapshot metadata: 0.008 sec\n", " _patches: 0.003 sec\n" ] } ], "source": [ "datadir = '../../../experiments/mhd_shock/data'\n", "snap = dispatch.snapshot(iout=9,verbose=1,data=datadir)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1 [0.16666667 0.005 0.005 ] [0.33333333 0.01 0.01 ] 0.09 [66 1 1] [0.00564972 0.01 0.01 ] 7\n", "2 [0.5 0.005 0.005] [0.33333333 0.01 0.01 ] 0.09 [66 1 1] [0.00564972 0.01 0.01 ] 7\n", "3 [0.83333333 0.005 0.005 ] [0.33333333 0.01 0.01 ] 0.09 [66 1 1] [0.00564972 0.01 0.01 ] 7\n" ] } ], "source": [ "for p in snap.patches: print(p.id, p.position, p.size, p.time, p.gn, p.ds, p.level)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Printed from left to right are the patch ID, the centre of the patch in Cartesian coordinates, the time of the patch in the current snapshot, and the dimensions of the density/patch.\n", "\n", "In this case, although we are dealing with a 1-D MHD shock tube, the solver employed does not permit true 1-D or 2-D calculations and thus there are a few dummy zones in the y- and z-directions." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{0: 'd', 4: 'e', 1: 'px', 2: 'py', 3: 'pz', 5: 'bx', 6: 'by', 7: 'bz'}\n", "Patch kind: stagger2_mhd_pat\n" ] } ], "source": [ "indices = snap.patches[0].idx.vars.copy()\n", "print(indices)\n", "print(\"Patch kind:\",snap.patches[0].kind)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note: From here on, we assume that the shock tube runs along the *x-direction*." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize=(14.0,6.5))\n", "fig.clf()\n", "ncols, nrows = 4, 2\n", "gs = fig.add_gridspec(ncols=ncols,nrows=nrows)\n", "axes = []\n", "for j,i in itertools.product(range(ncols),range(nrows)):\n", " cax = fig.add_subplot(gs[i,j])\n", " axes.append(cax)\n", "\n", "if 'et' in indices.values(): indices.pop(snap.patches[0].idx.et) # If stored, don't plot total energy.\n", "\n", "for cax, v in zip(axes, indices):\n", " colrs = itertools.cycle(['r','g','b','c','m','y','k']) \n", " for p in snap.patches:\n", " jslice, kslice = 0, 0\n", " if p.kind == 'ramses_mhd_patch': jslice, kslice = 4,4\n", " cax.plot(p.x[p.li[0]:p.ui[0]],p.var(v)[p.li[0]:p.ui[0],jslice,kslice],marker='o',color=next(colrs),zorder=0.1*p.level)\n", " cax.set_xlabel(r'$x$')\n", " cax.set_ylabel(p.idx.vars[v])\n", "\n", "axes[0].set_title(r't = {0:.03g}'.format(snap.patches[0].time))\n", "fig.tight_layout()\n", "plt.savefig(snap.patches[0].kind.strip())\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here are the MHD variables stored in this patch and their associated index in the data. `px` is the x-component of momentum, etc.\n", "You don't have to remember these indices because you can always retrieve them using aliases, e.g., `patch.idx.d`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's the density at t = 0.09. Different colours have been used for each patch." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now what if you want to see all of the data as one single array (which can be useful for analysis)?" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "scrolled": false }, "outputs": [], "source": [ "x, rho = dispatch.select.values_along(snap.patches,[0.0,0.0,0.0],dir=0,iv=snap.patches[0].idx.d)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, '$\\\\rho$')" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig2 = plt.figure()\n", "fig2.clf()\n", "plt.plot(x,rho,'co')\n", "for p in snap.patches:\n", " edge = p.position[0] - 0.5*p.size[0]\n", " plt.plot([edge,edge],[-10,10],'k--')\n", "plt.axis(ymin=0.15,ymax=1.05,xmin=0.0,xmax=1.0)\n", "plt.xlabel(r'$x$')\n", "plt.ylabel(r'$\\rho$')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that I've manually added vertical lines to denote patch boundaries." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(180,)\n" ] } ], "source": [ "print(rho.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you can see, the data is now available as a single numpy array." ] } ], "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.6.7" } }, "nbformat": 4, "nbformat_minor": 2 }