mailr9263 - /1.3/data/diff_tensor.py


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

Header


Content

Posted by edward on July 21, 2009 - 21:39:
Author: bugman
Date: Tue Jul 21 21:39:44 2009
New Revision: 9263

URL: http://svn.gna.org/viewcvs/relax?rev=9263&view=rev
Log:
Bug fix for the diffusion tensor MC sim data structures.

All structures are now properly updated when a value for a single simulation 
changes.


Modified:
    1.3/data/diff_tensor.py

Modified: 1.3/data/diff_tensor.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/data/diff_tensor.py?rev=9263&r1=9262&r2=9263&view=diff
==============================================================================
--- 1.3/data/diff_tensor.py (original)
+++ 1.3/data/diff_tensor.py Tue Jul 21 21:39:44 2009
@@ -717,8 +717,15 @@
                 # Get the target object.
                 target_obj = getattr(self, target+'_sim')
 
+                # Missing data.
+                skip = False
+                for i in range(len(deps)):
+                    if deps[i] == None:
+                        skip = True
+
                 # Calculate and set the value.
-                target_obj.set_untouchable_item(index, fn(*deps))
+                if not skip:
+                    target_obj.set_untouchable_item(index, fn(*deps))
 
 
     def __update_object(self, param_name, target, update_if_set, depends, 
category):
@@ -829,27 +836,36 @@
 
                 # Initialise an empty array to store the MC simulation 
object elements (if it doesn't already exist).
                 if not target+'_sim' in self.__dict__:
-                    if param_name == 'Dr':
-                        "Initialising dict"
                     self.__dict__[target+'_sim'] = DiffTensorSimList(target, 
self, elements=num_sim)
 
                 # Repackage the deps structure.
                 args = []
+                skip = False
                 for i in range(num_sim):
                     args.append(())
+
+                    # Loop over the dependent structures.
                     for j in range(len(deps)):
+                        # None, so skip.
+                        if deps[j] == None or deps[j][i] == None:
+                            skip = True
+
+                        # String data type.
                         if type(deps[j]) == str:
                             args[-1] = args[-1] + (deps[j],)
+
+                        # List data type.
                         else:
                             args[-1] = args[-1] + (deps[j][i],)
 
-                # Loop over the sims.
-                for i in range(num_sim):
-                    # Calculate the value.
-                    value = fn(*args[i])
-
-                    # Set the attribute.
-                    self.__dict__[target+'_sim'][i] = value
+                # Loop over the sims and set the values.
+                if not skip:
+                    for i in range(num_sim):
+                        # Calculate the value.
+                        value = fn(*args[i])
+
+                        # Set the attribute.
+                        self.__dict__[target+'_sim'][i] = value
 
 
     def from_xml(self, diff_tensor_node):




Related Messages


Powered by MHonArc, Updated Tue Jul 21 22:40:06 2009