mailr26335 - /trunk/pipe_control/interatomic.py


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

Header


Content

Posted by edward on October 22, 2014 - 10:08:
Author: bugman
Date: Wed Oct 22 10:08:50 2014
New Revision: 26335

URL: http://svn.gna.org/viewcvs/relax?rev=26335&view=rev
Log:
Modified the interatom.unit_vectors user function backend to handle missing 
atomic positions.

This is to match the structure.load_spins user function change whereby 
missing atomic positions are
now set to the value of None.


Modified:
    trunk/pipe_control/interatomic.py

Modified: trunk/pipe_control/interatomic.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/pipe_control/interatomic.py?rev=26335&r1=26334&r2=26335&view=diff
==============================================================================
--- trunk/pipe_control/interatomic.py   (original)
+++ trunk/pipe_control/interatomic.py   Wed Oct 22 10:08:50 2014
@@ -742,10 +742,20 @@
             # Calculate all vectors.
             vector_list = []
             for i in range(len(spin1.pos)):
-                vector_list.append(spin2.pos[i] - spin1.pos[i])
+                # No structural information.
+                if spin1.pos[i] == None or spin2.pos[i] == None:
+                    vector_list.append(None)
+
+                # All data is present.
+                else:
+                    vector_list.append(spin2.pos[i] - spin1.pos[i])
 
         # Unit vectors.
         for i in range(len(vector_list)):
+            # No vector.
+            if vector_list[i] == None:
+                continue
+
             # Normalisation factor.
             norm_factor = norm(vector_list[i])
 
@@ -760,9 +770,12 @@
         # Average.
         if ave:
             ave_vector = zeros(3, float64)
+            count = 0
             for i in range(len(vector_list)):
-                ave_vector = ave_vector + vector_list[i]
-            vector_list = [ave_vector / len(vector_list)]
+                if vector_list[i] != None:
+                    ave_vector = ave_vector + vector_list[i]
+                    count += 1
+            vector_list = [ave_vector / count]
 
         # Convert to a single vector if needed.
         if len(vector_list) == 1:
@@ -774,7 +787,7 @@
         # We have a vector!
         no_vectors = False
 
-        # Print out.
+        # Printout.
         num = 1
         if not is_float(vector_list[0], raise_error=False):
             num = len(vector_list)




Related Messages


Powered by MHonArc, Updated Wed Oct 22 10:40:02 2014