[Yt-svn] yt: 2 new changesets

hg at spacepope.org hg at spacepope.org
Thu Nov 18 21:33:31 PST 2010


hg Repository: yt
details:   yt/rev/65afd71f6370
changeset: 3539:65afd71f6370
user:      Matthew Turk <matthewturk at gmail.com>
date:
Fri Nov 19 00:27:20 2010 -0500
description:
Fixing particle_density for covering grids

hg Repository: yt
details:   yt/rev/29b42153c46a
changeset: 3540:29b42153c46a
user:      Matthew Turk <matthewturk at gmail.com>
date:
Fri Nov 19 00:33:26 2010 -0500
description:
Merge

diffstat:

 yt/analysis_modules/halo_profiler/multi_halo_profiler.py |  21 +++++++---
 yt/data_objects/universal_fields.py                      |   2 +-
 yt/frontends/enzo/fields.py                              |  30 ++++++++--------
 3 files changed, 30 insertions(+), 23 deletions(-)

diffs (132 lines):

diff -r 1b7a519066fb -r 29b42153c46a yt/analysis_modules/halo_profiler/multi_halo_profiler.py
--- a/yt/analysis_modules/halo_profiler/multi_halo_profiler.py	Tue Nov 16 13:45:54 2010 -0700
+++ b/yt/analysis_modules/halo_profiler/multi_halo_profiler.py	Fri Nov 19 00:33:26 2010 -0500
@@ -277,10 +277,12 @@
                 if 'TotalMassMsun' in all_vqFilters:
                     mass_filter = vFilter['kwargs']['virial_filters'][all_vqFilters.index('TotalMassMsun')]
                     if '>' in mass_filter[1]:
-                        virial_prefilter = "halo['mass'] %s %f * %s" % (mass_filter[1], virial_prefilter_safety_factor, mass_filter[2])
+                        virial_prefilter = "halo['mass'] %s %f * %s" % \
+                            (mass_filter[1], virial_prefilter_safety_factor, mass_filter[2])
                         prefilters.append(virial_prefilter)
                     elif '<' in mass_filter[1]:
-                        virial_prefilter = "halo['mass'] %s %f * %s" % (mass_filter[1], (1./virial_prefilter_safety_factor), mass_filter[2])
+                        virial_prefilter = "halo['mass'] %s %f * %s" % \
+                            (mass_filter[1], (1./virial_prefilter_safety_factor), mass_filter[2])
                         prefilters.append(virial_prefilter)
 
         # Add profile fields necessary for calculating virial quantities.
@@ -312,7 +314,8 @@
 
                 # Apply filter and keep track of the quantities that are returned.
                 for hFilter in self._halo_filters:
-                    filter_result, filterQuantities = hFilter['function'](profiledHalo, *hFilter['args'], **hFilter['kwargs'])
+                    filter_result, filterQuantities = hFilter['function'](profiledHalo, *hFilter['args'], 
+                                                                          **hFilter['kwargs'])
 
                     if not filter_result: break
 
@@ -387,7 +390,8 @@
                     else:
                         mylog.error("Invalid parameter: VelocityCenter.")
                 elif self.velocity_center[0] == 'max':
-                    max_grid, max_cell, max_value, max_location = self.pf.h.find_max_cell_location(self.velocity_center[1])
+                    max_grid, max_cell, max_value, max_location = \
+                        self.pf.h.find_max_cell_location(self.velocity_center[1])
                     sphere.set_field_parameter('bulk_velocity', [max_grid['x-velocity'][max_cell],
                                                                  max_grid['y-velocity'][max_cell],
                                                                  max_grid['z-velocity'][max_cell]])
@@ -521,7 +525,8 @@
                     output = h5py.File(dataFilename, "a")
                     # Create fixed resolution buffer for each projection and write them out.
                     for e, hp in enumerate(self.projection_fields):
-                        frb = FixedResolutionBuffer(pc.plots[e].data, (proj_left[0], proj_right[0], proj_left[1], proj_right[1]),
+                        frb = FixedResolutionBuffer(pc.plots[e].data, (proj_left[0], proj_right[0], 
+                                                                       proj_left[1], proj_right[1]),
                                                           (projectionResolution, projectionResolution),
                                                           antialias=False)
                         dataset_name = "%s_%s" % (hp['field'], hp['weight_field'])
@@ -761,7 +766,8 @@
     This is necessary when projecting a preiodic region.
     """
     offset = [newCenter[q]-oldCenter[q] for q in range(len(oldCenter))]
-    width = [pf.parameters['DomainRightEdge'][q]-pf.parameters['DomainLeftEdge'][q] for q in range(len(oldCenter))]
+    width = [pf.parameters['DomainRightEdge'][q]-pf.parameters['DomainLeftEdge'][q] \
+                 for q in range(len(oldCenter))]
 
     del offset[axis]
     del width[axis]
@@ -830,7 +836,8 @@
         plot.data['pdy'] = na.concatenate([plot['pdy'], add_x_pdy, add_y_pdy, add2_x_pdy, add2_y_pdy])
         plot.data[field] = na.concatenate([plot[field], add_x_field, add_y_field, add2_x_field, add2_y_field])
         plot.data['weight_field'] = na.concatenate([plot['weight_field'],
-                                                    add_x_weight_field, add_y_weight_field, add2_x_weight_field, add2_y_weight_field])
+                                                    add_x_weight_field, add_y_weight_field, 
+                                                    add2_x_weight_field, add2_y_weight_field])
 
         # Delete original copies of hanging cells.
         del add_x_px, add_y_px, add2_x_px, add2_y_px
diff -r 1b7a519066fb -r 29b42153c46a yt/data_objects/universal_fields.py
--- a/yt/data_objects/universal_fields.py	Tue Nov 16 13:45:54 2010 -0700
+++ b/yt/data_objects/universal_fields.py	Fri Nov 19 00:33:26 2010 -0500
@@ -804,7 +804,7 @@
                  na.float64(data['dx']))
     return blank
 add_field("particle_density", function=_pdensity,
-          validators=[ValidateSpatial(0)], convert_function=_convertDensity,
+          validators=[ValidateGridType()], convert_function=_convertDensity,
           display_name=r"\mathrm{Particle}\/\mathrm{Density})")
 
 def _MagneticEnergy(field,data):
diff -r 1b7a519066fb -r 29b42153c46a yt/frontends/enzo/fields.py
--- a/yt/frontends/enzo/fields.py	Tue Nov 16 13:45:54 2010 -0700
+++ b/yt/frontends/enzo/fields.py	Fri Nov 19 00:33:26 2010 -0500
@@ -199,11 +199,26 @@
     return data["Density"]/ef
 add_field("ComovingDensity", function=_ComovingDensity, units=r"\rm{g}/\rm{cm}^3")
 
+# This is rho_total / rho_cr(z).
 def Overdensity(field,data):
     return (data['Density'] + data['Dark_Matter_Density']) / \
         (rho_crit_now * (data.pf.hubble_constant**2) * ((1+data.pf.current_redshift)**3))
 add_field("Overdensity",function=Overdensity,units=r"")
 
+# This is rho_b / <rho_b>.
+def _Baryon_Overdensity(field, data):
+    return data['Density']
+def _Convert_Baryon_Overdensity(data):
+    if data.pf.parameters.has_key('omega_baryon_now'):
+        omega_baryon_now = data.pf.parameters['omega_baryon_now']
+    else:
+        omega_baryon_now = 0.0441
+    return 1 / (omega_baryon_now * rho_crit_now * 
+                (data.pf['CosmologyHubbleConstantNow']**2) * 
+                ((1+data.pf['CosmologyCurrentRedshift'])**3))
+add_field("Baryon_Overdensity", function=_Baryon_Overdensity, 
+          convert_function=_Convert_Baryon_Overdensity, units=r"")
+
 # Now we add all the fields that we want to control, but we give a null function
 # This is every Enzo field we can think of.  This will be installation-dependent,
 
@@ -253,21 +268,6 @@
     f._convert_function = _convertVelocity
     f.take_log = False
 
-def _pdensity(field, data):
-    blank = na.zeros(data.ActiveDimensions, dtype='float32')
-    if data.NumberOfParticles == 0: return blank
-    amr_utils.CICDeposit_3(data["particle_position_x"].astype(na.float64),
-                           data["particle_position_y"].astype(na.float64),
-                           data["particle_position_z"].astype(na.float64),
-                           data["particle_mass"].astype(na.float32),
-                           data["particle_mass"].size,
-                           blank, na.array(data.LeftEdge).astype(na.float64),
-                           na.array(data.ActiveDimensions).astype(na.int32), 
-                           na.float64(data['dx']))
-    return blank
-add_field("particle_density", function=_pdensity,
-          validators=[ValidateSpatial(0)], convert_function=_convertDensity)
-
 def _spdensity(field, data):
     blank = na.zeros(data.ActiveDimensions, dtype='float32')
     if data.NumberOfParticles == 0: return blank



More information about the yt-svn mailing list