[yt-svn] commit/yt: 4 new changesets
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Wed Apr 23 17:18:06 PDT 2014
4 new commits in yt:
https://bitbucket.org/yt_analysis/yt/commits/a90de64aa23f/
Changeset: a90de64aa23f
Branch: yt-3.0
User: MatthewTurk
Date: 2014-04-17 02:18:51
Summary: Fixing unitary for datasets without DLE/DRE. Modify Tipsy domain.
This sets the tipsy domains slightly differently, by looking for min/max, but
preserving the 1% extension. Also, because we do not have a "code_metallicity"
defined, I have removed that unit for now from the fields definitions.
Affected #: 3 files
diff -r 85aed0cda09466c9635c6539e36f8bd972ac0eaa -r a90de64aa23f6e966938c6fd81b993ecc6934b82 yt/data_objects/static_output.py
--- a/yt/data_objects/static_output.py
+++ b/yt/data_objects/static_output.py
@@ -628,12 +628,10 @@
self.length_unit / self.time_unit)
self.unit_registry.modify("code_velocity", vel_unit)
# domain_width does not yet exist
- if self.domain_left_edge is None or self.domain_right_edge is None:
- DW = np.zeros(3)
- else:
+ if None not in (self.domain_left_edge, self.domain_right_edge):
DW = self.arr(self.domain_right_edge - self.domain_left_edge, "code_length")
- self.unit_registry.add("unitary", float(DW.max() * DW.units.cgs_value),
- DW.units.dimensions)
+ self.unit_registry.add("unitary", float(DW.max() * DW.units.cgs_value),
+ DW.units.dimensions)
_arr = None
@property
diff -r 85aed0cda09466c9635c6539e36f8bd972ac0eaa -r a90de64aa23f6e966938c6fd81b993ecc6934b82 yt/frontends/sph/fields.py
--- a/yt/frontends/sph/fields.py
+++ b/yt/frontends/sph/fields.py
@@ -60,7 +60,8 @@
("MaximumTemperature", ("K", [], None)),
("Temperature", ("K", ["temperature"], None)),
("Epsilon", ("code_length", [], None)),
- ("Metals", ("code_metallicity", ["metallicity"], None)),
+ # This should be 'code_metallicity'
+ ("Metals", ("", ["metallicity"], None)),
("Phi", ("code_length", [], None)),
("FormationTime", ("code_time", ["creation_time"], None)),
)
diff -r 85aed0cda09466c9635c6539e36f8bd972ac0eaa -r a90de64aa23f6e966938c6fd81b993ecc6934b82 yt/frontends/sph/io.py
--- a/yt/frontends/sph/io.py
+++ b/yt/frontends/sph/io.py
@@ -551,6 +551,8 @@
pf.domain_left_edge = 0
pf.domain_right_edge = 0
f.seek(pf._header_offset)
+ mi = np.array([1e30, 1e30, 1e30], dtype="float64")
+ ma = -np.array([1e30, 1e30, 1e30], dtype="float64")
for iptype, ptype in enumerate(self._ptypes):
# We'll just add the individual types separately
count = data_file.total_particles[ptype]
@@ -560,19 +562,23 @@
c = min(CHUNKSIZE, stop - ind)
pp = np.fromfile(f, dtype = self._pdtypes[ptype],
count = c)
- for ax in 'xyz':
- mi = pp["Coordinates"][ax].min()
- ma = pp["Coordinates"][ax].max()
- outlier = self.arr(np.max(np.abs((mi,ma))), 'code_length')
- if outlier > pf.domain_right_edge or -outlier < pf.domain_left_edge:
- # scale these up so the domain is slightly
- # larger than the most distant particle position
- pf.domain_left_edge = -1.01*outlier
- pf.domain_right_edge = 1.01*outlier
+ eps = np.finfo(pp["Coordinates"]["x"].dtype).eps
+ np.minimum(mi, [pp["Coordinates"]["x"].min(),
+ pp["Coordinates"]["y"].min(),
+ pp["Coordinates"]["z"].min()], mi)
+ np.maximum(ma, [pp["Coordinates"]["x"].max(),
+ pp["Coordinates"]["y"].max(),
+ pp["Coordinates"]["z"].max()], ma)
ind += c
- pf.domain_left_edge = np.ones(3)*pf.domain_left_edge
- pf.domain_right_edge = np.ones(3)*pf.domain_right_edge
- pf.domain_width = np.ones(3)*2*pf.domain_right_edge
+ # We extend by 1%.
+ DW = ma - mi
+ mi -= 0.01 * DW
+ ma += 0.01 * DW
+ pf.domain_left_edge = pf.arr(mi, 'code_length')
+ pf.domain_right_edge = pf.arr(ma, 'code_length')
+ pf.domain_width = DW = pf.domain_right_edge - pf.domain_left_edge
+ pf.unit_registry.add("unitary", float(DW.max() * DW.units.cgs_value),
+ DW.units.dimensions)
def _initialize_index(self, data_file, regions):
pf = data_file.pf
https://bitbucket.org/yt_analysis/yt/commits/e7b776b1b537/
Changeset: e7b776b1b537
Branch: yt-3.0
User: MatthewTurk
Date: 2014-04-18 17:15:50
Summary: Adding back in code_metallicity.
Affected #: 2 files
diff -r a90de64aa23f6e966938c6fd81b993ecc6934b82 -r e7b776b1b537e201aedef250e6f371d21f10bb87 yt/data_objects/static_output.py
--- a/yt/data_objects/static_output.py
+++ b/yt/data_objects/static_output.py
@@ -574,6 +574,8 @@
self.unit_registry.add("code_magnetic", 1.0, dimensions.magnetic_field)
self.unit_registry.add("code_temperature", 1.0, dimensions.temperature)
self.unit_registry.add("code_velocity", 1.0, dimensions.velocity)
+ self.unit_registry.add("code_metallicity", 1.0,
+ dimensions.dimensionless)
def set_units(self):
"""
diff -r a90de64aa23f6e966938c6fd81b993ecc6934b82 -r e7b776b1b537e201aedef250e6f371d21f10bb87 yt/frontends/sph/fields.py
--- a/yt/frontends/sph/fields.py
+++ b/yt/frontends/sph/fields.py
@@ -60,8 +60,7 @@
("MaximumTemperature", ("K", [], None)),
("Temperature", ("K", ["temperature"], None)),
("Epsilon", ("code_length", [], None)),
- # This should be 'code_metallicity'
- ("Metals", ("", ["metallicity"], None)),
+ ("Metals", ("code_metallicity", ["metallicity"], None)),
("Phi", ("code_length", [], None)),
("FormationTime", ("code_time", ["creation_time"], None)),
)
https://bitbucket.org/yt_analysis/yt/commits/c045c03451c8/
Changeset: c045c03451c8
Branch: yt-3.0
User: MatthewTurk
Date: 2014-04-18 19:04:49
Summary: Attempt to simplify logic for comoving/period in tipsy.
Affected #: 1 file
diff -r e7b776b1b537e201aedef250e6f371d21f10bb87 -r c045c03451c854155b2fc9b48f420cf45f607a66 yt/frontends/sph/data_structures.py
--- a/yt/frontends/sph/data_structures.py
+++ b/yt/frontends/sph/data_structures.py
@@ -471,16 +471,20 @@
self.current_time = hvals["time"]
nz = 1 << self.over_refine_factor
self.domain_dimensions = np.ones(3, "int32") * nz
- if self.parameters.get('bPeriodic', True):
- self.periodicity = (True, True, True)
+ periodic = self.parameters.get('bPeriodic', True)
+ period = self.parameters.get('dPeriod', None)
+ comoving = self.parameters.get('bComove', False)
+ self.periodicity = (periodic, periodic, periodic)
+ if comoving and period is None:
+ period = 1.0
+ if periodic and period is not None:
# If we are periodic, that sets our domain width to either 1 or dPeriod.
- self.domain_left_edge = np.zeros(3, "float64") - 0.5*self.parameters.get('dPeriod', 1)
- self.domain_right_edge = np.zeros(3, "float64") + 0.5*self.parameters.get('dPeriod', 1)
+ self.domain_left_edge = np.zeros(3, "float64") - 0.5*period
+ self.domain_right_edge = np.zeros(3, "float64") + 0.5*period
else:
- self.periodicity = (False, False, False)
self.domain_left_edge = None
self.domain_right_edge = None
- if self.parameters.get('bComove', False):
+ if comoving:
cosm = self._cosmology_parameters or {}
self.scale_factor = hvals["time"]#In comoving simulations, time stores the scale factor a
self.cosmological_simulation = 1
https://bitbucket.org/yt_analysis/yt/commits/19845b557f86/
Changeset: 19845b557f86
Branch: yt-3.0
User: MatthewTurk
Date: 2014-04-24 02:18:00
Summary: Merged in MatthewTurk/yt/yt-3.0 (pull request #830)
Fixing unitary for datasets without DLE/DRE. Modify Tipsy domain.
Affected #: 4 files
diff -r 517830c2e778140eec909381113eda714de435f4 -r 19845b557f86e2254f6a59cfbcf3641c062d9317 yt/data_objects/static_output.py
--- a/yt/data_objects/static_output.py
+++ b/yt/data_objects/static_output.py
@@ -574,6 +574,8 @@
self.unit_registry.add("code_magnetic", 1.0, dimensions.magnetic_field)
self.unit_registry.add("code_temperature", 1.0, dimensions.temperature)
self.unit_registry.add("code_velocity", 1.0, dimensions.velocity)
+ self.unit_registry.add("code_metallicity", 1.0,
+ dimensions.dimensionless)
def set_units(self):
"""
@@ -628,12 +630,10 @@
self.length_unit / self.time_unit)
self.unit_registry.modify("code_velocity", vel_unit)
# domain_width does not yet exist
- if self.domain_left_edge is None or self.domain_right_edge is None:
- DW = np.zeros(3)
- else:
+ if None not in (self.domain_left_edge, self.domain_right_edge):
DW = self.arr(self.domain_right_edge - self.domain_left_edge, "code_length")
- self.unit_registry.add("unitary", float(DW.max() * DW.units.cgs_value),
- DW.units.dimensions)
+ self.unit_registry.add("unitary", float(DW.max() * DW.units.cgs_value),
+ DW.units.dimensions)
_arr = None
@property
diff -r 517830c2e778140eec909381113eda714de435f4 -r 19845b557f86e2254f6a59cfbcf3641c062d9317 yt/frontends/sph/data_structures.py
--- a/yt/frontends/sph/data_structures.py
+++ b/yt/frontends/sph/data_structures.py
@@ -471,16 +471,20 @@
self.current_time = hvals["time"]
nz = 1 << self.over_refine_factor
self.domain_dimensions = np.ones(3, "int32") * nz
- if self.parameters.get('bPeriodic', True):
- self.periodicity = (True, True, True)
+ periodic = self.parameters.get('bPeriodic', True)
+ period = self.parameters.get('dPeriod', None)
+ comoving = self.parameters.get('bComove', False)
+ self.periodicity = (periodic, periodic, periodic)
+ if comoving and period is None:
+ period = 1.0
+ if periodic and period is not None:
# If we are periodic, that sets our domain width to either 1 or dPeriod.
- self.domain_left_edge = np.zeros(3, "float64") - 0.5*self.parameters.get('dPeriod', 1)
- self.domain_right_edge = np.zeros(3, "float64") + 0.5*self.parameters.get('dPeriod', 1)
+ self.domain_left_edge = np.zeros(3, "float64") - 0.5*period
+ self.domain_right_edge = np.zeros(3, "float64") + 0.5*period
else:
- self.periodicity = (False, False, False)
self.domain_left_edge = None
self.domain_right_edge = None
- if self.parameters.get('bComove', False):
+ if comoving:
cosm = self._cosmology_parameters or {}
self.scale_factor = hvals["time"]#In comoving simulations, time stores the scale factor a
self.cosmological_simulation = 1
diff -r 517830c2e778140eec909381113eda714de435f4 -r 19845b557f86e2254f6a59cfbcf3641c062d9317 yt/frontends/sph/io.py
--- a/yt/frontends/sph/io.py
+++ b/yt/frontends/sph/io.py
@@ -557,6 +557,8 @@
pf.domain_left_edge = 0
pf.domain_right_edge = 0
f.seek(pf._header_offset)
+ mi = np.array([1e30, 1e30, 1e30], dtype="float64")
+ ma = -np.array([1e30, 1e30, 1e30], dtype="float64")
for iptype, ptype in enumerate(self._ptypes):
# We'll just add the individual types separately
count = data_file.total_particles[ptype]
@@ -566,19 +568,23 @@
c = min(CHUNKSIZE, stop - ind)
pp = np.fromfile(f, dtype = self._pdtypes[ptype],
count = c)
- for ax in 'xyz':
- mi = pp["Coordinates"][ax].min()
- ma = pp["Coordinates"][ax].max()
- outlier = self.arr(np.max(np.abs((mi,ma))), 'code_length')
- if outlier > pf.domain_right_edge or -outlier < pf.domain_left_edge:
- # scale these up so the domain is slightly
- # larger than the most distant particle position
- pf.domain_left_edge = -1.01*outlier
- pf.domain_right_edge = 1.01*outlier
+ eps = np.finfo(pp["Coordinates"]["x"].dtype).eps
+ np.minimum(mi, [pp["Coordinates"]["x"].min(),
+ pp["Coordinates"]["y"].min(),
+ pp["Coordinates"]["z"].min()], mi)
+ np.maximum(ma, [pp["Coordinates"]["x"].max(),
+ pp["Coordinates"]["y"].max(),
+ pp["Coordinates"]["z"].max()], ma)
ind += c
- pf.domain_left_edge = np.ones(3)*pf.domain_left_edge
- pf.domain_right_edge = np.ones(3)*pf.domain_right_edge
- pf.domain_width = np.ones(3)*2*pf.domain_right_edge
+ # We extend by 1%.
+ DW = ma - mi
+ mi -= 0.01 * DW
+ ma += 0.01 * DW
+ pf.domain_left_edge = pf.arr(mi, 'code_length')
+ pf.domain_right_edge = pf.arr(ma, 'code_length')
+ pf.domain_width = DW = pf.domain_right_edge - pf.domain_left_edge
+ pf.unit_registry.add("unitary", float(DW.max() * DW.units.cgs_value),
+ DW.units.dimensions)
def _initialize_index(self, data_file, regions):
pf = data_file.pf
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