[Yt-svn] yt-commit r552 - trunk/yt/lagos/hop

mturk at wrangler.dreamhost.com mturk at wrangler.dreamhost.com
Fri Jun 13 08:22:43 PDT 2008


Author: mturk
Date: Fri Jun 13 08:22:41 2008
New Revision: 552
URL: http://yt.spacepope.org/changeset/552

Log:
Added an iterator to iterate over the HopGroups.  Also added a writeout
function.

This closes #118.



Modified:
   trunk/yt/lagos/hop/HopOutput.py

Modified: trunk/yt/lagos/hop/HopOutput.py
==============================================================================
--- trunk/yt/lagos/hop/HopOutput.py	(original)
+++ trunk/yt/lagos/hop/HopOutput.py	Fri Jun 13 08:22:41 2008
@@ -82,8 +82,7 @@
         return len(self._groups)
  
     def __iter__(self):
-        self.__index = 1 # Start with the first non-zero group
-        return self
+        return HopIterator(self)
 
     def next(self):
         if self.__index == len(self): raise StopIteration
@@ -95,7 +94,33 @@
         return self._groups[key]
 
     def write_out(self, filename="HopAnalysis.out"):
-        pass
+        f = open(filename,"w")
+        f.write("\t".join(["# Group","Mass","# part","max dens"
+                           "x","y","z", "center-of-mass",
+                           "x","y","z",
+                           "vx","vy","vz"]))
+        for group in self:
+            f.write("%10i\t" % group.id)
+            f.write("%0.9e\t" % group.total_mass())
+            f.write("%10i\t" % group.indices.size)
+            f.write("%0.9e\t" % group.maximum_density())
+            f.write("\t".join(["%0.9e" % v for v in group.maximum_density_location()]))
+            f.write("\t")
+            f.write("\t".join(["%0.9e" % v for v in group.center_of_mass()]))
+            f.write("\t")
+            f.write("\t".join(["%0.9e" % v for v in group.bulk_velocity()]))
+            f.write("\n")
+        f.close()
+
+class HopIterator(object):
+    def __init__(self, hop):
+        self.hop = hop
+        self.index = 0
+
+    def next(self):
+        self.index += 1
+        if self.index == len(self.hop): raise StopIteration
+        return self.hop[self.index]
 
 class HopGroup(object):
 



More information about the yt-svn mailing list