[yt-svn] commit/yt: 2 new changesets
Bitbucket
commits-noreply at bitbucket.org
Fri Jan 27 06:19:26 PST 2012
2 new commits in yt:
https://bitbucket.org/yt_analysis/yt/changeset/c4cc476df930/
changeset: c4cc476df930
branch: yt
user: brittonsmith
date: 2012-01-26 22:44:37
summary: Fixing support for using particles in the isBound calculation.
affected #: 2 files
diff -r da10a8f3485e612645438168364dfe87543b8ac5 -r c4cc476df9301ce6d246f2afd5686b7d1570615a yt/data_objects/derived_quantities.py
--- a/yt/data_objects/derived_quantities.py
+++ b/yt/data_objects/derived_quantities.py
@@ -340,18 +340,20 @@
bv_x,bv_y,bv_z = data.quantities["BulkVelocity"]()
# One-cell objects are NOT BOUND.
if data["CellMass"].size == 1: return [0.0]
- """
- Changing data["CellMass"] to mass_to_use
- Add the mass contribution of particles if include_particles = True
- """
+
+ kinetic = 0.5 * (data["CellMass"] *
+ ((data["x-velocity"] - bv_x)**2 +
+ (data["y-velocity"] - bv_y)**2 +
+ (data["z-velocity"] - bv_z)**2)).sum()
+
if (include_particles):
mass_to_use = data["TotalMass"]
+ kinetic += 0.5 * (data["Dark_Matter_Mass"] *
+ ((data["cic_particle_velocity_x"] - bv_x)**2 +
+ (data["cic_particle_velocity_y"] - bv_y)**2 +
+ (data["cic_particle_velocity_z"] - bv_z)**2)).sum()
else:
mass_to_use = data["CellMass"]
- kinetic = 0.5 * (mass_to_use * (
- (data["x-velocity"] - bv_x)**2
- + (data["y-velocity"] - bv_y)**2
- + (data["z-velocity"] - bv_z)**2 )).sum()
# Add thermal energy to kinetic energy
if (include_thermal_energy):
thermal = (data["ThermalEnergy"] * mass_to_use).sum()
diff -r da10a8f3485e612645438168364dfe87543b8ac5 -r c4cc476df9301ce6d246f2afd5686b7d1570615a yt/frontends/enzo/fields.py
--- a/yt/frontends/enzo/fields.py
+++ b/yt/frontends/enzo/fields.py
@@ -263,6 +263,16 @@
display_name = "Dark\ Matter\ Density",
not_in_all = True)
+def _Dark_Matter_Mass(field, data):
+ return data['Dark_Matter_Density'] * data["CellVolume"]
+add_field("Dark_Matter_Mass", function=_Dark_Matter_Mass,
+ validators=ValidateDataField("Dark_Matter_Density"),
+ display_name="Dark\ Matter\ Mass", units=r"\rm{g}")
+add_field("Dark_Matter_MassMsun", function=_Dark_Matter_Mass,
+ convert_function=_convertCellMassMsun,
+ validators=ValidateDataField("Dark_Matter_Density"),
+ display_name="Dark\ Matter\ Mass", units=r"M_{\odot}")
+
KnownEnzoFields["Temperature"]._units = r"\rm{K}"
KnownEnzoFields["Temperature"].units = r"K"
KnownEnzoFields["Dust_Temperature"]._units = r"\rm{K}"
@@ -314,6 +324,46 @@
add_field("dm_density", function=_dmpdensity,
validators=[ValidateSpatial(0)], convert_function=_convertDensity)
+def _cic_particle_field(field, data):
+ """
+ Create a grid field for particle quantities weighted by particle mass,
+ using cloud-in-cell deposit.
+ """
+ particle_field = field.name[4:]
+ top = na.zeros(data.ActiveDimensions, dtype='float32')
+ if data.NumberOfParticles == 0: return top
+ particle_field_data = data[particle_field] * data['particle_mass']
+ 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),
+ particle_field_data.astype(na.float32),
+ na.int64(data.NumberOfParticles),
+ top, na.array(data.LeftEdge).astype(na.float64),
+ na.array(data.ActiveDimensions).astype(na.int32),
+ na.float64(data['dx']))
+ del particle_field_data
+
+ bottom = na.zeros(data.ActiveDimensions, dtype='float32')
+ 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),
+ na.int64(data.NumberOfParticles),
+ bottom, na.array(data.LeftEdge).astype(na.float64),
+ na.array(data.ActiveDimensions).astype(na.int32),
+ na.float64(data['dx']))
+ top[bottom == 0] = 0.0
+ bnz = bottom.nonzero()
+ top[bnz] /= bottom[bnz]
+ return top
+
+add_field('cic_particle_velocity_x', function=_cic_particle_field,
+ take_log=False, validators=[ValidateSpatial(0)])
+add_field('cic_particle_velocity_y', function=_cic_particle_field,
+ take_log=False, validators=[ValidateSpatial(0)])
+add_field('cic_particle_velocity_z', function=_cic_particle_field,
+ take_log=False, validators=[ValidateSpatial(0)])
+
def _star_field(field, data):
"""
Create a grid field for star quantities, weighted by star mass.
https://bitbucket.org/yt_analysis/yt/changeset/927964270a96/
changeset: 927964270a96
branch: yt
user: brittonsmith
date: 2012-01-26 22:47:27
summary: Merged.
affected #: 2 files
diff -r d0bcb602126125d833333f18642a92e12ff088ae -r 927964270a96942d3c1171d5017444b322b1e22c yt/data_objects/derived_quantities.py
--- a/yt/data_objects/derived_quantities.py
+++ b/yt/data_objects/derived_quantities.py
@@ -340,18 +340,20 @@
bv_x,bv_y,bv_z = data.quantities["BulkVelocity"]()
# One-cell objects are NOT BOUND.
if data["CellMass"].size == 1: return [0.0]
- """
- Changing data["CellMass"] to mass_to_use
- Add the mass contribution of particles if include_particles = True
- """
+
+ kinetic = 0.5 * (data["CellMass"] *
+ ((data["x-velocity"] - bv_x)**2 +
+ (data["y-velocity"] - bv_y)**2 +
+ (data["z-velocity"] - bv_z)**2)).sum()
+
if (include_particles):
mass_to_use = data["TotalMass"]
+ kinetic += 0.5 * (data["Dark_Matter_Mass"] *
+ ((data["cic_particle_velocity_x"] - bv_x)**2 +
+ (data["cic_particle_velocity_y"] - bv_y)**2 +
+ (data["cic_particle_velocity_z"] - bv_z)**2)).sum()
else:
mass_to_use = data["CellMass"]
- kinetic = 0.5 * (mass_to_use * (
- (data["x-velocity"] - bv_x)**2
- + (data["y-velocity"] - bv_y)**2
- + (data["z-velocity"] - bv_z)**2 )).sum()
# Add thermal energy to kinetic energy
if (include_thermal_energy):
thermal = (data["ThermalEnergy"] * mass_to_use).sum()
diff -r d0bcb602126125d833333f18642a92e12ff088ae -r 927964270a96942d3c1171d5017444b322b1e22c yt/frontends/enzo/fields.py
--- a/yt/frontends/enzo/fields.py
+++ b/yt/frontends/enzo/fields.py
@@ -263,6 +263,16 @@
display_name = "Dark\ Matter\ Density",
not_in_all = True)
+def _Dark_Matter_Mass(field, data):
+ return data['Dark_Matter_Density'] * data["CellVolume"]
+add_field("Dark_Matter_Mass", function=_Dark_Matter_Mass,
+ validators=ValidateDataField("Dark_Matter_Density"),
+ display_name="Dark\ Matter\ Mass", units=r"\rm{g}")
+add_field("Dark_Matter_MassMsun", function=_Dark_Matter_Mass,
+ convert_function=_convertCellMassMsun,
+ validators=ValidateDataField("Dark_Matter_Density"),
+ display_name="Dark\ Matter\ Mass", units=r"M_{\odot}")
+
KnownEnzoFields["Temperature"]._units = r"\rm{K}"
KnownEnzoFields["Temperature"].units = r"K"
KnownEnzoFields["Dust_Temperature"]._units = r"\rm{K}"
@@ -314,6 +324,46 @@
add_field("dm_density", function=_dmpdensity,
validators=[ValidateSpatial(0)], convert_function=_convertDensity)
+def _cic_particle_field(field, data):
+ """
+ Create a grid field for particle quantities weighted by particle mass,
+ using cloud-in-cell deposit.
+ """
+ particle_field = field.name[4:]
+ top = na.zeros(data.ActiveDimensions, dtype='float32')
+ if data.NumberOfParticles == 0: return top
+ particle_field_data = data[particle_field] * data['particle_mass']
+ 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),
+ particle_field_data.astype(na.float32),
+ na.int64(data.NumberOfParticles),
+ top, na.array(data.LeftEdge).astype(na.float64),
+ na.array(data.ActiveDimensions).astype(na.int32),
+ na.float64(data['dx']))
+ del particle_field_data
+
+ bottom = na.zeros(data.ActiveDimensions, dtype='float32')
+ 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),
+ na.int64(data.NumberOfParticles),
+ bottom, na.array(data.LeftEdge).astype(na.float64),
+ na.array(data.ActiveDimensions).astype(na.int32),
+ na.float64(data['dx']))
+ top[bottom == 0] = 0.0
+ bnz = bottom.nonzero()
+ top[bnz] /= bottom[bnz]
+ return top
+
+add_field('cic_particle_velocity_x', function=_cic_particle_field,
+ take_log=False, validators=[ValidateSpatial(0)])
+add_field('cic_particle_velocity_y', function=_cic_particle_field,
+ take_log=False, validators=[ValidateSpatial(0)])
+add_field('cic_particle_velocity_z', function=_cic_particle_field,
+ take_log=False, validators=[ValidateSpatial(0)])
+
def _star_field(field, data):
"""
Create a grid field for star quantities, weighted by star mass.
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