[yt-svn] commit/yt: MatthewTurk: Merged in MatthewTurk/yt/yt-3.0 (pull request #830)
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Wed Apr 23 17:18:08 PDT 2014
1 new commit in yt:
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