Page MenuHomec4science

GeneratingMassProfiles.html
No OneTemporary

File Metadata

Created
Fri, Feb 7, 19:02

GeneratingMassProfiles.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Generating mass profiles &mdash; pNbody v4 documentation</title>
<link rel="stylesheet" href="../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '4',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<link rel="top" title="pNbody v4 documentation" href="../index.html" />
<link rel="up" title="Generating initial conditions" href="InitialConditions.html" />
<link rel="next" title="Generating velocities" href="GeneratingVelocities.html" />
<link rel="prev" title="Generating initial conditions" href="InitialConditions.html" />
</head>
<body>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="../np-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="GeneratingVelocities.html" title="Generating velocities"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="InitialConditions.html" title="Generating initial conditions"
accesskey="P">previous</a> |</li>
<li><a href="../index.html">pNbody v4 documentation</a> &raquo;</li>
<li><a href="InitialConditions.html" accesskey="U">Generating initial conditions</a> &raquo;</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body">
<div class="section" id="generating-mass-profiles">
<h1>Generating mass profiles<a class="headerlink" href="#generating-mass-profiles" title="Permalink to this headline"></a></h1>
<p>A serie of routines dedictated to the generation of mass profiles
are provided by <a class="reference internal" href="IcModule.html"><em>the ic module</em></a>.</p>
<p>They can be devided according to their geometry:</p>
<table border="1" class="docutils">
<caption>cubic distribution</caption>
<colgroup>
<col width="45%" />
<col width="55%" />
</colgroup>
<thead valign="bottom">
<tr><th class="head">function name</th>
<th class="head">description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td>box</td>
<td>particles in a box</td>
</tr>
</tbody>
</table>
<table border="1" class="docutils">
<caption>axi-symetrical (disk) distribution</caption>
<colgroup>
<col width="44%" />
<col width="56%" />
</colgroup>
<thead valign="bottom">
<tr><th class="head">function name</th>
<th class="head">description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td>homodisk</td>
<td>homogeneous disk</td>
</tr>
<tr><td>kuzmin</td>
<td>kuzmin disk</td>
</tr>
<tr><td>expd</td>
<td>exponnential disk</td>
</tr>
<tr><td>miyamoto_nagai</td>
<td>Miyamoto-Nagai disk</td>
</tr>
</tbody>
</table>
<table border="1" class="docutils">
<caption>spherical distribution</caption>
<colgroup>
<col width="23%" />
<col width="77%" />
</colgroup>
<thead valign="bottom">
<tr><th class="head">function name</th>
<th class="head">description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td>homosphere</td>
<td>homogeneous sphere</td>
</tr>
<tr><td>plummer</td>
<td>phlummer sphere</td>
</tr>
<tr><td>nfw</td>
<td>Navarro-Frenk-White profile</td>
</tr>
<tr><td>hernquist</td>
<td>Hernquist profile</td>
</tr>
<tr><td>dl2</td>
<td><div class="first last math">
<p><img src="../_images/math/d3d2325cd9c8bf856146c2c0cc3571dab2ebfa26.png" alt="\rho \sim (1-\epsilon (r/r_{\rm{max}})^2)" /></p>
</div></td>
</tr>
<tr><td>isothm</td>
<td>Isothermal profile</td>
</tr>
<tr><td>pisothm</td>
<td>Pseudo-Isothermal profile</td>
</tr>
<tr><td>shell</td>
<td>shell</td>
</tr>
<tr><td>burkert</td>
<td>Burkert profile</td>
</tr>
<tr><td>nfwg</td>
<td>Modified Navarro-Frenk-White profile</td>
</tr>
<tr><td>generic2c</td>
<td>generic two slope model</td>
</tr>
<tr><td>generic_alpha</td>
<td><div class="first last math">
<p><img src="../_images/math/cfb469e1b991319c5698ce66354a645ccc24badf.png" alt="\rho \sim (r+e)^a" /></p>
</div></td>
</tr>
<tr><td>generic_Mr</td>
<td>spherical generic model</td>
</tr>
</tbody>
</table>
<p>Finally, some routines generate special object used
for rendering:</p>
<table border="1" class="docutils">
<caption>primer objects</caption>
<colgroup>
<col width="50%" />
<col width="50%" />
</colgroup>
<thead valign="bottom">
<tr><th class="head">function name</th>
<th class="head">description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td>line</td>
<td>a simple line</td>
</tr>
<tr><td>square</td>
<td>a square</td>
</tr>
<tr><td>circle</td>
<td>a circle</td>
</tr>
<tr><td>grid</td>
<td>a 2d grid</td>
</tr>
<tr><td>cube</td>
<td>a cube</td>
</tr>
<tr><td>sphere</td>
<td>a sphere</td>
</tr>
</tbody>
</table>
<p>Each of these routines returns an <strong>Nbody</strong> object.</p>
<div class="section" id="examples">
<h2>Examples:<a class="headerlink" href="#examples" title="Permalink to this headline"></a></h2>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">pNbody</span> <span class="kn">import</span> <span class="n">ic</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">nb</span><span class="o">=</span><span class="n">ic</span><span class="o">.</span><span class="n">box</span><span class="p">(</span><span class="mi">1000</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">nb</span><span class="o">.</span><span class="n">info</span><span class="p">()</span>
<span class="go">-----------------------------------</span>
<span class="go">particle file : [&#39;box.dat&#39;]</span>
<span class="go">ftype : &#39;Nbody_binary&#39;</span>
<span class="go">mxntpe : 6</span>
<span class="go">nbody : 1000</span>
<span class="go">nbody_tot : 1000</span>
<span class="go">npart : [1000, 0, 0, 0, 0, 0]</span>
<span class="go">npart_tot : [1000, 0, 0, 0, 0, 0]</span>
<span class="go">mass_tot : 0.9999907</span>
<span class="go">byteorder : &#39;little&#39;</span>
<span class="go">pio : &#39;no&#39;</span>
<span class="go">len pos : 1000</span>
<span class="go">pos[0] : array([ 0.78348911, 0.03045347, 0.34180355], dtype=float32)</span>
<span class="go">pos[-1] : array([ 0.14677997, -0.05187676, 0.11189017], dtype=float32)</span>
<span class="go">len vel : 1000</span>
<span class="go">vel[0] : array([ 0., 0., 0.], dtype=float32)</span>
<span class="go">vel[-1] : array([ 0., 0., 0.], dtype=float32)</span>
<span class="go">len mass : 1000</span>
<span class="go">mass[0] : 0.001</span>
<span class="go">mass[-1] : 0.001</span>
<span class="go">len num : 1000</span>
<span class="go">num[0] : 0</span>
<span class="go">num[-1] : 999</span>
<span class="go">len tpe : 1000</span>
<span class="go">tpe[0] : 0</span>
<span class="go">tpe[-1] : 0</span>
<span class="go">tnow : 0.0</span>
<span class="go">label : binary</span>
<span class="go">dt : 0.0</span>
<span class="go">&gt;&gt;&gt;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">nb</span><span class="o">.</span><span class="n">display</span><span class="p">()</span>
</pre></div>
</div>
</div>
<div class="section" id="generic-spherical-distributions">
<h2>Generic spherical distributions:<a class="headerlink" href="#generic-spherical-distributions" title="Permalink to this headline"></a></h2>
<p>In spherical cases, its possible to generate any mass profile, using a
generic function (<a class="reference internal" href="IcModule.html#pNbody.ic.generic_Mr" title="pNbody.ic.generic_Mr"><tt class="xref py py-func docutils literal"><span class="pre">generic_Mr()</span></tt></a>). The function takes as argument a vector that
defines the cumulative mass as a function of the radius:</p>
<div class="math">
<p><img src="../_images/math/f991a0bd7abace4a0ab18d22b8dd6309ce5e5fee.png" alt="M(r)=4\pi\int_0^r \rho(r')r'^2 dr'" /></p>
</div><p>for example, an homogeneous sphere may be obtained by:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">pNbody</span> <span class="kn">import</span> <span class="n">ic</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">numpy</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">rmax</span><span class="o">=</span><span class="mi">10</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">dr</span><span class="o">=</span><span class="mf">0.01</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">n</span> <span class="o">=</span> <span class="mi">10000</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">rs</span> <span class="o">=</span> <span class="n">arange</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">rmax</span><span class="p">,</span><span class="n">dr</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">Mrs</span> <span class="o">=</span> <span class="n">rs</span><span class="o">**</span><span class="mi">3</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">nb</span> <span class="o">=</span> <span class="n">ic</span><span class="o">.</span><span class="n">generic_Mr</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="n">rmax</span><span class="o">=</span><span class="n">rmax</span><span class="p">,</span><span class="n">R</span><span class="o">=</span><span class="n">rs</span><span class="p">,</span><span class="n">Mr</span><span class="o">=</span><span class="n">Mrs</span><span class="p">,</span><span class="n">ftype</span><span class="o">=</span><span class="s">&#39;gadget&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>The verctor <tt class="docutils literal"><span class="pre">rs</span></tt> is not necessary linear. This is usefull
to avoid resolution problems, if for example, the mass profile is steep
in some regions. There, intervals between radial bins may be reduced.</p>
<p>In this more funny example, we generate a radial profile corresponding to the following function:</p>
<div class="math">
<p><img src="../_images/math/47be439ed8d29e1f6a6a463cf0893234abca0375.png" alt="\rho(r) \sim \frac{1}{2}\left[1+\cos(4r) \right] \exp(-r)" /></p>
</div><p>As before, we use the function <a class="reference internal" href="IcModule.html#pNbody.ic.generic_Mr" title="pNbody.ic.generic_Mr"><tt class="xref py py-func docutils literal"><span class="pre">generic_Mr()</span></tt></a>:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">pNbody</span> <span class="kn">import</span> <span class="n">ic</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">numpy</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">n</span> <span class="o">=</span> <span class="mi">1000000</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">rmax</span> <span class="o">=</span> <span class="mf">10.</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">dr</span> <span class="o">=</span> <span class="mf">0.01</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">rs</span> <span class="o">=</span> <span class="n">arange</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">rmax</span><span class="p">,</span><span class="n">dr</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">rho</span> <span class="o">=</span> <span class="mf">0.5</span><span class="o">*</span><span class="p">(</span><span class="mi">1</span><span class="o">+</span><span class="n">cos</span><span class="p">(</span><span class="mi">4</span><span class="o">*</span><span class="n">rs</span><span class="p">)</span> <span class="p">)</span><span class="o">*</span><span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="n">rs</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">Mrs</span> <span class="o">=</span> <span class="n">add</span><span class="o">.</span><span class="n">accumulate</span><span class="p">(</span><span class="n">rho</span><span class="o">*</span><span class="n">rs</span><span class="o">**</span><span class="mi">2</span> <span class="o">*</span> <span class="n">dr</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">nb</span> <span class="o">=</span> <span class="n">ic</span><span class="o">.</span><span class="n">generic_Mr</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="n">rmax</span><span class="o">=</span><span class="n">rmax</span><span class="p">,</span><span class="n">R</span><span class="o">=</span><span class="n">rs</span><span class="p">,</span><span class="n">Mr</span><span class="o">=</span><span class="n">Mrs</span><span class="p">,</span><span class="n">ftype</span><span class="o">=</span><span class="s">&#39;gadget&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>It is possible to check the result by extractig the accumulated mass directely from the <strong>Nbody</strong> object,
using <a class="reference internal" href="LibgridModule.html"><em>the libgrid module</em></a>:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">pNbody</span> <span class="kn">import</span> <span class="n">libgrid</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c"># create a grid object and extract density and mass profile</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">G</span> <span class="o">=</span> <span class="n">libgrid</span><span class="o">.</span><span class="n">Spherical_1d_Grid</span><span class="p">(</span><span class="n">rmin</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">rmax</span><span class="o">=</span><span class="n">rmax</span><span class="p">,</span><span class="n">nr</span><span class="o">=</span><span class="mi">512</span><span class="p">,</span><span class="n">g</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span><span class="n">gm</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span> <span class="o">=</span> <span class="n">G</span><span class="o">.</span><span class="n">get_r</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">rho</span> <span class="o">=</span> <span class="n">G</span><span class="o">.</span><span class="n">get_DensityMap</span><span class="p">(</span><span class="n">nb</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">mr</span> <span class="o">=</span> <span class="n">add</span><span class="o">.</span><span class="n">accumulate</span><span class="p">(</span><span class="n">G</span><span class="o">.</span><span class="n">get_MassMap</span><span class="p">(</span><span class="n">nb</span><span class="p">))</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c"># plot results</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">pylab</span> <span class="kn">as</span> <span class="nn">pt</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">pt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">rs</span><span class="p">,</span><span class="n">Mrs</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">pt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">r</span><span class="p">,</span><span class="n">mr</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">pt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s">&quot;radius&quot;</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">pt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s">&quot;accumulated mass&quot;</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">pt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>
</div>
<p>If everything goes well, we obtain a nice correspondance between the imposed and
the computed mass profile, as seen in the graph below.</p>
<img alt="../_images/mass_profile.png" src="../_images/mass_profile.png" />
</div>
<div class="section" id="generic-cubic-distributions">
<h2>Generic cubic distributions:<a class="headerlink" href="#generic-cubic-distributions" title="Permalink to this headline"></a></h2>
<p>Its possible generate a cubic box with the density varying along one axix. This is obtained
by using the <a class="reference internal" href="IcModule.html#pNbody.ic.generic_Mx" title="pNbody.ic.generic_Mx"><tt class="xref py py-func docutils literal"><span class="pre">generic_Mx()</span></tt></a> function. As for <a class="reference internal" href="IcModule.html#pNbody.ic.generic_Mr" title="pNbody.ic.generic_Mr"><tt class="xref py py-func docutils literal"><span class="pre">generic_Mr()</span></tt></a>, we have to define
the variation of the cumulative mass, in this case, the x axis. In the following example,
we set a two level transition along the x axis, following the function:</p>
<div class="math">
<p><img src="../_images/math/3c82ef6a347498440571943459f5f46986a319c8.png" alt="\rho(x) = \rho_1 + \frac{\rho_2-\rho_1}{ (1+\exp(-2(x-x_1)/\sigma))(1+\exp(2(x-x_2)/\sigma)) }" /></p>
</div><p>This gives:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">pNbody</span> <span class="kn">import</span> <span class="n">ic</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">numpy</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">xs</span> <span class="o">=</span> <span class="n">arange</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mf">1.</span><span class="o">/</span><span class="mf">10000.</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">n</span> <span class="o">=</span> <span class="mi">100000</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">rho1</span> <span class="o">=</span> <span class="mi">1</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">rho2</span> <span class="o">=</span> <span class="mi">10</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">x1</span> <span class="o">=</span> <span class="mf">0.25</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">x2</span> <span class="o">=</span> <span class="mf">0.75</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">sigma</span> <span class="o">=</span> <span class="mf">0.025</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">rho</span> <span class="o">=</span> <span class="n">rho1</span> <span class="o">+</span> <span class="p">(</span><span class="n">rho2</span><span class="o">-</span><span class="n">rho1</span><span class="p">)</span><span class="o">/</span><span class="p">(</span> <span class="p">(</span><span class="mi">1</span><span class="o">+</span><span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="mf">2.</span><span class="o">*</span><span class="p">(</span><span class="n">xs</span><span class="o">-</span><span class="n">x1</span><span class="p">)</span><span class="o">/</span><span class="n">sigma</span><span class="p">))</span><span class="o">*</span><span class="p">(</span><span class="mi">1</span><span class="o">+</span><span class="n">exp</span><span class="p">(</span><span class="mf">2.</span><span class="o">*</span><span class="p">(</span><span class="n">xs</span><span class="o">-</span><span class="n">x2</span><span class="p">)</span><span class="o">/</span><span class="n">sigma</span><span class="p">)))</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">Mxs</span> <span class="o">=</span> <span class="n">add</span><span class="o">.</span><span class="n">accumulate</span><span class="p">(</span><span class="n">rho</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">nb</span> <span class="o">=</span> <span class="n">ic</span><span class="o">.</span><span class="n">generic_Mx</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="mf">1.0</span><span class="p">,</span><span class="n">x</span><span class="o">=</span><span class="n">xs</span><span class="p">,</span><span class="n">Mx</span><span class="o">=</span><span class="n">Mxs</span><span class="p">,</span><span class="n">name</span><span class="o">=</span><span class="s">&#39;tbox.dat&#39;</span><span class="p">,</span><span class="n">ftype</span><span class="o">=</span><span class="s">&#39;gadget&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>Let&#8217;s display now the model:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">nb</span><span class="o">.</span><span class="n">translate</span><span class="p">([</span><span class="o">-</span><span class="mf">0.5</span><span class="p">,</span><span class="o">-</span><span class="mf">0.5</span><span class="p">,</span><span class="o">-</span><span class="mf">0.5</span><span class="p">])</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">nb</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">view</span><span class="o">=</span><span class="s">&#39;xy&#39;</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mf">0.6</span><span class="p">,</span><span class="mf">0.6</span><span class="p">))</span>
</pre></div>
</div>
<p>The two density levels are well seen in projection.</p>
<img alt="../_images/two_levels.png" src="../_images/two_levels.png" />
</div>
<div class="section" id="spherical-distribution-with-variable-resolution">
<h2>Spherical distribution with variable resolution:<a class="headerlink" href="#spherical-distribution-with-variable-resolution" title="Permalink to this headline"></a></h2>
<p>In some circumstances, it may be insterested to generate a profile, with
a variable resolution. In all previous examples, the mass of the particles where
identical. Here, we show a case where the mass of the particles varies with the radius.
This allows to increase the number of particles in the central regrions, where resolution
is needed, and to decrease it in the outer regions.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">nb_halo</span> <span class="o">=</span> <span class="n">GenericDistribution</span><span class="p">(</span><span class="n">n_halo</span><span class="p">,</span><span class="n">dmdr_fct_halo</span><span class="p">,(</span><span class="n">rs_halo</span><span class="p">,</span><span class="n">gamma_halo</span><span class="p">),</span><span class="n">rmax_halo</span><span class="p">,</span><span class="n">ftype</span><span class="o">=</span><span class="s">&#39;gadget&#39;</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/icon-small.jpg" alt="Logo"/>
</a></p>
<h3><a href="../index.html">Table Of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Generating mass profiles</a><ul>
<li><a class="reference internal" href="#examples">Examples:</a></li>
<li><a class="reference internal" href="#generic-spherical-distributions">Generic spherical distributions:</a></li>
<li><a class="reference internal" href="#generic-cubic-distributions">Generic cubic distributions:</a></li>
<li><a class="reference internal" href="#spherical-distribution-with-variable-resolution">Spherical distribution with variable resolution:</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="InitialConditions.html"
title="previous chapter">Generating initial conditions</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="GeneratingVelocities.html"
title="next chapter">Generating velocities</a></p>
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/rst/GeneratingMassProfiles.txt"
rel="nofollow">Show Source</a></li>
</ul>
<div id="searchbox" style="display: none">
<h3>Quick search</h3>
<form class="search" action="../search.html" method="get">
<input type="text" name="q" size="18" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
<p class="searchtip" style="font-size: 90%">
Enter search terms or a module, class or function name.
</p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="../np-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="GeneratingVelocities.html" title="Generating velocities"
>next</a> |</li>
<li class="right" >
<a href="InitialConditions.html" title="Generating initial conditions"
>previous</a> |</li>
<li><a href="../index.html">pNbody v4 documentation</a> &raquo;</li>
<li><a href="InitialConditions.html" >Generating initial conditions</a> &raquo;</li>
</ul>
</div>
<div class="footer">
&copy; Copyright 2011, Yves Revaz.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
</html>

Event Timeline