[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