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

Bitbucket commits-noreply at bitbucket.org
Fri Nov 11 13:48:31 PST 2011


8 new commits in yt:


https://bitbucket.org/yt_analysis/yt/changeset/1ab940499a8d/
changeset:   1ab940499a8d
branch:      deliberate_fields
user:        MatthewTurk
date:        2011-11-09 15:53:02
summary:     Merging all the changes *from* the main development branch into
deliberate_fields for a final push to completion.
affected #:  125 files
Diff too large to display.

https://bitbucket.org/yt_analysis/yt/changeset/a944c43c99f1/
changeset:   a944c43c99f1
branch:      deliberate_fields
user:        MatthewTurk
date:        2011-11-09 15:57:02
summary:     All tests pass.
affected #:  1 file

diff -r 1ab940499a8df142180433d9996dbc21ae152f40 -r a944c43c99f12da36af1ee1320584be08f7065c0 yt/visualization/volume_rendering/camera.py
--- a/yt/visualization/volume_rendering/camera.py
+++ b/yt/visualization/volume_rendering/camera.py
@@ -796,5 +796,5 @@
         image *= dl
     else:
         image /= vals[:,:,1]
-        pf.field_info._field_list.pop("temp_weightfield")
+        pf.field_info.pop("temp_weightfield")
     return image



https://bitbucket.org/yt_analysis/yt/changeset/fe5f0106368a/
changeset:   fe5f0106368a
branch:      deliberate_fields
user:        MatthewTurk
date:        2011-11-09 16:35:02
summary:     We want to iterate over *all* the fields that are available, not just the ones
that are in this field info object; this does not apply to the .keys() call.
affected #:  1 file

diff -r a944c43c99f12da36af1ee1320584be08f7065c0 -r fe5f0106368a2ea001f96f9b68914effae03792a yt/data_objects/field_info_container.py
--- a/yt/data_objects/field_info_container.py
+++ b/yt/data_objects/field_info_container.py
@@ -81,6 +81,11 @@
         if self.fallback is None: return False
         return self.fallback.has_key(key)
 
+    def __iter__(self):
+        for f in dict.__iter__(self): yield f
+        if self.fallback:
+            for f in self.fallback: yield f
+
 def TranslationFunc(field_name):
     def _TranslationFunc(field, data):
         return data[field]



https://bitbucket.org/yt_analysis/yt/changeset/23786f4963a3/
changeset:   23786f4963a3
branch:      deliberate_fields
user:        MatthewTurk
date:        2011-11-09 17:36:52
summary:     Re-enabling Nyx
affected #:  1 file

diff -r fe5f0106368a2ea001f96f9b68914effae03792a -r 23786f4963a3414b108a3deb0da6517884cea12c yt/mods.py
--- a/yt/mods.py
+++ b/yt/mods.py
@@ -59,8 +59,8 @@
 from yt.frontends.castro.api import \
     CastroStaticOutput, CastroFieldInfo, add_castro_field
 
-#from yt.frontends.nyx.api import \
-#    NyxStaticOutput, nyx_fields, add_nyx_field
+from yt.frontends.nyx.api import \
+    NyxStaticOutput, nyx_fields, add_nyx_field
 
 from yt.frontends.orion.api import \
     OrionStaticOutput, OrionFieldInfo, add_orion_field



https://bitbucket.org/yt_analysis/yt/changeset/7f00336c3ba9/
changeset:   7f00336c3ba9
branch:      deliberate_fields
user:        MatthewTurk
date:        2011-11-09 17:51:55
summary:     Fixed for Nyx.  Particles do not as of now seem to be working correctly.
affected #:  4 files

diff -r 23786f4963a3414b108a3deb0da6517884cea12c -r 7f00336c3ba963753694dbb2f56fff1721050381 yt/frontends/nyx/api.py
--- a/yt/frontends/nyx/api.py
+++ b/yt/frontends/nyx/api.py
@@ -25,5 +25,5 @@
 """
 
 from .data_structures import NyxGrid, NyxHierarchy, NyxStaticOutput
-from .fields import NyxFieldContainer, nyx_fields, add_nyx_field
+from .fields import NyxFieldInfo, KnownNyxFields, add_nyx_field
 from .io import IOHandlerNative


diff -r 23786f4963a3414b108a3deb0da6517884cea12c -r 7f00336c3ba963753694dbb2f56fff1721050381 yt/frontends/nyx/data_structures.py
--- a/yt/frontends/nyx/data_structures.py
+++ b/yt/frontends/nyx/data_structures.py
@@ -41,13 +41,15 @@
 from yt.data_objects.grid_patch import AMRGridPatch
 from yt.data_objects.hierarchy import AMRHierarchy
 from yt.data_objects.static_output import StaticOutput
+from yt.data_objects.field_info_container import \
+    FieldInfoContainer, NullFunc
 from yt.utilities.amr_utils import get_box_grids_level
 from yt.utilities.definitions import mpc_conversion
 
 from .definitions import parameter_type_dict, nyx_to_enzo_dict, \
                          fab_header_pattern, nyx_particle_field_names
 from .utils import boxlib_bool_to_int
-from .fields import NyxFieldContainer, add_field
+from .fields import NyxFieldInfo, add_nyx_field, KnownNyxFields
 
 
 class NyxGrid(AMRGridPatch):
@@ -419,20 +421,6 @@
         return self.grids[mask]
 
     def _setup_field_list(self):
-        self.derived_field_list = []
-
-        for field in self.field_info:
-            try:
-                fd = self.field_info[field].get_dependencies(pf=self.parameter_file)
-            except:
-                continue
-            available = na.all([f in self.field_list for f in fd.requested])
-            if available: self.derived_field_list.append(field)
-
-        for field in self.field_list:
-            if field not in self.derived_field_list:
-                self.derived_field_list.append(field)
-
         if self.parameter_file.use_particles:
             # We know which particle fields will exist -- pending further
             # changes in the future.
@@ -445,7 +433,7 @@
                 # Note that we call add_field on the field_info directly.  This
                 # will allow the same field detection mechanism to work for 1D,
                 # 2D and 3D fields.
-                self.pf.field_info.add_field(field, lambda a, b: None,
+                self.pf.field_info.add_field(field, NullFunc,
                                              convert_function=cf,
                                              take_log=False, particle_type=True)
 
@@ -467,23 +455,19 @@
     def _detect_fields(self):
         pass
 
-    def _setup_unknown_fields(self):
-        # not sure what the case for this is.
+    def _setup_derived_fields(self):
+        self.derived_field_list = []
+        for field in self.parameter_file.field_info:
+            try:
+                fd = self.parameter_file.field_info[field].get_dependencies(
+                            pf = self.parameter_file)
+            except:
+                continue
+            available = na.all([f in self.field_list for f in fd.requested])
+            if available: self.derived_field_list.append(field)
         for field in self.field_list:
-            if field in self.parameter_file.field_info: continue
-            mylog.info("Adding %s to list of fields", field)
-            cf = None
-            if self.parameter_file.has_key(field):
-                def external_wrapper(f):
-                    def _convert_function(data):
-                        return data.convert(f)
-                    return _convert_function
-                cf = external_wrapper(field)
-            add_field(field, lambda a, b: None, convert_function=cf,
-                      take_log=False)
-
-    def _setup_derived_fields(self):
-        pass
+            if field not in self.derived_field_list:
+                self.derived_field_list.append(field)
 
     def _initialize_state_variables(self):
         """
@@ -508,7 +492,8 @@
 
     """
     _hierarchy_class = NyxHierarchy
-    _fieldinfo_class = NyxFieldContainer
+    _fieldinfo_fallback = NyxFieldInfo
+    _fieldinfo_known = KnownNyxFields
 
     @classmethod
     def _is_valid(cls, *args, **kwargs):


diff -r 23786f4963a3414b108a3deb0da6517884cea12c -r 7f00336c3ba963753694dbb2f56fff1721050381 yt/frontends/nyx/fields.py
--- a/yt/frontends/nyx/fields.py
+++ b/yt/frontends/nyx/fields.py
@@ -29,28 +29,26 @@
 
 import yt.data_objects.universal_fields
 
-from yt.data_objects.field_info_container import CodeFieldInfoContainer, \
+from yt.data_objects.field_info_container import FieldInfoContainer, \
+    NullFunc, TranslationFunc, FieldInfo, \
     ValidateParameter, ValidateDataField, ValidateProperty, ValidateSpatial, \
     ValidateGridType
 from yt.utilities.physical_constants import mh, kboltz
 
-class NyxFieldContainer(CodeFieldInfoContainer):
-    """ All nyx-specific fields are stored in here. """
-    _shared_state = {}
-    _field_list = {}
+NyxFieldInfo = FieldInfoContainer.create_with_fallback(FieldInfo)
+add_field = NyxFieldInfo.add_field
 
-nyx_fields = NyxFieldContainer()
-add_field = nyx_fields.add_field
-add_nyx_field = add_field  # alias for API
+KnownNyxFields = FieldInfoContainer()
+add_nyx_field = KnownNyxFields.add_field 
 
 # Density
-add_field("density", function=lambda a, b: None, take_log=True,
+add_nyx_field("density", function=lambda a, b: None, take_log=True,
           validators=[ValidateDataField("density")],
           units=r"\rm{g}} / \rm{cm}^3",
           projected_units =r"\rm{g}} / \rm{cm}^2")
-nyx_fields["density"]._projected_units =r"\rm{g}} / \rm{cm}^2"
+KnownNyxFields["density"]._projected_units =r"\rm{g}} / \rm{cm}^2"
 
-add_field("Density", function=lambda a, b: b["density"], take_log=True,
+add_field("Density", function=TranslationFunc("density"), take_log=True,
           units=r"\rm{g}} / \rm{cm}^3",
           projected_units =r"\rm{g}} / \rm{cm}^2")
 
@@ -61,28 +59,30 @@
     return data["particle_mass"]
 add_field("ParticleMassMsun", function=_particle_mass_m_sun,
           validators=[ValidateSpatial(0), ValidateDataField("particle_mass")],
-          particle_type=True, convert_function=_convertParticleMassMsun, take_log=True, units=r"\rm{M_{\odot}}")
+          particle_type=True, convert_function=_convertParticleMassMsun,
+          take_log=True, units=r"\rm{M_{\odot}}")
           
-add_field("Dark_Matter_Density", function=lambda a, b: b["particle_mass_density"], take_log=True,
+add_nyx_field("Dark_Matter_Density", function=TranslationFunc("particle_mass_density"),
+          take_log=True,
           units=r"\rm{g}} / \rm{cm}^3",particle_type=True,
           projected_units =r"\rm{g}} / \rm{cm}^2")
 
 
 # Energy Density
 # @todo: ``energy_density``
-add_field("total_energy", function=lambda a, b: None, take_log=True,
+add_nyx_field("total_energy", function=lambda a, b: None, take_log=True,
           validators=[ValidateDataField("total_energy")],
           units=r"\rm{M_{\odot}} (\rm{km} / \rm{s})^2")
 
 # Momentum in each dimension.
 # @todo: ``momentum_x``
-add_field("x-momentum", function=lambda a, b: None, take_log=False,
+add_nyx_field("x-momentum", function=lambda a, b: None, take_log=False,
           validators=[ValidateDataField("x-momentum")],
           units=r"\rm{M_{\odot}} \rm{km} / \rm{s}")
-add_field("y-momentum", function=lambda a, b: None, take_log=False,
+add_nyx_field("y-momentum", function=lambda a, b: None, take_log=False,
           validators=[ValidateDataField("y-momentum")],
           units=r"\rm{M_{\odot}} \rm{km} / \rm{s}")
-add_field("z-momentum", function=lambda a, b: None, take_log=False,
+add_nyx_field("z-momentum", function=lambda a, b: None, take_log=False,
           validators=[ValidateDataField("z-momentum")],
           units=r"\rm{M_{\odot}} \rm{km} / \rm{s}")
 


diff -r 23786f4963a3414b108a3deb0da6517884cea12c -r 7f00336c3ba963753694dbb2f56fff1721050381 yt/mods.py
--- a/yt/mods.py
+++ b/yt/mods.py
@@ -60,7 +60,7 @@
     CastroStaticOutput, CastroFieldInfo, add_castro_field
 
 from yt.frontends.nyx.api import \
-    NyxStaticOutput, nyx_fields, add_nyx_field
+    NyxStaticOutput, NyxFieldInfo, add_nyx_field
 
 from yt.frontends.orion.api import \
     OrionStaticOutput, OrionFieldInfo, add_orion_field



https://bitbucket.org/yt_analysis/yt/changeset/4bfd4a92df85/
changeset:   4bfd4a92df85
branch:      deliberate_fields
user:        MatthewTurk
date:        2011-11-09 18:03:02
summary:     This typo fix lets translation fields work.
affected #:  1 file

diff -r 7f00336c3ba963753694dbb2f56fff1721050381 -r 4bfd4a92df853dac2841e6c67f0e5c4073d83733 yt/data_objects/field_info_container.py
--- a/yt/data_objects/field_info_container.py
+++ b/yt/data_objects/field_info_container.py
@@ -88,7 +88,7 @@
 
 def TranslationFunc(field_name):
     def _TranslationFunc(field, data):
-        return data[field]
+        return data[field_name]
     return _TranslationFunc
 
 def NullFunc(field, data):



https://bitbucket.org/yt_analysis/yt/changeset/b0c52fa7e2b3/
changeset:   b0c52fa7e2b3
branch:      deliberate_fields
user:        MatthewTurk
date:        2011-11-09 23:14:24
summary:     Fixing a _con_args definition.
affected #:  1 file

diff -r 4bfd4a92df853dac2841e6c67f0e5c4073d83733 -r b0c52fa7e2b3c7bfa1212beb8ef87a06230a6a8f yt/data_objects/data_containers.py
--- a/yt/data_objects/data_containers.py
+++ b/yt/data_objects/data_containers.py
@@ -3404,7 +3404,7 @@
     existing regions.
     """
     _type_name = "boolean"
-    _con_args = {"regions"}
+    _con_args = ("regions")
     def __init__(self, regions, fields = None, pf = None, **kwargs):
         """
         This will build a hybrid region based on the boolean logic



https://bitbucket.org/yt_analysis/yt/changeset/c87dd8b9b9e5/
changeset:   c87dd8b9b9e5
branch:      deliberate_fields
user:        MatthewTurk
date:        2011-11-11 22:30:50
summary:     Adding a new function, rootloginfo, which will send something to mylog.info
only if on the root proc.  Changing the unknown fields to be debug level logged
and rootloginfo the known fields.
affected #:  2 files

diff -r b0c52fa7e2b3c7bfa1212beb8ef87a06230a6a8f -r c87dd8b9b9e5c70912c13d7d19cdada8f3024f5c yt/data_objects/hierarchy.py
--- a/yt/data_objects/hierarchy.py
+++ b/yt/data_objects/hierarchy.py
@@ -145,7 +145,7 @@
             # it.
             ff = self.parameter_file.field_info.pop(field, None)
             if field not in known_fields:
-                mylog.info("Adding unknown field %s to list of fields", field)
+                rootloginfo("Adding unknown field %s to list of fields", field)
                 cf = None
                 if self.parameter_file.has_key(field):
                     def external_wrapper(f):
@@ -160,7 +160,7 @@
                         field, NullFunc,
                         convert_function=cf, take_log=False, units=r"Unknown")
             else:
-                mylog.info("Adding known field %s to list of fields", field)
+                mylog.debug("Adding known field %s to list of fields", field)
                 self.parameter_file.field_info[field] = known_fields[field]
             
     # Now all the object related stuff


diff -r b0c52fa7e2b3c7bfa1212beb8ef87a06230a6a8f -r c87dd8b9b9e5c70912c13d7d19cdada8f3024f5c yt/funcs.py
--- a/yt/funcs.py
+++ b/yt/funcs.py
@@ -195,6 +195,11 @@
         return func(*args, **kwargs)
     return check_parallel_rank
 
+def rootloginfo(*args):
+    from yt.config import ytcfg
+    if ytcfg.getint("yt", "__topcomm_parallel_rank") > 0: return
+    mylog.info(*args)
+
 def deprecate(func):
     """
     This decorator issues a deprecation warning.

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