[yt-svn] commit/yt-3.0: 52 new changesets
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Thu Mar 14 14:37:36 PDT 2013
52 new commits in yt-3.0:
https://bitbucket.org/yt_analysis/yt-3.0/commits/f77aff9bb79e/
changeset: f77aff9bb79e
branch: yt-3.0
user: sleitner
date: 2013-02-09 00:06:13
summary: removing prints from data_containers
affected #: 1 file
diff -r 45d0c1d30e0a2291faa0f391469905c0b4b92c86 -r f77aff9bb79e677e96439b42baca865c970b6c69 yt/data_objects/data_containers.py
--- a/yt/data_objects/data_containers.py
+++ b/yt/data_objects/data_containers.py
@@ -461,22 +461,15 @@
self.hierarchy._identify_base_chunk(self)
if fields is None: return
fields = self._determine_fields(fields)
- print 'snl we are in data_containers.py'
# Now we collect all our fields
fields_to_get = [f for f in fields if f not in self.field_data]
- print 'snl we are in data_containers.py 1a'
if len(fields_to_get) == 0:
- print 'snl we are in data_containers.py return'
return
elif self._locked == True:
- print 'snl we are in data_containers.py raise'
raise GenerationInProgress(fields)
- print 'snl we are in data_containers.py 2'
# At this point, we want to figure out *all* our dependencies.
- print 'kln identifying dependencies'
fields_to_get = self._identify_dependencies(fields_to_get)
# We now split up into readers for the types of fields
- print 'snl we are in data_containers.py splitting fields'
fluids, particles = [], []
for ftype, fname in fields_to_get:
finfo = self.pf._get_field_info(ftype, fname)
@@ -486,7 +479,6 @@
fluids.append((ftype, fname))
print 'fluid fields: ', fluids
print 'particle fields: ', particles
- print 'snl we are in data_containers.py before reading fluids'
# The _read method will figure out which fields it needs to get from
# disk, and return a dict of those fields along with the fields that
# need to be generated.
@@ -497,7 +489,6 @@
read_particles, gen_particles = self.hierarchy._read_particle_fields(
particles, self, self._current_chunk)
self.field_data.update(read_particles)
- print 'snl we are in data_containers.py after reading particles'
fields_to_generate = gen_fluids + gen_particles
self._generate_fields(fields_to_generate)
https://bitbucket.org/yt_analysis/yt-3.0/commits/2f8643b5862e/
changeset: 2f8643b5862e
branch: yt-3.0
user: sleitner
date: 2013-02-09 00:06:56
summary: adding particle index for data files and fixing units for particles
affected #: 4 files
diff -r f77aff9bb79e677e96439b42baca865c970b6c69 -r 2f8643b5862e22c46f21df913d590449d003542b yt/frontends/artio/_artio_caller.pyx
--- a/yt/frontends/artio/_artio_caller.pyx
+++ b/yt/frontends/artio/_artio_caller.pyx
@@ -441,11 +441,11 @@
else :
labels_secondary[ispec] = []
- #the only static label for now is NBODY mass
if labels_species[ispec] == 'N-BODY' :
- labels_static[ispec] = "particle_species_mass"
+ labels_static[ispec] = ["particle_species_mass"]
else :
labels_static[ispec] = []
+ labels_static[ispec].append("particle_index")
for i, f in enumerate(fields):
if f in labels_primary[ispec]:
@@ -455,9 +455,14 @@
howtoread[ispec,i]= 'secondary'
fieldtoindex[ispec][i] = labels_secondary[ispec].index(f)
elif f in labels_static[ispec]:
- howtoread[ispec,i]= 'static'
- fieldtoindex[ispec][i] = countnbody
- countnbody += 1 #particle_mass happens once per N-BODY species
+ #each new N-BODY spec adds one to the static mass location
+ if labels_species[ispec] == 'N-BODY' and f == 'particle_species_mass' :
+ howtoread[ispec,i]= 'staticNBODY'
+ fieldtoindex[ispec][i] = countnbody
+ countnbody += 1 #particle_mass happens once per N-BODY species
+ print 'count the nbody species',countnbody
+ else :
+ howtoread[ispec,i]= 'staticINDEX'
else :
howtoread[ispec,i]= 'empty'
fieldtoindex[ispec][i] = 9999999
@@ -559,8 +564,10 @@
fpoint[i][ipall] = primary_variables[aspec][fieldtoindex[ispec][i]]
elif howtoread[ispec,i] == 'secondary' :
fpoint[i][ipall] = secondary_variables[aspec][fieldtoindex[ispec][i]]
- elif howtoread[ispec,i] == 'static' :
- fpoint[i][ipall] = self.parameters[labels_static[ispec]][fieldtoindex[ispec][i]]
+ elif howtoread[ispec,i] == 'staticNBODY' :
+ fpoint[i][ipall] = self.parameters["particle_species_mass"][fieldtoindex[ispec][i]]
+ elif howtoread[ispec,i] == 'staticINDEX' :
+ fpoint[i][ipall] = ipall
elif howtoread[ispec,i] == 'empty' :
fpoint[i][ipall] = 0
else :
diff -r f77aff9bb79e677e96439b42baca865c970b6c69 -r 2f8643b5862e22c46f21df913d590449d003542b yt/frontends/artio/data_structures.py
--- a/yt/frontends/artio/data_structures.py
+++ b/yt/frontends/artio/data_structures.py
@@ -322,15 +322,15 @@
self.conversion_factors["Temperature"] = self.parameters['unit_T']*constants.wmu*(constants.gamma-1) #*cell_gas_internal_energy(cell)/cell_gas_density(cell);
print 'note temperature conversion is currently using fixed gamma not variable'
- for particle_field in particle_fields:
- self.conversion_factors[particle_field] = 1.0
+# for particle_field in particle_fields:
+# self.conversion_factors[particle_field] = 1.0
for ax in 'xyz':
self.conversion_factors["particle_velocity_%s"%ax] = self.parameters['unit_v']
for unit in sec_conversion.keys():
self.time_units[unit] = 1.0 / sec_conversion[unit]
self.conversion_factors['particle_mass'] = self.parameters['unit_m']
- self.conversion_factors['particle_creation_time'] = 31556926.0
- self.conversion_factors['Msun'] = 5.027e-34
+ self.conversion_factors['particle_creation_time'] = self.parameters['unit_t']
+ self.conversion_factors['particle_mass_msun'] = self.parameters['unit_m']/constants.Msun
def _parse_parameter_file(self):
# hard-coded -- not provided by headers
diff -r f77aff9bb79e677e96439b42baca865c970b6c69 -r 2f8643b5862e22c46f21df913d590449d003542b yt/frontends/artio/definitions.py
--- a/yt/frontends/artio/definitions.py
+++ b/yt/frontends/artio/definitions.py
@@ -42,7 +42,7 @@
particle_fields= [
# 'particle_age',
-# 'particle_index',
+ 'particle_index',
'particle_mass',
'particle_mass_initial',
'particle_creation_time',
@@ -87,7 +87,8 @@
'particle_velocity_x': 'VELOCITY_X',
'particle_velocity_y': 'VELOCITY_Y',
'particle_velocity_z': 'VELOCITY_Z',
- 'particle_mass': 'particle_species_mass'
+ 'particle_mass': 'particle_species_mass',
+ 'particle_index': 'particle_index'
}
class ARTIOconstants():
diff -r f77aff9bb79e677e96439b42baca865c970b6c69 -r 2f8643b5862e22c46f21df913d590449d003542b yt/frontends/artio/fields.py
--- a/yt/frontends/artio/fields.py
+++ b/yt/frontends/artio/fields.py
@@ -151,17 +151,11 @@
####### Derived fields
import sys
def _temperature(field, data):
- tr = data["GasEnergy"]/data.pf.conversion_factors["GasEnergy"]*data.pf.conversion_factors["Density"]/data["Density"] #*(data["Gamma"]-1)*wmu
- #ghost cells have zero density?
+ tr = data["GasEnergy"]/data["Density"] #Gamma fixed not field *(data["Gamma"]-1)*wmu
tr[np.isnan(tr)] = 0.0
- #dd[di] = -1.0
- #if data.id==460:
- #tr[di] = -1.0 #replace the zero-density points with zero temp
- #print tr.min()
- #assert np.all(np.isfinite(tr))
return tr
def _converttemperature(data):
- x = data.pf.conversion_factors["Temperature"]
+ x = data.pf.conversion_factors["Temperature"]*data.pf.conversion_factors["Density"]/data.pf.conversion_factors["GasEnergy"]
return x
add_field("Temperature", function=_temperature, units = r"\mathrm{K}",take_log=True)
ARTIOFieldInfo["Temperature"]._units = r"\mathrm{K}"
@@ -225,8 +219,8 @@
pf = "particle_velocity_%s" % ax
add_artio_field(pf, function=NullFunc,
particle_type=True)
-
add_artio_field("particle_mass", function=NullFunc, particle_type=True)
+add_artio_field("particle_index", function=NullFunc, particle_type=True)
for ax in 'xyz':
pf = "particle_position_%s" % ax
@@ -235,14 +229,19 @@
def ParticleMass(field,data):
return data['particle_mass']
-add_field("ParticleMass",function=ParticleMass,units=r"\rm{g}",particle_type=True)
-
-
-#Derived particle fields
+def _convertParticleMass(field,data):
+ return data.convert('particle_mass')
+add_field("ParticleMass",
+ function=ParticleMass,
+ convert_function=_convertParticleMass,
+ units=r"\rm{g}",
+ particle_type=True)
def ParticleMassMsun(field,data):
- return data['particle_mass']/1.989e33 #*data.pf['Msun']
-add_field("ParticleMassMsun",function=ParticleMassMsun,units=r"\rm{g}",particle_type=True)
+ return data['particle_mass']*data.pf.conversion_factors['particle_mass_msun']
+add_field("ParticleMassMsun",
+ function=ParticleMassMsun,
+ units=r"\rm{M\odot}",particle_type=True)
def _creation_time(field,data):
pa = data["particle_age"]
https://bitbucket.org/yt_analysis/yt-3.0/commits/887d13d0c418/
changeset: 887d13d0c418
branch: yt-3.0
user: sleitner
date: 2013-02-09 00:33:50
summary: halo_finder changes: manually pulled in changes to COM calculation and temporarily using "region" until periodicity changes are implemented.
affected #: 1 file
diff -r 2f8643b5862e22c46f21df913d590449d003542b -r 887d13d0c418b9c13c24bcad49385f122686a320 yt/analysis_modules/halo_finding/halo_objects.py
--- a/yt/analysis_modules/halo_finding/halo_objects.py
+++ b/yt/analysis_modules/halo_finding/halo_objects.py
@@ -129,7 +129,7 @@
# This matches them up.
self._particle_mask = np.in1d(sp_pid, pid)
return self._particle_mask
-
+
def center_of_mass(self):
r"""Calculate and return the center of mass.
@@ -142,18 +142,30 @@
if self.CoM is not None:
return self.CoM
pm = self["ParticleMassMsun"]
- cx = self["particle_position_x"]
- cy = self["particle_position_y"]
- cz = self["particle_position_z"]
- if isinstance(self, FOFHalo):
- c_vec = np.array([cx[0], cy[0], cz[0]]) - self.pf.domain_center
- else:
- c_vec = self.maximum_density_location() - self.pf.domain_center
- cx = (cx - c_vec[0])
- cy = (cy - c_vec[1])
- cz = (cz - c_vec[2])
- com = np.array([v - np.floor(v) for v in [cx, cy, cz]])
- return (com * pm).sum(axis=1) / pm.sum() + c_vec
+ c = {}
+ c[0] = self["particle_position_x"]
+ c[1] = self["particle_position_y"]
+ c[2] = self["particle_position_z"]
+ c_vec = np.zeros(3)
+ com = []
+ for i in range(3):
+ # A halo is likely periodic around a boundary if the distance
+ # between the max and min particle
+ # positions are larger than half the box.
+ # So skip the rest if the converse is true.
+ # Note we might make a change here when periodicity-handling is
+ # fully implemented.
+ if (c[i].max() - c[i].min()) < (self.pf.domain_width[i] / 2.):
+ com.append(c[i])
+ continue
+ # Now we want to flip around only those close to the left boundary.
+ d_left = c[i] - self.pf.domain_left_edge[i]
+ sel = (d_left <= (self.pf.domain_width[i]/2))
+ c[i][sel] += self.pf.domain_width[i]
+ com.append(c[i])
+ com = np.array(com)
+ c = (com * pm).sum(axis=1) / pm.sum()
+ return c%self.pf.domain_width
def maximum_density(self):
r"""Return the HOP-identified maximum density. Not applicable to
@@ -2197,7 +2209,8 @@
# If this isn't parallel, define the region as an AMRRegionStrict so
# particle IO works.
if self.comm.size == 1:
- self._data_source = self.hierarchy.periodic_region_strict([0.5] * 3,
+ #snl temporary fix until periodicity comes along:
+ self._data_source = self.hierarchy.region([0.5] * 3,
LE, RE)
# get the average spacing between particles for this region
# The except is for the serial case where the full box is what we want.
https://bitbucket.org/yt_analysis/yt-3.0/commits/d656f82fca66/
changeset: d656f82fca66
branch: yt-3.0
user: sleitner
date: 2013-03-02 23:10:44
summary: improving star particle handling but hitting seg faults during particle fill/masking
affected #: 8 files
diff -r 887d13d0c418b9c13c24bcad49385f122686a320 -r d656f82fca66e36a2662e003565b537fe78088f1 yt/analysis_modules/halo_profiler/multi_halo_profiler.py
--- a/yt/analysis_modules/halo_profiler/multi_halo_profiler.py
+++ b/yt/analysis_modules/halo_profiler/multi_halo_profiler.py
@@ -522,6 +522,7 @@
profiledHalo = self._get_halo_profile(halo, profile_filename,
virial_filter=virial_filter)
+ print 'made it here!!!!!!!!!!!!!!!!!!!!!!!!!!!', filter_result, len(self.profile_fields), profiledHalo
if profiledHalo is None:
continue
@@ -535,10 +536,14 @@
if filterQuantities is not None:
haloQuantities.update(filterQuantities)
+ print 'made it here!!!!!!!!!!!!!!!!!!!!!!!!!!!', filter_result, len(self.profile_fields)
if filter_result:
for quantity in self.filter_quantities:
if halo.has_key(quantity): haloQuantities[quantity] = halo[quantity]
+ print quantity
+ print profile_filename
+ print 'made it here!!!!!!!!!!!!!!!!!!!!!!!!!!!'
only_on_root(self.filtered_halos.append, haloQuantities)
# If we've gotten this far down, this halo is good and we want
@@ -574,20 +579,24 @@
# Make profile if necessary.
newProfile = profile is None
if newProfile:
+ print 'here1!!!!!!!!!'
r_min = 2 * self.pf.h.get_smallest_dx() * self.pf['mpc']
if (halo['r_max'] / r_min < PROFILE_RADIUS_THRESHOLD):
mylog.error("Skipping halo with r_max / r_min = %f." % (halo['r_max']/r_min))
return None
+ print 'here2!!!!!!!!!'
# get a sphere object to profile
sphere = self._get_halo_sphere(halo)
if sphere is None: return None
+ print 'here3!!!!!!!!!'
try:
profile = BinnedProfile1D(sphere, self.n_profile_bins, "RadiusMpc",
r_min, halo['r_max'],
log_space=True, end_collect=True)
+
except EmptyProfileData:
mylog.error("Caught EmptyProfileData exception, returning None for this halo.")
return None
@@ -603,6 +612,7 @@
if virial_filter:
self._add_actual_overdensity(profile)
+ print 'here4!!!!!!!!!'
if newProfile:
mylog.info("Writing halo %d" % halo['id'])
if os.path.exists(filename): os.remove(filename)
@@ -633,6 +643,9 @@
"""
sphere = self.pf.h.sphere(halo['center'], halo['r_max']/self.pf.units['mpc'])
+ if sphere._grids == None:
+ sphere = self.pf.h.sphere(halo['center'], halo['r_max']/self.pf.units['mpc'])
+ return sphere
if len(sphere._grids) == 0: return None
new_sphere = False
@@ -760,6 +773,7 @@
proj_level = self.pf.h.max_level
else:
proj_level = int(self.project_at_level)
+ print self.pf.parameters.keys() # ['DomainLeftEdge'][w]
proj_dx = self.pf.units[self.projection_width_units] / \
self.pf.parameters['TopGridDimensions'][0] / \
(self.pf.parameters['RefineBy']**proj_level)
@@ -794,12 +808,13 @@
(rightEdge[w] > self.pf.parameters['DomainRightEdge'][w])):
need_per = True
break
-
+
+ need_per = False
if need_per:
region = self.pf.h.periodic_region(halo['center'], leftEdge, rightEdge)
else:
region = self.pf.h.region(halo['center'], leftEdge, rightEdge)
-
+
# Make projections.
if not isinstance(axes, types.ListType): axes = list([axes])
for w in axes:
@@ -813,8 +828,8 @@
for hp in self.projection_fields:
projections.append(self.pf.h.proj(hp['field'], w,
weight_field=hp['weight_field'],
- source=region, center=halo['center'],
- serialize=False))
+ center=halo['center']))
+
# Set x and y limits, shift image if it overlaps domain boundary.
if need_per:
@@ -1132,7 +1147,8 @@
hop_results.write_out(hop_file)
del hop_results
- self.pf.h.clear_all_data()
+ print 'snl in multi_halo_profiler.py: no hierarchy method to clear oct data currently' #snl cannot clear_all_data
+ #self.pf.h.clear_all_data()
@parallel_root_only
def _write_filtered_halo_list(self, filename, format="%s"):
diff -r 887d13d0c418b9c13c24bcad49385f122686a320 -r d656f82fca66e36a2662e003565b537fe78088f1 yt/analysis_modules/star_analysis/sfr_spectrum.py
--- a/yt/analysis_modules/star_analysis/sfr_spectrum.py
+++ b/yt/analysis_modules/star_analysis/sfr_spectrum.py
@@ -31,6 +31,7 @@
from yt.utilities.cosmology import \
Cosmology, \
EnzoCosmology
+import sys
YEAR = 3.155693e7 # sec / year
LIGHT = 2.997925e10 # cm / s
@@ -96,8 +97,10 @@
self._pf.current_redshift) # seconds
# Build the distribution.
self.build_dist()
+ sys.exit(1)
# Attach some convenience arrays.
self.attach_arrays()
+ print 'snl $################## sfr_spectrum#'
def build_dist(self):
"""
@@ -111,6 +114,7 @@
elif self.mode == 'provided':
ct_stars = self.star_creation_time
mass_stars = self.star_mass
+ print 'snl sfr_spectrum', ct_stars
# Find the oldest stars in units of code time.
tmin= min(ct_stars)
# Multiply the end to prevent numerical issues.
@@ -155,6 +159,7 @@
for i, time in enumerate((self.time_bins[1:] + self.time_bins[:-1])/2.):
self.time.append(time * tc / YEAR)
self.lookback_time.append((self.time_now - time * tc)/YEAR)
+ print 'snl timtime', time, tc
self.redshift.append(self.cosm.ComputeRedshiftFromTime(time * tc))
self.Msol_yr.append(self.mass_bins[i] / \
(self.time_bins_dt[i] * tc / YEAR))
diff -r 887d13d0c418b9c13c24bcad49385f122686a320 -r d656f82fca66e36a2662e003565b537fe78088f1 yt/frontends/artio/_artio_caller.pyx
--- a/yt/frontends/artio/_artio_caller.pyx
+++ b/yt/frontends/artio/_artio_caller.pyx
@@ -102,6 +102,7 @@
print 'failure with status', status, 'in function',fname,'from caller', callername, nline
sys.exit(1)
+
cdef class artio_fileset :
cdef public object parameters
cdef ARTIOOctreeContainer oct_handler
@@ -372,27 +373,15 @@
if len(accessed_species) != 1 :
print 'multiple particle species access needs serious thought'
sys.exit(1)
-
+
+ print 'fields in var_fill:', fields
# setup the range for all reads:
status = artio_particle_cache_sfc_range( self.particle_handle,
self.sfc_min, self.sfc_max )
check_artio_status(status)
- # mask ####################
- # mask[spec][particle] fields are irrelevant for masking
- # -- masking only cares abount position
+ # particle species ##########
num_acc_species = len(accessed_species)
- mask = <int**>malloc(sizeof(int*)*num_acc_species)
- if not mask :
- raise MemoryError
- for aspec in range(num_acc_species) :
- mask[aspec] = <int*>malloc(
- self.parameters['particle_species_num'][aspec]
- * sizeof(int))
- if not mask[aspec] :
- raise MemoryError
-
- # particle species ##########
num_species = self.parameters['num_particle_species'][0]
labels_species = self.parameters['particle_species_labels']
@@ -418,6 +407,21 @@
print iacctoispec[i]
print 'some accessed species indices point to the same ispec; exitting'
sys.exit(1)
+
+ # mask ####################
+ # mask[spec][particle] fields are irrelevant for masking
+ # -- masking only cares abount position
+ mask = <int**>malloc(sizeof(int*)*num_acc_species)
+ if not mask :
+ raise MemoryError
+ for aspec in range(num_acc_species) :
+ ispec=iacctoispec[aspec]
+ mask[aspec] = <int*>malloc(
+ self.parameters['particle_species_num'][ispec]
+ * sizeof(int))
+ if not mask[aspec] :
+ raise MemoryError
+
# particle field labels and order ##########
labels_primary={}
@@ -442,7 +446,7 @@
labels_secondary[ispec] = []
if labels_species[ispec] == 'N-BODY' :
- labels_static[ispec] = ["particle_species_mass"]
+ labels_static[ispec] = ["MASS"]
else :
labels_static[ispec] = []
labels_static[ispec].append("particle_index")
@@ -454,18 +458,21 @@
elif f in labels_secondary[ispec]:
howtoread[ispec,i]= 'secondary'
fieldtoindex[ispec][i] = labels_secondary[ispec].index(f)
+
elif f in labels_static[ispec]:
#each new N-BODY spec adds one to the static mass location
- if labels_species[ispec] == 'N-BODY' and f == 'particle_species_mass' :
+ if labels_species[ispec] == 'N-BODY' and f == 'MASS' :
howtoread[ispec,i]= 'staticNBODY'
fieldtoindex[ispec][i] = countnbody
- countnbody += 1 #particle_mass happens once per N-BODY species
+ countnbody += 1 #MASS happens once per N-BODY species
print 'count the nbody species',countnbody
else :
howtoread[ispec,i]= 'staticINDEX'
else :
howtoread[ispec,i]= 'empty'
fieldtoindex[ispec][i] = 9999999
+
+ print 'ispec', ispec,'field',f, 'howtoread', howtoread[ispec,i]
#fix pos_index
pos_index[ispec] = <int*>malloc(3*sizeof(int))
pos_index[ispec][0] = labels_primary[ispec].index('POSITION_X')
@@ -505,24 +512,30 @@
status = artio_particle_read_species_begin(
self.particle_handle, ispec)
check_artio_status(status)
+# if num_particles_per_species[ispec] >0 :
+# print "masking root cell of np=",num_particles_per_species[ispec]
+
for particle in range( num_particles_per_species[ispec] ) :
- # print 'snl in caller: aspec count_mask count',aspec,ispec, count_mask[aspec], ipspec[aspec]
+# print 'snl in caller: aspec count_mask count',aspec,ispec, count_mask[aspec], ipspec[aspec] #, sizeof(primary_variables[aspec]), sizeof(secondary_variables[aspec])
status = artio_particle_read_particle(
self.particle_handle,
pid, subspecies, primary_variables[aspec],
secondary_variables[aspec])
check_artio_status(status)
+# print 'snl in caller2: aspec count_mask count',aspec,ispec, count_mask[aspec], ipspec[aspec]
pos[0] = primary_variables[aspec][pos_index[aspec][0]]
pos[1] = primary_variables[aspec][pos_index[aspec][1]]
pos[2] = primary_variables[aspec][pos_index[aspec][2]]
mask[aspec][ipspec[aspec]] = selector.select_cell(pos, dds, eterm)
count_mask[aspec] += mask[aspec][count_mask[aspec]]
ipspec[aspec] += 1
+# print 'ipspec',ipspec[aspec], pos[1], pos[0], pos[2], \
+# secondary_variables[aspec][0]
status = artio_particle_read_species_end( self.particle_handle )
check_artio_status(status)
status = artio_particle_read_root_cell_end( self.particle_handle )
check_artio_status(status)
- print 'finished masking'
+ print 'done masking'
##########################################################
cdef np.float32_t **fpoint
@@ -545,24 +558,26 @@
status = artio_particle_read_root_cell_begin( self.particle_handle, sfc,
num_particles_per_species )
check_artio_status(status)
-
+
for aspec in range(num_acc_species) :
ispec = iacctoispec[aspec]
status = artio_particle_read_species_begin(self.particle_handle, ispec);
check_artio_status(status)
for particle in range( num_particles_per_species[ispec] ) :
-
+
status = artio_particle_read_particle(self.particle_handle,
pid, subspecies, primary_variables[aspec],
secondary_variables[aspec])
check_artio_status(status)
-
- ########## snl this is not right because of primary overflow
+
if mask[aspec][ipspec[aspec]] == 1 :
for i in range(nf):
+
+ if not (howtoread[ispec,i] == 'empty') :
+ assert(fieldtoindex[ispec][i]<100)
if howtoread[ispec,i] == 'primary' :
fpoint[i][ipall] = primary_variables[aspec][fieldtoindex[ispec][i]]
- elif howtoread[ispec,i] == 'secondary' :
+ elif howtoread[ispec,i] == 'secondary' :
fpoint[i][ipall] = secondary_variables[aspec][fieldtoindex[ispec][i]]
elif howtoread[ispec,i] == 'staticNBODY' :
fpoint[i][ipall] = self.parameters["particle_species_mass"][fieldtoindex[ispec][i]]
@@ -576,25 +591,25 @@
sys.exit(1)
# print 'reading into fpoint', ipall,fpoint[i][ipall], fields[i]
ipall += 1
- ########## snl this is not right because of primary overflow
ipspec[aspec] += 1
-
+
status = artio_particle_read_species_end( self.particle_handle )
check_artio_status(status)
-
+
status = artio_particle_read_root_cell_end( self.particle_handle )
check_artio_status(status)
+
free(subspecies)
free(pid)
- free(mask)
- free(pos_index)
free(num_particles_per_species)
free(iacctoispec)
+ free(mask)
+ free(fieldtoindex)
+ free(pos_index)
free(primary_variables)
free(secondary_variables)
free(fpoint)
- free(fieldtoindex)
print 'done filling particle variables', ipall
diff -r 887d13d0c418b9c13c24bcad49385f122686a320 -r d656f82fca66e36a2662e003565b537fe78088f1 yt/frontends/artio/artio_headers/artio_particle.c
--- a/yt/frontends/artio/artio_headers/artio_particle.c
+++ b/yt/frontends/artio/artio_headers/artio_particle.c
@@ -759,11 +759,10 @@
double * primary_variables, float * secondary_variables) {
int ret;
artio_particle_file *phandle;
-
if ( handle == NULL ) {
return ARTIO_ERR_INVALID_HANDLE;
}
-
+
if (handle->open_mode != ARTIO_FILESET_READ ||
!(handle->open_type & ARTIO_OPEN_PARTICLES) ||
handle->particle == NULL ) {
diff -r 887d13d0c418b9c13c24bcad49385f122686a320 -r d656f82fca66e36a2662e003565b537fe78088f1 yt/frontends/artio/data_structures.py
--- a/yt/frontends/artio/data_structures.py
+++ b/yt/frontends/artio/data_structures.py
@@ -34,6 +34,7 @@
from yt.utilities.definitions import \
mpc_conversion, sec_conversion
from .fields import ARTIOFieldInfo, KnownARTIOFields
+from .definitions import codetime_fields
#######
###############################
@@ -63,6 +64,8 @@
from yt.geometry.oct_container import \
ARTIOOctreeContainer
+from io import b2t
+
class ARTIODomainFile(object):
def __init__(self, pf, domain_id):
@@ -119,7 +122,19 @@
ncum_masked_level[0] = 0
self.ncum_masked_level = np.add.accumulate(ncum_masked_level)
print 'cumulative masked level counts',self.ncum_masked_level
+
+ nsampleb2t=20
+ samplemax = -np.log10(10) #tl=-10
+ samplemin = -np.log10(0.0001) #tl=-0.0001)
+ print 'interpolating time grid accurate to <10% after 0.5Gyr for 20 n=',nsampleb2t
+ self.xb2t = np.linspace(-1,4,nsampleb2t) # must be increasing for interpolation
+ self.yb2t = b2t(-10**-self.xb2t,n=nsampleb2t)*1e9*24*3600
+ def interpb2t(self, x):
+ xp = -np.log10(-x)
+ tr = np.interp(xp,self.xb2t, self.yb2t)
+ return tr
+
def icoords(self, dobj):
return self.oct_handler.icoords(self.domain.domain_id, self.mask,
self.masked_cell_count,
@@ -187,6 +202,14 @@
assert ( art_fields != None )
self.domain._handle.particle_var_fill(accessed_species, masked_particles, selector, art_fields )
+ #convert time variables from code units
+ for fieldtype, fieldname in fields :
+ if fieldname in codetime_fields :
+ print 'convert time variables from code units'
+ masked_particles[yt_to_art[fieldname]] = \
+ self.interpb2t(masked_particles[yt_to_art[fieldname]])
+ print 'convert time variables from code units'
+
# dhr - make sure these are shallow copies
tr = {}
for fieldtype, fieldname in fields :
@@ -331,6 +354,13 @@
self.conversion_factors['particle_mass'] = self.parameters['unit_m']
self.conversion_factors['particle_creation_time'] = self.parameters['unit_t']
self.conversion_factors['particle_mass_msun'] = self.parameters['unit_m']/constants.Msun
+
+ #for mult_halo_profiler.py:
+ self.parameters['TopGridDimensions'] = [128,128,128]
+ self.parameters['RefineBy'] = 2
+ self.parameters['DomainLeftEdge'] = [0,0,0]
+ self.parameters['DomainRightEdge'] = [128,128,128]
+ self.parameters['TopGridRank'] = 3 #number of dimensions
def _parse_parameter_file(self):
# hard-coded -- not provided by headers
@@ -364,6 +394,7 @@
self.current_redshift = 1.0/self._handle.parameters["abox"][0] - 1.0
self.parameters["initial_redshift"] = 1.0/self._handle.parameters["auni_init"][0] - 1.0
+ self.parameters["CosmologyInitialRedshift"] = self.parameters["initial_redshift"] #for sfr
else :
self.cosmological_simulation = False
diff -r 887d13d0c418b9c13c24bcad49385f122686a320 -r d656f82fca66e36a2662e003565b537fe78088f1 yt/frontends/artio/definitions.py
--- a/yt/frontends/artio/definitions.py
+++ b/yt/frontends/artio/definitions.py
@@ -41,11 +41,11 @@
]
particle_fields= [
-# 'particle_age',
+ 'particle_age',
'particle_index',
'particle_mass',
'particle_mass_initial',
- 'particle_creation_time',
+ 'creation_time',
'particle_metallicity1',
'particle_metallicity2',
'particle_metallicity',
@@ -54,19 +54,23 @@
'particle_position_z',
'particle_velocity_x',
'particle_velocity_y',
- 'particle_velocity_z',
+ 'particle_velocity_z'
]
particle_star_fields = [
'particle_age',
'particle_mass',
'particle_mass_initial',
- 'particle_creation_time',
+ 'creation_time',
'particle_metallicity1',
'particle_metallicity2',
'particle_metallicity',
]
+codetime_fields = [
+ 'creation_time'
+]
+
yt_to_art = {
'Density':'HVAR_GAS_DENSITY',
@@ -87,8 +91,12 @@
'particle_velocity_x': 'VELOCITY_X',
'particle_velocity_y': 'VELOCITY_Y',
'particle_velocity_z': 'VELOCITY_Z',
- 'particle_mass': 'particle_species_mass',
- 'particle_index': 'particle_index'
+ 'particle_mass': 'MASS',
+ 'particle_index': 'particle_index',
+ 'creation_time': 'BIRTH_TIME' ,
+ 'particle_initial_mass': 'INITIAL_MASS',
+ 'particle_metallicity1': 'METALLICITY_SNIa',
+ 'particle_metallicity2': 'METALLICITY_SNII'
}
class ARTIOconstants():
diff -r 887d13d0c418b9c13c24bcad49385f122686a320 -r d656f82fca66e36a2662e003565b537fe78088f1 yt/frontends/artio/fields.py
--- a/yt/frontends/artio/fields.py
+++ b/yt/frontends/artio/fields.py
@@ -243,12 +243,15 @@
function=ParticleMassMsun,
units=r"\rm{M\odot}",particle_type=True)
-def _creation_time(field,data):
- pa = data["particle_age"]
- tr = np.zeros(pa.shape,dtype='float')-1.0
- tr[pa>0] = pa[pa>0]
+add_artio_field("creation_time", function=NullFunc, particle_type=True)
+from io import b2t
+def _particle_age(field,data):
+ pa = data['creation_time']
+# tr = np.zeros(pa.shape,dtype='float')-1.0
+# tr[pa>0] = pa[pa>0]
+ tr = pa
return tr
-add_field("creation_time",function=_creation_time,units=r"\rm{s}",particle_type=True)
+add_field("particle_age",function=_particle_age,units=r"\rm{s}",particle_type=True)
def mass_dm(field, data):
tr = np.ones(data.ActiveDimensions, dtype='float32')
diff -r 887d13d0c418b9c13c24bcad49385f122686a320 -r d656f82fca66e36a2662e003565b537fe78088f1 yt/frontends/artio/io.py
--- a/yt/frontends/artio/io.py
+++ b/yt/frontends/artio/io.py
@@ -56,7 +56,8 @@
print "reading particle data"
#
# FIX need an input for particle type (in fields?)
- accessed_species = ['N-BODY']#,'STAR']
+# accessed_species = ['N-BODY','STAR']
+ accessed_species = ['STAR']
#
print 'io.py particle fields ',fields
cp = 0
@@ -79,3 +80,102 @@
cp = cp_newsize
return tr
+#stolen from frontends/art/
+#All of these functions are to convert from hydro time var to
+#proper time
+sqrt = np.sqrt
+sign = np.sign
+
+def find_root(f,a,b,tol=1e-6):
+ c = (a+b)/2.0
+ last = -np.inf
+ assert(sign(f(a)) != sign(f(b)))
+ while np.abs(f(c)-last) > tol:
+ last=f(c)
+ if sign(last)==sign(f(b)):
+ b=c
+ else:
+ a=c
+ c = (a+b)/2.0
+ return c
+
+def quad(fintegrand,xmin,xmax,n=1e4):
+ spacings = np.logspace(np.log10(xmin),np.log10(xmax),n)
+ integrand_arr = fintegrand(spacings)
+ val = np.trapz(integrand_arr,dx=np.diff(spacings))
+ return val
+
+def a2b(at,Om0=0.27,Oml0=0.73,h=0.700):
+ def f_a2b(x):
+ val = 0.5*sqrt(Om0) / x**3.0
+ val /= sqrt(Om0/x**3.0 +Oml0 +(1.0 - Om0-Oml0)/x**2.0)
+ return val
+ #val, err = si.quad(f_a2b,1,at)
+ val = quad(f_a2b,1,at)
+ return val
+
+def b2a(bt,**kwargs):
+ #converts code time into expansion factor
+ #if Om0 ==1and OmL == 0 then b2a is (1 / (1-td))**2
+ #if bt < -190.0 or bt > -.10: raise 'bt outside of range'
+ f_b2a = lambda at: a2b(at,**kwargs)-bt
+ return find_root(f_b2a,1e-4,1.1)
+ #return so.brenth(f_b2a,1e-4,1.1)
+ #return brent.brent(f_b2a)
+
+def a2t(at,Om0=0.27,Oml0=0.73,h=0.700):
+ integrand = lambda x : 1./(x*sqrt(Oml0+Om0*x**-3.0))
+ #current_time,err = si.quad(integrand,0.0,at,epsabs=1e-6,epsrel=1e-6)
+ current_time = quad(integrand,1e-4,at)
+ #spacings = np.logspace(-5,np.log10(at),1e5)
+ #integrand_arr = integrand(spacings)
+ #current_time = np.trapz(integrand_arr,dx=np.diff(spacings))
+ current_time *= 9.779/h
+ return current_time
+
+def b2t(tb,n = 1e2,logger=None,**kwargs):
+ tb = np.array(tb)
+ if type(tb) == type(1.1):
+ return a2t(b2a(tb))
+ if tb.shape == ():
+ return a2t(b2a(tb))
+ if len(tb) < n: n= len(tb)
+ age_min = a2t(b2a(tb.max(),**kwargs),**kwargs)
+ age_max = a2t(b2a(tb.min(),**kwargs),**kwargs)
+ tbs = -1.*np.logspace(np.log10(-tb.min()),
+ np.log10(-tb.max()),n)
+ ages = []
+ for i,tbi in enumerate(tbs):
+ ages += a2t(b2a(tbi)),
+ if logger: logger(i)
+ ages = np.array(ages)
+ fb2t = np.interp(tb,tbs,ages)
+ #fb2t = interp1d(tbs,ages)
+ return fb2t
+
+def spread_ages(ages,logger=None,spread=1.0e7*365*24*3600):
+ #stars are formed in lumps; spread out the ages linearly
+ da= np.diff(ages)
+ assert np.all(da<=0)
+ #ages should always be decreasing, and ordered so
+ agesd = np.zeros(ages.shape)
+ idx, = np.where(da<0)
+ idx+=1 #mark the right edges
+ #spread this age evenly out to the next age
+ lidx=0
+ lage=0
+ for i in idx:
+ n = i-lidx #n stars affected
+ rage = ages[i]
+ lage = max(rage-spread,0.0)
+ agesd[lidx:i]=np.linspace(lage,rage,n)
+ lidx=i
+ #lage=rage
+ if logger: logger(i)
+ #we didn't get the last iter
+ i=ages.shape[0]-1
+ n = i-lidx #n stars affected
+ rage = ages[i]
+ lage = max(rage-spread,0.0)
+ agesd[lidx:i]=np.linspace(lage,rage,n)
+ return agesd
https://bitbucket.org/yt_analysis/yt-3.0/commits/06cbea3e3ddf/
changeset: 06cbea3e3ddf
branch: yt-3.0
user: drudd
date: 2013-03-07 18:33:59
summary: Updated artio to latest development version
affected #: 11 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/0bbb03b5a1b8/
changeset: 0bbb03b5a1b8
branch: yt-3.0
user: sleitner
date: 2013-03-08 01:05:32
summary: Merged yt_analysis/yt-3.0 into yt-3.0
affected #: 3 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/1b6b8687ab84/
changeset: 1b6b8687ab84
branch: yt-3.0
user: drudd
date: 2013-03-08 00:55:39
summary: Added ARTIOChunk and rewrote grid fill function
affected #: 2 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/18b2cb62de57/
changeset: 18b2cb62de57
branch: yt-3.0
user: sleitner
date: 2013-03-08 00:45:32
summary: no more octgeometryhandler
affected #: 1 file
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/c958fb499cca/
changeset: c958fb499cca
branch: yt-3.0
user: drudd
date: 2013-03-08 01:04:11
summary: Merged data_structures.py
affected #: 1 file
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/59486a430c95/
changeset: 59486a430c95
branch: yt-3.0
user: drudd
date: 2013-03-08 01:28:10
summary: Completed fwidth function
affected #: 1 file
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/e540f3180036/
changeset: e540f3180036
branch: yt-3.0
user: sleitner
date: 2013-03-08 01:05:54
summary: Merged sleitner/yt-3.0-artio into yt-3.0
affected #: 3 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/5f957500c586/
changeset: 5f957500c586
branch: yt-3.0
user: sername=kayleanelson
date: 2013-03-08 01:11:54
summary: changed coords from int to float in root_sfc_ranges
affected #: 2 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/364c9867167b/
changeset: 364c9867167b
branch: yt-3.0
user: sername=kayleanelson
date: 2013-03-08 01:12:57
summary: merged
affected #: 3 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/c6ae1df09539/
changeset: c6ae1df09539
branch: yt-3.0
user: drudd
date: 2013-03-08 01:29:23
summary: Merged
affected #: 5 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/c8edfe3a2793/
changeset: c8edfe3a2793
branch: yt-3.0
user: drudd
date: 2013-03-08 01:38:16
summary: Removed delta
affected #: 1 file
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/dfc0ba5f9ce0/
changeset: dfc0ba5f9ce0
branch: yt-3.0
user: sleitner
date: 2013-03-08 01:31:41
summary: new icoords
affected #: 1 file
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/b4d633b82825/
changeset: b4d633b82825
branch: yt-3.0
user: sleitner
date: 2013-03-08 01:35:30
summary: fwidth
affected #: 3 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/dbf5853e2046/
changeset: dbf5853e2046
branch: yt-3.0
user: sername=kayleanelson
date: 2013-03-08 01:36:16
summary: refixed root_sfc_ranges
affected #: 1 file
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/d92a63500d83/
changeset: d92a63500d83
branch: yt-3.0
user: drudd
date: 2013-03-08 01:38:59
summary: Merged
affected #: 2 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/ee9e96ea8dda/
changeset: ee9e96ea8dda
branch: yt-3.0
user: drudd
date: 2013-03-08 02:01:18
summary: Fixed numerous compile errors
affected #: 2 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/4434c50fdc77/
changeset: 4434c50fdc77
branch: yt-3.0
user: drudd
date: 2013-03-08 02:22:57
summary: Fixes to identify base chunk, now segfaults on readslice.py
affected #: 2 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/f2561c366bb0/
changeset: f2561c366bb0
branch: yt-3.0
user: sleitner
date: 2013-03-08 06:34:15
summary: removing domain from io
affected #: 2 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/ae563fe5a69c/
changeset: ae563fe5a69c
branch: yt-3.0
user: drudd
date: 2013-03-08 08:46:07
summary: Now builds and produces an image, which is wrong and takes too long to generate
affected #: 4 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/620c7fe65f39/
changeset: 620c7fe65f39
branch: yt-3.0
user: drudd
date: 2013-03-08 18:50:46
summary: Fixes to artio_caller read_chunk
affected #: 1 file
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/aacb448438f9/
changeset: aacb448438f9
branch: yt-3.0
user: drudd
date: 2013-03-08 21:13:08
summary: Fixed selector subcycling in artio
affected #: 2 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/83c5639a79bf/
changeset: 83c5639a79bf
branch: yt-3.0
user: sleitner
date: 2013-03-08 20:45:25
summary: minor updates
affected #: 2 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/ba254251ba55/
changeset: ba254251ba55
branch: yt-3.0
user: sername=kayleanelson
date: 2013-03-08 21:12:01
summary: edits to particle
affected #: 3 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/e52b9645648f/
changeset: e52b9645648f
branch: yt-3.0
user: drudd
date: 2013-03-08 21:13:41
summary: Merged
affected #: 4 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/5ec54129f52a/
changeset: 5ec54129f52a
branch: yt-3.0
user: sleitner
date: 2013-03-11 21:20:30
summary: major restructuring of particle read for chunking and multiple particle species. temporarily exists as a masked and unmasked methods
affected #: 5 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/7d041ee9942e/
changeset: 7d041ee9942e
branch: yt-3.0
user: drudd
date: 2013-03-11 21:48:25
summary: Changes to data_structures
affected #: 1 file
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/c3dbd9cf96bd/
changeset: c3dbd9cf96bd
branch: yt-3.0
user: drudd
date: 2013-03-11 21:48:51
summary: Changed particle sfc range caching code for performance
affected #: 2 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/1b7698938063/
changeset: 1b7698938063
branch: yt-3.0
user: drudd
date: 2013-03-11 22:10:43
summary: Fix to first iteration in particle var fill
affected #: 1 file
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/59ff3cc05794/
changeset: 59ff3cc05794
branch: yt-3.0
user: drudd
date: 2013-03-11 22:14:19
summary: Fixed memory leak in particles
affected #: 1 file
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/e9caf5019828/
changeset: e9caf5019828
branch: yt-3.0
user: drudd
date: 2013-03-13 17:51:11
summary: Committing broken version for the sake of merging
affected #: 3 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/2821e2e522f8/
changeset: 2821e2e522f8
branch: yt-3.0
user: drudd
date: 2013-03-13 17:59:12
summary: Merged with upstream
affected #: 118 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/be387cedd235/
changeset: be387cedd235
branch: yt-3.0
user: drudd
date: 2013-03-14 04:50:47
summary: New version of particle support. Very slow due to python in cython
affected #: 7 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/2b01ec8070e2/
changeset: 2b01ec8070e2
branch: yt-3.0
user: drudd
date: 2013-03-14 05:04:37
summary: Removed some print statements
affected #: 2 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/52f79c5b6860/
changeset: 52f79c5b6860
branch: yt-3.0
user: drudd
date: 2013-03-14 05:43:51
summary: Fixed slice code, all_data optimization now works (but is a hack using hasattr)
affected #: 2 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/69eed5f959e8/
changeset: 69eed5f959e8
branch: yt-3.0
user: drudd
date: 2013-03-14 06:09:49
summary: More pythonic method of optimizing all_data case
affected #: 1 file
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/f00db6e5c6a4/
changeset: f00db6e5c6a4
branch: yt-3.0
user: drudd
date: 2013-03-14 16:36:30
summary: Removed all remaining print statements and converted to mylog calls and RaiseError. Added @property wrapper to ARTIOChunk.data_size to catch size calls before fill
affected #: 5 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/56bfc5b1498f/
changeset: 56bfc5b1498f
branch: yt-3.0
user: drudd
date: 2013-03-14 16:59:33
summary: Fixed bug in ARTIOGeometryHandler.get_smallest_dx returning an array
affected #: 1 file
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/424c756bbd53/
changeset: 424c756bbd53
branch: yt-3.0
user: drudd
date: 2013-03-14 18:44:11
summary: Removed 2 unused variables from _artio_caller.pyx
affected #: 2 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/bd139c12e845/
changeset: bd139c12e845
branch: yt-3.0
user: drudd
date: 2013-03-14 18:57:14
summary: Fixed funding
affected #: 1 file
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/9e56a409651b/
changeset: 9e56a409651b
branch: yt-3.0
user: sleitner
date: 2013-03-14 19:15:19
summary: cleaning up
affected #: 6 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/e72eac7fa59e/
changeset: e72eac7fa59e
branch: yt-3.0
user: sleitner
date: 2013-03-14 19:17:42
summary: Merged yt_analysis/yt-3.0 into yt-3.0
affected #: 1 file
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/c09e7d2fd4b7/
changeset: c09e7d2fd4b7
branch: yt-3.0
user: drudd
date: 2013-03-14 19:30:52
summary: Changes to comply with pep8
affected #: 4 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/5199a6bc5520/
changeset: 5199a6bc5520
branch: yt-3.0
user: drudd
date: 2013-03-14 19:31:21
summary: Merge
affected #: 7 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/3ad63a6adfd4/
changeset: 3ad63a6adfd4
branch: yt-3.0
user: drudd
date: 2013-03-14 19:35:18
summary: pep8 changes
affected #: 1 file
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/44eed3700ab2/
changeset: 44eed3700ab2
branch: yt-3.0
user: drudd
date: 2013-03-14 19:53:30
summary: Fixed osx gcc compilation warnings
affected #: 1 file
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/746578ff1410/
changeset: 746578ff1410
branch: yt-3.0
user: sername=kayleanelson
date: 2013-03-14 20:01:28
summary: pep8 changes
affected #: 2 files
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/875b5f9c5706/
changeset: 875b5f9c5706
branch: yt-3.0
user: sleitner
date: 2013-03-14 20:20:13
summary: pep8 compliance for data_structures.py
affected #: 1 file
Diff not available.
https://bitbucket.org/yt_analysis/yt-3.0/commits/a71dffe4bc81/
changeset: a71dffe4bc81
branch: yt-3.0
user: sleitner
date: 2013-03-14 20:21:00
summary: merging
affected #: 9 files
Diff not available.
Repository URL: https://bitbucket.org/yt_analysis/yt-3.0/
--
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