[Yt-svn] yt: 3 new changesets

hg at spacepope.org hg at spacepope.org
Fri Dec 17 14:39:23 PST 2010


hg Repository: yt
details:   yt/rev/24dc250d55cf
changeset: 3618:24dc250d55cf
user:      Sam Skillman <sam.skillman at gmail.com>
date:
Fri Dec 17 15:31:23 2010 -0700
description:
Fixing a bug with amr_kdtree's with a subvolume of a simulation.  Adding le and re (left and right edge) keywords to the camera object.

hg Repository: yt
details:   yt/rev/1273d78f8d7a
changeset: 3619:1273d78f8d7a
user:      Sam Skillman <sam.skillman at gmail.com>
date:
Fri Dec 17 15:38:43 2010 -0700
description:
Adding note about le/re arguments only applying to use_kd=True. HV needs an AMRRegion.

hg Repository: yt
details:   yt/rev/aa0d1b1839ed
changeset: 3620:aa0d1b1839ed
user:      Sam Skillman <sam.skillman at gmail.com>
date:
Fri Dec 17 15:39:06 2010 -0700
description:
merging.

diffstat:

 yt/analysis_modules/halo_merger_tree/merger_tree.py |   6 ++----
 yt/utilities/amr_kdtree/amr_kdtree.py               |  12 ++++++++++--
 yt/utilities/kdtree/fKD_source.f90                  |   2 +-
 yt/visualization/volume_rendering/camera.py         |  11 +++++++++--
 4 files changed, 22 insertions(+), 9 deletions(-)

diffs (101 lines):

diff -r 4225edfc20da -r aa0d1b1839ed yt/analysis_modules/halo_merger_tree/merger_tree.py
--- a/yt/analysis_modules/halo_merger_tree/merger_tree.py	Thu Dec 16 12:44:52 2010 -0700
+++ b/yt/analysis_modules/halo_merger_tree/merger_tree.py	Fri Dec 17 15:39:06 2010 -0700
@@ -164,7 +164,6 @@
         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
@@ -216,9 +215,8 @@
         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
+            # This will be fetched many times, but it's not a problem.
+            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)
diff -r 4225edfc20da -r aa0d1b1839ed yt/utilities/amr_kdtree/amr_kdtree.py
--- a/yt/utilities/amr_kdtree/amr_kdtree.py	Thu Dec 16 12:44:52 2010 -0700
+++ b/yt/utilities/amr_kdtree/amr_kdtree.py	Fri Dec 17 15:39:06 2010 -0700
@@ -273,17 +273,25 @@
         if le is None:
             self.domain_left_edge = pf.domain_left_edge
         else:
-            self.domain_left_edge = le
+            self.domain_left_edge = na.clip(na.array(le),pf.domain_left_edge, pf.domain_right_edge)
         if re is None:
             self.domain_right_edge = pf.domain_right_edge
         else:
-            self.domain_right_edge = re
+            self.domain_right_edge = na.clip(na.array(re),pf.domain_left_edge, pf.domain_right_edge)
 
         self.my_l_corner = self.domain_left_edge
         self.my_r_corner = self.domain_right_edge
 
         mylog.info('Making kd tree from le %s to %s'% (self.domain_left_edge, self.domain_right_edge))
         root_grids = pf.hierarchy.get_levels().next()
+
+        root_l_data = na.array([grid.LeftEdge for grid in root_grids])
+        root_r_data = na.array([grid.RightEdge for grid in root_grids])
+        root_we_want = na.all(root_l_data < self.my_r_corner,axis=1)*\
+                       na.all(root_r_data > self.my_l_corner,axis=1)
+        
+        root_grids = root_grids[root_we_want]
+
         # Build the kd-Tree
         nodes = self.__build(root_grids, None, self.domain_left_edge, self.domain_right_edge)
 
diff -r 4225edfc20da -r aa0d1b1839ed yt/utilities/kdtree/fKD_source.f90
--- a/yt/utilities/kdtree/fKD_source.f90	Thu Dec 16 12:44:52 2010 -0700
+++ b/yt/utilities/kdtree/fKD_source.f90	Fri Dec 17 15:39:06 2010 -0700
@@ -664,7 +664,7 @@
        write (*,*) 'KD_TREE_TRANS: note, that new format is data(1:D,1:N)'
        write (*,*) 'KD_TREE_TRANS: with usually N >> D.   If N =approx= D, then a k-d tree'
        write (*,*) 'KD_TREE_TRANS: is not an appropriate data structure.'
-       stop
+       ! stop
     end if
 
     call build_tree(mr)
diff -r 4225edfc20da -r aa0d1b1839ed yt/visualization/volume_rendering/camera.py
--- a/yt/visualization/volume_rendering/camera.py	Thu Dec 16 12:44:52 2010 -0700
+++ b/yt/visualization/volume_rendering/camera.py	Fri Dec 17 15:39:06 2010 -0700
@@ -45,7 +45,8 @@
                  log_fields = None,
                  sub_samples = 5, pf = None,
                  use_kd=True, l_max=None, no_ghost=False,
-                 tree_type='domain',expand_factor=1.0):
+                 tree_type='domain',expand_factor=1.0,
+                 le=None, re=None):
         r"""A viewpoint into a volume, for volume rendering.
 
         The camera represents the eye of an observer, which will be used to
@@ -138,6 +139,12 @@
             currently difficult to gauge for the PerspectiveCamera.
             For full box renders, values in the 2.0-3.0 range seem to
             produce desirable results. Default: 1.0
+        le: array_like, optional
+            Specifies the left edge of the volume to be rendered.
+            Currently only works with use_kd=True.
+        re: array_like, optional
+            Specifies the right edge of the volume to be rendered.
+            Currently only works with use_kd=True.
 
         Examples
         --------
@@ -199,7 +206,7 @@
         if volume is None:
             if self.use_kd:
                 volume = AMRKDTree(self.pf, l_max=l_max, fields=self.fields, no_ghost=no_ghost, tree_type=tree_type,
-                                   log_fields = log_fields)
+                                   log_fields = log_fields, le=le, re=re)
             else:
                 volume = HomogenizedVolume(fields, pf = self.pf,
                                            log_fields = log_fields)



More information about the yt-svn mailing list