[Yt-svn] yt: 2 new changesets
hg at spacepope.org
hg at spacepope.org
Tue Dec 14 09:32:50 PST 2010
hg Repository: yt
details: yt/rev/b51b5ab61ec2
changeset: 3608:b51b5ab61ec2
user: Britton Smith <brittonsmith at gmail.com>
date:
Tue Dec 14 12:32:22 2010 -0500
description:
Fixed namespace issue in EnzoSimulation.
hg Repository: yt
details: yt/rev/e11cfa9971e4
changeset: 3609:e11cfa9971e4
user: Britton Smith <brittonsmith at gmail.com>
date:
Tue Dec 14 12:32:42 2010 -0500
description:
Merged.
diffstat:
yt/analysis_modules/halo_finding/halo_objects.py | 6 +-
yt/analysis_modules/halo_finding/hop/EnzoHop.c | 12 +-
yt/analysis_modules/halo_finding/hop/hop_hop.c | 8 +-
yt/analysis_modules/halo_finding/parallel_hop/parallel_hop_interface.py | 1 +
yt/analysis_modules/halo_merger_tree/merger_tree.py | 5 +
yt/analysis_modules/simulation_handler/enzo_simulation.py | 4 +-
yt/analysis_modules/two_point_functions/two_point_functions.py | 3 +-
yt/data_objects/derived_quantities.py | 2 +-
yt/data_objects/field_info_container.py | 32 ++++--
yt/frontends/flash/fields.py | 1 +
yt/utilities/kdtree/fKD.f90 | 6 +-
yt/utilities/kdtree/fKD.v | 5 +-
yt/utilities/kdtree/fKD_source.f90 | 47 ++++++---
yt/visualization/plot_types.py | 1 -
14 files changed, 89 insertions(+), 44 deletions(-)
diffs (truncated from 552 to 300 lines):
diff -r f4c3e6f9e68f -r e11cfa9971e4 yt/analysis_modules/halo_finding/halo_objects.py
--- a/yt/analysis_modules/halo_finding/halo_objects.py Mon Dec 13 09:03:36 2010 -0800
+++ b/yt/analysis_modules/halo_finding/halo_objects.py Tue Dec 14 12:32:42 2010 -0500
@@ -1050,12 +1050,16 @@
HaloList.__init__(self, data_source, dm_only)
def _run_finder(self):
+ period_x, period_y, period_z = \
+ self.pf.domain_right_edge - self.pf.domain_left_edge
+ print "Setting period to", period_x, period_y, period_z
self.densities, self.tags = \
RunHOP(self.particle_fields["particle_position_x"],
self.particle_fields["particle_position_y"],
self.particle_fields["particle_position_z"],
self.particle_fields["ParticleMassMsun"],
- self.threshold)
+ self.threshold,
+ period_x, period_y, period_z)
self.particle_fields["densities"] = self.densities
self.particle_fields["tags"] = self.tags
diff -r f4c3e6f9e68f -r e11cfa9971e4 yt/analysis_modules/halo_finding/hop/EnzoHop.c
--- a/yt/analysis_modules/halo_finding/hop/EnzoHop.c Mon Dec 13 09:03:36 2010 -0800
+++ b/yt/analysis_modules/halo_finding/hop/EnzoHop.c Tue Dec 14 12:32:42 2010 -0500
@@ -36,7 +36,8 @@
#include "numpy/ndarrayobject.h"
void initgrouplist(Grouplist *g);
-void hop_main(KD kd, HC *my_comm, float densthres);
+void hop_main(KD kd, HC *my_comm, float densthres,
+ float period_x, float period_y, float period_z);
void regroup_main(float dens_outer, HC *my_comm);
static PyObject *_HOPerror;
@@ -102,11 +103,14 @@
npy_float64 totalmass = 0.0;
float normalize_to = 1.0;
float thresh = 160.0;
+ float period_x, period_y, period_z;
+ period_x = period_y = period_z = 1.0;
int i;
- if (!PyArg_ParseTuple(args, "OOOO|ff",
- &oxpos, &oypos, &ozpos, &omass, &thresh, &normalize_to))
+ if (!PyArg_ParseTuple(args, "OOOO|fffff",
+ &oxpos, &oypos, &ozpos, &omass, &thresh, &normalize_to,
+ &period_x, &period_y, &period_z))
return PyErr_Format(_HOPerror,
"EnzoHop: Invalid parameters.");
@@ -155,7 +159,7 @@
initgrouplist(my_comm.gl);
fprintf(stderr, "Calling hop... %d %0.3e\n",num_particles,thresh);
- hop_main(kd, &my_comm, thresh);
+ hop_main(kd, &my_comm, thresh, period_x, period_y, period_z);
fprintf(stderr, "Calling regroup...\n");
regroup_main(thresh, &my_comm);
diff -r f4c3e6f9e68f -r e11cfa9971e4 yt/analysis_modules/halo_finding/hop/hop_hop.c
--- a/yt/analysis_modules/halo_finding/hop/hop_hop.c Mon Dec 13 09:03:36 2010 -0800
+++ b/yt/analysis_modules/halo_finding/hop/hop_hop.c Tue Dec 14 12:32:42 2010 -0500
@@ -51,7 +51,8 @@
void outGroupMerge(SMX smx, HC *my_comm);
/* void main(int argc,char **argv) */
-void hop_main(KD kd, HC *my_comm, float densthres)
+void hop_main(KD kd, HC *my_comm, float densthres,
+ float period_x, float period_y, float period_z)
{
/* KD kd; */
SMX smx;
@@ -77,7 +78,10 @@
inputfile = NULL;
i = 1;
/* for (j=0;j<3;++j) fPeriod[j] = HUGE; */
- for (j=0;j<3;++j) fPeriod[j] = 1.0;
+/* for (j=0;j<3;++j) fPeriod[j] = 1.0; */
+ fPeriod[0] = period_x;
+ fPeriod[1] = period_y;
+ fPeriod[2] = period_z;
nMerge = 4;
diff -r f4c3e6f9e68f -r e11cfa9971e4 yt/analysis_modules/halo_finding/parallel_hop/parallel_hop_interface.py
--- a/yt/analysis_modules/halo_finding/parallel_hop/parallel_hop_interface.py Mon Dec 13 09:03:36 2010 -0800
+++ b/yt/analysis_modules/halo_finding/parallel_hop/parallel_hop_interface.py Tue Dec 14 12:32:42 2010 -0500
@@ -358,6 +358,7 @@
fKD.sort = True # Slower, but needed in _connect_chains
fKD.rearrange = self.rearrange # True is faster, but uses more memory
# Now call the fortran.
+ fKD.period = self.period
create_tree(0)
self.__max_memory()
yt_counters("init kd tree")
diff -r f4c3e6f9e68f -r e11cfa9971e4 yt/analysis_modules/halo_merger_tree/merger_tree.py
--- a/yt/analysis_modules/halo_merger_tree/merger_tree.py Mon Dec 13 09:03:36 2010 -0800
+++ b/yt/analysis_modules/halo_merger_tree/merger_tree.py Tue Dec 14 12:32:42 2010 -0500
@@ -164,6 +164,7 @@
self.dm_only = dm_only
self.refresh = refresh
self.sleep = sleep # How long to wait between db sync checks.
+ self.period = -1
if self.sleep <= 0.:
self.sleep = 5
# MPI stuff
@@ -215,6 +216,9 @@
for cycle, file in enumerate(self.restart_files):
gc.collect()
pf = load(file)
+ # get the period, only once is sufficient
+ if self.period == -1:
+ self.period = pf.domain_right_edge - pf.domain_left_edge
# If the halos are already found, skip this data step, unless
# refresh is True.
dir = os.path.dirname(file)
@@ -365,6 +369,7 @@
fKD.nn = 5
fKD.sort = True
fKD.rearrange = True
+ fKD.period = self.period
create_tree(0)
# Find the parent points from the database.
diff -r f4c3e6f9e68f -r e11cfa9971e4 yt/analysis_modules/simulation_handler/enzo_simulation.py
--- a/yt/analysis_modules/simulation_handler/enzo_simulation.py Mon Dec 13 09:03:36 2010 -0800
+++ b/yt/analysis_modules/simulation_handler/enzo_simulation.py Tue Dec 14 12:32:42 2010 -0500
@@ -352,7 +352,7 @@
rounded += na.power(10.0,(-1.0*decimals))
z = rounded
- deltaz_max = __deltaz_forward(self.cosmology, z, self.enzoParameters['CosmologyComovingBoxSize'])
+ deltaz_max = _deltaz_forward(self.cosmology, z, self.enzoParameters['CosmologyComovingBoxSize'])
outputs.append({'redshift': z, 'deltazMax': deltaz_max})
z -= deltaz_max
@@ -576,7 +576,7 @@
"DataDumpDir": str,
"GlobalDir" : str}
-def __deltaz_forward(cosmology, z, target_distance):
+def _deltaz_forward(cosmology, z, target_distance):
"Calculate deltaz corresponding to moving a comoving distance starting from some redshift."
d_Tolerance = 1e-4
diff -r f4c3e6f9e68f -r e11cfa9971e4 yt/analysis_modules/two_point_functions/two_point_functions.py
--- a/yt/analysis_modules/two_point_functions/two_point_functions.py Mon Dec 13 09:03:36 2010 -0800
+++ b/yt/analysis_modules/two_point_functions/two_point_functions.py Tue Dec 14 12:32:42 2010 -0500
@@ -29,7 +29,7 @@
from yt.utilities.parallel_tools.parallel_analysis_interface import ParallelAnalysisInterface, parallel_blocking_call, parallel_root_only
try:
- from yt.extensions.kdtree import *
+ from yt.utilities.kdtree import *
except ImportError:
mylog.debug("The Fortran kD-Tree did not import correctly.")
@@ -306,6 +306,7 @@
fKD.nn = 1
fKD.sort = False
fKD.rearrange = True
+ fKD.period = self.period
create_tree(0)
def _build_sort_array(self):
diff -r f4c3e6f9e68f -r e11cfa9971e4 yt/data_objects/derived_quantities.py
--- a/yt/data_objects/derived_quantities.py Mon Dec 13 09:03:36 2010 -0800
+++ b/yt/data_objects/derived_quantities.py Tue Dec 14 12:32:42 2010 -0500
@@ -80,7 +80,7 @@
if preload:
if not lazy_reader: mylog.debug("Turning on lazy_reader because of preload")
lazy_reader = True
- e = FieldDetector()
+ e = FieldDetector(flat = True)
e.NumberOfParticles = 1
self.func(e, *args, **kwargs)
mylog.debug("Preloading %s", e.requested)
diff -r f4c3e6f9e68f -r e11cfa9971e4 yt/data_objects/field_info_container.py
--- a/yt/data_objects/field_info_container.py Mon Dec 13 09:03:36 2010 -0800
+++ b/yt/data_objects/field_info_container.py Tue Dec 14 12:32:42 2010 -0500
@@ -143,8 +143,10 @@
NumberOfParticles = 1
_read_exception = None
_id_offset = 0
- def __init__(self, nd = 16, pf = None):
+ def __init__(self, nd = 16, pf = None, flat = False):
self.nd = nd
+ self.flat = flat
+ self._spatial = not flat
self.ActiveDimensions = [nd,nd,nd]
self.LeftEdge = [0.0,0.0,0.0]
self.RightEdge = [1.0,1.0,1.0]
@@ -168,23 +170,32 @@
self.hierarchy = fake_hierarchy()
self.requested = []
self.requested_parameters = []
- defaultdict.__init__(self,
- lambda: na.ones((nd,nd,nd), dtype='float64') + 1e-4*na.random.random((nd,nd,nd)))
+ if not self.flat:
+ defaultdict.__init__(self,
+ lambda: na.ones((nd,nd,nd), dtype='float64')
+ + 1e-4*na.random.random((nd,nd,nd)))
+ else:
+ defaultdict.__init__(self,
+ lambda: na.ones((nd*nd*nd), dtype='float64')
+ + 1e-4*na.random.random((nd*nd*nd)))
def __missing__(self, item):
if FieldInfo.has_key(item) and \
FieldInfo[item]._function.func_name != '<lambda>':
try:
vv = FieldInfo[item](self)
- except NeedsGridType, exc:
+ except NeedsGridType as exc:
ngz = exc.ghost_zones
nfd = FieldDetector(self.nd+ngz*2)
- vv = FieldInfo[item](nfd)[ngz:-ngz,ngz:-ngz,ngz:-ngz]
- for i in vv.requested:
+ nfd._num_ghost_zones = ngz
+ vv = FieldInfo[item](nfd)
+ if ngz > 0: vv = vv[ngz:-ngz,ngz:-ngz,ngz:-ngz]
+ for i in nfd.requested:
if i not in self.requested: self.requested.append(i)
- for i in vv.requested_parameters:
+ for i in nfd.requested_parameters:
if i not in self.requested_parameters: self.requested_parameters.append(i)
if vv is not None:
- self[item] = vv
+ if not self.flat: self[item] = vv
+ else: self[item] = vv.ravel()
return self[item]
self.requested.append(item)
return defaultdict.__missing__(self, item)
@@ -203,7 +214,6 @@
return na.random.random(3)*1e-2
else:
return 0.0
- _spatial = True
_num_ghost_zones = 0
id = 1
def has_field_parameter(self, param): return True
@@ -275,7 +285,7 @@
if self._function.func_name == '<lambda>':
e.requested.append(self.name)
else:
- self(e)
+ e[self.name]
return e
def get_units(self):
@@ -392,7 +402,7 @@
def __call__(self, data):
# When we say spatial information, we really mean
# that it has a three-dimensional data structure
- if isinstance(data, FieldDetector): return True
+ #if isinstance(data, FieldDetector): return True
if not data._spatial:
raise NeedsGridType(self.ghost_zones,self.fields)
if self.ghost_zones <= data._num_ghost_zones:
diff -r f4c3e6f9e68f -r e11cfa9971e4 yt/frontends/flash/fields.py
--- a/yt/frontends/flash/fields.py Mon Dec 13 09:03:36 2010 -0800
+++ b/yt/frontends/flash/fields.py Tue Dec 14 12:32:42 2010 -0500
@@ -67,6 +67,7 @@
"particle_position_x" : "particle_posx",
"particle_position_y" : "particle_posy",
"particle_position_z" : "particle_posz",
+ "particle_index" : "particle_tag",
"Electron_Fraction" : "elec",
"HI_Fraction" : "h ",
"HD_Fraction" : "hd ",
diff -r f4c3e6f9e68f -r e11cfa9971e4 yt/utilities/kdtree/fKD.f90
--- a/yt/utilities/kdtree/fKD.f90 Mon Dec 13 09:03:36 2010 -0800
+++ b/yt/utilities/kdtree/fKD.f90 Tue Dec 14 12:32:42 2010 -0500
@@ -19,11 +19,11 @@
! create a kd tree object
if (ID == 1) then
- t1%tree2 => kdtree2_create(t1%pos,sort=t1%sort,rearrange=t1%rearrange)
+ t1%tree2 => kdtree2_create(t1%pos,sort=t1%sort,rearrange=t1%rearrange,period=t1%period)
elseif (ID == 2) then
- t2%tree2 => kdtree2_create(t2%pos,sort=t2%sort,rearrange=t2%rearrange)
+ t2%tree2 => kdtree2_create(t2%pos,sort=t2%sort,rearrange=t2%rearrange,period=t2%period)
else
- tree2 => kdtree2_create(pos,sort=sort,rearrange=rearrange)
+ tree2 => kdtree2_create(pos,sort=sort,rearrange=rearrange,period=period)
end if
return
diff -r f4c3e6f9e68f -r e11cfa9971e4 yt/utilities/kdtree/fKD.v
--- a/yt/utilities/kdtree/fKD.v Mon Dec 13 09:03:36 2010 -0800
+++ b/yt/utilities/kdtree/fKD.v Tue Dec 14 12:32:42 2010 -0500
@@ -24,6 +24,7 @@
tree2 _kdtree2
sort logical /.false./
rearrange logical /.true./
+period(:) _real
radius real # the unsquared radius for radius searches
radius_n integer # the number of results to return
nfound integer # number of neighbors within radius
@@ -97,7 +98,8 @@
More information about the yt-svn
mailing list