mailr25324 - /trunk/pipe_control/minimise.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by edward on August 27, 2014 - 10:01:
Author: bugman
Date: Wed Aug 27 10:01:54 2014
New Revision: 25324

URL: http://svn.gna.org/viewcvs/relax?rev=25324&view=rev
Log:
Improvements to the pipe_control.minimise.reset_min_stats() function.

The minimise statistics resetting is now more elegantly implemented.  And the 
sim_index keyword
argument is accepted by the function and individual Monte Carlo simulation 
elements can now be
reset.


Modified:
    trunk/pipe_control/minimise.py

Modified: trunk/pipe_control/minimise.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/pipe_control/minimise.py?rev=25324&r1=25323&r2=25324&view=diff
==============================================================================
--- trunk/pipe_control/minimise.py      (original)
+++ trunk/pipe_control/minimise.py      Wed Aug 27 10:01:54 2014
@@ -509,13 +509,13 @@
     processor.run_queue()
 
 
-def reset_min_stats(data_pipe=None, spin=None):
-    """Function for resetting the minimisation statistics.
-
-    @keyword data_pipe: The name of the data pipe to reset the minimisation 
statisics of.  This defaults to the current data pipe.
-    @type data_pipe:    str
-    @keyword spin:      The spin data container if spin specific data is to 
be reset.
-    @type spin:         SpinContainer
+def reset_min_stats(data_pipe=None, sim_index=None):
+    """Function for resetting all minimisation statistics.
+
+    @keyword data_pipe:     The name of the data pipe to reset the 
minimisation statistics of.  This defaults to the current data pipe.
+    @type data_pipe:        str
+    @keyword sim_index:     The optional Monte Carlo simulation index.
+    @type sim_index:        int
     """
 
     # The data pipe.
@@ -525,63 +525,54 @@
     # Get the data pipe.
     dp = pipes.get_pipe(data_pipe)
 
-
-    # Global minimisation statistics.
-    #################################
-
-    # Chi-squared.
-    if hasattr(dp, 'chi2'):
-        dp.chi2 = None
-
-    # Iteration count.
-    if hasattr(dp, 'iter'):
-        dp.iter = None
-
-    # Function count.
-    if hasattr(dp, 'f_count'):
-        dp.f_count = None
-
-    # Gradient count.
-    if hasattr(dp, 'g_count'):
-        dp.g_count = None
-
-    # Hessian count.
-    if hasattr(dp, 'h_count'):
-        dp.h_count = None
-
-    # Warning.
-    if hasattr(dp, 'warning'):
-        dp.warning = None
-
-
-    # Sequence specific minimisation statistics.
-    ############################################
-
-    # Loop over all spins.
-    for spin in spin_loop():
-        # Chi-squared.
-        if hasattr(spin, 'chi2'):
-            spin.chi2 = None
-
-        # Iteration count.
-        if hasattr(spin, 'iter'):
-            spin.iter = None
-
-        # Function count.
-        if hasattr(spin, 'f_count'):
-            spin.f_count = None
-
-        # Gradient count.
-        if hasattr(spin, 'g_count'):
-            spin.g_count = None
-
-        # Hessian count.
-        if hasattr(spin, 'h_count'):
-            spin.h_count = None
-
-        # Warning.
-        if hasattr(spin, 'warning'):
-            spin.warning = None
+    # The objects to reset to None.
+    names = [
+        'chi2',
+        'iter',
+        'f_count',
+        'g_count',
+        'h_count',
+        'warning'
+    ]
+
+    # Loop over the objects.
+    for name in names:
+        # The simulation name.
+        sim_name = name + '_sim'
+
+        # Global minimisation statistics.
+        if sim_index == None:
+            # Reset the object to None if it exists.
+            if hasattr(dp, name):
+                setattr(dp, name, None)
+
+        # Global MC minimisation statistics.
+        else:
+            if hasattr(dp, sim_name):
+                # The MC simulation object.
+                sim_obj = getattr(dp, sim_name)
+
+                # Reset the object to None if possible.
+                if sim_index < len(sim_obj):
+                    sim_obj[sim_index] = None
+
+        # Loop over all spins.
+        for spin in spin_loop(skip_desel=False):
+            # The minimisation statistics.
+            if sim_index == None:
+                # Reset the object to None if it exists.
+                if hasattr(spin, name):
+                    setattr(spin, name, None)
+
+            # The MC minimisation statistics.
+            else:
+                if hasattr(spin, sim_name):
+                    # The MC simulation object.
+                    sim_obj = getattr(spin, sim_name)
+
+                    # Reset the object to None if possible.
+                    if sim_index < len(sim_obj):
+                        sim_obj[sim_index] = None
 
 
 def set(val=None, error=None, param=None, scaling=None, spin_id=None):




Related Messages


Powered by MHonArc, Updated Wed Aug 27 10:20:04 2014