[Yt-svn] yt-commit r1084 - trunk/yt/extensions/lightcone

britton at wrangler.dreamhost.com britton at wrangler.dreamhost.com
Wed Jan 7 15:27:50 PST 2009


Author: britton
Date: Wed Jan  7 15:27:49 2009
New Revision: 1084
URL: http://yt.spacepope.org/changeset/1084

Log:
Fixed minor counting bug in unique light cone solution generator.


Modified:
   trunk/yt/extensions/lightcone/UniqueSolution.py

Modified: trunk/yt/extensions/lightcone/UniqueSolution.py
==============================================================================
--- trunk/yt/extensions/lightcone/UniqueSolution.py	(original)
+++ trunk/yt/extensions/lightcone/UniqueSolution.py	Wed Jan  7 15:27:49 2009
@@ -30,7 +30,7 @@
 import random as rand
 import sys
 
-def ProjectUniqueLightCones(EnzoParameterFile,LightConeParameterFile,seedFile,field,save_stack=True,**kwargs):
+def ProjectUniqueLightCones(EnzoParameterFile,LightConeParameterFile,seedFile,field,**kwargs):
     "Make light cone projections using list of random seeds in a file."
 
     seedList = _ReadSeedFile(seedFile)
@@ -49,10 +49,6 @@
 
         lc.lightConeParameters['OutputPrefix'] = "%s_%s_%s" % (prefix,seed['master'],seed['recycle'])
         lc.ProjectLightCone(field,**kwargs)
-        if save_stack:
-            stackFilename = "%s/%s_%s.h5" % (lc.lightConeParameters['OutputDir'],
-                                             lc.lightConeParameters['OutputPrefix'],field)
-            lc.SaveLightConeStack(filename=stackFilename)
 
 def FindUniqueSolutions(EnzoParameterFile,LightConeParameterFile,solutions=100,seed=None,
                         max_overlap=0.25,failures=10,recycle=True,filename='unique.dat'):
@@ -66,9 +62,9 @@
     uniqueSeeds = []
     if recycle:
         master = None
-        recycleFails = 0
     newRecycleSeed = None
     fails = 0
+    recycleFails = 0
 
     maxCommon = 0.0
 
@@ -80,9 +76,9 @@
         rand.seed(seed)
         state = rand.getstate()
 
-    while (len(uniqueSeeds) < solutions):
-        sys.stderr.write("Created %d unique solutions.\r" % len(uniqueSeeds))
+    failDigits = str(int(na.log(failures)))
 
+    while (len(uniqueSeeds) < solutions):
         # Create new random seed.
         if (recycle and master is not None):
             newSeed = master
@@ -98,6 +94,8 @@
                 recycleFails = 0
             newRecycleSeed = None
 
+        sys.stderr.write(("Unique solutions: %d, consecutive failures: %"+failDigits+"d, %"+failDigits+"d.\r") % (len(uniqueSeeds),fails,recycleFails))
+
         solution1.RerandomizeLightConeSolution(newSeed,recycle=False)
         if newRecycleSeed is not None:
             solution1.RerandomizeLightConeSolution(newRecycleSeed,recycle=True)
@@ -121,20 +119,22 @@
             uniqueSeeds.append({'master':newSeed,'recycle':newRecycleSeed})
             fails = 0
             recycleFails = 0
+
         else:
-            if newRecycleSeed is None:
-                fails += 1
-            else:
+            if recycle:
                 recycleFails += 1
-                if (recycleFails >= failures):
-                    fails += 1
-                    print ""
-                    mylog.info("Max recycled failures reached with master seed %d." % newSeed)
-                    master = None
-                if (fails >= failures):
-                    print ""
-                    mylog.error("Max consecutive failures reached.")
-                    break
+            else:
+                fails += 1
+
+            if (recycleFails >= failures):
+                sys.stderr.write(("Unique solutions: %d, consecutive failures: %"+failDigits+"d, %"+failDigits+"d.\n") % (len(uniqueSeeds),fails,recycleFails))
+                fails += 1
+                mylog.info("Max recycled failures reached with master seed %d." % newSeed)
+                master = None
+            if (fails >= failures):
+                sys.stderr.write(("Unique solutions: %d, consecutive failures: %"+failDigits+"d, %"+failDigits+"d.\n") % (len(uniqueSeeds),fails,recycleFails))
+                mylog.error("Max consecutive failures reached.")
+                break
 
     mylog.info("Created %d unique solutions." % len(uniqueSeeds))
     mylog.info("Maximum common volume is %.2e." % maxCommon)



More information about the yt-svn mailing list