[yt-svn] commit/yt: 5 new changesets

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Wed Oct 1 11:58:30 PDT 2014


5 new commits in yt:

https://bitbucket.org/yt_analysis/yt/commits/99afc9823928/
Changeset:   99afc9823928
Branch:      yt
User:        ChrisMalone
Date:        2014-09-26 23:33:46+00:00
Summary:     start working on cleaning up maestro fields
Affected #:  1 file

diff -r 4cf5c5369df9b012759ab979330d8e356d1b0e00 -r 99afc9823928130f3d0bc68231d6c8dc904c2f57 yt/frontends/boxlib/fields.py
--- a/yt/frontends/boxlib/fields.py
+++ b/yt/frontends/boxlib/fields.py
@@ -15,6 +15,7 @@
 
 import numpy as np
 import string
+import re
 
 from yt.utilities.physical_constants import \
     mh, boltzmann_constant_cgs, amu_cgs
@@ -25,6 +26,8 @@
 mom_units = "code_mass / (code_time * code_length**2)"
 eden_units = "code_mass / (code_time**2 * code_length)" # erg / cm^3
 
+spec_finder = re.compile(r'.*\((\D*)(\d*)\).*')
+
 def _thermal_energy_density(field, data):
     # What we've got here is UEINT:
     # u here is velocity
@@ -175,32 +178,35 @@
         ("x_vel", ("cm/s", ["velocity_x"], r"\tilde{u}")),
         ("y_vel", ("cm/s", ["velocity_y"], r"\tilde{v}")),
         ("z_vel", ("cm/s", ["velocity_z"], r"\tilde{w}")),
-        ("magvel", ("cm/s", ["velocity_magnitude"], r"|\tilde{U} + w_0 e_r|")),
+        ("magvel", ("cm/s", ["velocity_magnitude"],
+                    r"|\tilde{\mathbf{U}} + w_0 \mathbf{e}_r|")),
         ("radial_velocity", ("cm/s", [], r"U\cdot e_r")),
-        ("tfromp", ("K", [], None)),
-        ("tfromh", ("K", [], None)),
+        ("tfromp", ("K", [], "T(\\rho,p,X)")),
+        ("tfromh", ("K", [], "T(\\rho,h,X)")),
         ("Machnumber", ("", ["mach_number"], None)),
         ("S", ("1/s", [], None)),
         ("ad_excess", ("", [], "Adiabatic Excess")),
-        ("deltaT", ("", [], None)),
-        ("deltagamma", ("", [], None)),
-        ("deltap", ("", [], None)),
-        ("divw0", ("1/s", [], None)),
+        ("deltaT", ("", [], "\delta T")),
+        ("deltagamma", ("", [], "\Gamma_1^ - \bar \Gamma_1")),
+        ("deltap", ("", [], "\delta p")),
+        ("divw0", ("1/s", [], "\nabla w_0")),
         # Specific entropy
-        ("entropy", ("erg/(g*K)", ["entropy"], None)),
-        ("entropypert", ("", [], None)),
-        ("enucdot", ("erg/(g*s)", [], None)),
-        ("gpi_x", ("dyne/cm**3", [], None)), # Perturbational pressure grad
-        ("gpi_y", ("dyne/cm**3", [], None)),
-        ("gpi_z", ("dyne/cm**3", [], None)),
-        ("h", ("erg/g", [], "Specific Enthalpy")),
-        ("h0", ("erg/g", [], "Base State Specific Enthalpy")),
+        ("entropy", ("erg/(g*K)", ["entropy"], "s")),
+        ("entropypert", ("", [], "\delta s")),
+        ("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")),
+        ("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)),
         ("p0", ("erg/cm**3", [], "p_0")),
         ("p0pluspi", ("erg/cm**3", [], "p_0 + \pi")),
-        ("pi", ("erg/cm**3", [], None)),
+        ("pi", ("erg/cm**3", [], "\pi")),
         ("pioverp0", ("", [], "\pi/p_0")),
         # Base state density
         ("rho0", ("g/cm**3", [], "\\rho_0")),
@@ -211,39 +217,43 @@
         ("rhopert", ("g/cm**3", [], "\\rho^\prime")),
         ("soundspeed", ("cm/s", ["sound_speed"], None)),
         ("sponge", ("", [], None)),
-        ("tpert", ("K", [], None)),
+        ("tpert", ("K", [], "T - \bar T")),
         # Again, base state -- so we can't compute ourselves.
-        ("vort", ("1/s", ["vorticity_magnitude"], None)),
+        ("vort", ("1/s", ["vorticity_magnitude"], "|\nabla\times\tilde{U}|")),
         # Base state
-        ("w0_x", ("cm/s", [], None)),
-        ("w0_y", ("cm/s", [], None)),
-        ("w0_z", ("cm/s", [], None)),
+        ("w0_x", ("cm/s", [], "(w_0)_x")),
+        ("w0_y", ("cm/s", [], "(w_0)_y")),
+        ("w0_z", ("cm/s", [], "(w_0)_z")),
     )
 
     def setup_fluid_fields(self):
         # pick the correct temperature field
         if self.ds.parameters["use_tfromp"]:
             self.alias(("gas", "temperature"), ("boxlib", "tfromp"),
-                       units = "K")
+                       units="K")
         else:
             self.alias(("gas", "temperature"), ("boxlib", "tfromh"),
-                       units = "K")
+                       units="K")
 
         # Add X's and omegadots, units of 1/s
         for _, field in self.ds.field_list:
             if field.startswith("X("):
                 # We have a fraction
-                nice_name = field[2:-1]
-                self.alias(("gas", "%s_fraction" % nice_name), ("boxlib", field),
-                           units = "")
+                nice_name, tex_label = _nice_species_name(field)
+                print nice_name, tex_label
+                self.alias(("gas", "%s_fraction" % nice_name),
+                           ("boxlib", field),
+                           units="")
                 def _create_density_func(field_name):
                     def _func(field, data):
                         return data[field_name] * data["gas", "density"]
                     return _func
                 func = _create_density_func(("gas", "%s_fraction" % nice_name))
-                self.add_field(name = ("gas", "%s_density" % nice_name),
-                               function = func,
-                               units = "g/cm**3")
+                self.add_field(name=("gas", "%s_density" % nice_name),
+                               function=func,
+                               units="g/cm**3",
+                               display_name=r'\\rho%s' % tex_label)
+
                 # Most of the time our species will be of the form
                 # element name + atomic weight (e.g. C12), but
                 # sometimes we make up descriptive names (e.g. ash)
@@ -257,7 +267,20 @@
 
                 # Here we can, later, add number density.
             if field.startswith("omegadot("):
-                nice_name = field[9:-1]
-                self.add_output_field(("boxlib", field), units = "1/s")
+                nice_name, tex_label = _nice_species_name(field)
+                print nice_name, tex_label
+                display_name = r'\dot{\omega}\left[%s\right]' % tex_label
+                self.add_output_field(("boxlib", field), units="1/s",
+                                      display_name=display_name)
                 self.alias(("gas", "%s_creation_rate" % nice_name),
-                           ("boxlib", field), units = "1/s")
+                           ("boxlib", field), units="1/s")
+
+
+def _nice_species_name(field):
+    nice_name = None
+    tex_label = None
+    spec_match = spec_finder.search(field)
+    if spec_match is not None:
+        nice_name = ''.join(spec_match.groups())
+        tex_label = r"X\left(^{%s}%s\right)" % spec_match.groups()[::-1]
+    return nice_name, tex_label


https://bitbucket.org/yt_analysis/yt/commits/21ffeb487416/
Changeset:   21ffeb487416
Branch:      yt
User:        ChrisMalone
Date:        2014-09-29 16:22:22+00:00
Summary:     pep8'ing and unification of code
Affected #:  1 file

diff -r 99afc9823928130f3d0bc68231d6c8dc904c2f57 -r 21ffeb48741615587061626bac06f8c3f6937dc8 yt/frontends/boxlib/fields.py
--- a/yt/frontends/boxlib/fields.py
+++ b/yt/frontends/boxlib/fields.py
@@ -28,6 +28,7 @@
 
 spec_finder = re.compile(r'.*\((\D*)(\d*)\).*')
 
+
 def _thermal_energy_density(field, data):
     # What we've got here is UEINT:
     # u here is velocity
@@ -38,18 +39,21 @@
                + data["momentum_z"]**2) / data["density"]
     return data["eden"] - ke
 
+
 def _thermal_energy(field, data):
     # This is little e, so we take thermal_energy_density and divide by density
     return data["thermal_energy_density"] / data["density"]
 
-def _temperature(field,data):
+
+def _temperature(field, data):
     mu = data.ds.parameters["mu"]
     gamma = data.ds.parameters["gamma"]
-    tr  = data["thermal_energy_density"] / data["density"]
+    tr = data["thermal_energy_density"] / data["density"]
     tr *= mu * amu_cgs / boltzmann_constant_cgs
     tr *= (gamma - 1.0)
     return tr
 
+
 class BoxlibFieldInfo(FieldInfoContainer):
     known_other_fields = (
         ("density", (rho_units, ["density"], None)),
@@ -94,11 +98,11 @@
         if any(f[1] == "xmom" for f in self.field_list):
             self.setup_momentum_to_velocity()
         self.add_field(("gas", "thermal_energy"),
-                       function = _thermal_energy,
-                       units = "erg/g")
+                       function=_thermal_energy,
+                       units="erg/g")
         self.add_field(("gas", "thermal_energy_density"),
-                       function = _thermal_energy_density,
-                       units = "erg/cm**3")
+                       function=_thermal_energy_density,
+                       units="erg/cm**3")
         if ("gas", "temperature") not in self.field_aliases:
             self.add_field(("gas", "temperature"),
                            function=_temperature,
@@ -110,8 +114,9 @@
                 return data["%smom" % axis]/data["density"]
         for ax in 'xyz':
             self.add_field(("gas", "velocity_%s" % ax),
-                           function = _get_vel(ax),
-                           units = "cm/s")
+                           function=_get_vel(ax),
+                           units="cm/s")
+
 
 class CastroFieldInfo(FieldInfoContainer):
 
@@ -128,22 +133,27 @@
         # internal energy density (not just thermal)
         ("rho_e", ("erg/cm**3", [], r"\rho e")),
         ("Temp", ("K", ["temperature"], r"T")),
-        ("grav_x", ("cm/s**2", [], r"g\cdot e_x")),
-        ("grav_y", ("cm/s**2", [], r"g\cdot e_y")),
-        ("grav_z", ("cm/s**2", [], r"g\cdot e_z")),
+        ("grav_x", ("cm/s**2", [],
+                    r"\left(\mathbf{g} \cdot \mathbf{e}\right)_x")),
+        ("grav_y", ("cm/s**2", [],
+                    r"\left(\mathbf{g} \cdot \mathbf{e}\right)_y")),
+        ("grav_z", ("cm/s**2", [],
+                    r"\left(\mathbf{g} \cdot \mathbf{e}\right)_z")),
         ("pressure", ("dyne/cm**2", [], r"p")),
-        ("kineng", ("erg/cm**3", [], r"\frac{1}{2}\rho|U|**2")),
-        ("soundspeed", ("cm/s", ["sound_speed"], None)),
-        ("Machnumber", ("", ["mach_number"], None)),
+        ("kineng", ("erg/cm**3", [], 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 U|")),
-        ("divu", ("1/s", [], r"\nabla \cdot U")),
+        ("magvort", ("1/s", ["vorticity_magnitude"],
+                     r"|\nabla \times \mathbf{U}|")),
+        ("divu", ("1/s", [], 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"|U|")),
-        ("radvel", ("cm/s", [], r"U\cdot e_r")),
-        ("magmom", ("g*cm/s", ["momentum_magnitude"], r"|\rho U|")),
-        ("maggrav", ("cm/s**2", [], r"|g|")),
+        ("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}|")),
+        ("maggrav", ("cm/s**2", [], r"|\mathbf{g}|")),
         ("phiGrav", ("erg/g", [], r"|\Phi|")),
     )
 
@@ -152,15 +162,12 @@
         for _, field in self.ds.field_list:
             if field.startswith("X("):
                 # We have a fraction
-                nice_name = field[2:-1]
-                self.alias(("gas", "%s_fraction" % nice_name), ("boxlib", field),
-                           units = "")
-                def _create_density_func(field_name):
-                    def _func(field, data):
-                        return data[field_name] * data["gas", "density"]
-                    return _func
+                nice_name, tex_label = _nice_species_name(field)
+                self.alias(("gas", "%s_fraction" % nice_name),
+                           ("boxlib", field),
+                           units="")
                 func = _create_density_func(("gas", "%s_fraction" % nice_name))
-                self.add_field(name = ("gas", "%s_density" % nice_name),
+                self.add_field(name=("gas", "%s_density" % nice_name),
                                function = func,
                                units = "g/cm**3")
                 # We know this will either have one letter, or two.
@@ -171,6 +178,7 @@
                 weight = int(weight)
                 # Here we can, later, add number density.
 
+
 class MaestroFieldInfo(FieldInfoContainer):
 
     known_other_fields = (
@@ -183,11 +191,11 @@
         ("radial_velocity", ("cm/s", [], r"U\cdot e_r")),
         ("tfromp", ("K", [], "T(\\rho,p,X)")),
         ("tfromh", ("K", [], "T(\\rho,h,X)")),
-        ("Machnumber", ("", ["mach_number"], None)),
+        ("Machnumber", ("", ["mach_number"], "Mach Number")),
         ("S", ("1/s", [], None)),
         ("ad_excess", ("", [], "Adiabatic Excess")),
         ("deltaT", ("", [], "\delta T")),
-        ("deltagamma", ("", [], "\Gamma_1^ - \bar \Gamma_1")),
+        ("deltagamma", ("", [], "\Gamma_1 - \overline{\Gamma_1}")),
         ("deltap", ("", [], "\delta p")),
         ("divw0", ("1/s", [], "\nabla w_0")),
         # Specific entropy
@@ -217,7 +225,7 @@
         ("rhopert", ("g/cm**3", [], "\\rho^\prime")),
         ("soundspeed", ("cm/s", ["sound_speed"], None)),
         ("sponge", ("", [], None)),
-        ("tpert", ("K", [], "T - \bar T")),
+        ("tpert", ("K", [], "T - \overline{T}")),
         # Again, base state -- so we can't compute ourselves.
         ("vort", ("1/s", ["vorticity_magnitude"], "|\nabla\times\tilde{U}|")),
         # Base state
@@ -238,21 +246,20 @@
         # Add X's and omegadots, units of 1/s
         for _, field in self.ds.field_list:
             if field.startswith("X("):
-                # We have a fraction
+                # We have a mass fraction
                 nice_name, tex_label = _nice_species_name(field)
-                print nice_name, tex_label
+                # Overwrite field to use nicer tex_label display_name
+                self.add_output_field(("boxlib", field),
+                                      units="",
+                                      display_name=tex_label)
                 self.alias(("gas", "%s_fraction" % nice_name),
                            ("boxlib", field),
                            units="")
-                def _create_density_func(field_name):
-                    def _func(field, data):
-                        return data[field_name] * data["gas", "density"]
-                    return _func
                 func = _create_density_func(("gas", "%s_fraction" % nice_name))
                 self.add_field(name=("gas", "%s_density" % nice_name),
                                function=func,
                                units="g/cm**3",
-                               display_name=r'\\rho%s' % tex_label)
+                               display_name=r'\rho %s' % tex_label)
 
                 # Most of the time our species will be of the form
                 # element name + atomic weight (e.g. C12), but
@@ -266,10 +273,10 @@
                     weight = int(weight)
 
                 # Here we can, later, add number density.
-            if field.startswith("omegadot("):
+            elif field.startswith("omegadot("):
                 nice_name, tex_label = _nice_species_name(field)
-                print nice_name, tex_label
                 display_name = r'\dot{\omega}\left[%s\right]' % tex_label
+                # Overwrite field to use nicer tex_label'ed display_name
                 self.add_output_field(("boxlib", field), units="1/s",
                                       display_name=display_name)
                 self.alias(("gas", "%s_creation_rate" % nice_name),
@@ -277,10 +284,19 @@
 
 
 def _nice_species_name(field):
-    nice_name = None
-    tex_label = None
     spec_match = spec_finder.search(field)
-    if spec_match is not None:
-        nice_name = ''.join(spec_match.groups())
-        tex_label = r"X\left(^{%s}%s\right)" % spec_match.groups()[::-1]
+    nice_name = ''.join(spec_match.groups())
+    # if the species field is a descriptive name, then the match
+    # on the integer will be blank
+    # modify the tex string in this case to remove spurious tex spacing
+    lab = r"X\left(^{%s}%s\right)"
+    if spec_match.groups()[-1] == "":
+        lab = r"X\left(%s%s\right)"
+    tex_label = lab % spec_match.groups()[::-1]
     return nice_name, tex_label
+
+
+def _create_density_func(field_name):
+    def _func(field, data):
+        return data[field_name] * data["gas", "density"]
+    return _func


https://bitbucket.org/yt_analysis/yt/commits/fca451dc5c88/
Changeset:   fca451dc5c88
Branch:      yt
User:        ChrisMalone
Date:        2014-09-29 16:30:17+00:00
Summary:     merge
Affected #:  6 files

diff -r 21ffeb48741615587061626bac06f8c3f6937dc8 -r fca451dc5c88a22f4db6471d621dfeda77b38eab doc/install_script.sh
--- a/doc/install_script.sh
+++ b/doc/install_script.sh
@@ -986,8 +986,10 @@
 
 if !( ( ${DEST_DIR}/bin/python2.7 -c "import readline" 2>&1 )>> ${LOG_FILE})
 then
-    echo "Installing pure-python readline"
-    ( ${DEST_DIR}/bin/pip install readline 2>&1 ) 1>> ${LOG_FILE}
+    if !( ( ${DEST_DIR}/bin/python2.7 -c "import gnureadline" 2>&1 )>> ${LOG_FILE})
+        echo "Installing pure-python readline"
+        ( ${DEST_DIR}/bin/pip install gnureadline 2>&1 ) 1>> ${LOG_FILE}
+    fi
 fi
 
 if [ $INST_ENZO -eq 1 ]

diff -r 21ffeb48741615587061626bac06f8c3f6937dc8 -r fca451dc5c88a22f4db6471d621dfeda77b38eab doc/source/index.rst
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -44,6 +44,16 @@
      <tr valign="top"><td width="25%"><p>
+           <a href="examining/index.html">Loading and Examining Data</a>
+         </p>
+       </td>
+       <td width="75%">
+         <p class="linkdescr">How to load and examine all dataset types in yt</p>
+       </td>
+     </tr>
+     <tr valign="top">
+       <td width="25%">
+         <p><a href="yt3differences.html">yt 3.0</a></p></td>
@@ -84,16 +94,6 @@
      <tr valign="top"><td width="25%"><p>
-           <a href="examining/index.html">Examining Data</a>
-         </p>
-       </td>
-       <td width="75%">
-         <p class="linkdescr">Load data and directly access raw values for low-level analysis</p>
-       </td>
-     </tr>
-     <tr valign="top">
-       <td width="25%">
-         <p><a href="developing/index.html">Developing in yt</a></p></td>

diff -r 21ffeb48741615587061626bac06f8c3f6937dc8 -r fca451dc5c88a22f4db6471d621dfeda77b38eab yt/data_objects/data_containers.py
--- a/yt/data_objects/data_containers.py
+++ b/yt/data_objects/data_containers.py
@@ -496,7 +496,8 @@
 
                 # really ugly check to ensure that this field really does exist somewhere,
                 # in some naming convention, before returning it as a possible field type
-                if (ftype,fname) not in self.ds.field_list and \
+                if (ftype,fname) not in self.ds.field_info and \
+                        (ftype,fname) not in self.ds.field_list and \
                         fname not in self.ds.field_list and \
                         (ftype,fname) not in self.ds.derived_field_list and \
                         fname not in self.ds.derived_field_list and \

diff -r 21ffeb48741615587061626bac06f8c3f6937dc8 -r fca451dc5c88a22f4db6471d621dfeda77b38eab yt/frontends/gdf/data_structures.py
--- a/yt/frontends/gdf/data_structures.py
+++ b/yt/frontends/gdf/data_structures.py
@@ -26,12 +26,20 @@
     GridIndex
 from yt.data_objects.static_output import \
     Dataset
+from yt.utilities.exceptions import \
+    YTGDFUnknownGeometry
 from yt.utilities.lib.misc_utilities import \
     get_box_grids_level
-from yt.units.yt_array import \
-    uconcatenate, YTArray
+from .fields import GDFFieldInfo
 
-from .fields import GDFFieldInfo
+
+GEOMETRY_TRANS = {
+    0: "cartesian",
+    1: "polar",
+    2: "cylindrical",
+    3: "spherical",
+}
+
 
 class GDFGrid(AMRGridPatch):
     _id_offset = 0
@@ -65,6 +73,7 @@
             self.dds
         self.dds = self.ds.arr(self.dds, "code_length")
 
+
 class GDFHierarchy(GridIndex):
 
     grid = GDFGrid
@@ -145,8 +154,9 @@
         Gets back all the grids between a left edge and right edge
         """
         eps = np.finfo(np.float64).eps
-        grid_i = np.where(np.all((self.grid_right_edge - left_edge) > eps, axis=1) &
-                          np.all((right_edge - self.grid_left_edge) > eps, axis=1))
+        grid_i = np.where(
+            np.all((self.grid_right_edge - left_edge) > eps, axis=1) &
+            np.all((right_edge - self.grid_left_edge) > eps, axis=1))
 
         return self.grids[grid_i], grid_i
 
@@ -162,7 +172,7 @@
     _field_info_class = GDFFieldInfo
 
     def __init__(self, filename, dataset_type='grid_data_format',
-                 storage_filename=None, geometry = 'cartesian'):
+                 storage_filename=None, geometry=None):
         self.geometry = geometry
         self.fluid_types += ("gdf",)
         Dataset.__init__(self, filename, dataset_type)
@@ -198,7 +208,7 @@
                 current_unit = h5f["/dataset_units/%s" % unit_name]
                 value = current_unit.value
                 unit = current_unit.attrs["unit"]
-                setattr(self, unit_name, self.quan(value,unit))
+                setattr(self, unit_name, self.quan(value, unit))
         else:
             self.length_unit = self.quan(1.0, "cm")
             self.mass_unit = self.quan(1.0, "g")
@@ -214,6 +224,12 @@
         else:
             self.data_software = "unknown"
         sp = self._handle["/simulation_parameters"].attrs
+        if self.geometry is None:
+            geometry = just_one(sp.get("geometry", 0))
+            try:
+                self.geometry = GEOMETRY_TRANS[geometry]
+            except KeyError:
+                raise YTGDFUnknownGeometry(geometry)
         self.parameters.update(sp)
         self.domain_left_edge = sp["domain_left_edge"][:]
         self.domain_right_edge = sp["domain_right_edge"][:]

diff -r 21ffeb48741615587061626bac06f8c3f6937dc8 -r fca451dc5c88a22f4db6471d621dfeda77b38eab yt/utilities/exceptions.py
--- a/yt/utilities/exceptions.py
+++ b/yt/utilities/exceptions.py
@@ -94,7 +94,7 @@
 
     def __str__(self):
         return ("The display name \"%s\" "
-                "of the derived field %s " 
+                "of the derived field %s "
                 "contains the following LaTeX parser errors:\n" ) \
                 % (self.display_name, self.field_name) + self.mathtext_error
 
@@ -106,7 +106,7 @@
 
     def __str__(self):
         return ("The unit display name \"%s\" "
-                "of the derived field %s " 
+                "of the derived field %s "
                 "contains the following LaTeX parser errors:\n" ) \
             % (self.unit_name, self.field_name) + self.mathtext_error
 
@@ -116,7 +116,7 @@
 
     def __str__(self):
         return self.message
-            
+
 class MissingParameter(YTException):
     def __init__(self, ds, parameter):
         YTException.__init__(self, ds=ds)
@@ -425,3 +425,14 @@
 
     def __str__(self):
         return "A file already exists at %s and clobber=False." % self.filename
+
+
+class YTGDFUnknownGeometry(Exception):
+    def __init__(self, geometry):
+        self.geometry = geometry
+
+    def __str__(self):
+        return '''Unknown geometry %i. Please refer to GDF standard
+                  for more information''' % self.geometry
+
+

diff -r 21ffeb48741615587061626bac06f8c3f6937dc8 -r fca451dc5c88a22f4db6471d621dfeda77b38eab yt/utilities/fits_image.py
--- a/yt/utilities/fits_image.py
+++ b/yt/utilities/fits_image.py
@@ -341,7 +341,7 @@
     def __init__(self, ds, axis, fields, center="c", weight_field=None, **kwargs):
         fields = ensure_list(fields)
         axis = fix_axis(axis, ds)
-        center = get_sanitized_center(center, ds)
+        center = ds.coordinates.sanitize_center(center, axis)
         prj = ds.proj(fields[0], axis, weight_field=weight_field, **kwargs)
         w, frb = construct_image(prj, center=center)
         super(FITSProjection, self).__init__(frb, fields=fields, wcs=w)


https://bitbucket.org/yt_analysis/yt/commits/b7dd7a433980/
Changeset:   b7dd7a433980
Branch:      yt
User:        ChrisMalone
Date:        2014-09-29 17:07:15+00:00
Summary:     some more explicitness
Affected #:  1 file

diff -r fca451dc5c88a22f4db6471d621dfeda77b38eab -r b7dd7a433980d5284bf81a811c578f40f0352ddc yt/frontends/boxlib/fields.py
--- a/yt/frontends/boxlib/fields.py
+++ b/yt/frontends/boxlib/fields.py
@@ -194,13 +194,13 @@
         ("Machnumber", ("", ["mach_number"], "Mach Number")),
         ("S", ("1/s", [], None)),
         ("ad_excess", ("", [], "Adiabatic Excess")),
-        ("deltaT", ("", [], "\delta T")),
+        ("deltaT", ("", [], "[T(\\rho,h,X) - T(\\rho,p,X)]/T(\\rho,h,X)")),
         ("deltagamma", ("", [], "\Gamma_1 - \overline{\Gamma_1}")),
-        ("deltap", ("", [], "\delta p")),
-        ("divw0", ("1/s", [], "\nabla w_0")),
+        ("deltap", ("", [], "[p(\\rho,h,X) - p_0] / p_0")),
+        ("divw0", ("1/s", [], "\nabla \cdot \mathbf{w}_0")),
         # Specific entropy
         ("entropy", ("erg/(g*K)", ["entropy"], "s")),
-        ("entropypert", ("", [], "\delta s")),
+        ("entropypert", ("", [], "[s - \overline{s}] / \overline{s}")),
         ("enucdot", ("erg/(g*s)", [], "\dot{\epsilon_{nuc}}")),
         ("Hext", ("erg/(g*s)", [], "H_{ext}")),
         # Perturbational pressure grad


https://bitbucket.org/yt_analysis/yt/commits/05de9b2f84be/
Changeset:   05de9b2f84be
Branch:      yt
User:        MatthewTurk
Date:        2014-10-01 18:58:21+00:00
Summary:     Merged in ChrisMalone/yt (pull request #1226)

Maestro/Castro field cleanup
Affected #:  1 file

diff -r 7c48b53f10cb25b0b2aa820706f5f54ec292e9ae -r 05de9b2f84be6cc8b933f0af75ac211a57a44d7d yt/frontends/boxlib/fields.py
--- a/yt/frontends/boxlib/fields.py
+++ b/yt/frontends/boxlib/fields.py
@@ -15,6 +15,7 @@
 
 import numpy as np
 import string
+import re
 
 from yt.utilities.physical_constants import \
     mh, boltzmann_constant_cgs, amu_cgs
@@ -25,6 +26,9 @@
 mom_units = "code_mass / (code_time * code_length**2)"
 eden_units = "code_mass / (code_time**2 * code_length)" # erg / cm^3
 
+spec_finder = re.compile(r'.*\((\D*)(\d*)\).*')
+
+
 def _thermal_energy_density(field, data):
     # What we've got here is UEINT:
     # u here is velocity
@@ -35,18 +39,21 @@
                + data["momentum_z"]**2) / data["density"]
     return data["eden"] - ke
 
+
 def _thermal_energy(field, data):
     # This is little e, so we take thermal_energy_density and divide by density
     return data["thermal_energy_density"] / data["density"]
 
-def _temperature(field,data):
+
+def _temperature(field, data):
     mu = data.ds.parameters["mu"]
     gamma = data.ds.parameters["gamma"]
-    tr  = data["thermal_energy_density"] / data["density"]
+    tr = data["thermal_energy_density"] / data["density"]
     tr *= mu * amu_cgs / boltzmann_constant_cgs
     tr *= (gamma - 1.0)
     return tr
 
+
 class BoxlibFieldInfo(FieldInfoContainer):
     known_other_fields = (
         ("density", (rho_units, ["density"], None)),
@@ -91,11 +98,11 @@
         if any(f[1] == "xmom" for f in self.field_list):
             self.setup_momentum_to_velocity()
         self.add_field(("gas", "thermal_energy"),
-                       function = _thermal_energy,
-                       units = "erg/g")
+                       function=_thermal_energy,
+                       units="erg/g")
         self.add_field(("gas", "thermal_energy_density"),
-                       function = _thermal_energy_density,
-                       units = "erg/cm**3")
+                       function=_thermal_energy_density,
+                       units="erg/cm**3")
         if ("gas", "temperature") not in self.field_aliases:
             self.add_field(("gas", "temperature"),
                            function=_temperature,
@@ -107,8 +114,9 @@
                 return data["%smom" % axis]/data["density"]
         for ax in 'xyz':
             self.add_field(("gas", "velocity_%s" % ax),
-                           function = _get_vel(ax),
-                           units = "cm/s")
+                           function=_get_vel(ax),
+                           units="cm/s")
+
 
 class CastroFieldInfo(FieldInfoContainer):
 
@@ -125,22 +133,27 @@
         # internal energy density (not just thermal)
         ("rho_e", ("erg/cm**3", [], r"\rho e")),
         ("Temp", ("K", ["temperature"], r"T")),
-        ("grav_x", ("cm/s**2", [], r"g\cdot e_x")),
-        ("grav_y", ("cm/s**2", [], r"g\cdot e_y")),
-        ("grav_z", ("cm/s**2", [], r"g\cdot e_z")),
+        ("grav_x", ("cm/s**2", [],
+                    r"\left(\mathbf{g} \cdot \mathbf{e}\right)_x")),
+        ("grav_y", ("cm/s**2", [],
+                    r"\left(\mathbf{g} \cdot \mathbf{e}\right)_y")),
+        ("grav_z", ("cm/s**2", [],
+                    r"\left(\mathbf{g} \cdot \mathbf{e}\right)_z")),
         ("pressure", ("dyne/cm**2", [], r"p")),
-        ("kineng", ("erg/cm**3", [], r"\frac{1}{2}\rho|U|**2")),
-        ("soundspeed", ("cm/s", ["sound_speed"], None)),
-        ("Machnumber", ("", ["mach_number"], None)),
+        ("kineng", ("erg/cm**3", [], 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 U|")),
-        ("divu", ("1/s", [], r"\nabla \cdot U")),
+        ("magvort", ("1/s", ["vorticity_magnitude"],
+                     r"|\nabla \times \mathbf{U}|")),
+        ("divu", ("1/s", [], 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"|U|")),
-        ("radvel", ("cm/s", [], r"U\cdot e_r")),
-        ("magmom", ("g*cm/s", ["momentum_magnitude"], r"|\rho U|")),
-        ("maggrav", ("cm/s**2", [], r"|g|")),
+        ("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}|")),
+        ("maggrav", ("cm/s**2", [], r"|\mathbf{g}|")),
         ("phiGrav", ("erg/g", [], r"|\Phi|")),
     )
 
@@ -149,15 +162,12 @@
         for _, field in self.ds.field_list:
             if field.startswith("X("):
                 # We have a fraction
-                nice_name = field[2:-1]
-                self.alias(("gas", "%s_fraction" % nice_name), ("boxlib", field),
-                           units = "")
-                def _create_density_func(field_name):
-                    def _func(field, data):
-                        return data[field_name] * data["gas", "density"]
-                    return _func
+                nice_name, tex_label = _nice_species_name(field)
+                self.alias(("gas", "%s_fraction" % nice_name),
+                           ("boxlib", field),
+                           units="")
                 func = _create_density_func(("gas", "%s_fraction" % nice_name))
-                self.add_field(name = ("gas", "%s_density" % nice_name),
+                self.add_field(name=("gas", "%s_density" % nice_name),
                                function = func,
                                units = "g/cm**3")
                 # We know this will either have one letter, or two.
@@ -168,6 +178,7 @@
                 weight = int(weight)
                 # Here we can, later, add number density.
 
+
 class MaestroFieldInfo(FieldInfoContainer):
 
     known_other_fields = (
@@ -175,32 +186,35 @@
         ("x_vel", ("cm/s", ["velocity_x"], r"\tilde{u}")),
         ("y_vel", ("cm/s", ["velocity_y"], r"\tilde{v}")),
         ("z_vel", ("cm/s", ["velocity_z"], r"\tilde{w}")),
-        ("magvel", ("cm/s", ["velocity_magnitude"], r"|\tilde{U} + w_0 e_r|")),
+        ("magvel", ("cm/s", ["velocity_magnitude"],
+                    r"|\tilde{\mathbf{U}} + w_0 \mathbf{e}_r|")),
         ("radial_velocity", ("cm/s", [], r"U\cdot e_r")),
-        ("tfromp", ("K", [], None)),
-        ("tfromh", ("K", [], None)),
-        ("Machnumber", ("", ["mach_number"], None)),
+        ("tfromp", ("K", [], "T(\\rho,p,X)")),
+        ("tfromh", ("K", [], "T(\\rho,h,X)")),
+        ("Machnumber", ("", ["mach_number"], "Mach Number")),
         ("S", ("1/s", [], None)),
         ("ad_excess", ("", [], "Adiabatic Excess")),
-        ("deltaT", ("", [], None)),
-        ("deltagamma", ("", [], None)),
-        ("deltap", ("", [], None)),
-        ("divw0", ("1/s", [], None)),
+        ("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")),
         # Specific entropy
-        ("entropy", ("erg/(g*K)", ["entropy"], None)),
-        ("entropypert", ("", [], None)),
-        ("enucdot", ("erg/(g*s)", [], None)),
-        ("gpi_x", ("dyne/cm**3", [], None)), # Perturbational pressure grad
-        ("gpi_y", ("dyne/cm**3", [], None)),
-        ("gpi_z", ("dyne/cm**3", [], None)),
-        ("h", ("erg/g", [], "Specific Enthalpy")),
-        ("h0", ("erg/g", [], "Base State Specific Enthalpy")),
+        ("entropy", ("erg/(g*K)", ["entropy"], "s")),
+        ("entropypert", ("", [], "[s - \overline{s}] / \overline{s}")),
+        ("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")),
+        ("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)),
         ("p0", ("erg/cm**3", [], "p_0")),
         ("p0pluspi", ("erg/cm**3", [], "p_0 + \pi")),
-        ("pi", ("erg/cm**3", [], None)),
+        ("pi", ("erg/cm**3", [], "\pi")),
         ("pioverp0", ("", [], "\pi/p_0")),
         # Base state density
         ("rho0", ("g/cm**3", [], "\\rho_0")),
@@ -211,39 +225,42 @@
         ("rhopert", ("g/cm**3", [], "\\rho^\prime")),
         ("soundspeed", ("cm/s", ["sound_speed"], None)),
         ("sponge", ("", [], None)),
-        ("tpert", ("K", [], None)),
+        ("tpert", ("K", [], "T - \overline{T}")),
         # Again, base state -- so we can't compute ourselves.
-        ("vort", ("1/s", ["vorticity_magnitude"], None)),
+        ("vort", ("1/s", ["vorticity_magnitude"], "|\nabla\times\tilde{U}|")),
         # Base state
-        ("w0_x", ("cm/s", [], None)),
-        ("w0_y", ("cm/s", [], None)),
-        ("w0_z", ("cm/s", [], None)),
+        ("w0_x", ("cm/s", [], "(w_0)_x")),
+        ("w0_y", ("cm/s", [], "(w_0)_y")),
+        ("w0_z", ("cm/s", [], "(w_0)_z")),
     )
 
     def setup_fluid_fields(self):
         # pick the correct temperature field
         if self.ds.parameters["use_tfromp"]:
             self.alias(("gas", "temperature"), ("boxlib", "tfromp"),
-                       units = "K")
+                       units="K")
         else:
             self.alias(("gas", "temperature"), ("boxlib", "tfromh"),
-                       units = "K")
+                       units="K")
 
         # Add X's and omegadots, units of 1/s
         for _, field in self.ds.field_list:
             if field.startswith("X("):
-                # We have a fraction
-                nice_name = field[2:-1]
-                self.alias(("gas", "%s_fraction" % nice_name), ("boxlib", field),
-                           units = "")
-                def _create_density_func(field_name):
-                    def _func(field, data):
-                        return data[field_name] * data["gas", "density"]
-                    return _func
+                # We have a mass fraction
+                nice_name, tex_label = _nice_species_name(field)
+                # Overwrite field to use nicer tex_label display_name
+                self.add_output_field(("boxlib", field),
+                                      units="",
+                                      display_name=tex_label)
+                self.alias(("gas", "%s_fraction" % nice_name),
+                           ("boxlib", field),
+                           units="")
                 func = _create_density_func(("gas", "%s_fraction" % nice_name))
-                self.add_field(name = ("gas", "%s_density" % nice_name),
-                               function = func,
-                               units = "g/cm**3")
+                self.add_field(name=("gas", "%s_density" % nice_name),
+                               function=func,
+                               units="g/cm**3",
+                               display_name=r'\rho %s' % tex_label)
+
                 # Most of the time our species will be of the form
                 # element name + atomic weight (e.g. C12), but
                 # sometimes we make up descriptive names (e.g. ash)
@@ -256,8 +273,30 @@
                     weight = int(weight)
 
                 # Here we can, later, add number density.
-            if field.startswith("omegadot("):
-                nice_name = field[9:-1]
-                self.add_output_field(("boxlib", field), units = "1/s")
+            elif field.startswith("omegadot("):
+                nice_name, tex_label = _nice_species_name(field)
+                display_name = r'\dot{\omega}\left[%s\right]' % tex_label
+                # Overwrite field to use nicer tex_label'ed display_name
+                self.add_output_field(("boxlib", field), units="1/s",
+                                      display_name=display_name)
                 self.alias(("gas", "%s_creation_rate" % nice_name),
-                           ("boxlib", field), units = "1/s")
+                           ("boxlib", field), units="1/s")
+
+
+def _nice_species_name(field):
+    spec_match = spec_finder.search(field)
+    nice_name = ''.join(spec_match.groups())
+    # if the species field is a descriptive name, then the match
+    # on the integer will be blank
+    # modify the tex string in this case to remove spurious tex spacing
+    lab = r"X\left(^{%s}%s\right)"
+    if spec_match.groups()[-1] == "":
+        lab = r"X\left(%s%s\right)"
+    tex_label = lab % spec_match.groups()[::-1]
+    return nice_name, tex_label
+
+
+def _create_density_func(field_name):
+    def _func(field, data):
+        return data[field_name] * data["gas", "density"]
+    return _func

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