[yt-svn] commit/yt: 2 new changesets
Bitbucket
commits-noreply at bitbucket.org
Tue Jan 22 13:01:21 PST 2013
2 new commits in yt:
https://bitbucket.org/yt_analysis/yt/commits/79f3ef830bc4/
changeset: 79f3ef830bc4
branch: yt
user: MatthewTurk
date: 2013-01-22 20:50:36
summary: Adding ability to get particle fields from smoothed and unsmoothed covering grids.
affected #: 3 files
diff -r bd00437516fa35480aac4d39def68b2b5cadff38 -r 79f3ef830bc4a4504a0f6ff99d4debbe2d6fabbf yt/data_objects/data_containers.py
--- a/yt/data_objects/data_containers.py
+++ b/yt/data_objects/data_containers.py
@@ -3782,6 +3782,11 @@
continue
except NeedsOriginalGrid, ngt_exception:
pass
+ elif self.pf.field_info[field].particle_type:
+ region = self.pf.h.region(self.center,
+ self.left_edge, self.right_edge)
+ self.field_data[field] = region[field]
+ continue
obtain_fields.append(field)
self[field] = np.zeros(self.ActiveDimensions, dtype='float64') -999
if len(obtain_fields) == 0: return
@@ -3922,6 +3927,11 @@
continue
except NeedsOriginalGrid, ngt_exception:
pass
+ elif self.pf.field_info[field].particle_type:
+ region = self.pf.h.region(self.center,
+ self.left_edge, self.right_edge)
+ self.field_data[field] = region[field]
+ continue
fields_to_get.append(field)
if len(fields_to_get) == 0: return
# Note that, thanks to some trickery, we have different dimensions
diff -r bd00437516fa35480aac4d39def68b2b5cadff38 -r 79f3ef830bc4a4504a0f6ff99d4debbe2d6fabbf yt/data_objects/universal_fields.py
--- a/yt/data_objects/universal_fields.py
+++ b/yt/data_objects/universal_fields.py
@@ -973,12 +973,12 @@
return data.convert("Density")
def _pdensity(field, data):
blank = np.zeros(data.ActiveDimensions, dtype='float32')
- if data.NumberOfParticles == 0: return blank
+ 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),
- np.int64(data.NumberOfParticles),
+ data["particle_position_x"].size,
blank, np.array(data.LeftEdge).astype(np.float64),
np.array(data.ActiveDimensions).astype(np.int32),
np.float64(data['dx']))
diff -r bd00437516fa35480aac4d39def68b2b5cadff38 -r 79f3ef830bc4a4504a0f6ff99d4debbe2d6fabbf yt/frontends/enzo/fields.py
--- a/yt/frontends/enzo/fields.py
+++ b/yt/frontends/enzo/fields.py
@@ -346,7 +346,7 @@
def _spdensity(field, data):
blank = np.zeros(data.ActiveDimensions, dtype='float32')
- if data.NumberOfParticles == 0: return blank
+ 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),
@@ -363,18 +363,19 @@
def _dmpdensity(field, data):
blank = np.zeros(data.ActiveDimensions, dtype='float32')
- if data.NumberOfParticles == 0: return blank
+ if data["particle_position_x"].size == 0: return blank
if 'creation_time' in data.pf.field_info:
filter = data['creation_time'] <= 0.0
if not filter.any(): return blank
+ num = filter.sum()
else:
- filter = np.ones(data.NumberOfParticles, dtype='bool')
- if not filter.any(): return blank
+ filter = None
+ num = data["particle_position_x"].size
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),
- np.int64(np.where(filter)[0].size),
+ num,
blank, np.array(data.LeftEdge).astype(np.float64),
np.array(data.ActiveDimensions).astype(np.int32),
np.float64(data['dx']))
@@ -389,13 +390,13 @@
"""
particle_field = field.name[4:]
top = np.zeros(data.ActiveDimensions, dtype='float32')
- if data.NumberOfParticles == 0: return top
+ 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),
- np.int64(data.NumberOfParticles),
+ data["particle_position_x"].size,
top, np.array(data.LeftEdge).astype(np.float64),
np.array(data.ActiveDimensions).astype(np.int32),
np.float64(data['dx']))
@@ -406,7 +407,7 @@
data["particle_position_y"].astype(np.float64),
data["particle_position_z"].astype(np.float64),
data["particle_mass"].astype(np.float32),
- np.int64(data.NumberOfParticles),
+ data["particle_position_x"].size,
bottom, np.array(data.LeftEdge).astype(np.float64),
np.array(data.ActiveDimensions).astype(np.int32),
np.float64(data['dx']))
@@ -428,7 +429,7 @@
"""
particle_field = field.name[5:]
top = np.zeros(data.ActiveDimensions, dtype='float32')
- if data.NumberOfParticles == 0: return top
+ if data["particle_position_x"].size == 0: return top
filter = data['creation_time'] > 0.0
if not filter.any(): return top
particle_field_data = data[particle_field][filter] * data['particle_mass'][filter]
https://bitbucket.org/yt_analysis/yt/commits/193cc2c5760c/
changeset: 193cc2c5760c
branch: yt
user: MatthewTurk
date: 2013-01-22 22:01:17
summary: Merged in MatthewTurk/yt (pull request #407)
Adding ability to get particle fields from smoothed and unsmoothed covering grids.
affected #: 3 files
diff -r 66c533f558ee7f73bd95857c0eda337f04cce64c -r 193cc2c5760c02dabdc998d645c94e8bb082fb16 yt/data_objects/data_containers.py
--- a/yt/data_objects/data_containers.py
+++ b/yt/data_objects/data_containers.py
@@ -3782,6 +3782,11 @@
continue
except NeedsOriginalGrid, ngt_exception:
pass
+ elif self.pf.field_info[field].particle_type:
+ region = self.pf.h.region(self.center,
+ self.left_edge, self.right_edge)
+ self.field_data[field] = region[field]
+ continue
obtain_fields.append(field)
self[field] = np.zeros(self.ActiveDimensions, dtype='float64') -999
if len(obtain_fields) == 0: return
@@ -3922,6 +3927,11 @@
continue
except NeedsOriginalGrid, ngt_exception:
pass
+ elif self.pf.field_info[field].particle_type:
+ region = self.pf.h.region(self.center,
+ self.left_edge, self.right_edge)
+ self.field_data[field] = region[field]
+ continue
fields_to_get.append(field)
if len(fields_to_get) == 0: return
# Note that, thanks to some trickery, we have different dimensions
diff -r 66c533f558ee7f73bd95857c0eda337f04cce64c -r 193cc2c5760c02dabdc998d645c94e8bb082fb16 yt/data_objects/universal_fields.py
--- a/yt/data_objects/universal_fields.py
+++ b/yt/data_objects/universal_fields.py
@@ -973,12 +973,12 @@
return data.convert("Density")
def _pdensity(field, data):
blank = np.zeros(data.ActiveDimensions, dtype='float32')
- if data.NumberOfParticles == 0: return blank
+ 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),
- np.int64(data.NumberOfParticles),
+ data["particle_position_x"].size,
blank, np.array(data.LeftEdge).astype(np.float64),
np.array(data.ActiveDimensions).astype(np.int32),
np.float64(data['dx']))
diff -r 66c533f558ee7f73bd95857c0eda337f04cce64c -r 193cc2c5760c02dabdc998d645c94e8bb082fb16 yt/frontends/enzo/fields.py
--- a/yt/frontends/enzo/fields.py
+++ b/yt/frontends/enzo/fields.py
@@ -346,7 +346,7 @@
def _spdensity(field, data):
blank = np.zeros(data.ActiveDimensions, dtype='float32')
- if data.NumberOfParticles == 0: return blank
+ 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),
@@ -363,18 +363,19 @@
def _dmpdensity(field, data):
blank = np.zeros(data.ActiveDimensions, dtype='float32')
- if data.NumberOfParticles == 0: return blank
+ if data["particle_position_x"].size == 0: return blank
if 'creation_time' in data.pf.field_info:
filter = data['creation_time'] <= 0.0
if not filter.any(): return blank
+ num = filter.sum()
else:
- filter = np.ones(data.NumberOfParticles, dtype='bool')
- if not filter.any(): return blank
+ filter = None
+ num = data["particle_position_x"].size
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),
- np.int64(np.where(filter)[0].size),
+ num,
blank, np.array(data.LeftEdge).astype(np.float64),
np.array(data.ActiveDimensions).astype(np.int32),
np.float64(data['dx']))
@@ -389,13 +390,13 @@
"""
particle_field = field.name[4:]
top = np.zeros(data.ActiveDimensions, dtype='float32')
- if data.NumberOfParticles == 0: return top
+ 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),
- np.int64(data.NumberOfParticles),
+ data["particle_position_x"].size,
top, np.array(data.LeftEdge).astype(np.float64),
np.array(data.ActiveDimensions).astype(np.int32),
np.float64(data['dx']))
@@ -406,7 +407,7 @@
data["particle_position_y"].astype(np.float64),
data["particle_position_z"].astype(np.float64),
data["particle_mass"].astype(np.float32),
- np.int64(data.NumberOfParticles),
+ data["particle_position_x"].size,
bottom, np.array(data.LeftEdge).astype(np.float64),
np.array(data.ActiveDimensions).astype(np.int32),
np.float64(data['dx']))
@@ -428,7 +429,7 @@
"""
particle_field = field.name[5:]
top = np.zeros(data.ActiveDimensions, dtype='float32')
- if data.NumberOfParticles == 0: return top
+ if data["particle_position_x"].size == 0: return top
filter = data['creation_time'] > 0.0
if not filter.any(): return top
particle_field_data = data[particle_field][filter] * data['particle_mass'][filter]
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