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

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Sun May 26 08:36:37 PDT 2013


4 new commits in yt:

https://bitbucket.org/yt_analysis/yt/commits/8ddaefe8894d/
Changeset:   8ddaefe8894d
Branch:      yt
User:        MatthewTurk
Date:        2013-05-23 22:04:29
Summary:     Switching both uses of Dark_Matter_Density to particle_density .
Affected #:  1 file

diff -r 21c384dd9c6b65666c0c6659b347586b2dd06449 -r 8ddaefe8894d297a33fb513659b819d798a31b8a yt/data_objects/universal_fields.py
--- a/yt/data_objects/universal_fields.py
+++ b/yt/data_objects/universal_fields.py
@@ -440,7 +440,7 @@
           convert_function=_convertCellMassCode)
 
 def _TotalMass(field,data):
-    return (data["Density"]+data["Dark_Matter_Density"]) * data["CellVolume"]
+    return (data["Density"]+data["particle_density"]) * data["CellVolume"]
 add_field("TotalMass", function=_TotalMass, units=r"\rm{g}")
 add_field("TotalMassMsun", units=r"M_{\odot}",
           function=_TotalMass,
@@ -453,7 +453,7 @@
           convert_function=_convertCellMassMsun)
 
 def _Matter_Density(field,data):
-    return (data['Density'] + data['Dark_Matter_Density'])
+    return (data['Density'] + data['particle_density'])
 add_field("Matter_Density",function=_Matter_Density,units=r"\rm{g}/\rm{cm^3}")
 
 def _ComovingDensity(field, data):


https://bitbucket.org/yt_analysis/yt/commits/01958def2e58/
Changeset:   01958def2e58
Branch:      yt
User:        MatthewTurk
Date:        2013-05-23 23:16:06
Summary:     Switching to using ParticleMass for deposition in particle_density and changing
CICDeposit_3 to use 64 bit buffers everywhere.

This should ensure that ParticleMass, which is a yt-defined field that is in g,
will be used instead of the Enzo-specific particle_mass, which is actually a
density.  Additionally, because we're going to be passing around grams instead
of Msun, we use 64-bit buffers in CICDeposit_3.  This may require a change to
the particle interpolation routines from John ZuHone as well, which I will
leave up to a later changeset.

I believe I've caught all of the fields that use CICDeposit_3.

Note also that the _convertDensity function is no longer necessary for
particle_density because we are using a pre-converted CGS field as input, and
then we divide by CellVolume, which is also CGS.
Affected #:  4 files

diff -r 8ddaefe8894d297a33fb513659b819d798a31b8a -r 01958def2e58c357864d9f95010da643435dd67c yt/data_objects/universal_fields.py
--- a/yt/data_objects/universal_fields.py
+++ b/yt/data_objects/universal_fields.py
@@ -982,22 +982,21 @@
 add_field("JeansMassMsun",function=_JeansMassMsun,
           units=r"\rm{M_{\odot}}")
 
-def _convertDensity(data):
-    return data.convert("Density")
 def _pdensity(field, data):
-    blank = np.zeros(data.ActiveDimensions, dtype='float32')
+    blank = np.zeros(data.ActiveDimensions, dtype='float64')
     if data["particle_position_x"].size == 0: return blank
     CICDeposit_3(data["particle_position_x"].astype(np.float64),
                  data["particle_position_y"].astype(np.float64),
                  data["particle_position_z"].astype(np.float64),
-                 data["particle_mass"].astype(np.float32),
+                 data["ParticleMass"],
                  data["particle_position_x"].size,
                  blank, np.array(data.LeftEdge).astype(np.float64),
                  np.array(data.ActiveDimensions).astype(np.int32),
                  np.float64(data['dx']))
+    np.divide(blank, data["CellVolume"], blank)
     return blank
 add_field("particle_density", function=_pdensity,
-          validators=[ValidateGridType()], convert_function=_convertDensity,
+          validators=[ValidateGridType()],
           display_name=r"\mathrm{Particle}\/\mathrm{Density}")
 
 def _MagneticEnergy(field,data):

diff -r 8ddaefe8894d297a33fb513659b819d798a31b8a -r 01958def2e58c357864d9f95010da643435dd67c yt/frontends/art/fields.py
--- a/yt/frontends/art/fields.py
+++ b/yt/frontends/art/fields.py
@@ -280,12 +280,12 @@
         projection_conversion="1")
 
 def _spdensity(field, data):
-    grid_mass = np.zeros(data.ActiveDimensions, dtype='float32')
+    grid_mass = np.zeros(data.ActiveDimensions, dtype='float64')
     if data.star_mass.shape[0] ==0 : return grid_mass 
     amr_utils.CICDeposit_3(data.star_position_x,
                            data.star_position_y,
                            data.star_position_z,
-                           data.star_mass.astype('float32'),
+                           data.star_mass,
                            data.star_mass.shape[0],
                            grid_mass, 
                            np.array(data.LeftEdge).astype(np.float64),

diff -r 8ddaefe8894d297a33fb513659b819d798a31b8a -r 01958def2e58c357864d9f95010da643435dd67c yt/frontends/enzo/fields.py
--- a/yt/frontends/enzo/fields.py
+++ b/yt/frontends/enzo/fields.py
@@ -352,14 +352,14 @@
     f.take_log = False
 
 def _spdensity(field, data):
-    blank = np.zeros(data.ActiveDimensions, dtype='float32')
+    blank = np.zeros(data.ActiveDimensions, dtype='float64')
     if data["particle_position_x"].size == 0: return blank
     filter = data['creation_time'] > 0.0
     if not filter.any(): return blank
     amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(np.float64),
                            data["particle_position_y"][filter].astype(np.float64),
                            data["particle_position_z"][filter].astype(np.float64),
-                           data["particle_mass"][filter].astype(np.float32),
+                           data["particle_mass"][filter],
                            np.int64(np.where(filter)[0].size),
                            blank, np.array(data.LeftEdge).astype(np.float64),
                            np.array(data.ActiveDimensions).astype(np.int32), 
@@ -369,7 +369,7 @@
           validators=[ValidateSpatial(0)], convert_function=_convertDensity)
 
 def _dmpdensity(field, data):
-    blank = np.zeros(data.ActiveDimensions, dtype='float32')
+    blank = np.zeros(data.ActiveDimensions, dtype='float64')
     if data["particle_position_x"].size == 0: return blank
     if 'creation_time' in data.pf.field_info:
         filter = data['creation_time'] <= 0.0
@@ -381,7 +381,7 @@
     amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(np.float64),
                            data["particle_position_y"][filter].astype(np.float64),
                            data["particle_position_z"][filter].astype(np.float64),
-                           data["particle_mass"][filter].astype(np.float32),
+                           data["particle_mass"][filter],
                            num,
                            blank, np.array(data.LeftEdge).astype(np.float64),
                            np.array(data.ActiveDimensions).astype(np.int32), 
@@ -396,24 +396,24 @@
     using cloud-in-cell deposit.
     """
     particle_field = field.name[4:]
-    top = np.zeros(data.ActiveDimensions, dtype='float32')
+    top = np.zeros(data.ActiveDimensions, dtype='float64')
     if data["particle_position_x"].size == 0: return top
     particle_field_data = data[particle_field] * data['particle_mass']
     amr_utils.CICDeposit_3(data["particle_position_x"].astype(np.float64),
                            data["particle_position_y"].astype(np.float64),
                            data["particle_position_z"].astype(np.float64),
-                           particle_field_data.astype(np.float32),
+                           particle_field_data,
                            data["particle_position_x"].size,
                            top, np.array(data.LeftEdge).astype(np.float64),
                            np.array(data.ActiveDimensions).astype(np.int32), 
                            np.float64(data['dx']))
     del particle_field_data
 
-    bottom = np.zeros(data.ActiveDimensions, dtype='float32')
+    bottom = np.zeros(data.ActiveDimensions, dtype='float64')
     amr_utils.CICDeposit_3(data["particle_position_x"].astype(np.float64),
                            data["particle_position_y"].astype(np.float64),
                            data["particle_position_z"].astype(np.float64),
-                           data["particle_mass"].astype(np.float32),
+                           data["particle_mass"],
                            data["particle_position_x"].size,
                            bottom, np.array(data.LeftEdge).astype(np.float64),
                            np.array(data.ActiveDimensions).astype(np.int32), 
@@ -435,7 +435,7 @@
     Create a grid field for star quantities, weighted by star mass.
     """
     particle_field = field.name[5:]
-    top = np.zeros(data.ActiveDimensions, dtype='float32')
+    top = np.zeros(data.ActiveDimensions, dtype='float64')
     if data["particle_position_x"].size == 0: return top
     filter = data['creation_time'] > 0.0
     if not filter.any(): return top
@@ -443,18 +443,18 @@
     amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(np.float64),
                           data["particle_position_y"][filter].astype(np.float64),
                           data["particle_position_z"][filter].astype(np.float64),
-                          particle_field_data.astype(np.float32),
+                          particle_field_data,
                           np.int64(np.where(filter)[0].size),
                           top, np.array(data.LeftEdge).astype(np.float64),
                           np.array(data.ActiveDimensions).astype(np.int32), 
                           np.float64(data['dx']))
     del particle_field_data
 
-    bottom = np.zeros(data.ActiveDimensions, dtype='float32')
+    bottom = np.zeros(data.ActiveDimensions, dtype='float64')
     amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(np.float64),
                           data["particle_position_y"][filter].astype(np.float64),
                           data["particle_position_z"][filter].astype(np.float64),
-                          data["particle_mass"][filter].astype(np.float32),
+                          data["particle_mass"][filter],
                           np.int64(np.where(filter)[0].size),
                           bottom, np.array(data.LeftEdge).astype(np.float64),
                           np.array(data.ActiveDimensions).astype(np.int32), 

diff -r 8ddaefe8894d297a33fb513659b819d798a31b8a -r 01958def2e58c357864d9f95010da643435dd67c yt/utilities/lib/CICDeposit.pyx
--- a/yt/utilities/lib/CICDeposit.pyx
+++ b/yt/utilities/lib/CICDeposit.pyx
@@ -34,22 +34,22 @@
 def CICDeposit_3(np.ndarray[np.float64_t, ndim=1] posx,
                  np.ndarray[np.float64_t, ndim=1] posy,
                  np.ndarray[np.float64_t, ndim=1] posz,
-                 np.ndarray[np.float32_t, ndim=1] mass,
+                 np.ndarray[np.float64_t, ndim=1] mass,
                  np.int64_t npositions,
-                 np.ndarray[np.float32_t, ndim=3] field,
+                 np.ndarray[np.float64_t, ndim=3] field,
                  np.ndarray[np.float64_t, ndim=1] leftEdge,
                  np.ndarray[np.int32_t, ndim=1] gridDimension,
                  np.float64_t cellSize):
 
     cdef int i1, j1, k1, n
-    cdef double xpos, ypos, zpos
-    cdef double fact, edge0, edge1, edge2
-    cdef double le0, le1, le2
-    cdef float dx, dy, dz, dx2, dy2, dz2
+    cdef np.float64_t xpos, ypos, zpos
+    cdef np.float64_t fact, edge0, edge1, edge2
+    cdef np.float64_t le0, le1, le2
+    cdef np.float64_t dx, dy, dz, dx2, dy2, dz2
 
-    edge0 = (<float> gridDimension[0]) - 0.5001
-    edge1 = (<float> gridDimension[1]) - 0.5001
-    edge2 = (<float> gridDimension[2]) - 0.5001
+    edge0 = (<np.float64_t> gridDimension[0]) - 0.5001
+    edge1 = (<np.float64_t> gridDimension[1]) - 0.5001
+    edge2 = (<np.float64_t> gridDimension[2]) - 0.5001
     fact = 1.0 / cellSize
 
     le0 = leftEdge[0]
@@ -68,9 +68,9 @@
         k1  = <int> (zpos + 0.5)
 
         # Compute the weights
-        dx = (<float> i1) + 0.5 - xpos
-        dy = (<float> j1) + 0.5 - ypos
-        dz = (<float> k1) + 0.5 - zpos
+        dx = (<np.float64_t> i1) + 0.5 - xpos
+        dy = (<np.float64_t> j1) + 0.5 - ypos
+        dz = (<np.float64_t> k1) + 0.5 - zpos
         dx2 =  1.0 - dx
         dy2 =  1.0 - dy
         dz2 =  1.0 - dz


https://bitbucket.org/yt_analysis/yt/commits/0f45cf555538/
Changeset:   0f45cf555538
Branch:      yt
User:        MatthewTurk
Date:        2013-05-23 23:49:59
Summary:     This change fixes some of the issues with detecting particle fields.

Note also that it adds a few universal fields, and marks them as "UNKNOWN" and
using NullFunc.  This enables field detection to use these fields and mark them
as particle fields.  Note also that this needs the _read_data function, so
field detection has changed somewhat.  Tests all pass now.
Affected #:  2 files

diff -r 01958def2e58c357864d9f95010da643435dd67c -r 0f45cf55553844be67df9ccf8815bf9a33ef178c yt/data_objects/field_info_container.py
--- a/yt/data_objects/field_info_container.py
+++ b/yt/data_objects/field_info_container.py
@@ -271,12 +271,14 @@
                 else: self[item] = vv.ravel()
                 return self[item]
         self.requested.append(item)
-        return defaultdict.__missing__(self, item)
+        if item not in self:
+            self[item] = self._read_data(item)
+        return self[item]
 
     def _read_data(self, field_name):
         self.requested.append(field_name)
         FI = getattr(self.pf, "field_info", FieldInfo)
-        if FI.has_key(field_name) and FI[field_name].particle_type:
+        if field_name in FI and FI[field_name].particle_type:
             self.requested.append(field_name)
             return np.ones(self.NumberOfParticles)
         return defaultdict.__missing__(self, field_name)

diff -r 01958def2e58c357864d9f95010da643435dd67c -r 0f45cf55553844be67df9ccf8815bf9a33ef178c yt/data_objects/universal_fields.py
--- a/yt/data_objects/universal_fields.py
+++ b/yt/data_objects/universal_fields.py
@@ -44,7 +44,8 @@
     NeedsOriginalGrid, \
     NeedsDataField, \
     NeedsProperty, \
-    NeedsParameter
+    NeedsParameter, \
+    NullFunc
 
 from yt.utilities.physical_constants import \
      mh, \
@@ -982,6 +983,14 @@
 add_field("JeansMassMsun",function=_JeansMassMsun,
           units=r"\rm{M_{\odot}}")
 
+# We add these fields so that the field detector can use them
+for field in ["particle_position_%s" % ax for ax in "xyz"] + \
+             ["ParticleMass"]:
+    # This marker should let everyone know not to use the fields, but NullFunc
+    # should do that, too.
+    add_field(field, function=NullFunc, particle_type = True,
+        units=r"UNDEFINED")
+
 def _pdensity(field, data):
     blank = np.zeros(data.ActiveDimensions, dtype='float64')
     if data["particle_position_x"].size == 0: return blank


https://bitbucket.org/yt_analysis/yt/commits/e456caeed063/
Changeset:   e456caeed063
Branch:      yt
User:        chummels
Date:        2013-05-26 17:36:30
Summary:     Merged in MatthewTurk/yt (pull request #511)

Switching both uses of Dark_Matter_Density to particle_density .  Fixes #576
Affected #:  5 files

diff -r 1045cefe0b41d8b5439ab63dc232cb52ebaf72b3 -r e456caeed06364a0a38759636e8a8d68eed7c47e yt/data_objects/field_info_container.py
--- a/yt/data_objects/field_info_container.py
+++ b/yt/data_objects/field_info_container.py
@@ -271,12 +271,14 @@
                 else: self[item] = vv.ravel()
                 return self[item]
         self.requested.append(item)
-        return defaultdict.__missing__(self, item)
+        if item not in self:
+            self[item] = self._read_data(item)
+        return self[item]
 
     def _read_data(self, field_name):
         self.requested.append(field_name)
         FI = getattr(self.pf, "field_info", FieldInfo)
-        if FI.has_key(field_name) and FI[field_name].particle_type:
+        if field_name in FI and FI[field_name].particle_type:
             self.requested.append(field_name)
             return np.ones(self.NumberOfParticles)
         return defaultdict.__missing__(self, field_name)

diff -r 1045cefe0b41d8b5439ab63dc232cb52ebaf72b3 -r e456caeed06364a0a38759636e8a8d68eed7c47e yt/data_objects/universal_fields.py
--- a/yt/data_objects/universal_fields.py
+++ b/yt/data_objects/universal_fields.py
@@ -44,7 +44,8 @@
     NeedsOriginalGrid, \
     NeedsDataField, \
     NeedsProperty, \
-    NeedsParameter
+    NeedsParameter, \
+    NullFunc
 
 from yt.utilities.physical_constants import \
      mh, \
@@ -440,7 +441,7 @@
           convert_function=_convertCellMassCode)
 
 def _TotalMass(field,data):
-    return (data["Density"]+data["Dark_Matter_Density"]) * data["CellVolume"]
+    return (data["Density"]+data["particle_density"]) * data["CellVolume"]
 add_field("TotalMass", function=_TotalMass, units=r"\rm{g}")
 add_field("TotalMassMsun", units=r"M_{\odot}",
           function=_TotalMass,
@@ -453,7 +454,7 @@
           convert_function=_convertCellMassMsun)
 
 def _Matter_Density(field,data):
-    return (data['Density'] + data['Dark_Matter_Density'])
+    return (data['Density'] + data['particle_density'])
 add_field("Matter_Density",function=_Matter_Density,units=r"\rm{g}/\rm{cm^3}")
 
 def _ComovingDensity(field, data):
@@ -982,22 +983,29 @@
 add_field("JeansMassMsun",function=_JeansMassMsun,
           units=r"\rm{M_{\odot}}")
 
-def _convertDensity(data):
-    return data.convert("Density")
+# We add these fields so that the field detector can use them
+for field in ["particle_position_%s" % ax for ax in "xyz"] + \
+             ["ParticleMass"]:
+    # This marker should let everyone know not to use the fields, but NullFunc
+    # should do that, too.
+    add_field(field, function=NullFunc, particle_type = True,
+        units=r"UNDEFINED")
+
 def _pdensity(field, data):
-    blank = np.zeros(data.ActiveDimensions, dtype='float32')
+    blank = np.zeros(data.ActiveDimensions, dtype='float64')
     if data["particle_position_x"].size == 0: return blank
     CICDeposit_3(data["particle_position_x"].astype(np.float64),
                  data["particle_position_y"].astype(np.float64),
                  data["particle_position_z"].astype(np.float64),
-                 data["particle_mass"].astype(np.float32),
+                 data["ParticleMass"],
                  data["particle_position_x"].size,
                  blank, np.array(data.LeftEdge).astype(np.float64),
                  np.array(data.ActiveDimensions).astype(np.int32),
                  np.float64(data['dx']))
+    np.divide(blank, data["CellVolume"], blank)
     return blank
 add_field("particle_density", function=_pdensity,
-          validators=[ValidateGridType()], convert_function=_convertDensity,
+          validators=[ValidateGridType()],
           display_name=r"\mathrm{Particle}\/\mathrm{Density}")
 
 def _MagneticEnergy(field,data):

diff -r 1045cefe0b41d8b5439ab63dc232cb52ebaf72b3 -r e456caeed06364a0a38759636e8a8d68eed7c47e yt/frontends/art/fields.py
--- a/yt/frontends/art/fields.py
+++ b/yt/frontends/art/fields.py
@@ -280,12 +280,12 @@
         projection_conversion="1")
 
 def _spdensity(field, data):
-    grid_mass = np.zeros(data.ActiveDimensions, dtype='float32')
+    grid_mass = np.zeros(data.ActiveDimensions, dtype='float64')
     if data.star_mass.shape[0] ==0 : return grid_mass 
     amr_utils.CICDeposit_3(data.star_position_x,
                            data.star_position_y,
                            data.star_position_z,
-                           data.star_mass.astype('float32'),
+                           data.star_mass,
                            data.star_mass.shape[0],
                            grid_mass, 
                            np.array(data.LeftEdge).astype(np.float64),

diff -r 1045cefe0b41d8b5439ab63dc232cb52ebaf72b3 -r e456caeed06364a0a38759636e8a8d68eed7c47e yt/frontends/enzo/fields.py
--- a/yt/frontends/enzo/fields.py
+++ b/yt/frontends/enzo/fields.py
@@ -352,14 +352,14 @@
     f.take_log = False
 
 def _spdensity(field, data):
-    blank = np.zeros(data.ActiveDimensions, dtype='float32')
+    blank = np.zeros(data.ActiveDimensions, dtype='float64')
     if data["particle_position_x"].size == 0: return blank
     filter = data['creation_time'] > 0.0
     if not filter.any(): return blank
     amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(np.float64),
                            data["particle_position_y"][filter].astype(np.float64),
                            data["particle_position_z"][filter].astype(np.float64),
-                           data["particle_mass"][filter].astype(np.float32),
+                           data["particle_mass"][filter],
                            np.int64(np.where(filter)[0].size),
                            blank, np.array(data.LeftEdge).astype(np.float64),
                            np.array(data.ActiveDimensions).astype(np.int32), 
@@ -369,7 +369,7 @@
           validators=[ValidateSpatial(0)], convert_function=_convertDensity)
 
 def _dmpdensity(field, data):
-    blank = np.zeros(data.ActiveDimensions, dtype='float32')
+    blank = np.zeros(data.ActiveDimensions, dtype='float64')
     if data["particle_position_x"].size == 0: return blank
     if 'creation_time' in data.pf.field_info:
         filter = data['creation_time'] <= 0.0
@@ -381,7 +381,7 @@
     amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(np.float64),
                            data["particle_position_y"][filter].astype(np.float64),
                            data["particle_position_z"][filter].astype(np.float64),
-                           data["particle_mass"][filter].astype(np.float32),
+                           data["particle_mass"][filter],
                            num,
                            blank, np.array(data.LeftEdge).astype(np.float64),
                            np.array(data.ActiveDimensions).astype(np.int32), 
@@ -396,24 +396,24 @@
     using cloud-in-cell deposit.
     """
     particle_field = field.name[4:]
-    top = np.zeros(data.ActiveDimensions, dtype='float32')
+    top = np.zeros(data.ActiveDimensions, dtype='float64')
     if data["particle_position_x"].size == 0: return top
     particle_field_data = data[particle_field] * data['particle_mass']
     amr_utils.CICDeposit_3(data["particle_position_x"].astype(np.float64),
                            data["particle_position_y"].astype(np.float64),
                            data["particle_position_z"].astype(np.float64),
-                           particle_field_data.astype(np.float32),
+                           particle_field_data,
                            data["particle_position_x"].size,
                            top, np.array(data.LeftEdge).astype(np.float64),
                            np.array(data.ActiveDimensions).astype(np.int32), 
                            np.float64(data['dx']))
     del particle_field_data
 
-    bottom = np.zeros(data.ActiveDimensions, dtype='float32')
+    bottom = np.zeros(data.ActiveDimensions, dtype='float64')
     amr_utils.CICDeposit_3(data["particle_position_x"].astype(np.float64),
                            data["particle_position_y"].astype(np.float64),
                            data["particle_position_z"].astype(np.float64),
-                           data["particle_mass"].astype(np.float32),
+                           data["particle_mass"],
                            data["particle_position_x"].size,
                            bottom, np.array(data.LeftEdge).astype(np.float64),
                            np.array(data.ActiveDimensions).astype(np.int32), 
@@ -435,7 +435,7 @@
     Create a grid field for star quantities, weighted by star mass.
     """
     particle_field = field.name[5:]
-    top = np.zeros(data.ActiveDimensions, dtype='float32')
+    top = np.zeros(data.ActiveDimensions, dtype='float64')
     if data["particle_position_x"].size == 0: return top
     filter = data['creation_time'] > 0.0
     if not filter.any(): return top
@@ -443,18 +443,18 @@
     amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(np.float64),
                           data["particle_position_y"][filter].astype(np.float64),
                           data["particle_position_z"][filter].astype(np.float64),
-                          particle_field_data.astype(np.float32),
+                          particle_field_data,
                           np.int64(np.where(filter)[0].size),
                           top, np.array(data.LeftEdge).astype(np.float64),
                           np.array(data.ActiveDimensions).astype(np.int32), 
                           np.float64(data['dx']))
     del particle_field_data
 
-    bottom = np.zeros(data.ActiveDimensions, dtype='float32')
+    bottom = np.zeros(data.ActiveDimensions, dtype='float64')
     amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(np.float64),
                           data["particle_position_y"][filter].astype(np.float64),
                           data["particle_position_z"][filter].astype(np.float64),
-                          data["particle_mass"][filter].astype(np.float32),
+                          data["particle_mass"][filter],
                           np.int64(np.where(filter)[0].size),
                           bottom, np.array(data.LeftEdge).astype(np.float64),
                           np.array(data.ActiveDimensions).astype(np.int32), 

diff -r 1045cefe0b41d8b5439ab63dc232cb52ebaf72b3 -r e456caeed06364a0a38759636e8a8d68eed7c47e yt/utilities/lib/CICDeposit.pyx
--- a/yt/utilities/lib/CICDeposit.pyx
+++ b/yt/utilities/lib/CICDeposit.pyx
@@ -34,22 +34,22 @@
 def CICDeposit_3(np.ndarray[np.float64_t, ndim=1] posx,
                  np.ndarray[np.float64_t, ndim=1] posy,
                  np.ndarray[np.float64_t, ndim=1] posz,
-                 np.ndarray[np.float32_t, ndim=1] mass,
+                 np.ndarray[np.float64_t, ndim=1] mass,
                  np.int64_t npositions,
-                 np.ndarray[np.float32_t, ndim=3] field,
+                 np.ndarray[np.float64_t, ndim=3] field,
                  np.ndarray[np.float64_t, ndim=1] leftEdge,
                  np.ndarray[np.int32_t, ndim=1] gridDimension,
                  np.float64_t cellSize):
 
     cdef int i1, j1, k1, n
-    cdef double xpos, ypos, zpos
-    cdef double fact, edge0, edge1, edge2
-    cdef double le0, le1, le2
-    cdef float dx, dy, dz, dx2, dy2, dz2
+    cdef np.float64_t xpos, ypos, zpos
+    cdef np.float64_t fact, edge0, edge1, edge2
+    cdef np.float64_t le0, le1, le2
+    cdef np.float64_t dx, dy, dz, dx2, dy2, dz2
 
-    edge0 = (<float> gridDimension[0]) - 0.5001
-    edge1 = (<float> gridDimension[1]) - 0.5001
-    edge2 = (<float> gridDimension[2]) - 0.5001
+    edge0 = (<np.float64_t> gridDimension[0]) - 0.5001
+    edge1 = (<np.float64_t> gridDimension[1]) - 0.5001
+    edge2 = (<np.float64_t> gridDimension[2]) - 0.5001
     fact = 1.0 / cellSize
 
     le0 = leftEdge[0]
@@ -68,9 +68,9 @@
         k1  = <int> (zpos + 0.5)
 
         # Compute the weights
-        dx = (<float> i1) + 0.5 - xpos
-        dy = (<float> j1) + 0.5 - ypos
-        dz = (<float> k1) + 0.5 - zpos
+        dx = (<np.float64_t> i1) + 0.5 - xpos
+        dy = (<np.float64_t> j1) + 0.5 - ypos
+        dz = (<np.float64_t> k1) + 0.5 - zpos
         dx2 =  1.0 - dx
         dy2 =  1.0 - dy
         dz2 =  1.0 - dz

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