[yt-svn] commit/yt: 8 new changesets
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Tue Dec 2 12:27:26 PST 2014
8 new commits in yt:
https://bitbucket.org/yt_analysis/yt/commits/7695d8a4d6ec/
Changeset: 7695d8a4d6ec
Branch: yt
User: mzingale
Date: 2014-11-25 19:08:36+00:00
Summary: first pass at making the field list a nice table
Affected #: 2 files
diff -r a0944e034d1db25d5f5679ef7eb57f1dc5159d78 -r 7695d8a4d6ec1556eae6f7c98bf5ccef082a73ca doc/helper_scripts/show_fields.py
--- a/doc/helper_scripts/show_fields.py
+++ b/doc/helper_scripts/show_fields.py
@@ -163,22 +163,25 @@
ds.index
print_all_fields(ds.field_info)
-def print_frontend_field(ftype, field, ptype):
- name = field[0]
- units = field[1][0]
- aliases = ["``%s``" % f for f in field[1][1]]
- if ftype is not "particle_type":
- ftype = "'"+ftype+"'"
- s = "(%s, '%s')" % (ftype, name)
- print s
- print "^" * len(s)
- print
- if len(units) > 0:
- print " * Units: :math:`\mathrm{%s}`" % fix_units(units)
- if len(aliases) > 0:
- print " * Aliased to: %s" % " ".join(aliases)
- print " * Particle Type: %s" % (ptype)
- print
+
+class FieldInfo:
+ """ a simple container to hold the information about fields """
+ def __init__(self, ftype, field, ptype):
+ name = field[0]
+ self.units = ""
+ u = field[1][0]
+ if len(u) > 0:
+ self.units = ":math:`\mathrm{%s}`" % fix_units(u)
+ a = ["``%s``" % f for f in field[1][1]]
+ self.aliases = " ".join(a)
+ self.dname = ""
+ if field[1][2] is not None:
+ self.dname = ":math: {}".format(field[1][2])
+
+ if ftype is not "particle_type":
+ ftype = "'"+ftype+"'"
+ self.name = "(%s, '%s')" % (ftype, name)
+ self.ptype = ptype
current_frontends = [f for f in _frontends if f not in ["stream"]]
@@ -220,12 +223,51 @@
h = "%s-Specific Fields" % dset_name.replace("Dataset", "")
print h
print "-" * len(h) + "\n"
+
+ field_stuff = []
for field in known_other_fields:
- print_frontend_field(frontend, field, False)
+ field_stuff.append(FieldInfo(frontend, field, False))
for field in known_particle_fields:
if frontend in ["sph", "halo_catalogs", "sdf"]:
- print_frontend_field("particle_type", field, True)
+ field_stuff.append(FieldInfo("particle_type", field, True))
else:
- print_frontend_field("io", field, True)
+ field_stuff.append(FieldInfo("io", field, True))
+
+ # output
+ len_name = 10
+ len_units = 5
+ len_aliases = 7
+ len_part = 9
+ len_disp = 12
+ for f in field_stuff:
+ len_name = max(len_name, len(f.name))
+ len_aliases = max(len_aliases, len(f.aliases))
+ len_units = max(len_units, len(f.units))
+ len_disp = max(len_disp, len(f.dname))
+
+ fstr = "{nm:{nw}} {un:{uw}} {al:{aw}} {pt:{pw}} {dp:{dw}}"
+ header = fstr.format(nm="field name", nw=len_name,
+ un="units", uw=len_units,
+ al="aliases", aw=len_aliases,
+ pt="particle?", pw=len_part,
+ dp="display name", dw=len_disp)
+
+ div = fstr.format(nm="="*len_name, nw=len_name,
+ un="="*len_units, uw=len_units,
+ al="="*len_aliases, aw=len_aliases,
+ pt="="*len_part, pw=len_part,
+ dp="="*len_disp, dw=len_disp)
+ print div
+ print header
+ print div
+
+ for f in field_stuff:
+ print fstr.format(nm=f.name, nw=len_name,
+ un=f.units, uw=len_units,
+ al=f.aliases, aw=len_aliases,
+ pt=f.ptype, pw=len_part,
+ dp=f.dname, dw=len_disp)
+
+ print div
print footer
This diff is so big that we needed to truncate the remainder.
https://bitbucket.org/yt_analysis/yt/commits/bafd93262fd4/
Changeset: bafd93262fd4
Branch: yt
User: mzingale
Date: 2014-11-25 19:37:14+00:00
Summary: fix the formatting of the display name
Affected #: 2 files
diff -r 7695d8a4d6ec1556eae6f7c98bf5ccef082a73ca -r bafd93262fd43a869d8ddfd75215887ba1cad853 doc/helper_scripts/show_fields.py
--- a/doc/helper_scripts/show_fields.py
+++ b/doc/helper_scripts/show_fields.py
@@ -176,7 +176,7 @@
self.aliases = " ".join(a)
self.dname = ""
if field[1][2] is not None:
- self.dname = ":math: {}".format(field[1][2])
+ self.dname = ":math:`{}`".format(field[1][2])
if ftype is not "particle_type":
ftype = "'"+ftype+"'"
diff -r 7695d8a4d6ec1556eae6f7c98bf5ccef082a73ca -r bafd93262fd43a869d8ddfd75215887ba1cad853 doc/source/reference/field_list.rst
--- a/doc/source/reference/field_list.rst
+++ b/doc/source/reference/field_list.rst
@@ -2595,88 +2595,92 @@
Castro-Specific Fields
----------------------
-======================== ======================================================== ======================= ========= =================================================
-field name units aliases particle? display name
-======================== ======================================================== ======================= ========= =================================================
-('boxlib', 'density') :math:`\mathrm{\frac{\rm{g}}{\rm{cm}^{3}}}` ``density`` 0 :math: \rho
-('boxlib', 'xmom') :math:`\mathrm{\frac{\rm{g}}{\rm{cm}^{2} \cdot \rm{s}}}` ``momentum_x`` 0 :math: \rho u
-('boxlib', 'ymom') :math:`\mathrm{\frac{\rm{g}}{\rm{cm}^{2} \cdot \rm{s}}}` ``momentum_y`` 0 :math: \rho v
-('boxlib', 'zmom') :math:`\mathrm{\frac{\rm{g}}{\rm{cm}^{2} \cdot \rm{s}}}` ``momentum_z`` 0 :math: \rho w
-('boxlib', 'x_velocity') :math:`\mathrm{\rm{cm} / \rm{s}}` ``velocity_x`` 0 :math: u
-('boxlib', 'y_velocity') :math:`\mathrm{\rm{cm} / \rm{s}}` ``velocity_y`` 0 :math: v
-('boxlib', 'z_velocity') :math:`\mathrm{\rm{cm} / \rm{s}}` ``velocity_z`` 0 :math: w
-('boxlib', 'rho_E') :math:`\mathrm{\frac{\rm{erg}}{\rm{cm}^{3}}}` ``energy_density`` 0 :math: \rho E
-('boxlib', 'rho_e') :math:`\mathrm{\frac{\rm{erg}}{\rm{cm}^{3}}}` 0 :math: \rho e
-('boxlib', 'Temp') :math:`\mathrm{\rm{K}}` ``temperature`` 0 :math: T
-('boxlib', 'grav_x') :math:`\mathrm{\frac{\rm{cm}}{\rm{s}^{2}}}` 0 :math: \left(\mathbf{g} \cdot \mathbf{e}\right)_x
-('boxlib', 'grav_y') :math:`\mathrm{\frac{\rm{cm}}{\rm{s}^{2}}}` 0 :math: \left(\mathbf{g} \cdot \mathbf{e}\right)_y
-('boxlib', 'grav_z') :math:`\mathrm{\frac{\rm{cm}}{\rm{s}^{2}}}` 0 :math: \left(\mathbf{g} \cdot \mathbf{e}\right)_z
-('boxlib', 'pressure') :math:`\mathrm{\frac{\rm{dyne}}{\rm{cm}^{2}}}` 0 :math: p
-('boxlib', 'kineng') :math:`\mathrm{\frac{\rm{erg}}{\rm{cm}^{3}}}` ``kinetic_energy`` 0 :math: \frac{1}{2}\rho|\mathbf{U}|**2
-('boxlib', 'soundspeed') :math:`\mathrm{\rm{cm} / \rm{s}}` ``sound_speed`` 0 :math: Sound Speed
-('boxlib', 'Machnumber') ``mach_number`` 0 :math: Mach Number
-('boxlib', 'entropy') :math:`\mathrm{\frac{\rm{erg}}{\rm{K} \cdot \rm{g}}}` ``entropy`` 0 :math: s
-('boxlib', 'magvort') :math:`\mathrm{1 / \rm{s}}` ``vorticity_magnitude`` 0 :math: |\nabla \times \mathbf{U}|
-('boxlib', 'divu') :math:`\mathrm{1 / \rm{s}}` ``velocity_divergence`` 0 :math: \nabla \cdot \mathbf{U}
-('boxlib', 'eint_E') :math:`\mathrm{\rm{erg} / \rm{g}}` 0 :math: e(E,U)
-('boxlib', 'eint_e') :math:`\mathrm{\rm{erg} / \rm{g}}` 0 :math: e
-('boxlib', 'magvel') :math:`\mathrm{\rm{cm} / \rm{s}}` ``velocity_magnitude`` 0 :math: |\mathbf{U}|
-('boxlib', 'radvel') :math:`\mathrm{\rm{cm} / \rm{s}}` ``radial_velocity`` 0 :math: \left(\mathbf{U} \cdot \mathbf{e}\right)_r
-('boxlib', 'magmom') :math:`\mathrm{\rm{cm} \cdot \rm{g} / \rm{s}}` ``momentum_magnitude`` 0 :math: |\rho \mathbf{U}|
-('boxlib', 'maggrav') :math:`\mathrm{\frac{\rm{cm}}{\rm{s}^{2}}}` 0 :math: |\mathbf{g}|
-('boxlib', 'phiGrav') :math:`\mathrm{\rm{erg} / \rm{g}}` 0 :math: |\Phi|
-======================== ======================================================== ======================= ========= =================================================
+======================== ======================================================== ======================= ========= ==================================================
+field name units aliases particle? display name
+======================== ======================================================== ======================= ========= ==================================================
+('boxlib', 'density') :math:`\mathrm{\frac{\rm{g}}{\rm{cm}^{3}}}` ``density`` 0 :math:`\rho`
+('boxlib', 'xmom') :math:`\mathrm{\frac{\rm{g}}{\rm{cm}^{2} \cdot \rm{s}}}` ``momentum_x`` 0 :math:`\rho u`
+('boxlib', 'ymom') :math:`\mathrm{\frac{\rm{g}}{\rm{cm}^{2} \cdot \rm{s}}}` ``momentum_y`` 0 :math:`\rho v`
+('boxlib', 'zmom') :math:`\mathrm{\frac{\rm{g}}{\rm{cm}^{2} \cdot \rm{s}}}` ``momentum_z`` 0 :math:`\rho w`
+('boxlib', 'x_velocity') :math:`\mathrm{\rm{cm} / \rm{s}}` ``velocity_x`` 0 :math:`u`
+('boxlib', 'y_velocity') :math:`\mathrm{\rm{cm} / \rm{s}}` ``velocity_y`` 0 :math:`v`
+('boxlib', 'z_velocity') :math:`\mathrm{\rm{cm} / \rm{s}}` ``velocity_z`` 0 :math:`w`
+('boxlib', 'rho_E') :math:`\mathrm{\frac{\rm{erg}}{\rm{cm}^{3}}}` ``energy_density`` 0 :math:`\rho E`
+('boxlib', 'rho_e') :math:`\mathrm{\frac{\rm{erg}}{\rm{cm}^{3}}}` 0 :math:`\rho e`
+('boxlib', 'Temp') :math:`\mathrm{\rm{K}}` ``temperature`` 0 :math:`T`
+('boxlib', 'grav_x') :math:`\mathrm{\frac{\rm{cm}}{\rm{s}^{2}}}` 0 :math:`\left(\mathbf{g} \cdot \mathbf{e}\right)_x`
+('boxlib', 'grav_y') :math:`\mathrm{\frac{\rm{cm}}{\rm{s}^{2}}}` 0 :math:`\left(\mathbf{g} \cdot \mathbf{e}\right)_y`
+('boxlib', 'grav_z') :math:`\mathrm{\frac{\rm{cm}}{\rm{s}^{2}}}` 0 :math:`\left(\mathbf{g} \cdot \mathbf{e}\right)_z`
+('boxlib', 'pressure') :math:`\mathrm{\frac{\rm{dyne}}{\rm{cm}^{2}}}` 0 :math:`p`
+('boxlib', 'kineng') :math:`\mathrm{\frac{\rm{erg}}{\rm{cm}^{3}}}` 0 :math:`\frac{1}{2}\rho|\mathbf{U}|**2`
+('boxlib', 'soundspeed') :math:`\mathrm{\rm{cm} / \rm{s}}` ``sound_speed`` 0 :math:`Sound Speed`
+('boxlib', 'Machnumber') ``mach_number`` 0 :math:`Mach Number`
+('boxlib', 'entropy') :math:`\mathrm{\frac{\rm{erg}}{\rm{K} \cdot \rm{g}}}` ``entropy`` 0 :math:`s`
+('boxlib', 'magvort') :math:`\mathrm{1 / \rm{s}}` ``vorticity_magnitude`` 0 :math:`|\nabla \times \mathbf{U}|`
+('boxlib', 'divu') :math:`\mathrm{1 / \rm{s}}` 0 :math:`\nabla \cdot \mathbf{U}`
+('boxlib', 'eint_E') :math:`\mathrm{\rm{erg} / \rm{g}}` 0 :math:`e(E,U)`
+('boxlib', 'eint_e') :math:`\mathrm{\rm{erg} / \rm{g}}` 0 :math:`e`
+('boxlib', 'magvel') :math:`\mathrm{\rm{cm} / \rm{s}}` ``velocity_magnitude`` 0 :math:`|\mathbf{U}|`
+('boxlib', 'radvel') :math:`\mathrm{\rm{cm} / \rm{s}}` 0 :math:`\left(\mathbf{U} \cdot \mathbf{e}\right)_r`
+('boxlib', 'magmom') :math:`\mathrm{\rm{cm} \cdot \rm{g} / \rm{s}}` ``momentum_magnitude`` 0 :math:`|\rho \mathbf{U}|`
+('boxlib', 'maggrav') :math:`\mathrm{\frac{\rm{cm}}{\rm{s}^{2}}}` 0 :math:`|\mathbf{g}|`
+('boxlib', 'phiGrav') :math:`\mathrm{\rm{erg} / \rm{g}}` 0 :math:`|\Phi|`
+======================== ======================================================== ======================= ========= ==================================================
.. _Maestro_specific_fields:
Maestro-Specific Fields
-----------------------
-============================= ===================================================== ======================= ========= ==============================================
-field name units aliases particle? display name
-============================= ===================================================== ======================= ========= ==============================================
-('boxlib', 'density') :math:`\mathrm{\frac{\rm{g}}{\rm{cm}^{3}}}` ``density`` 0
-('boxlib', 'x_vel') :math:`\mathrm{\rm{cm} / \rm{s}}` ``velocity_x`` 0 :math: \tilde{u}
-('boxlib', 'y_vel') :math:`\mathrm{\rm{cm} / \rm{s}}` ``velocity_y`` 0 :math: \tilde{v}
-('boxlib', 'z_vel') :math:`\mathrm{\rm{cm} / \rm{s}}` ``velocity_z`` 0 :math: \tilde{w}
-('boxlib', 'magvel') :math:`\mathrm{\rm{cm} / \rm{s}}` ``velocity_magnitude`` 0 :math: |\tilde{\mathbf{U}} + w_0 \mathbf{e}_r|
-('boxlib', 'radial_velocity') :math:`\mathrm{\rm{cm} / \rm{s}}` ``radial_velocity`` 0 :math: U\cdot e_r
-('boxlib', 'circum_velocity') :math:`\mathrm{\rm{cm} / \rm{s}}` ``tangential_velocity`` 0 :math: U - U\cdot e_r
-('boxlib', 'tfromp') :math:`\mathrm{\rm{K}}` 0 :math: T(\rho,p,X)
-('boxlib', 'tfromh') :math:`\mathrm{\rm{K}}` 0 :math: T(\rho,h,X)
-('boxlib', 'Machnumber') ``mach_number`` 0 :math: Mach Number
-('boxlib', 'S') :math:`\mathrm{1 / \rm{s}}` 0
-('boxlib', 'ad_excess') 0 :math: Adiabatic Excess
-('boxlib', 'deltaT') 0 :math: [T(\rho,h,X) - T(\rho,p,X)]/T(\rho,h,X)
-('boxlib', 'deltagamma') 0 :math: \Gamma_1 - \overline{\Gamma_1}
-('boxlib', 'deltap') 0 :math: [p(\rho,h,X) - p_0] / p_0
-('boxlib', 'divw0') :math:`\mathrm{1 / \rm{s}}` 0 :math: \nabla \cdot \mathbf{w}_0
-('boxlib', 'entropy') :math:`\mathrm{\frac{\rm{erg}}{\rm{K} \cdot \rm{g}}}` ``entropy`` 0 :math: s
-('boxlib', 'entropypert') 0 :math: [s - \overline{s}] / \overline{s}
-('boxlib', 'enucdot') :math:`\mathrm{\frac{\rm{erg}}{\rm{g} \cdot \rm{s}}}` 0 :math: \dot{\epsilon_{nuc}}
-('boxlib', 'Hext') :math:`\mathrm{\frac{\rm{erg}}{\rm{g} \cdot \rm{s}}}` 0 :math: H_{ext}
-('boxlib', 'gpi_x') :math:`\mathrm{\frac{\rm{dyne}}{\rm{cm}^{3}}}` 0 :math: \left(\nabla\pi\right)_x
-('boxlib', 'gpi_y') :math:`\mathrm{\frac{\rm{dyne}}{\rm{cm}^{3}}}` 0 :math: \left(\nabla\pi\right)_y
-('boxlib', 'gpi_z') :math:`\mathrm{\frac{\rm{dyne}}{\rm{cm}^{3}}}` 0 :math: \left(\nabla\pi\right)_z
-('boxlib', 'h') :math:`\mathrm{\rm{erg} / \rm{g}}` 0 :math: h
-('boxlib', 'h0') :math:`\mathrm{\rm{erg} / \rm{g}}` 0 :math: h_0
-('boxlib', 'momentum') :math:`\mathrm{\rm{cm} \cdot \rm{g} / \rm{s}}` ``momentum_magnitude`` 0
-('boxlib', 'p0') :math:`\mathrm{\frac{\rm{erg}}{\rm{cm}^{3}}}` 0 :math: p_0
-('boxlib', 'p0pluspi') :math:`\mathrm{\frac{\rm{erg}}{\rm{cm}^{3}}}` 0 :math: p_0 + \pi
-('boxlib', 'pi') :math:`\mathrm{\frac{\rm{erg}}{\rm{cm}^{3}}}` 0 :math: \pi
-('boxlib', 'pioverp0') 0 :math: \pi/p_0
-('boxlib', 'rho0') :math:`\mathrm{\frac{\rm{g}}{\rm{cm}^{3}}}` 0 :math: \rho_0
-('boxlib', 'rhoh') :math:`\mathrm{\frac{\rm{erg}}{\rm{cm}^{3}}}` ``enthalpy_density`` 0 :math: (\rho h)
-('boxlib', 'rhoh0') :math:`\mathrm{\frac{\rm{erg}}{\rm{cm}^{3}}}` 0 :math: (\rho h)_0
-('boxlib', 'rhohpert') :math:`\mathrm{\frac{\rm{erg}}{\rm{cm}^{3}}}` 0 :math: (\rho h)^\prime
-('boxlib', 'rhopert') :math:`\mathrm{\frac{\rm{g}}{\rm{cm}^{3}}}` 0 :math: \rho^\prime
-('boxlib', 'soundspeed') :math:`\mathrm{\rm{cm} / \rm{s}}` ``sound_speed`` 0
-('boxlib', 'sponge') 0
-('boxlib', 'tpert') :math:`\mathrm{\rm{K}}` 0 :math: T - \overline{T}
-('boxlib', 'vort') :math:`\mathrm{1 / \rm{s}}` ``vorticity_magnitude`` 0 :math: |\nabla\times\tilde{U}|
-('boxlib', 'w0_x') :math:`\mathrm{\rm{cm} / \rm{s}}` 0 :math: (w_0)_x
-('boxlib', 'w0_y') :math:`\mathrm{\rm{cm} / \rm{s}}` 0 :math: (w_0)_y
-('boxlib', 'w0_z') :math:`\mathrm{\rm{cm} / \rm{s}}` 0 :math: (w_0)_z
-============================= ===================================================== ======================= ========= ==============================================
+============================= ===================================================== ======================= ========= ===============================================
+field name units aliases particle? display name
+============================= ===================================================== ======================= ========= ===============================================
+('boxlib', 'density') :math:`\mathrm{\frac{\rm{g}}{\rm{cm}^{3}}}` ``density`` 0
+('boxlib', 'x_vel') :math:`\mathrm{\rm{cm} / \rm{s}}` ``velocity_x`` 0 :math:`\tilde{u}`
+('boxlib', 'y_vel') :math:`\mathrm{\rm{cm} / \rm{s}}` ``velocity_y`` 0 :math:`\tilde{v}`
+('boxlib', 'z_vel') :math:`\mathrm{\rm{cm} / \rm{s}}` ``velocity_z`` 0 :math:`\tilde{w}`
+('boxlib', 'magvel') :math:`\mathrm{\rm{cm} / \rm{s}}` ``velocity_magnitude`` 0 :math:`|\tilde{\mathbf{U}} + w_0 \mathbf{e}_r|`
+('boxlib', 'radial_velocity') :math:`\mathrm{\rm{cm} / \rm{s}}` 0 :math:`U\cdot e_r`
+('boxlib', 'tfromp') :math:`\mathrm{\rm{K}}` 0 :math:`T(\rho,p,X)`
+('boxlib', 'tfromh') :math:`\mathrm{\rm{K}}` 0 :math:`T(\rho,h,X)`
+('boxlib', 'Machnumber') ``mach_number`` 0 :math:`Mach Number`
+('boxlib', 'S') :math:`\mathrm{1 / \rm{s}}` 0
+('boxlib', 'ad_excess') 0 :math:`Adiabatic Excess`
+('boxlib', 'deltaT') 0 :math:`[T(\rho,h,X) - T(\rho,p,X)]/T(\rho,h,X)`
+('boxlib', 'deltagamma') 0 :math:`\Gamma_1 - \overline{\Gamma_1}`
+('boxlib', 'deltap') 0 :math:`[p(\rho,h,X) - p_0] / p_0`
+('boxlib', 'divw0') :math:`\mathrm{1 / \rm{s}}` 0 :math:`
+abla \cdot \mathbf{w}_0`
+('boxlib', 'entropy') :math:`\mathrm{\frac{\rm{erg}}{\rm{K} \cdot \rm{g}}}` ``entropy`` 0 :math:`s`
+('boxlib', 'entropypert') 0 :math:`[s - \overline{s}] / \overline{s}`
+('boxlib', 'enucdot') :math:`\mathrm{\frac{\rm{erg}}{\rm{g} \cdot \rm{s}}}` 0 :math:`\dot{\epsilon_{nuc}}`
+('boxlib', 'Hext') :math:`\mathrm{\frac{\rm{erg}}{\rm{g} \cdot \rm{s}}}` 0 :math:`H_{ext}`
+('boxlib', 'gpi_x') :math:`\mathrm{\frac{\rm{dyne}}{\rm{cm}^{3}}}` 0 :math:`\left(
+abla\pi
ight)_x`
+('boxlib', 'gpi_y') :math:`\mathrm{\frac{\rm{dyne}}{\rm{cm}^{3}}}` 0 :math:`\left(
+abla\pi
ight)_y`
+('boxlib', 'gpi_z') :math:`\mathrm{\frac{\rm{dyne}}{\rm{cm}^{3}}}` 0 :math:`\left(
+abla\pi
ight)_z`
+('boxlib', 'h') :math:`\mathrm{\rm{erg} / \rm{g}}` 0 :math:`h`
+('boxlib', 'h0') :math:`\mathrm{\rm{erg} / \rm{g}}` 0 :math:`h_0`
+('boxlib', 'momentum') :math:`\mathrm{\rm{cm} \cdot \rm{g} / \rm{s}}` ``momentum_magnitude`` 0
+('boxlib', 'p0') :math:`\mathrm{\frac{\rm{erg}}{\rm{cm}^{3}}}` 0 :math:`p_0`
+('boxlib', 'p0pluspi') :math:`\mathrm{\frac{\rm{erg}}{\rm{cm}^{3}}}` 0 :math:`p_0 + \pi`
+('boxlib', 'pi') :math:`\mathrm{\frac{\rm{erg}}{\rm{cm}^{3}}}` 0 :math:`\pi`
+('boxlib', 'pioverp0') 0 :math:`\pi/p_0`
+('boxlib', 'rho0') :math:`\mathrm{\frac{\rm{g}}{\rm{cm}^{3}}}` 0 :math:`\rho_0`
+('boxlib', 'rhoh') :math:`\mathrm{\frac{\rm{erg}}{\rm{cm}^{3}}}` ``enthalpy_density`` 0 :math:`(\rho h)`
+('boxlib', 'rhoh0') :math:`\mathrm{\frac{\rm{erg}}{\rm{cm}^{3}}}` 0 :math:`(\rho h)_0`
+('boxlib', 'rhohpert') :math:`\mathrm{\frac{\rm{erg}}{\rm{cm}^{3}}}` 0 :math:`(\rho h)^\prime`
+('boxlib', 'rhopert') :math:`\mathrm{\frac{\rm{g}}{\rm{cm}^{3}}}` 0 :math:`\rho^\prime`
+('boxlib', 'soundspeed') :math:`\mathrm{\rm{cm} / \rm{s}}` ``sound_speed`` 0
+('boxlib', 'sponge') 0
+('boxlib', 'tpert') :math:`\mathrm{\rm{K}}` 0 :math:`T - \overline{T}`
+('boxlib', 'vort') :math:`\mathrm{1 / \rm{s}}` ``vorticity_magnitude`` 0 :math:`|
+abla imes ilde{U}|`
+('boxlib', 'w0_x') :math:`\mathrm{\rm{cm} / \rm{s}}` 0 :math:`(w_0)_x`
+('boxlib', 'w0_y') :math:`\mathrm{\rm{cm} / \rm{s}}` 0 :math:`(w_0)_y`
+('boxlib', 'w0_z') :math:`\mathrm{\rm{cm} / \rm{s}}` 0 :math:`(w_0)_z`
+============================= ===================================================== ======================= ========= ===============================================
.. _Orion_specific_fields:
Orion-Specific Fields
@@ -2857,58 +2861,58 @@
FLASH-Specific Fields
---------------------
-======================= ==================================================================================================== =========================== ========= =================================================
-field name units aliases particle? display name
-======================= ==================================================================================================== =========================== ========= =================================================
-('flash', 'velx') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``velocity_x`` 0
-('flash', 'vely') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``velocity_y`` 0
-('flash', 'velz') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``velocity_z`` 0
-('flash', 'dens') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length}^{3}}}` ``density`` 0
-('flash', 'temp') :math:`\mathrm{\rm{code}~\rm{temperature}}` ``temperature`` 0
-('flash', 'pres') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length} \cdot \rm{code}~\rm{time}^{2}}}` ``pressure`` 0
-('flash', 'gpot') :math:`\mathrm{\frac{\rm{code}~\rm{length}^{2}}{\rm{code}~\rm{time}^{2}}}` ``gravitational_potential`` 0
-('flash', 'gpol') :math:`\mathrm{\frac{\rm{code}~\rm{length}^{2}}{\rm{code}~\rm{time}^{2}}}` 0
-('flash', 'tion') :math:`\mathrm{\rm{code}~\rm{temperature}}` 0
-('flash', 'tele') :math:`\mathrm{\rm{code}~\rm{temperature}}` 0
-('flash', 'trad') :math:`\mathrm{\rm{code}~\rm{temperature}}` 0
-('flash', 'pion') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length} \cdot \rm{code}~\rm{time}^{2}}}` 0
-('flash', 'pele') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length} \cdot \rm{code}~\rm{time}^{2}}}` 0 :math: Electron Pressure, P_e
-('flash', 'prad') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length} \cdot \rm{code}~\rm{time}^{2}}}` 0 :math: Radiation Pressure
-('flash', 'eion') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{time}^{2}} \cdot \rm{code}~\rm{length}^{2}}` 0 :math: Ion Internal Energy
-('flash', 'eele') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{time}^{2}} \cdot \rm{code}~\rm{length}^{2}}` 0 :math: Electron Internal Energy
-('flash', 'erad') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{time}^{2}} \cdot \rm{code}~\rm{length}^{2}}` 0 :math: Radiation Internal Energy
-('flash', 'pden') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length}^{3}}}` 0
-('flash', 'depo') :math:`\mathrm{\frac{\rm{code}~\rm{length}^{2}}{\rm{code}~\rm{time}^{2}}}` 0
-('flash', 'ye') 0 :math: Y_e
-('flash', 'magp') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length} \cdot \rm{code}~\rm{time}^{2}}}` 0
-('flash', 'divb') :math:`\mathrm{\rm{code}~\rm{length} \cdot \rm{code_magnetic}}` 0
-('flash', 'game') 0 :math: \gamma_e\/
m{(ratio\/of\/specific\/heats)}
-('flash', 'gamc') 0 :math: \gamma_c\/
m{(ratio\/of\/specific\/heats)}
-('flash', 'flam') 0
-('flash', 'absr') 0 :math: Absorption Coefficient
-('flash', 'emis') 0 :math: Emissivity
-('flash', 'cond') 0 :math: Conductivity
-('flash', 'dfcf') 0 :math: Diffusion Equation Scalar
-('flash', 'fllm') 0 :math: Flux Limit
-('flash', 'pipe') 0 :math: P_i/P_e
-('flash', 'tite') 0 :math: T_i/T_e
-('flash', 'dbgs') 0 :math: Debug for Shocks
-('flash', 'cham') 0 :math: Chamber Material Fraction
-('flash', 'targ') 0 :math: Target Material Fraction
-('flash', 'sumy') 0
-('flash', 'mgdc') 0 :math: Emission Minus Absorption Diffusion Terms
-('flash', 'magx') :math:`\mathrm{\rm{code_magnetic}}` ``magnetic_field_x`` 0 :math: B_x
-('flash', 'magy') :math:`\mathrm{\rm{code_magnetic}}` ``magnetic_field_y`` 0 :math: B_y
-('flash', 'magz') :math:`\mathrm{\rm{code_magnetic}}` ``magnetic_field_z`` 0 :math: B_z
-('io', 'particle_posx') :math:`\mathrm{\rm{code}~\rm{length}}` ``particle_position_x`` 1
-('io', 'particle_posy') :math:`\mathrm{\rm{code}~\rm{length}}` ``particle_position_y`` 1
-('io', 'particle_posz') :math:`\mathrm{\rm{code}~\rm{length}}` ``particle_position_z`` 1
-('io', 'particle_velx') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``particle_velocity_x`` 1
-('io', 'particle_vely') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``particle_velocity_y`` 1
-('io', 'particle_velz') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``particle_velocity_z`` 1
-('io', 'particle_tag') ``particle_index`` 1
-('io', 'particle_mass') :math:`\mathrm{\rm{code}~\rm{mass}}` ``particle_mass`` 1
-======================= ==================================================================================================== =========================== ========= =================================================
+======================= ==================================================================================================== =========================== ========= ==================================================
+field name units aliases particle? display name
+======================= ==================================================================================================== =========================== ========= ==================================================
+('flash', 'velx') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``velocity_x`` 0
+('flash', 'vely') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``velocity_y`` 0
+('flash', 'velz') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``velocity_z`` 0
+('flash', 'dens') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length}^{3}}}` ``density`` 0
+('flash', 'temp') :math:`\mathrm{\rm{code}~\rm{temperature}}` ``temperature`` 0
+('flash', 'pres') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length} \cdot \rm{code}~\rm{time}^{2}}}` ``pressure`` 0
+('flash', 'gpot') :math:`\mathrm{\frac{\rm{code}~\rm{length}^{2}}{\rm{code}~\rm{time}^{2}}}` ``gravitational_potential`` 0
+('flash', 'gpol') :math:`\mathrm{\frac{\rm{code}~\rm{length}^{2}}{\rm{code}~\rm{time}^{2}}}` 0
+('flash', 'tion') :math:`\mathrm{\rm{code}~\rm{temperature}}` 0
+('flash', 'tele') :math:`\mathrm{\rm{code}~\rm{temperature}}` 0
+('flash', 'trad') :math:`\mathrm{\rm{code}~\rm{temperature}}` 0
+('flash', 'pion') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length} \cdot \rm{code}~\rm{time}^{2}}}` 0
+('flash', 'pele') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length} \cdot \rm{code}~\rm{time}^{2}}}` 0 :math:`Electron Pressure, P_e`
+('flash', 'prad') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length} \cdot \rm{code}~\rm{time}^{2}}}` 0 :math:`Radiation Pressure`
+('flash', 'eion') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{time}^{2}} \cdot \rm{code}~\rm{length}^{2}}` 0 :math:`Ion Internal Energy`
+('flash', 'eele') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{time}^{2}} \cdot \rm{code}~\rm{length}^{2}}` 0 :math:`Electron Internal Energy`
+('flash', 'erad') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{time}^{2}} \cdot \rm{code}~\rm{length}^{2}}` 0 :math:`Radiation Internal Energy`
+('flash', 'pden') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length}^{3}}}` 0
+('flash', 'depo') :math:`\mathrm{\frac{\rm{code}~\rm{length}^{2}}{\rm{code}~\rm{time}^{2}}}` 0
+('flash', 'ye') 0 :math:`Y_e`
+('flash', 'magp') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length} \cdot \rm{code}~\rm{time}^{2}}}` 0
+('flash', 'divb') :math:`\mathrm{\rm{code}~\rm{length} \cdot \rm{code_magnetic}}` 0
+('flash', 'game') 0 :math:`\gamma_e\/
m{(ratio\/of\/specific\/heats)}`
+('flash', 'gamc') 0 :math:`\gamma_c\/
m{(ratio\/of\/specific\/heats)}`
+('flash', 'flam') 0
+('flash', 'absr') 0 :math:`Absorption Coefficient`
+('flash', 'emis') 0 :math:`Emissivity`
+('flash', 'cond') 0 :math:`Conductivity`
+('flash', 'dfcf') 0 :math:`Diffusion Equation Scalar`
+('flash', 'fllm') 0 :math:`Flux Limit`
+('flash', 'pipe') 0 :math:`P_i/P_e`
+('flash', 'tite') 0 :math:`T_i/T_e`
+('flash', 'dbgs') 0 :math:`Debug for Shocks`
+('flash', 'cham') 0 :math:`Chamber Material Fraction`
+('flash', 'targ') 0 :math:`Target Material Fraction`
+('flash', 'sumy') 0
+('flash', 'mgdc') 0 :math:`Emission Minus Absorption Diffusion Terms`
+('flash', 'magx') :math:`\mathrm{\rm{code_magnetic}}` ``magnetic_field_x`` 0 :math:`B_x`
+('flash', 'magy') :math:`\mathrm{\rm{code_magnetic}}` ``magnetic_field_y`` 0 :math:`B_y`
+('flash', 'magz') :math:`\mathrm{\rm{code_magnetic}}` ``magnetic_field_z`` 0 :math:`B_z`
+('io', 'particle_posx') :math:`\mathrm{\rm{code}~\rm{length}}` ``particle_position_x`` 1
+('io', 'particle_posy') :math:`\mathrm{\rm{code}~\rm{length}}` ``particle_position_y`` 1
+('io', 'particle_posz') :math:`\mathrm{\rm{code}~\rm{length}}` ``particle_position_z`` 1
+('io', 'particle_velx') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``particle_velocity_x`` 1
+('io', 'particle_vely') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``particle_velocity_y`` 1
+('io', 'particle_velz') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``particle_velocity_z`` 1
+('io', 'particle_tag') ``particle_index`` 1
+('io', 'particle_mass') :math:`\mathrm{\rm{code}~\rm{mass}}` ``particle_mass`` 1
+======================= ==================================================================================================== =========================== ========= ==================================================
.. _GDF_specific_fields:
GDF-Specific Fields
@@ -2933,19 +2937,19 @@
HaloCatalog-Specific Fields
---------------------------
-============================= ================================= ======= ========= ====================
-field name units aliases particle? display name
-============================= ================================= ======= ========= ====================
-('io', 'particle_identifier') 1
-('io', 'particle_position_x') :math:`\mathrm{\rm{cm}}` 1
-('io', 'particle_position_y') :math:`\mathrm{\rm{cm}}` 1
-('io', 'particle_position_z') :math:`\mathrm{\rm{cm}}` 1
-('io', 'particle_velocity_x') :math:`\mathrm{\rm{cm} / \rm{s}}` 1
-('io', 'particle_velocity_y') :math:`\mathrm{\rm{cm} / \rm{s}}` 1
-('io', 'particle_velocity_z') :math:`\mathrm{\rm{cm} / \rm{s}}` 1
-('io', 'particle_mass') :math:`\mathrm{\rm{g}}` 1 :math: Virial Mass
-('io', 'virial_radius') :math:`\mathrm{\rm{cm}}` 1 :math: Virial Radius
-============================= ================================= ======= ========= ====================
+============================= ================================= ======= ========= =====================
+field name units aliases particle? display name
+============================= ================================= ======= ========= =====================
+('io', 'particle_identifier') 1
+('io', 'particle_position_x') :math:`\mathrm{\rm{cm}}` 1
+('io', 'particle_position_y') :math:`\mathrm{\rm{cm}}` 1
+('io', 'particle_position_z') :math:`\mathrm{\rm{cm}}` 1
+('io', 'particle_velocity_x') :math:`\mathrm{\rm{cm} / \rm{s}}` 1
+('io', 'particle_velocity_y') :math:`\mathrm{\rm{cm} / \rm{s}}` 1
+('io', 'particle_velocity_z') :math:`\mathrm{\rm{cm} / \rm{s}}` 1
+('io', 'particle_mass') :math:`\mathrm{\rm{g}}` 1 :math:`Virial Mass`
+('io', 'virial_radius') :math:`\mathrm{\rm{cm}}` 1 :math:`Virial Radius`
+============================= ================================= ======= ========= =====================
.. _OWLS_specific_fields:
OWLS-Specific Fields
@@ -3047,67 +3051,67 @@
Rockstar-Specific Fields
------------------------
-============================= ======================================= ======= ========= ================================
-field name units aliases particle? display name
-============================= ======================================= ======= ========= ================================
-('io', 'particle_identifier') 1
-('io', 'particle_position_x') :math:`\mathrm{\rm{pc}/(1+z) / \rm{h}}` 1
-('io', 'particle_position_y') :math:`\mathrm{\rm{pc}/(1+z) / \rm{h}}` 1
-('io', 'particle_position_z') :math:`\mathrm{\rm{pc}/(1+z) / \rm{h}}` 1
-('io', 'particle_velocity_x') :math:`\mathrm{\rm{km} / \rm{s}}` 1
-('io', 'particle_velocity_y') :math:`\mathrm{\rm{km} / \rm{s}}` 1
-('io', 'particle_velocity_z') :math:`\mathrm{\rm{km} / \rm{s}}` 1
-('io', 'particle_corevel_x') :math:`\mathrm{\rm{km} / \rm{s}}` 1
-('io', 'particle_corevel_y') :math:`\mathrm{\rm{km} / \rm{s}}` 1
-('io', 'particle_corevel_z') :math:`\mathrm{\rm{km} / \rm{s}}` 1
-('io', 'particle_bulkvel_x') :math:`\mathrm{\rm{km} / \rm{s}}` 1
-('io', 'particle_bulkvel_y') :math:`\mathrm{\rm{km} / \rm{s}}` 1
-('io', 'particle_bulkvel_z') :math:`\mathrm{\rm{km} / \rm{s}}` 1
-('io', 'particle_mass') :math:`\mathrm{\rm{M}_\odot / \rm{h}}` 1 :math: Mass
-('io', 'virial_radius') :math:`\mathrm{\rm{pc}/(1+z) / \rm{h}}` 1 :math: Radius
-('io', 'child_r') :math:`\mathrm{\rm{pc}/(1+z) / \rm{h}}` 1
-('io', 'vmax_r') :math:`\mathrm{\rm{km} / \rm{s}}` 1
-('io', 'mgrav') 1
-('io', 'vmax') :math:`\mathrm{\rm{km} / \rm{s}}` 1 :math: V_{max}
-('io', 'rvmax') :math:`\mathrm{\rm{km} / \rm{s}}` 1
-('io', 'rs') :math:`\mathrm{\rm{pc}/(1+z) / \rm{h}}` 1 :math: R_s
-('io', 'klypin_rs') :math:`\mathrm{\rm{pc}/(1+z) / \rm{h}}` 1 :math: Klypin R_s
-('io', 'vrms') :math:`\mathrm{\rm{km} / \rm{s}}` 1 :math: V_{rms}
-('io', 'Jx') 1 :math: J_x
-('io', 'Jy') 1 :math: J_y
-('io', 'Jz') 1 :math: J_z
-('io', 'energy') 1
-('io', 'spin') 1 :math: Spin Parameter
-('io', 'alt_m1') :math:`\mathrm{\rm{M}_\odot / \rm{h}}` 1
-('io', 'alt_m2') :math:`\mathrm{\rm{M}_\odot / \rm{h}}` 1
-('io', 'alt_m3') :math:`\mathrm{\rm{M}_\odot / \rm{h}}` 1
-('io', 'alt_m4') :math:`\mathrm{\rm{M}_\odot / \rm{h}}` 1
-('io', 'Xoff') 1
-('io', 'Voff') 1
-('io', 'b_to_a') 1 :math: Ellipsoidal b to a
-('io', 'c_to_a') 1 :math: Ellipsoidal c to a
-('io', 'Ax') 1 :math: A_x
-('io', 'Ay') 1 :math: A_y
-('io', 'Az') 1 :math: A_z
-('io', 'b_to_a2') 1
-('io', 'c_to_a2') 1
-('io', 'A2x') 1 :math: A2_x
-('io', 'A2y') 1 :math: A2_y
-('io', 'A2z') 1 :math: A2_z
-('io', 'bullock_spin') 1 :math: Bullock Spin Parameter
-('io', 'kin_to_pot') 1 :math: Kinetic to Potential
-('io', 'm_pe_b') 1
-('io', 'm_pe_d') 1
-('io', 'num_p') 1 :math: Number of Particles
-('io', 'num_child_particles') 1 :math: Number of Child Particles
-('io', 'p_start') 1
-('io', 'desc') 1
-('io', 'flags') 1
-('io', 'n_core') 1
-('io', 'min_pos_err') 1
-('io', 'min_vel_err') 1
-('io', 'min_bulkvel_err') 1
-============================= ======================================= ======= ========= ================================
+============================= ======================================= ======= ========= =================================
+field name units aliases particle? display name
+============================= ======================================= ======= ========= =================================
+('io', 'particle_identifier') 1
+('io', 'particle_position_x') :math:`\mathrm{\rm{pc}/(1+z) / \rm{h}}` 1
+('io', 'particle_position_y') :math:`\mathrm{\rm{pc}/(1+z) / \rm{h}}` 1
+('io', 'particle_position_z') :math:`\mathrm{\rm{pc}/(1+z) / \rm{h}}` 1
+('io', 'particle_velocity_x') :math:`\mathrm{\rm{km} / \rm{s}}` 1
+('io', 'particle_velocity_y') :math:`\mathrm{\rm{km} / \rm{s}}` 1
+('io', 'particle_velocity_z') :math:`\mathrm{\rm{km} / \rm{s}}` 1
+('io', 'particle_corevel_x') :math:`\mathrm{\rm{km} / \rm{s}}` 1
+('io', 'particle_corevel_y') :math:`\mathrm{\rm{km} / \rm{s}}` 1
+('io', 'particle_corevel_z') :math:`\mathrm{\rm{km} / \rm{s}}` 1
+('io', 'particle_bulkvel_x') :math:`\mathrm{\rm{km} / \rm{s}}` 1
+('io', 'particle_bulkvel_y') :math:`\mathrm{\rm{km} / \rm{s}}` 1
+('io', 'particle_bulkvel_z') :math:`\mathrm{\rm{km} / \rm{s}}` 1
+('io', 'particle_mass') :math:`\mathrm{\rm{M}_\odot / \rm{h}}` 1 :math:`Mass`
+('io', 'virial_radius') :math:`\mathrm{\rm{pc}/(1+z) / \rm{h}}` 1 :math:`Radius`
+('io', 'child_r') :math:`\mathrm{\rm{pc}/(1+z) / \rm{h}}` 1
+('io', 'vmax_r') :math:`\mathrm{\rm{km} / \rm{s}}` 1
+('io', 'mgrav') 1
+('io', 'vmax') :math:`\mathrm{\rm{km} / \rm{s}}` 1 :math:`V_{max}`
+('io', 'rvmax') :math:`\mathrm{\rm{km} / \rm{s}}` 1
+('io', 'rs') :math:`\mathrm{\rm{pc}/(1+z) / \rm{h}}` 1 :math:`R_s`
+('io', 'klypin_rs') :math:`\mathrm{\rm{pc}/(1+z) / \rm{h}}` 1 :math:`Klypin R_s`
+('io', 'vrms') :math:`\mathrm{\rm{km} / \rm{s}}` 1 :math:`V_{rms}`
+('io', 'Jx') 1 :math:`J_x`
+('io', 'Jy') 1 :math:`J_y`
+('io', 'Jz') 1 :math:`J_z`
+('io', 'energy') 1
+('io', 'spin') 1 :math:`Spin Parameter`
+('io', 'alt_m1') :math:`\mathrm{\rm{M}_\odot / \rm{h}}` 1
+('io', 'alt_m2') :math:`\mathrm{\rm{M}_\odot / \rm{h}}` 1
+('io', 'alt_m3') :math:`\mathrm{\rm{M}_\odot / \rm{h}}` 1
+('io', 'alt_m4') :math:`\mathrm{\rm{M}_\odot / \rm{h}}` 1
+('io', 'Xoff') 1
+('io', 'Voff') 1
+('io', 'b_to_a') 1 :math:`Ellipsoidal b to a`
+('io', 'c_to_a') 1 :math:`Ellipsoidal c to a`
+('io', 'Ax') 1 :math:`A_x`
+('io', 'Ay') 1 :math:`A_y`
+('io', 'Az') 1 :math:`A_z`
+('io', 'b_to_a2') 1
+('io', 'c_to_a2') 1
+('io', 'A2x') 1 :math:`A2_x`
+('io', 'A2y') 1 :math:`A2_y`
+('io', 'A2z') 1 :math:`A2_z`
+('io', 'bullock_spin') 1 :math:`Bullock Spin Parameter`
+('io', 'kin_to_pot') 1 :math:`Kinetic to Potential`
+('io', 'm_pe_b') 1
+('io', 'm_pe_d') 1
+('io', 'num_p') 1 :math:`Number of Particles`
+('io', 'num_child_particles') 1 :math:`Number of Child Particles`
+('io', 'p_start') 1
+('io', 'desc') 1
+('io', 'flags') 1
+('io', 'n_core') 1
+('io', 'min_pos_err') 1
+('io', 'min_vel_err') 1
+('io', 'min_bulkvel_err') 1
+============================= ======================================= ======= ========= =================================
.. _Tipsy_specific_fields:
Tipsy-Specific Fields
https://bitbucket.org/yt_analysis/yt/commits/075792dd00bb/
Changeset: 075792dd00bb
Branch: yt
User: mzingale
Date: 2014-11-25 19:59:08+00:00
Summary: deal with \r in the specific heat field names
Affected #: 1 file
diff -r bafd93262fd43a869d8ddfd75215887ba1cad853 -r 075792dd00bb92b40878785f909c5cb50e34687b yt/frontends/flash/fields.py
--- a/yt/frontends/flash/fields.py
+++ b/yt/frontends/flash/fields.py
@@ -67,8 +67,8 @@
("ye", ("", [], "Y_e")),
("magp", (pres_units, [], None)),
("divb", ("code_magnetic*code_length", [], None)),
- ("game", ("", [], "\gamma_e\/\rm{(ratio\/of\/specific\/heats)}")),
- ("gamc", ("", [], "\gamma_c\/\rm{(ratio\/of\/specific\/heats)}")),
+ ("game", ("", [], r"\gamma_e\/\rm{(ratio\/of\/specific\/heats)}")),
+ ("gamc", ("", [], r"\gamma_c\/\rm{(ratio\/of\/specific\/heats)}")),
("flam", ("", [], None)),
("absr", ("", [], "Absorption Coefficient")),
("emis", ("", [], "Emissivity")),
https://bitbucket.org/yt_analysis/yt/commits/fae08d86f0dc/
Changeset: fae08d86f0dc
Branch: yt
User: mzingale
Date: 2014-11-25 19:59:37+00:00
Summary: new run of the field list with the Flash front end changes
Affected #: 1 file
diff -r 075792dd00bb92b40878785f909c5cb50e34687b -r fae08d86f0dcac28acabed44c868b87a7f836e61 doc/source/reference/field_list.rst
--- a/doc/source/reference/field_list.rst
+++ b/doc/source/reference/field_list.rst
@@ -2886,8 +2886,8 @@
('flash', 'ye') 0 :math:`Y_e`
('flash', 'magp') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length} \cdot \rm{code}~\rm{time}^{2}}}` 0
('flash', 'divb') :math:`\mathrm{\rm{code}~\rm{length} \cdot \rm{code_magnetic}}` 0
-('flash', 'game') 0 :math:`\gamma_e\/
m{(ratio\/of\/specific\/heats)}`
-('flash', 'gamc') 0 :math:`\gamma_c\/
m{(ratio\/of\/specific\/heats)}`
+('flash', 'game') 0 :math:`\gamma_e\/m{(ratio\/of\/specific\/heats)}`
+('flash', 'gamc') 0 :math:`\gamma_c\/m{(ratio\/of\/specific\/heats)}`
('flash', 'flam') 0
('flash', 'absr') 0 :math:`Absorption Coefficient`
('flash', 'emis') 0 :math:`Emissivity`
https://bitbucket.org/yt_analysis/yt/commits/f778b2f71ad3/
Changeset: f778b2f71ad3
Branch: yt
User: mzingale
Date: 2014-11-26 00:30:00+00:00
Summary: update to reflect the flash frontend fixes
Affected #: 1 file
diff -r fae08d86f0dcac28acabed44c868b87a7f836e61 -r f778b2f71ad35bfc67f186d928c65196e84b4f91 doc/source/reference/field_list.rst
--- a/doc/source/reference/field_list.rst
+++ b/doc/source/reference/field_list.rst
@@ -2861,58 +2861,58 @@
FLASH-Specific Fields
---------------------
-======================= ==================================================================================================== =========================== ========= ==================================================
-field name units aliases particle? display name
-======================= ==================================================================================================== =========================== ========= ==================================================
-('flash', 'velx') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``velocity_x`` 0
-('flash', 'vely') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``velocity_y`` 0
-('flash', 'velz') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``velocity_z`` 0
-('flash', 'dens') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length}^{3}}}` ``density`` 0
-('flash', 'temp') :math:`\mathrm{\rm{code}~\rm{temperature}}` ``temperature`` 0
-('flash', 'pres') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length} \cdot \rm{code}~\rm{time}^{2}}}` ``pressure`` 0
-('flash', 'gpot') :math:`\mathrm{\frac{\rm{code}~\rm{length}^{2}}{\rm{code}~\rm{time}^{2}}}` ``gravitational_potential`` 0
-('flash', 'gpol') :math:`\mathrm{\frac{\rm{code}~\rm{length}^{2}}{\rm{code}~\rm{time}^{2}}}` 0
-('flash', 'tion') :math:`\mathrm{\rm{code}~\rm{temperature}}` 0
-('flash', 'tele') :math:`\mathrm{\rm{code}~\rm{temperature}}` 0
-('flash', 'trad') :math:`\mathrm{\rm{code}~\rm{temperature}}` 0
-('flash', 'pion') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length} \cdot \rm{code}~\rm{time}^{2}}}` 0
-('flash', 'pele') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length} \cdot \rm{code}~\rm{time}^{2}}}` 0 :math:`Electron Pressure, P_e`
-('flash', 'prad') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length} \cdot \rm{code}~\rm{time}^{2}}}` 0 :math:`Radiation Pressure`
-('flash', 'eion') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{time}^{2}} \cdot \rm{code}~\rm{length}^{2}}` 0 :math:`Ion Internal Energy`
-('flash', 'eele') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{time}^{2}} \cdot \rm{code}~\rm{length}^{2}}` 0 :math:`Electron Internal Energy`
-('flash', 'erad') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{time}^{2}} \cdot \rm{code}~\rm{length}^{2}}` 0 :math:`Radiation Internal Energy`
-('flash', 'pden') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length}^{3}}}` 0
-('flash', 'depo') :math:`\mathrm{\frac{\rm{code}~\rm{length}^{2}}{\rm{code}~\rm{time}^{2}}}` 0
-('flash', 'ye') 0 :math:`Y_e`
-('flash', 'magp') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length} \cdot \rm{code}~\rm{time}^{2}}}` 0
-('flash', 'divb') :math:`\mathrm{\rm{code}~\rm{length} \cdot \rm{code_magnetic}}` 0
-('flash', 'game') 0 :math:`\gamma_e\/m{(ratio\/of\/specific\/heats)}`
-('flash', 'gamc') 0 :math:`\gamma_c\/m{(ratio\/of\/specific\/heats)}`
-('flash', 'flam') 0
-('flash', 'absr') 0 :math:`Absorption Coefficient`
-('flash', 'emis') 0 :math:`Emissivity`
-('flash', 'cond') 0 :math:`Conductivity`
-('flash', 'dfcf') 0 :math:`Diffusion Equation Scalar`
-('flash', 'fllm') 0 :math:`Flux Limit`
-('flash', 'pipe') 0 :math:`P_i/P_e`
-('flash', 'tite') 0 :math:`T_i/T_e`
-('flash', 'dbgs') 0 :math:`Debug for Shocks`
-('flash', 'cham') 0 :math:`Chamber Material Fraction`
-('flash', 'targ') 0 :math:`Target Material Fraction`
-('flash', 'sumy') 0
-('flash', 'mgdc') 0 :math:`Emission Minus Absorption Diffusion Terms`
-('flash', 'magx') :math:`\mathrm{\rm{code_magnetic}}` ``magnetic_field_x`` 0 :math:`B_x`
-('flash', 'magy') :math:`\mathrm{\rm{code_magnetic}}` ``magnetic_field_y`` 0 :math:`B_y`
-('flash', 'magz') :math:`\mathrm{\rm{code_magnetic}}` ``magnetic_field_z`` 0 :math:`B_z`
-('io', 'particle_posx') :math:`\mathrm{\rm{code}~\rm{length}}` ``particle_position_x`` 1
-('io', 'particle_posy') :math:`\mathrm{\rm{code}~\rm{length}}` ``particle_position_y`` 1
-('io', 'particle_posz') :math:`\mathrm{\rm{code}~\rm{length}}` ``particle_position_z`` 1
-('io', 'particle_velx') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``particle_velocity_x`` 1
-('io', 'particle_vely') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``particle_velocity_y`` 1
-('io', 'particle_velz') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``particle_velocity_z`` 1
-('io', 'particle_tag') ``particle_index`` 1
-('io', 'particle_mass') :math:`\mathrm{\rm{code}~\rm{mass}}` ``particle_mass`` 1
-======================= ==================================================================================================== =========================== ========= ==================================================
+======================= ==================================================================================================== =========================== ========= ===================================================
+field name units aliases particle? display name
+======================= ==================================================================================================== =========================== ========= ===================================================
+('flash', 'velx') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``velocity_x`` 0
+('flash', 'vely') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``velocity_y`` 0
+('flash', 'velz') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``velocity_z`` 0
+('flash', 'dens') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length}^{3}}}` ``density`` 0
+('flash', 'temp') :math:`\mathrm{\rm{code}~\rm{temperature}}` ``temperature`` 0
+('flash', 'pres') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length} \cdot \rm{code}~\rm{time}^{2}}}` ``pressure`` 0
+('flash', 'gpot') :math:`\mathrm{\frac{\rm{code}~\rm{length}^{2}}{\rm{code}~\rm{time}^{2}}}` ``gravitational_potential`` 0
+('flash', 'gpol') :math:`\mathrm{\frac{\rm{code}~\rm{length}^{2}}{\rm{code}~\rm{time}^{2}}}` 0
+('flash', 'tion') :math:`\mathrm{\rm{code}~\rm{temperature}}` 0
+('flash', 'tele') :math:`\mathrm{\rm{code}~\rm{temperature}}` 0
+('flash', 'trad') :math:`\mathrm{\rm{code}~\rm{temperature}}` 0
+('flash', 'pion') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length} \cdot \rm{code}~\rm{time}^{2}}}` 0
+('flash', 'pele') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length} \cdot \rm{code}~\rm{time}^{2}}}` 0 :math:`Electron Pressure, P_e`
+('flash', 'prad') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length} \cdot \rm{code}~\rm{time}^{2}}}` 0 :math:`Radiation Pressure`
+('flash', 'eion') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{time}^{2}} \cdot \rm{code}~\rm{length}^{2}}` 0 :math:`Ion Internal Energy`
+('flash', 'eele') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{time}^{2}} \cdot \rm{code}~\rm{length}^{2}}` 0 :math:`Electron Internal Energy`
+('flash', 'erad') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{time}^{2}} \cdot \rm{code}~\rm{length}^{2}}` 0 :math:`Radiation Internal Energy`
+('flash', 'pden') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length}^{3}}}` 0
+('flash', 'depo') :math:`\mathrm{\frac{\rm{code}~\rm{length}^{2}}{\rm{code}~\rm{time}^{2}}}` 0
+('flash', 'ye') 0 :math:`Y_e`
+('flash', 'magp') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length} \cdot \rm{code}~\rm{time}^{2}}}` 0
+('flash', 'divb') :math:`\mathrm{\rm{code}~\rm{length} \cdot \rm{code_magnetic}}` 0
+('flash', 'game') 0 :math:`\gamma_e\/\rm{(ratio\/of\/specific\/heats)}`
+('flash', 'gamc') 0 :math:`\gamma_c\/\rm{(ratio\/of\/specific\/heats)}`
+('flash', 'flam') 0
+('flash', 'absr') 0 :math:`Absorption Coefficient`
+('flash', 'emis') 0 :math:`Emissivity`
+('flash', 'cond') 0 :math:`Conductivity`
+('flash', 'dfcf') 0 :math:`Diffusion Equation Scalar`
+('flash', 'fllm') 0 :math:`Flux Limit`
+('flash', 'pipe') 0 :math:`P_i/P_e`
+('flash', 'tite') 0 :math:`T_i/T_e`
+('flash', 'dbgs') 0 :math:`Debug for Shocks`
+('flash', 'cham') 0 :math:`Chamber Material Fraction`
+('flash', 'targ') 0 :math:`Target Material Fraction`
+('flash', 'sumy') 0
+('flash', 'mgdc') 0 :math:`Emission Minus Absorption Diffusion Terms`
+('flash', 'magx') :math:`\mathrm{\rm{code_magnetic}}` ``magnetic_field_x`` 0 :math:`B_x`
+('flash', 'magy') :math:`\mathrm{\rm{code_magnetic}}` ``magnetic_field_y`` 0 :math:`B_y`
+('flash', 'magz') :math:`\mathrm{\rm{code_magnetic}}` ``magnetic_field_z`` 0 :math:`B_z`
+('io', 'particle_posx') :math:`\mathrm{\rm{code}~\rm{length}}` ``particle_position_x`` 1
+('io', 'particle_posy') :math:`\mathrm{\rm{code}~\rm{length}}` ``particle_position_y`` 1
+('io', 'particle_posz') :math:`\mathrm{\rm{code}~\rm{length}}` ``particle_position_z`` 1
+('io', 'particle_velx') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``particle_velocity_x`` 1
+('io', 'particle_vely') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``particle_velocity_y`` 1
+('io', 'particle_velz') :math:`\mathrm{\rm{code}~\rm{length} / \rm{code}~\rm{time}}` ``particle_velocity_z`` 1
+('io', 'particle_tag') ``particle_index`` 1
+('io', 'particle_mass') :math:`\mathrm{\rm{code}~\rm{mass}}` ``particle_mass`` 1
+======================= ==================================================================================================== =========================== ========= ===================================================
.. _GDF_specific_fields:
GDF-Specific Fields
https://bitbucket.org/yt_analysis/yt/commits/28227b001654/
Changeset: 28227b001654
Branch: yt
User: ngoldbaum
Date: 2014-11-26 00:59:28+00:00
Summary: Ensure Gadget field shows up in the field list.
Affected #: 3 files
diff -r f778b2f71ad35bfc67f186d928c65196e84b4f91 -r 28227b0016541a7ecae197a488bae705c957f825 doc/helper_scripts/show_fields.py
--- a/doc/helper_scripts/show_fields.py
+++ b/doc/helper_scripts/show_fields.py
@@ -190,9 +190,11 @@
field_info_names = [fi for fi in dir(this_f) if "FieldInfo" in fi]
dataset_names = [dset for dset in dir(this_f) if "Dataset" in dset]
- if frontend == "sph":
- field_info_names = \
- ['TipsyFieldInfo' if 'Tipsy' in d else 'SPHFieldInfo' for d in dataset_names]
+ if frontend == "gadget":
+ # Drop duplicate entry for GadgetHDF5, add special case for FieldInfo
+ # entry
+ dataset_names = ['GadgetDataset']
+ field_info_names = ['SPHFieldInfo']
elif frontend == "boxlib":
field_info_names = []
for d in dataset_names:
diff -r f778b2f71ad35bfc67f186d928c65196e84b4f91 -r 28227b0016541a7ecae197a488bae705c957f825 doc/source/reference/field_list.rst
--- a/doc/source/reference/field_list.rst
+++ b/doc/source/reference/field_list.rst
@@ -2913,6 +2913,42 @@
('io', 'particle_tag') ``particle_index`` 1
('io', 'particle_mass') :math:`\mathrm{\rm{code}~\rm{mass}}` ``particle_mass`` 1
======================= ==================================================================================================== =========================== ========= ===================================================
+.. _Gadget_specific_fields:
+
+Gadget-Specific Fields
+----------------------
+
+============================ ====================================================================== ===================== ========= ============
+field name units aliases particle? display name
+============================ ====================================================================== ===================== ========= ============
+('io', 'Mass') :math:`\mathrm{\rm{code}~\rm{mass}}` ``particle_mass`` 1
+('io', 'Masses') :math:`\mathrm{\rm{code}~\rm{mass}}` ``particle_mass`` 1
+('io', 'Coordinates') :math:`\mathrm{\rm{code}~\rm{length}}` ``particle_position`` 1
+('io', 'Velocity') :math:`\mathrm{\rm{code}~\rm{velocity}}` ``particle_velocity`` 1
+('io', 'Velocities') :math:`\mathrm{\rm{code}~\rm{velocity}}` ``particle_velocity`` 1
+('io', 'ParticleIDs') ``particle_index`` 1
+('io', 'InternalEnergy') ``thermal_energy`` 1
+('io', 'SmoothingLength') :math:`\mathrm{\rm{code}~\rm{length}}` ``smoothing_length`` 1
+('io', 'Density') :math:`\mathrm{\frac{\rm{code}~\rm{mass}}{\rm{code}~\rm{length}^{3}}}` ``density`` 1
+('io', 'MaximumTemperature') :math:`\mathrm{\rm{K}}` 1
+('io', 'Temperature') :math:`\mathrm{\rm{K}}` ``temperature`` 1
+('io', 'Epsilon') :math:`\mathrm{\rm{code}~\rm{length}}` 1
+('io', 'Metals') :math:`\mathrm{\rm{code}~\rm{metallicity}}` ``metallicity`` 1
+('io', 'Metallicity') :math:`\mathrm{\rm{code}~\rm{metallicity}}` ``metallicity`` 1
+('io', 'Phi') :math:`\mathrm{\rm{code}~\rm{length}}` 1
+('io', 'FormationTime') :math:`\mathrm{\rm{code}~\rm{time}}` ``creation_time`` 1
+('io', 'Metallicity_00') ``metallicity`` 1
+('io', 'Metallicity_01') ``He_fraction`` 1
+('io', 'Metallicity_02') ``C_fraction`` 1
+('io', 'Metallicity_03') ``N_fraction`` 1
+('io', 'Metallicity_04') ``O_fraction`` 1
+('io', 'Metallicity_05') ``Ne_fraction`` 1
+('io', 'Metallicity_06') ``Mg_fraction`` 1
+('io', 'Metallicity_07') ``Si_fraction`` 1
+('io', 'Metallicity_08') ``S_fraction`` 1
+('io', 'Metallicity_09') ``Ca_fraction`` 1
+('io', 'Metallicity_10') ``Fe_fraction`` 1
+============================ ====================================================================== ===================== ========= ============
.. _GDF_specific_fields:
GDF-Specific Fields
diff -r f778b2f71ad35bfc67f186d928c65196e84b4f91 -r 28227b0016541a7ecae197a488bae705c957f825 yt/frontends/gadget/api.py
--- a/yt/frontends/gadget/api.py
+++ b/yt/frontends/gadget/api.py
@@ -16,7 +16,8 @@
from .data_structures import \
GadgetDataset, \
- GadgetHDF5Dataset
+ GadgetHDF5Dataset, \
+ SPHFieldInfo
from .io import \
IOHandlerGadgetBinary, \
https://bitbucket.org/yt_analysis/yt/commits/a2191caf624a/
Changeset: a2191caf624a
Branch: yt
User: ngoldbaum
Date: 2014-12-02 20:26:08+00:00
Summary: Make sure autogenerated field list includes particle fields.
Affected #: 2 files
diff -r 28227b0016541a7ecae197a488bae705c957f825 -r a2191caf624a1dbfa7bd6bb37c32be14952de0ac doc/helper_scripts/show_fields.py
--- a/doc/helper_scripts/show_fields.py
+++ b/doc/helper_scripts/show_fields.py
@@ -38,7 +38,7 @@
np.random.seed(int(0x4d3d3d3))
units = [base_ds._get_field_info(*f).units for f in fields]
fields = [_strip_ftype(f) for f in fields]
-ds = fake_random_ds(16, fields = fields, units = units)
+ds = fake_random_ds(16, fields=fields, units=units, particles=True)
ds.parameters["HydroMethod"] = "streaming"
ds.parameters["EOSType"] = 1.0
ds.parameters["EOSSoundSpeed"] = 1.0
diff -r 28227b0016541a7ecae197a488bae705c957f825 -r a2191caf624a1dbfa7bd6bb37c32be14952de0ac doc/source/reference/field_list.rst
--- a/doc/source/reference/field_list.rst
+++ b/doc/source/reference/field_list.rst
@@ -43,6 +43,1046 @@
Universal Fields
----------------
+('all', 'mesh_id')
+^^^^^^^^^^^^^^^^^^
+
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def particle_mesh_ids(field, data):
+ pos = data[ptype, coord_name]
+ ids = np.zeros(pos.shape[0], dtype="float64") - 1
+ # This is float64 in name only. It will be properly cast inside the
+ # deposit operation.
+ #_ids = ids.view("float64")
+ data.deposit(pos, [ids], method = "mesh_id")
+ return data.apply_units(ids, "")
+
+
+('all', 'particle_angular_momentum')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}^{2} \cdot \rm{g} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_angular_momentum(field, data):
+ return data[ptype, "particle_mass"] \
+ * data[ptype, "particle_specific_angular_momentum"]
+
+
+('all', 'particle_angular_momentum_magnitude')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}^{2} \cdot \rm{g} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _magnitude(field, data):
+ fn = field_components[0]
+ mag = data[fn] * data[fn]
+ for idim in range(1, registry.ds.dimensionality):
+ fn = field_components[idim]
+ mag += data[fn] * data[fn]
+ return np.sqrt(mag)
+
+
+('all', 'particle_angular_momentum_x')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}^{2} \cdot \rm{g} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_angular_momentum_x(field, data):
+ return data[ptype, "particle_mass"] * \
+ data[ptype, "particle_specific_angular_momentum_x"]
+
+
+('all', 'particle_angular_momentum_y')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}^{2} \cdot \rm{g} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_angular_momentum_y(field, data):
+ return data[ptype, "particle_mass"] * \
+ data[ptype, "particle_specific_angular_momentum_y"]
+
+
+('all', 'particle_angular_momentum_z')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}^{2} \cdot \rm{g} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_angular_momentum_z(field, data):
+ return data[ptype, "particle_mass"] * \
+ data[ptype, "particle_specific_angular_momentum_z"]
+
+
+('all', 'particle_mass')
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{g}`
+ * Particle Type: True
+
+**Field Source**
+
+No source available.
+
+('all', 'particle_ones')
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def particle_ones(field, data):
+ v = np.ones(data[ptype, mass_name].shape, dtype="float64")
+ return data.apply_units(v, field.units)
+
+
+('all', 'particle_position')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{code}~\rm{length}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def particle_vectors(field, data):
+ v = [data[_ptype, name].in_units(field.units)
+ for name in names]
+ c = np.column_stack(v)
+ return data.apply_units(c, field.units)
+
+
+('all', 'particle_position_x')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{code}~\rm{length}`
+ * Particle Type: True
+
+**Field Source**
+
+No source available.
+
+('all', 'particle_position_y')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{code}~\rm{length}`
+ * Particle Type: True
+
+**Field Source**
+
+No source available.
+
+('all', 'particle_position_z')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{code}~\rm{length}`
+ * Particle Type: True
+
+**Field Source**
+
+No source available.
+
+('all', 'particle_radial_velocity')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_spherical_velocity_radius(field, data):
+ """
+ Radial component of the particles' velocity vectors in spherical coords
+ based on the provided field parameters for 'normal', 'center', and
+ 'bulk_velocity',
+ """
+ normal = data.get_field_parameter('normal')
+ center = data.get_field_parameter('center')
+ bv = data.get_field_parameter("bulk_velocity")
+ pos = spos
+ pos = YTArray([data[ptype, pos % ax] for ax in "xyz"])
+ vel = svel
+ vel = YTArray([data[ptype, vel % ax] for ax in "xyz"])
+ theta = get_sph_theta(pos, center)
+ phi = get_sph_phi(pos, center)
+ pos = pos - np.reshape(center, (3, 1))
+ vel = vel - np.reshape(bv, (3, 1))
+ sphr = get_sph_r_component(vel, theta, phi, normal)
+ return sphr
+
+
+('all', 'particle_radius')
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_radius(field, data):
+ return get_radius(data, "particle_position_")
+
+
+('all', 'particle_specific_angular_momentum')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}^{2} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_specific_angular_momentum(field, data):
+ """
+ Calculate the angular of a particle velocity. Returns a vector for each
+ particle.
+ """
+ if data.has_field_parameter("bulk_velocity"):
+ bv = data.get_field_parameter("bulk_velocity")
+ else: bv = np.zeros(3, dtype=np.float64)
+ xv = data[ptype, svel % 'x'] - bv[0]
+ yv = data[ptype, svel % 'y'] - bv[1]
+ zv = data[ptype, svel % 'z'] - bv[2]
+ center = data.get_field_parameter('center')
+ coords = YTArray([data[ptype, spos % 'x'],
+ data[ptype, spos % 'y'],
+ data[ptype, spos % 'z']], dtype=np.float64)
+ new_shape = tuple([3] + [1]*(len(coords.shape)-1))
+ r_vec = coords - np.reshape(center,new_shape)
+ v_vec = YTArray([xv,yv,zv], dtype=np.float64)
+ return np.cross(r_vec, v_vec, axis=0)
+
+
+('all', 'particle_specific_angular_momentum_magnitude')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}^{2} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _magnitude(field, data):
+ fn = field_components[0]
+ mag = data[fn] * data[fn]
+ for idim in range(1, registry.ds.dimensionality):
+ fn = field_components[idim]
+ mag += data[fn] * data[fn]
+ return np.sqrt(mag)
+
+
+('all', 'particle_specific_angular_momentum_x')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}^{2} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_specific_angular_momentum_x(field, data):
+ if data.has_field_parameter("bulk_velocity"):
+ bv = data.get_field_parameter("bulk_velocity")
+ else: bv = np.zeros(3, dtype=np.float64)
+ center = data.get_field_parameter('center')
+ y = data[ptype, spos % "y"] - center[1]
+ z = data[ptype, spos % "z"] - center[2]
+ yv = data[ptype, svel % "y"] - bv[1]
+ zv = data[ptype, svel % "z"] - bv[2]
+ return yv*z - zv*y
+
+
+('all', 'particle_specific_angular_momentum_y')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}^{2} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_specific_angular_momentum_y(field, data):
+ if data.has_field_parameter("bulk_velocity"):
+ bv = data.get_field_parameter("bulk_velocity")
+ else: bv = np.zeros(3, dtype=np.float64)
+ center = data.get_field_parameter('center')
+ x = data[ptype, spos % "x"] - center[0]
+ z = data[ptype, spos % "z"] - center[2]
+ xv = data[ptype, svel % "x"] - bv[0]
+ zv = data[ptype, svel % "z"] - bv[2]
+ return -(xv*z - zv*x)
+
+
+('all', 'particle_specific_angular_momentum_z')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}^{2} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_specific_angular_momentum_z(field, data):
+ if data.has_field_parameter("bulk_velocity"):
+ bv = data.get_field_parameter("bulk_velocity")
+ else: bv = np.zeros(3, dtype=np.float64)
+ center = data.get_field_parameter('center')
+ x = data[ptype, spos % "x"] - center[0]
+ y = data[ptype, spos % "y"] - center[1]
+ xv = data[ptype, svel % "x"] - bv[0]
+ yv = data[ptype, svel % "y"] - bv[1]
+ return xv*y - yv*x
+
+
+('all', 'particle_spherical_position_phi')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_spherical_position_phi(field, data):
+ """
+ Phi component of the particles' position vectors in spherical coords
+ on the provided field parameters for 'normal', 'center', and
+ 'bulk_velocity',
+ """
+ normal = data.get_field_parameter('normal')
+ center = data.get_field_parameter('center')
+ bv = data.get_field_parameter("bulk_velocity")
+ pos = spos
+ pos = YTArray([data[ptype, pos % ax] for ax in "xyz"])
+ theta = get_sph_theta(pos, center)
+ phi = get_sph_phi(pos, center)
+ pos = pos - np.reshape(center, (3, 1))
+ sphp = get_sph_phi_component(pos, phi, normal)
+ return sphp
+
+
+('all', 'particle_spherical_position_radius')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_spherical_position_radius(field, data):
+ """
+ Radial component of the particles' position vectors in spherical coords
+ on the provided field parameters for 'normal', 'center', and
+ 'bulk_velocity',
+ """
+ normal = data.get_field_parameter('normal')
+ center = data.get_field_parameter('center')
+ bv = data.get_field_parameter("bulk_velocity")
+ pos = spos
+ pos = YTArray([data[ptype, pos % ax] for ax in "xyz"])
+ theta = get_sph_theta(pos, center)
+ phi = get_sph_phi(pos, center)
+ pos = pos - np.reshape(center, (3, 1))
+ sphr = get_sph_r_component(pos, theta, phi, normal)
+ return sphr
+
+
+('all', 'particle_spherical_position_theta')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_spherical_position_theta(field, data):
+ """
+ Theta component of the particles' position vectors in spherical coords
+ on the provided field parameters for 'normal', 'center', and
+ 'bulk_velocity',
+ """
+ normal = data.get_field_parameter('normal')
+ center = data.get_field_parameter('center')
+ bv = data.get_field_parameter("bulk_velocity")
+ pos = spos
+ pos = YTArray([data[ptype, pos % ax] for ax in "xyz"])
+ theta = get_sph_theta(pos, center)
+ phi = get_sph_phi(pos, center)
+ pos = pos - np.reshape(center, (3, 1))
+ spht = get_sph_theta_component(pos, theta, phi, normal)
+ return spht
+
+
+('all', 'particle_spherical_velocity_phi')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_spherical_velocity_phi(field, data):
+ """
+ Phi component of the particles' velocity vectors in spherical coords
+ based on the provided field parameters for 'normal', 'center', and
+ 'bulk_velocity',
+ """
+ normal = data.get_field_parameter('normal')
+ center = data.get_field_parameter('center')
+ bv = data.get_field_parameter("bulk_velocity")
+ pos = YTArray([data[ptype, spos % ax] for ax in "xyz"])
+ vel = YTArray([data[ptype, svel % ax] for ax in "xyz"])
+ theta = get_sph_theta(pos, center)
+ phi = get_sph_phi(pos, center)
+ pos = pos - np.reshape(center, (3, 1))
+ vel = vel - np.reshape(bv, (3, 1))
+ sphp = get_sph_phi_component(vel, phi, normal)
+ return sphp
+
+
+('all', 'particle_spherical_velocity_radius')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_spherical_velocity_radius(field, data):
+ """
+ Radial component of the particles' velocity vectors in spherical coords
+ based on the provided field parameters for 'normal', 'center', and
+ 'bulk_velocity',
+ """
+ normal = data.get_field_parameter('normal')
+ center = data.get_field_parameter('center')
+ bv = data.get_field_parameter("bulk_velocity")
+ pos = spos
+ pos = YTArray([data[ptype, pos % ax] for ax in "xyz"])
+ vel = svel
+ vel = YTArray([data[ptype, vel % ax] for ax in "xyz"])
+ theta = get_sph_theta(pos, center)
+ phi = get_sph_phi(pos, center)
+ pos = pos - np.reshape(center, (3, 1))
+ vel = vel - np.reshape(bv, (3, 1))
+ sphr = get_sph_r_component(vel, theta, phi, normal)
+ return sphr
+
+
+('all', 'particle_spherical_velocity_theta')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_spherical_velocity_theta(field, data):
+ """
+ Theta component of the particles' velocity vectors in spherical coords
+ based on the provided field parameters for 'normal', 'center', and
+ 'bulk_velocity',
+ """
+ normal = data.get_field_parameter('normal')
+ center = data.get_field_parameter('center')
+ bv = data.get_field_parameter("bulk_velocity")
+ pos = spos
+ pos = YTArray([data[ptype, pos % ax] for ax in "xyz"])
+ vel = svel
+ vel = YTArray([data[ptype, vel % ax] for ax in "xyz"])
+ theta = get_sph_theta(pos, center)
+ phi = get_sph_phi(pos, center)
+ pos = pos - np.reshape(center, (3, 1))
+ vel = vel - np.reshape(bv, (3, 1))
+ spht = get_sph_theta_component(vel, theta, phi, normal)
+ return spht
+
+
+('all', 'particle_velocity')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def particle_vectors(field, data):
+ v = [data[_ptype, name].in_units(field.units)
+ for name in names]
+ c = np.column_stack(v)
+ return data.apply_units(c, field.units)
+
+
+('all', 'particle_velocity_magnitude')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_velocity_magnitude(field, data):
+ """ M{|v|} """
+ bulk_velocity = data.get_field_parameter("bulk_velocity")
+ if bulk_velocity is None:
+ bulk_velocity = np.zeros(3)
+ return np.sqrt((data[ptype, svel % 'x'] - bulk_velocity[0])**2
+ + (data[ptype, svel % 'y'] - bulk_velocity[1])**2
+ + (data[ptype, svel % 'z'] - bulk_velocity[2])**2 )
+
+
+('all', 'particle_velocity_x')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+No source available.
+
+('all', 'particle_velocity_y')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+No source available.
+
+('all', 'particle_velocity_z')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+No source available.
+
+('deposit', 'all_cic')
+^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\frac{\rm{g}}{\rm{cm}^{3}}`
+ * Particle Type: False
+
+**Field Source**
+
+.. code-block:: python
+
+ def particle_cic(field, data):
+ pos = data[ptype, coord_name]
+ d = data.deposit(pos, [data[ptype, mass_name]], method = "cic")
+ d = data.apply_units(d, data[ptype, mass_name].units)
+ d /= data["index", "cell_volume"]
+ return d
+
+
+('deposit', 'all_cic_velocity_x')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: False
+
+**Field Source**
+
+.. code-block:: python
+
+ def _deposit_field(field, data):
+ """
+ Create a grid field for particle quantities weighted by particle
+ mass, using cloud-in-cell deposit.
+ """
+ pos = data[ptype, "particle_position"]
+ # Get back into density
+ pden = data[ptype, 'particle_mass']
+ top = data.deposit(pos, [data[(ptype, fname)]*pden], method=method)
+ bottom = data.deposit(pos, [pden], method=method)
+ top[bottom == 0] = 0.0
+ bnz = bottom.nonzero()
+ top[bnz] /= bottom[bnz]
+ d = data.ds.arr(top, input_units=units)
+ return d
+
+
+('deposit', 'all_cic_velocity_y')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: False
+
+**Field Source**
+
+.. code-block:: python
+
+ def _deposit_field(field, data):
+ """
+ Create a grid field for particle quantities weighted by particle
+ mass, using cloud-in-cell deposit.
+ """
+ pos = data[ptype, "particle_position"]
+ # Get back into density
+ pden = data[ptype, 'particle_mass']
+ top = data.deposit(pos, [data[(ptype, fname)]*pden], method=method)
+ bottom = data.deposit(pos, [pden], method=method)
+ top[bottom == 0] = 0.0
+ bnz = bottom.nonzero()
+ top[bnz] /= bottom[bnz]
+ d = data.ds.arr(top, input_units=units)
+ return d
+
+
+('deposit', 'all_cic_velocity_z')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: False
+
+**Field Source**
+
+.. code-block:: python
+
+ def _deposit_field(field, data):
+ """
+ Create a grid field for particle quantities weighted by particle
+ mass, using cloud-in-cell deposit.
+ """
+ pos = data[ptype, "particle_position"]
+ # Get back into density
+ pden = data[ptype, 'particle_mass']
+ top = data.deposit(pos, [data[(ptype, fname)]*pden], method=method)
+ bottom = data.deposit(pos, [pden], method=method)
+ top[bottom == 0] = 0.0
+ bnz = bottom.nonzero()
+ top[bnz] /= bottom[bnz]
+ d = data.ds.arr(top, input_units=units)
+ return d
+
+
+('deposit', 'all_count')
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Particle Type: False
+
+**Field Source**
+
+.. code-block:: python
+
+ def particle_count(field, data):
+ pos = data[ptype, coord_name]
+ d = data.deposit(pos, method = "count")
+ d = data.ds.arr(d, input_units = "cm**-3")
+ return data.apply_units(d, field.units)
+
+
+('deposit', 'all_density')
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\frac{\rm{g}}{\rm{cm}^{3}}`
+ * Particle Type: False
+
+**Field Source**
+
+.. code-block:: python
+
+ def particle_density(field, data):
+ pos = data[ptype, coord_name]
+ mass = data[ptype, mass_name]
+ pos.convert_to_units("code_length")
+ mass.convert_to_units("code_mass")
+ d = data.deposit(pos, [data[ptype, mass_name]], method = "sum")
+ d = data.ds.arr(d, "code_mass")
+ d /= data["index", "cell_volume"]
+ return d
+
+
+('deposit', 'all_mass')
+^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{g}`
+ * Particle Type: False
+
+**Field Source**
+
+.. code-block:: python
+
+ def particle_mass(field, data):
+ pos = data[ptype, coord_name]
+ pmass = data[ptype, mass_name].in_units(field.units)
+ d = data.deposit(pos, [pmass], method = "sum")
+ return data.apply_units(d, field.units)
+
+
+('deposit', 'all_nn_velocity_x')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: False
+
+**Field Source**
+
+.. code-block:: python
+
+ def _deposit_field(field, data):
+ """
+ Create a grid field for particle quantities weighted by particle
+ mass, using cloud-in-cell deposit.
+ """
+ pos = data[ptype, "particle_position"]
+ # Get back into density
+ pden = data[ptype, 'particle_mass']
+ top = data.deposit(pos, [data[(ptype, fname)]*pden], method=method)
+ bottom = data.deposit(pos, [pden], method=method)
+ top[bottom == 0] = 0.0
+ bnz = bottom.nonzero()
+ top[bnz] /= bottom[bnz]
+ d = data.ds.arr(top, input_units=units)
+ return d
+
+
+('deposit', 'all_nn_velocity_y')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: False
+
+**Field Source**
+
+.. code-block:: python
+
+ def _deposit_field(field, data):
+ """
+ Create a grid field for particle quantities weighted by particle
+ mass, using cloud-in-cell deposit.
+ """
+ pos = data[ptype, "particle_position"]
+ # Get back into density
+ pden = data[ptype, 'particle_mass']
+ top = data.deposit(pos, [data[(ptype, fname)]*pden], method=method)
+ bottom = data.deposit(pos, [pden], method=method)
+ top[bottom == 0] = 0.0
+ bnz = bottom.nonzero()
+ top[bnz] /= bottom[bnz]
+ d = data.ds.arr(top, input_units=units)
+ return d
+
+
+('deposit', 'all_nn_velocity_z')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: False
+
+**Field Source**
+
+.. code-block:: python
+
+ def _deposit_field(field, data):
+ """
+ Create a grid field for particle quantities weighted by particle
+ mass, using cloud-in-cell deposit.
+ """
+ pos = data[ptype, "particle_position"]
+ # Get back into density
+ pden = data[ptype, 'particle_mass']
+ top = data.deposit(pos, [data[(ptype, fname)]*pden], method=method)
+ bottom = data.deposit(pos, [pden], method=method)
+ top[bottom == 0] = 0.0
+ bnz = bottom.nonzero()
+ top[bnz] /= bottom[bnz]
+ d = data.ds.arr(top, input_units=units)
+ return d
+
+
+('deposit', 'io_cic')
+^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\frac{\rm{g}}{\rm{cm}^{3}}`
+ * Particle Type: False
+
+**Field Source**
+
+.. code-block:: python
+
+ def particle_cic(field, data):
+ pos = data[ptype, coord_name]
+ d = data.deposit(pos, [data[ptype, mass_name]], method = "cic")
+ d = data.apply_units(d, data[ptype, mass_name].units)
+ d /= data["index", "cell_volume"]
+ return d
+
+
+('deposit', 'io_cic_velocity_x')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: False
+
+**Field Source**
+
+.. code-block:: python
+
+ def _deposit_field(field, data):
+ """
+ Create a grid field for particle quantities weighted by particle
+ mass, using cloud-in-cell deposit.
+ """
+ pos = data[ptype, "particle_position"]
+ # Get back into density
+ pden = data[ptype, 'particle_mass']
+ top = data.deposit(pos, [data[(ptype, fname)]*pden], method=method)
+ bottom = data.deposit(pos, [pden], method=method)
+ top[bottom == 0] = 0.0
+ bnz = bottom.nonzero()
+ top[bnz] /= bottom[bnz]
+ d = data.ds.arr(top, input_units=units)
+ return d
+
+
+('deposit', 'io_cic_velocity_y')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: False
+
+**Field Source**
+
+.. code-block:: python
+
+ def _deposit_field(field, data):
+ """
+ Create a grid field for particle quantities weighted by particle
+ mass, using cloud-in-cell deposit.
+ """
+ pos = data[ptype, "particle_position"]
+ # Get back into density
+ pden = data[ptype, 'particle_mass']
+ top = data.deposit(pos, [data[(ptype, fname)]*pden], method=method)
+ bottom = data.deposit(pos, [pden], method=method)
+ top[bottom == 0] = 0.0
+ bnz = bottom.nonzero()
+ top[bnz] /= bottom[bnz]
+ d = data.ds.arr(top, input_units=units)
+ return d
+
+
+('deposit', 'io_cic_velocity_z')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: False
+
+**Field Source**
+
+.. code-block:: python
+
+ def _deposit_field(field, data):
+ """
+ Create a grid field for particle quantities weighted by particle
+ mass, using cloud-in-cell deposit.
+ """
+ pos = data[ptype, "particle_position"]
+ # Get back into density
+ pden = data[ptype, 'particle_mass']
+ top = data.deposit(pos, [data[(ptype, fname)]*pden], method=method)
+ bottom = data.deposit(pos, [pden], method=method)
+ top[bottom == 0] = 0.0
+ bnz = bottom.nonzero()
+ top[bnz] /= bottom[bnz]
+ d = data.ds.arr(top, input_units=units)
+ return d
+
+
+('deposit', 'io_count')
+^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Particle Type: False
+
+**Field Source**
+
+.. code-block:: python
+
+ def particle_count(field, data):
+ pos = data[ptype, coord_name]
+ d = data.deposit(pos, method = "count")
+ d = data.ds.arr(d, input_units = "cm**-3")
+ return data.apply_units(d, field.units)
+
+
+('deposit', 'io_density')
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\frac{\rm{g}}{\rm{cm}^{3}}`
+ * Particle Type: False
+
+**Field Source**
+
+.. code-block:: python
+
+ def particle_density(field, data):
+ pos = data[ptype, coord_name]
+ mass = data[ptype, mass_name]
+ pos.convert_to_units("code_length")
+ mass.convert_to_units("code_mass")
+ d = data.deposit(pos, [data[ptype, mass_name]], method = "sum")
+ d = data.ds.arr(d, "code_mass")
+ d /= data["index", "cell_volume"]
+ return d
+
+
+('deposit', 'io_mass')
+^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{g}`
+ * Particle Type: False
+
+**Field Source**
+
+.. code-block:: python
+
+ def particle_mass(field, data):
+ pos = data[ptype, coord_name]
+ pmass = data[ptype, mass_name].in_units(field.units)
+ d = data.deposit(pos, [pmass], method = "sum")
+ return data.apply_units(d, field.units)
+
+
+('deposit', 'io_nn_velocity_x')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: False
+
+**Field Source**
+
+.. code-block:: python
+
+ def _deposit_field(field, data):
+ """
+ Create a grid field for particle quantities weighted by particle
+ mass, using cloud-in-cell deposit.
+ """
+ pos = data[ptype, "particle_position"]
+ # Get back into density
+ pden = data[ptype, 'particle_mass']
+ top = data.deposit(pos, [data[(ptype, fname)]*pden], method=method)
+ bottom = data.deposit(pos, [pden], method=method)
+ top[bottom == 0] = 0.0
+ bnz = bottom.nonzero()
+ top[bnz] /= bottom[bnz]
+ d = data.ds.arr(top, input_units=units)
+ return d
+
+
+('deposit', 'io_nn_velocity_y')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: False
+
+**Field Source**
+
+.. code-block:: python
+
+ def _deposit_field(field, data):
+ """
+ Create a grid field for particle quantities weighted by particle
+ mass, using cloud-in-cell deposit.
+ """
+ pos = data[ptype, "particle_position"]
+ # Get back into density
+ pden = data[ptype, 'particle_mass']
+ top = data.deposit(pos, [data[(ptype, fname)]*pden], method=method)
+ bottom = data.deposit(pos, [pden], method=method)
+ top[bottom == 0] = 0.0
+ bnz = bottom.nonzero()
+ top[bnz] /= bottom[bnz]
+ d = data.ds.arr(top, input_units=units)
+ return d
+
+
+('deposit', 'io_nn_velocity_z')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: False
+
+**Field Source**
+
+.. code-block:: python
+
+ def _deposit_field(field, data):
+ """
+ Create a grid field for particle quantities weighted by particle
+ mass, using cloud-in-cell deposit.
+ """
+ pos = data[ptype, "particle_position"]
+ # Get back into density
+ pden = data[ptype, 'particle_mass']
+ top = data.deposit(pos, [data[(ptype, fname)]*pden], method=method)
+ bottom = data.deposit(pos, [pden], method=method)
+ top[bottom == 0] = 0.0
+ bnz = bottom.nonzero()
+ top[bnz] /= bottom[bnz]
+ d = data.ds.arr(top, input_units=units)
+ return d
+
+
('gas', 'H_nuclei_density')
^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -2475,6 +3515,578 @@
return data.apply_units(arr, field.units)
+('io', 'mesh_id')
+^^^^^^^^^^^^^^^^^
+
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def particle_mesh_ids(field, data):
+ pos = data[ptype, coord_name]
+ ids = np.zeros(pos.shape[0], dtype="float64") - 1
+ # This is float64 in name only. It will be properly cast inside the
+ # deposit operation.
+ #_ids = ids.view("float64")
+ data.deposit(pos, [ids], method = "mesh_id")
+ return data.apply_units(ids, "")
+
+
+('io', 'particle_angular_momentum')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}^{2} \cdot \rm{g} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_angular_momentum(field, data):
+ return data[ptype, "particle_mass"] \
+ * data[ptype, "particle_specific_angular_momentum"]
+
+
+('io', 'particle_angular_momentum_magnitude')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}^{2} \cdot \rm{g} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _magnitude(field, data):
+ fn = field_components[0]
+ mag = data[fn] * data[fn]
+ for idim in range(1, registry.ds.dimensionality):
+ fn = field_components[idim]
+ mag += data[fn] * data[fn]
+ return np.sqrt(mag)
+
+
+('io', 'particle_angular_momentum_x')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}^{2} \cdot \rm{g} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_angular_momentum_x(field, data):
+ return data[ptype, "particle_mass"] * \
+ data[ptype, "particle_specific_angular_momentum_x"]
+
+
+('io', 'particle_angular_momentum_y')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}^{2} \cdot \rm{g} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_angular_momentum_y(field, data):
+ return data[ptype, "particle_mass"] * \
+ data[ptype, "particle_specific_angular_momentum_y"]
+
+
+('io', 'particle_angular_momentum_z')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}^{2} \cdot \rm{g} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_angular_momentum_z(field, data):
+ return data[ptype, "particle_mass"] * \
+ data[ptype, "particle_specific_angular_momentum_z"]
+
+
+('io', 'particle_mass')
+^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{g}`
+ * Particle Type: True
+
+**Field Source**
+
+No source available.
+
+('io', 'particle_ones')
+^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def particle_ones(field, data):
+ v = np.ones(data[ptype, mass_name].shape, dtype="float64")
+ return data.apply_units(v, field.units)
+
+
+('io', 'particle_position')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{code}~\rm{length}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def particle_vectors(field, data):
+ v = [data[_ptype, name].in_units(field.units)
+ for name in names]
+ c = np.column_stack(v)
+ return data.apply_units(c, field.units)
+
+
+('io', 'particle_position_x')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{code}~\rm{length}`
+ * Particle Type: True
+
+**Field Source**
+
+No source available.
+
+('io', 'particle_position_y')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{code}~\rm{length}`
+ * Particle Type: True
+
+**Field Source**
+
+No source available.
+
+('io', 'particle_position_z')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{code}~\rm{length}`
+ * Particle Type: True
+
+**Field Source**
+
+No source available.
+
+('io', 'particle_radial_velocity')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_spherical_velocity_radius(field, data):
+ """
+ Radial component of the particles' velocity vectors in spherical coords
+ based on the provided field parameters for 'normal', 'center', and
+ 'bulk_velocity',
+ """
+ normal = data.get_field_parameter('normal')
+ center = data.get_field_parameter('center')
+ bv = data.get_field_parameter("bulk_velocity")
+ pos = spos
+ pos = YTArray([data[ptype, pos % ax] for ax in "xyz"])
+ vel = svel
+ vel = YTArray([data[ptype, vel % ax] for ax in "xyz"])
+ theta = get_sph_theta(pos, center)
+ phi = get_sph_phi(pos, center)
+ pos = pos - np.reshape(center, (3, 1))
+ vel = vel - np.reshape(bv, (3, 1))
+ sphr = get_sph_r_component(vel, theta, phi, normal)
+ return sphr
+
+
+('io', 'particle_radius')
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_radius(field, data):
+ return get_radius(data, "particle_position_")
+
+
+('io', 'particle_specific_angular_momentum')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}^{2} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_specific_angular_momentum(field, data):
+ """
+ Calculate the angular of a particle velocity. Returns a vector for each
+ particle.
+ """
+ if data.has_field_parameter("bulk_velocity"):
+ bv = data.get_field_parameter("bulk_velocity")
+ else: bv = np.zeros(3, dtype=np.float64)
+ xv = data[ptype, svel % 'x'] - bv[0]
+ yv = data[ptype, svel % 'y'] - bv[1]
+ zv = data[ptype, svel % 'z'] - bv[2]
+ center = data.get_field_parameter('center')
+ coords = YTArray([data[ptype, spos % 'x'],
+ data[ptype, spos % 'y'],
+ data[ptype, spos % 'z']], dtype=np.float64)
+ new_shape = tuple([3] + [1]*(len(coords.shape)-1))
+ r_vec = coords - np.reshape(center,new_shape)
+ v_vec = YTArray([xv,yv,zv], dtype=np.float64)
+ return np.cross(r_vec, v_vec, axis=0)
+
+
+('io', 'particle_specific_angular_momentum_magnitude')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}^{2} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _magnitude(field, data):
+ fn = field_components[0]
+ mag = data[fn] * data[fn]
+ for idim in range(1, registry.ds.dimensionality):
+ fn = field_components[idim]
+ mag += data[fn] * data[fn]
+ return np.sqrt(mag)
+
+
+('io', 'particle_specific_angular_momentum_x')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}^{2} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_specific_angular_momentum_x(field, data):
+ if data.has_field_parameter("bulk_velocity"):
+ bv = data.get_field_parameter("bulk_velocity")
+ else: bv = np.zeros(3, dtype=np.float64)
+ center = data.get_field_parameter('center')
+ y = data[ptype, spos % "y"] - center[1]
+ z = data[ptype, spos % "z"] - center[2]
+ yv = data[ptype, svel % "y"] - bv[1]
+ zv = data[ptype, svel % "z"] - bv[2]
+ return yv*z - zv*y
+
+
+('io', 'particle_specific_angular_momentum_y')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}^{2} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_specific_angular_momentum_y(field, data):
+ if data.has_field_parameter("bulk_velocity"):
+ bv = data.get_field_parameter("bulk_velocity")
+ else: bv = np.zeros(3, dtype=np.float64)
+ center = data.get_field_parameter('center')
+ x = data[ptype, spos % "x"] - center[0]
+ z = data[ptype, spos % "z"] - center[2]
+ xv = data[ptype, svel % "x"] - bv[0]
+ zv = data[ptype, svel % "z"] - bv[2]
+ return -(xv*z - zv*x)
+
+
+('io', 'particle_specific_angular_momentum_z')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}^{2} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_specific_angular_momentum_z(field, data):
+ if data.has_field_parameter("bulk_velocity"):
+ bv = data.get_field_parameter("bulk_velocity")
+ else: bv = np.zeros(3, dtype=np.float64)
+ center = data.get_field_parameter('center')
+ x = data[ptype, spos % "x"] - center[0]
+ y = data[ptype, spos % "y"] - center[1]
+ xv = data[ptype, svel % "x"] - bv[0]
+ yv = data[ptype, svel % "y"] - bv[1]
+ return xv*y - yv*x
+
+
+('io', 'particle_spherical_position_phi')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_spherical_position_phi(field, data):
+ """
+ Phi component of the particles' position vectors in spherical coords
+ on the provided field parameters for 'normal', 'center', and
+ 'bulk_velocity',
+ """
+ normal = data.get_field_parameter('normal')
+ center = data.get_field_parameter('center')
+ bv = data.get_field_parameter("bulk_velocity")
+ pos = spos
+ pos = YTArray([data[ptype, pos % ax] for ax in "xyz"])
+ theta = get_sph_theta(pos, center)
+ phi = get_sph_phi(pos, center)
+ pos = pos - np.reshape(center, (3, 1))
+ sphp = get_sph_phi_component(pos, phi, normal)
+ return sphp
+
+
+('io', 'particle_spherical_position_radius')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_spherical_position_radius(field, data):
+ """
+ Radial component of the particles' position vectors in spherical coords
+ on the provided field parameters for 'normal', 'center', and
+ 'bulk_velocity',
+ """
+ normal = data.get_field_parameter('normal')
+ center = data.get_field_parameter('center')
+ bv = data.get_field_parameter("bulk_velocity")
+ pos = spos
+ pos = YTArray([data[ptype, pos % ax] for ax in "xyz"])
+ theta = get_sph_theta(pos, center)
+ phi = get_sph_phi(pos, center)
+ pos = pos - np.reshape(center, (3, 1))
+ sphr = get_sph_r_component(pos, theta, phi, normal)
+ return sphr
+
+
+('io', 'particle_spherical_position_theta')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_spherical_position_theta(field, data):
+ """
+ Theta component of the particles' position vectors in spherical coords
+ on the provided field parameters for 'normal', 'center', and
+ 'bulk_velocity',
+ """
+ normal = data.get_field_parameter('normal')
+ center = data.get_field_parameter('center')
+ bv = data.get_field_parameter("bulk_velocity")
+ pos = spos
+ pos = YTArray([data[ptype, pos % ax] for ax in "xyz"])
+ theta = get_sph_theta(pos, center)
+ phi = get_sph_phi(pos, center)
+ pos = pos - np.reshape(center, (3, 1))
+ spht = get_sph_theta_component(pos, theta, phi, normal)
+ return spht
+
+
+('io', 'particle_spherical_velocity_phi')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_spherical_velocity_phi(field, data):
+ """
+ Phi component of the particles' velocity vectors in spherical coords
+ based on the provided field parameters for 'normal', 'center', and
+ 'bulk_velocity',
+ """
+ normal = data.get_field_parameter('normal')
+ center = data.get_field_parameter('center')
+ bv = data.get_field_parameter("bulk_velocity")
+ pos = YTArray([data[ptype, spos % ax] for ax in "xyz"])
+ vel = YTArray([data[ptype, svel % ax] for ax in "xyz"])
+ theta = get_sph_theta(pos, center)
+ phi = get_sph_phi(pos, center)
+ pos = pos - np.reshape(center, (3, 1))
+ vel = vel - np.reshape(bv, (3, 1))
+ sphp = get_sph_phi_component(vel, phi, normal)
+ return sphp
+
+
+('io', 'particle_spherical_velocity_radius')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_spherical_velocity_radius(field, data):
+ """
+ Radial component of the particles' velocity vectors in spherical coords
+ based on the provided field parameters for 'normal', 'center', and
+ 'bulk_velocity',
+ """
+ normal = data.get_field_parameter('normal')
+ center = data.get_field_parameter('center')
+ bv = data.get_field_parameter("bulk_velocity")
+ pos = spos
+ pos = YTArray([data[ptype, pos % ax] for ax in "xyz"])
+ vel = svel
+ vel = YTArray([data[ptype, vel % ax] for ax in "xyz"])
+ theta = get_sph_theta(pos, center)
+ phi = get_sph_phi(pos, center)
+ pos = pos - np.reshape(center, (3, 1))
+ vel = vel - np.reshape(bv, (3, 1))
+ sphr = get_sph_r_component(vel, theta, phi, normal)
+ return sphr
+
+
+('io', 'particle_spherical_velocity_theta')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_spherical_velocity_theta(field, data):
+ """
+ Theta component of the particles' velocity vectors in spherical coords
+ based on the provided field parameters for 'normal', 'center', and
+ 'bulk_velocity',
+ """
+ normal = data.get_field_parameter('normal')
+ center = data.get_field_parameter('center')
+ bv = data.get_field_parameter("bulk_velocity")
+ pos = spos
+ pos = YTArray([data[ptype, pos % ax] for ax in "xyz"])
+ vel = svel
+ vel = YTArray([data[ptype, vel % ax] for ax in "xyz"])
+ theta = get_sph_theta(pos, center)
+ phi = get_sph_phi(pos, center)
+ pos = pos - np.reshape(center, (3, 1))
+ vel = vel - np.reshape(bv, (3, 1))
+ spht = get_sph_theta_component(vel, theta, phi, normal)
+ return spht
+
+
+('io', 'particle_velocity')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def particle_vectors(field, data):
+ v = [data[_ptype, name].in_units(field.units)
+ for name in names]
+ c = np.column_stack(v)
+ return data.apply_units(c, field.units)
+
+
+('io', 'particle_velocity_magnitude')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+.. code-block:: python
+
+ def _particle_velocity_magnitude(field, data):
+ """ M{|v|} """
+ bulk_velocity = data.get_field_parameter("bulk_velocity")
+ if bulk_velocity is None:
+ bulk_velocity = np.zeros(3)
+ return np.sqrt((data[ptype, svel % 'x'] - bulk_velocity[0])**2
+ + (data[ptype, svel % 'y'] - bulk_velocity[1])**2
+ + (data[ptype, svel % 'z'] - bulk_velocity[2])**2 )
+
+
+('io', 'particle_velocity_x')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+No source available.
+
+('io', 'particle_velocity_y')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+No source available.
+
+('io', 'particle_velocity_z')
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * Units: :math:`\rm{cm} / \rm{s}`
+ * Particle Type: True
+
+**Field Source**
+
+No source available.
+
.. _ART_specific_fields:
ART-Specific Fields
https://bitbucket.org/yt_analysis/yt/commits/46d4d84d797d/
Changeset: 46d4d84d797d
Branch: yt
User: ngoldbaum
Date: 2014-12-02 20:26:54+00:00
Summary: Merging with tip.
Affected #: 6 files
diff -r a2191caf624a1dbfa7bd6bb37c32be14952de0ac -r 46d4d84d797dae33eca0e966c3cc1fbb1a20443c yt/fields/field_functions.py
--- a/yt/fields/field_functions.py
+++ b/yt/fields/field_functions.py
@@ -55,8 +55,19 @@
for i in range(coords.shape[0]):
if not data.ds.periodicity[i]: continue
coords[i, ...] -= le[i]
- coords[i, ...] = np.min([np.abs(np.mod(coords[i, ...], dw[i])),
- np.abs(np.mod(coords[i, ...], -dw[i]))],
- axis=0)
- coords[i, ...] += le[i]
+ #figure out which measure is less
+ mins = np.argmin([np.abs(np.mod(coords[i, ...], dw[i])),
+ np.abs(np.mod(coords[i, ...], -dw[i]))],
+ axis=0)
+ temp_coords = np.mod(coords[i, ...], dw[i])
+
+ #Where second measure is better, updating temporary coords
+ ii = mins==1
+ temp_coords[ii] = np.mod(coords[i, ...], -dw[i])[ii]
+
+ # Putting the temporary coords into the actual storage
+ coords[i, ...] = temp_coords
+
+ coords[i, ...] + le[i]
+
return coords
diff -r a2191caf624a1dbfa7bd6bb37c32be14952de0ac -r 46d4d84d797dae33eca0e966c3cc1fbb1a20443c yt/frontends/boxlib/fields.py
--- a/yt/frontends/boxlib/fields.py
+++ b/yt/frontends/boxlib/fields.py
@@ -147,27 +147,27 @@
("rho_e", ("erg/cm**3", [], r"\rho e")),
("Temp", ("K", ["temperature"], r"T")),
("grav_x", ("cm/s**2", [],
- r"\left(\mathbf{g} \cdot \mathbf{e}\right)_x")),
+ r"\mathbf{g} \cdot \mathbf{e}_x")),
("grav_y", ("cm/s**2", [],
- r"\left(\mathbf{g} \cdot \mathbf{e}\right)_y")),
+ r"\mathbf{g} \cdot \mathbf{e}_y")),
("grav_z", ("cm/s**2", [],
- r"\left(\mathbf{g} \cdot \mathbf{e}\right)_z")),
+ r"\mathbf{g} \cdot \mathbf{e}_z")),
("pressure", ("dyne/cm**2", [], r"p")),
- ("kineng", ("erg/cm**3", [], r"\frac{1}{2}\rho|\mathbf{U}|**2")),
+ ("kineng", ("erg/cm**3", ["kinetic_energy"], r"\frac{1}{2}\rho|\mathbf{U}|^2")),
("soundspeed", ("cm/s", ["sound_speed"], "Sound Speed")),
("Machnumber", ("", ["mach_number"], "Mach Number")),
("entropy", ("erg/(g*K)", ["entropy"], r"s")),
("magvort", ("1/s", ["vorticity_magnitude"],
r"|\nabla \times \mathbf{U}|")),
- ("divu", ("1/s", [], r"\nabla \cdot \mathbf{U}")),
+ ("divu", ("1/s", ["velocity_divergence"], r"\nabla \cdot \mathbf{U}")),
("eint_E", ("erg/g", [], r"e(E,U)")),
("eint_e", ("erg/g", [], r"e")),
("magvel", ("cm/s", ["velocity_magnitude"], r"|\mathbf{U}|")),
- ("radvel", ("cm/s", [],
- r"\left(\mathbf{U} \cdot \mathbf{e}\right)_r")),
- ("magmom", ("g*cm/s", ["momentum_magnitude"], r"|\rho \mathbf{U}|")),
+ ("radvel", ("cm/s", ["radial_velocity"],
+ r"\mathbf{U} \cdot \mathbf{e}_r")),
+ ("magmom", ("g*cm/s", ["momentum_magnitude"], r"\rho |\mathbf{U}|")),
("maggrav", ("cm/s**2", [], r"|\mathbf{g}|")),
- ("phiGrav", ("erg/g", [], r"|\Phi|")),
+ ("phiGrav", ("erg/g", [], r"\Phi")),
)
def setup_fluid_fields(self):
@@ -201,30 +201,31 @@
("z_vel", ("cm/s", ["velocity_z"], r"\tilde{w}")),
("magvel", ("cm/s", ["velocity_magnitude"],
r"|\tilde{\mathbf{U}} + w_0 \mathbf{e}_r|")),
- ("radial_velocity", ("cm/s", [], r"U\cdot e_r")),
+ ("radial_velocity", ("cm/s", ["radial_velocity"], r"\mathbf{U}\cdot \mathbf{e}_r")),
+ ("circum_velocity", ("cm/s", ["tangential_velocity"], r"U - U\cdot e_r")),
("tfromp", ("K", [], "T(\\rho,p,X)")),
("tfromh", ("K", [], "T(\\rho,h,X)")),
- ("Machnumber", ("", ["mach_number"], "Mach Number")),
+ ("Machnumber", ("", ["mach_number"], "M")),
("S", ("1/s", [], None)),
- ("ad_excess", ("", [], "Adiabatic Excess")),
+ ("ad_excess", ("", [], r"\nabla - \nabla_\mathrm{ad}")),
("deltaT", ("", [], "[T(\\rho,h,X) - T(\\rho,p,X)]/T(\\rho,h,X)")),
("deltagamma", ("", [], "\Gamma_1 - \overline{\Gamma_1}")),
("deltap", ("", [], "[p(\\rho,h,X) - p_0] / p_0")),
- ("divw0", ("1/s", [], "\nabla \cdot \mathbf{w}_0")),
+ ("divw0", ("1/s", [], r"\nabla \cdot \mathbf{w}_0")),
# Specific entropy
("entropy", ("erg/(g*K)", ["entropy"], "s")),
("entropypert", ("", [], "[s - \overline{s}] / \overline{s}")),
- ("enucdot", ("erg/(g*s)", [], "\dot{\epsilon_{nuc}}")),
+ ("enucdot", ("erg/(g*s)", [], "\dot{\epsilon}_{nuc}")),
("Hext", ("erg/(g*s)", [], "H_{ext}")),
# Perturbational pressure grad
- ("gpi_x", ("dyne/cm**3", [], "\left(\nabla\pi\right)_x")),
- ("gpi_y", ("dyne/cm**3", [], "\left(\nabla\pi\right)_y")),
- ("gpi_z", ("dyne/cm**3", [], "\left(\nabla\pi\right)_z")),
+ ("gpi_x", ("dyne/cm**3", [], r"\left(\nabla\pi\right)_x")),
+ ("gpi_y", ("dyne/cm**3", [], r"\left(\nabla\pi\right)_y")),
+ ("gpi_z", ("dyne/cm**3", [], r"\left(\nabla\pi\right)_z")),
("h", ("erg/g", [], "h")),
("h0", ("erg/g", [], "h_0")),
# Momentum cannot be computed because we need to include base and
# full state.
- ("momentum", ("g*cm/s", ["momentum_magnitude"], None)),
+ ("momentum", ("g*cm/s", ["momentum_magnitude"], r"\rho |\mathbf{U}|")),
("p0", ("erg/cm**3", [], "p_0")),
("p0pluspi", ("erg/cm**3", [], "p_0 + \pi")),
("pi", ("erg/cm**3", [], "\pi")),
@@ -240,7 +241,7 @@
("sponge", ("", [], None)),
("tpert", ("K", [], "T - \overline{T}")),
# Again, base state -- so we can't compute ourselves.
- ("vort", ("1/s", ["vorticity_magnitude"], "|\nabla\times\tilde{U}|")),
+ ("vort", ("1/s", ["vorticity_magnitude"], r"|\nabla\times\tilde{U}|")),
# Base state
("w0_x", ("cm/s", [], "(w_0)_x")),
("w0_y", ("cm/s", [], "(w_0)_y")),
diff -r a2191caf624a1dbfa7bd6bb37c32be14952de0ac -r 46d4d84d797dae33eca0e966c3cc1fbb1a20443c yt/frontends/gadget/data_structures.py
--- a/yt/frontends/gadget/data_structures.py
+++ b/yt/frontends/gadget/data_structures.py
@@ -178,7 +178,9 @@
hvals["Time"], self.current_time)
self.parameters = hvals
- prefix = self.parameter_filename.split(".", 1)[0]
+ prefix = os.path.abspath(
+ os.path.join(os.path.dirname(self.parameter_filename),
+ os.path.basename(self.parameter_filename).split(".", 1)[0]))
if hvals["NumFiles"] > 1:
self.filename_template = "%s.%%(num)s%s" % (prefix, self._suffix)
@@ -309,7 +311,10 @@
self.cosmological_simulation = 1
self.periodicity = (True, True, True)
- prefix = os.path.abspath(self.parameter_filename.split(".", 1)[0])
+ prefix = os.path.abspath(
+ os.path.join(os.path.dirname(self.parameter_filename),
+ os.path.basename(self.parameter_filename).split(".", 1)[0]))
+
suffix = self.parameter_filename.rsplit(".", 1)[-1]
self.filename_template = "%s.%%(num)i.%s" % (prefix, suffix)
self.file_count = self.parameters["NumFilesPerSnapshot"]
diff -r a2191caf624a1dbfa7bd6bb37c32be14952de0ac -r 46d4d84d797dae33eca0e966c3cc1fbb1a20443c yt/frontends/owls/fields.py
--- a/yt/frontends/owls/fields.py
+++ b/yt/frontends/owls/fields.py
@@ -17,6 +17,8 @@
import os
import numpy as np
+from yt.funcs import \
+ mylog, download_file
from yt.config import ytcfg
from yt.fields.particle_fields import \
add_volume_weighted_smoothed_field
diff -r a2191caf624a1dbfa7bd6bb37c32be14952de0ac -r 46d4d84d797dae33eca0e966c3cc1fbb1a20443c yt/frontends/owls/io.py
--- a/yt/frontends/owls/io.py
+++ b/yt/frontends/owls/io.py
@@ -16,6 +16,7 @@
import h5py
import numpy as np
+import os
from yt.utilities.io_handler import \
BaseIOHandler
Repository URL: https://bitbucket.org/yt_analysis/yt/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
More information about the yt-svn
mailing list