{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Observationally, dense cores are often found in strands of high density gas with magnetic field through them. In the ``MHDSphere`` example, we try to model this by initializing a magnetic field in the z direction through our rotating, collapsing sphere." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![test](https://github.com/dorisjlee/remote/blob/master/astroSim-tutorial-img/hourglass.png?raw=True)\n", "\n", "Hourglass-shaped magnetic field in dense core NGC 1333 IRAS 4A ([Girart et al., 2006](https://www.cfa.harvard.edu/sma/research/imageGallery/sciPages/JGirart/))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The strength of the magnetic field is often characterized by the variable $\\beta$ (so-called `plasma beta'). Since we have already used $\\beta$ for the rotation parameter, let's use $\\alpha$ instead. \n", "\n", "The magnetic field exerts a pressure on the gas with magnitude (cgs)\n", "$$ P_{B} = B^2/8\\pi, $$\n", "where $B$ is the magnitude of the magnetic field $B=|\\vec{B}|$. The ratio of the thermal pressure to the magnetic pressure is the plasma `$\\alpha$':\n", "$$ \\alpha = \\frac{P_T}{P_B} = \\frac{\\rho c^2}{B^2/8\\pi}\\ .$$\n", "where $P_T$ is the thermal pressure.\n", " So it is easily shown that the magnetic field is determined by the single parameter $\\alpha$,\n", "$$B=\\sqrt{\\frac{8\\pi P_T}{\\alpha}}$$\n", "Small values of $\\alpha$ imply strong magnetic fields. Observations of clouds typically reveal $\\alpha$ values $\\leq 1$, implying that the magnetic field can play a dynamic role in the star formation process. \n", "\n", "In setting up the initial magnetic field, you can use the equation above to solve for $B$ as a function of $\\alpha$, $\\rho$, and $c_s$. For simple initial conditions, try setting up a uniform magnetic field in the $z$-direction. In that case $B_z=B$. \n", "\n", "We perform the simulation without rotation ($\\beta=0$) with a strong magnetic field ($\\alpha \\sim 0.1$) and no sink particles.\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Adding alpha as a new parameter \n", "\n", "Inside Simulation_init(): \n", "~~~fortran\n", "call RuntimeParameters_get('alpha',alpha) ! thermal-to-magnetic pressure ratio\n", "~~~\n", "Inside Simulation_data: \n", "~~~fortran\n", "real, save :: sim_rhoLeft, sim_rhoRight, sim_pLeft, sim_pRight, fattening_factor,beta_param,alpha\n", "~~~\n", "\n", "Inside Config declare new variable: \n", " \n", " PARAMETER alpha REAL 1." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Initializing magnetic fields in Simulation_initBlock.F90" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "~~~fortran\n", "use Simulation_data, ONLY: sim_smallX, sim_gamma, sim_smallP,fattening_factor,beta_param,alpha\n", "~~~" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "25.132741228718345" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "8*pi" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "~~~fortran\n", " ! MHD\n", " Bz = sqrt(25.132*presZone/alpha)\n", " call Grid_putPointData(blockId, CENTER, MAGX_VAR, EXTERIOR, axis, 0.0)\n", " call Grid_putPointData(blockId, CENTER, MAGY_VAR, EXTERIOR, axis, 0.0)\n", " call Grid_putPointData(blockId, CENTER, MAGZ_VAR, EXTERIOR, axis, Bz)\n", "~~~" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Setting up MHD in FLASH " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are two types of MHD solvers in FLASH: the 8 wave solver and the unsplit staggered mesh solver. Our experience caused magnetic fields to become very small during the simulation and the 8 wave solver seems to resolve that issue. \n", "\n", "Inside Config load in the 8 wave solver:\n", "~~~fortran\n", "REQUESTS physics/Hydro/HydroMain/split/MHD_8Wave\n", "~~~\n", "\n", "To use these solvers include the flag +8wave in ./setup: \n", "\n", " ./setup MHDRotatingSinkSphere -3d +8wave --maxblock=500 -auto ; cd object/;make -j8;\n", " \n", "The code up to now is in ``examples/MHDSphere``." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Analyzing MHD data with yt" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline \n", "from scripts.plotSim import *" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/global/project/projectdirs/astro250/dlee/FLASH4.3/object\n" ] } ], "source": [ "cd ~/proj/dlee/FLASH4.3/object/" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": true }, "outputs": [], "source": [ "ds = yt.load(\"sphere_hdf5_chk_0000\")\n", "data = ds.all_data()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "During MHD runs, FLASH stores 3 extra variable for $B_{x,y,z}$. We can look at the derived field to see some additional interesting fields: " ] }, { "cell_type": "code", "execution_count": 67, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[('gas', 'magnetic_energy'),\n", " ('gas', 'magnetic_field_poloidal'),\n", " ('gas', 'magnetic_field_strength'),\n", " ('gas', 'magnetic_field_toroidal'),\n", " ('gas', 'magnetic_field_x'),\n", " ('gas', 'magnetic_field_y'),\n", " ('gas', 'magnetic_field_z'),\n", " ('gas', 'magnetic_pressure')]" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "filter(lambda x: 'magnetic' in x[1] , ds.derived_field_list)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We want to make sure that our magnetic fields are initialized correctly, one easy way to check this is to see whether the magnitude of the magnetic fields that we initialized corresponds to the beta that we set." ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "YTArray([ 0.00795798, 0.00795798, 0.00795798, ..., 0.00795798,\n", " 0.00795798, 0.00795798]) (dimensionless)" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data[\"plasma_beta\"]" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "YTArray([ 0.00795798, 0.00795798, 0.00795798, ..., 0.00795798,\n", " 0.00795798, 0.00795798]) cm**2*g/(erg*s**2)" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data[\"pressure\"]/data[\"magnetic_pressure\"]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is not exactly the $\\beta=0.1$ that we set, the difference is too large to be accounted for a roundoff issue. Turns out that FLASH solves the MHD equations in non-dimensional scheme (see Eq 14.17-24 [here](http://flash.uchicago.edu/site/flashcode/user_support/flash4_ug_4p3/node21.html#SECTION06230000000000000000)), which means that $B_{\\rm simulation} = \\frac{B_{\\rm actual}}{\\sqrt{4\\pi}}$. By default, yt assumes cgs and does not recognize this factor of $\\sqrt{4\\pi}$ when computing the magnetic pressure and strengths, so we need to include this factor. We can check that $\\alpha$ correspond to our input parameter : \n" ] }, { "cell_type": "code", "execution_count": 71, "metadata": { "collapsed": false }, "outputs": [], "source": [ "B_actual = data[\"magnetic_field_strength\"]/sqrt(4*pi)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Recall that magnetic pressure is defined as: \n", "$$P_B = \\frac{B^2}{\\sqrt{4\\pi}}$$" ] }, { "cell_type": "code", "execution_count": 72, "metadata": { "collapsed": true }, "outputs": [], "source": [ "B_pressure_actual = B_actual**2/(8*pi)" ] }, { "cell_type": "code", "execution_count": 74, "metadata": { "collapsed": false }, "outputs": [], "source": [ "beta_actual = data[\"pressure\"]/B_pressure_actual" ] }, { "cell_type": "code", "execution_count": 75, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "YTArray([ 0.10000295, 0.10000295, 0.10000295, ..., 0.10000295,\n", " 0.10000295, 0.10000295]) g/(cm*gauss**2*s**2)" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "beta_actual" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is pretty much $\\beta$=0.1 :" ] }, { "cell_type": "code", "execution_count": 87, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.unique(np.isclose(beta_actual,0.1,rtol=1e-4))[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Visualizing MHD data with yt " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is a slice plot through the x axes, the magnetic field streamline is plotted in orange." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_var(0,cut=\"x\",physical_quantity=\"density\",magnetic=True,scale=False,velocity=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Timestep 198 is the last timestep, we could see that the magnetic field turns into an hourglass shape." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_var(198,cut=\"x\",physical_quantity=\"density\",magnetic=True)\n", "plot_var(198,cut=\"y\",physical_quantity=\"density\",magnetic=True,velocity=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Because we don't have sink particles in this algorithm, the simulation terminated early. It is also interesting to look at a slice through the z direction. The velocity streamlines are plotted in dark blue, we could see that matter is flowing out along the magnetic field, causing it to become the elongated shape shown in the x or y slice." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_var(198,cut=\"z\",physical_quantity=\"density\",velocity=True,magnetic=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We could also take a look at the magnetic field strength of the sphere: " ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_var(198,cut=\"x\",physical_quantity=\"magnetic_field_strength\",velocity=True,magnetic=True)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_var(198,cut=\"z\",physical_quantity=\"magnetic_field_strength\",velocity=True,magnetic=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This movie shows how to magnetic field and velocities evolves over time: \n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/jpeg": "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\n", "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import YouTubeVideo\n", "YouTubeVideo(\"sVQfQ41Z3Xs\",width=520,height=420)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "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.11" } }, "nbformat": 4, "nbformat_minor": 0 }