mailr4216 - /branches/N_state_model/generic_fns/align_tensor.py


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

Header


Content

Posted by edward on December 19, 2007 - 14:50:
Author: bugman
Date: Wed Dec 19 14:50:00 2007
New Revision: 4216

URL: http://svn.gna.org/viewcvs/relax?rev=4216&view=rev
Log:
Expansion of the singular_values() function.

The basis_set argument has been added to allow the selection between {Sxx, 
Syy, Sxy, Sxz, Syz} and
{Szz, Sxxyy, Sxy, Sxz, Syz}.


Modified:
    branches/N_state_model/generic_fns/align_tensor.py

Modified: branches/N_state_model/generic_fns/align_tensor.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/N_state_model/generic_fns/align_tensor.py?rev=4216&r1=4215&r2=4216&view=diff
==============================================================================
--- branches/N_state_model/generic_fns/align_tensor.py (original)
+++ branches/N_state_model/generic_fns/align_tensor.py Wed Dec 19 14:50:00 
2007
@@ -1156,7 +1156,7 @@
         fold_angles()
 
 
-def singular_values():
+def singular_values(basis_set=0):
     """Function for calculating the singular values of all the loaded 
tensors.
 
     The matrix on which SVD will be performed is:
@@ -1168,6 +1168,25 @@
         |  .    .    .    .    .   |
         |  .    .    .    .    .   |
         | SxxN SyyN SxyN SxzN SyzN |
+
+    This is the default unitary basis set (selected when basis_set is 0).  
Alternatively a geometric
+    basis set consisting of the stretching and skewing parameters Szz and 
Sxx-yy respectively
+    replacing Sxx and Syy can be chosen by setting basis_set to 1.  The 
matrix in this case is:
+
+        | Szz1 Sxxyy1 Sxy1 Sxz1 Syz1 |
+        | Szz2 Sxxyy2 Sxy2 Sxz2 Syz2 |
+        | Szz3 Sxxyy3 Sxy3 Sxz3 Syz3 |
+        |  .     .     .    .    .   |
+        |  .     .     .    .    .   |
+        |  .     .     .    .    .   |
+        | SzzN SxxyyN SxyN SxzN SyzN |
+
+    The relationships between the geometric and unitary basis sets are:
+
+        Szz = - Sxx - Syy,
+        Sxxyy = Sxx - Syy,
+
+    The SVD values and condition number are dependendent upon the basis set 
chosen.
     """
 
     # Alias the current data pipe.
@@ -1179,12 +1198,21 @@
     # Pack the elements.
     i = 0
     for key in cdp.align_tensor.keys():
-        # The elements.
-        matrix[i,0] = cdp.align_tensor[key].Sxx
-        matrix[i,1] = cdp.align_tensor[key].Syy
-        matrix[i,2] = cdp.align_tensor[key].Sxy
-        matrix[i,3] = cdp.align_tensor[key].Sxz
-        matrix[i,4] = cdp.align_tensor[key].Syz
+        # Unitary basis set.
+        if basis_set == 0:
+            matrix[i,0] = cdp.align_tensor[key].Sxx
+            matrix[i,1] = cdp.align_tensor[key].Syy
+            matrix[i,2] = cdp.align_tensor[key].Sxy
+            matrix[i,3] = cdp.align_tensor[key].Sxz
+            matrix[i,4] = cdp.align_tensor[key].Syz
+
+        # Geometric basis set.
+        elif basis_set == 1:
+            matrix[i,0] = cdp.align_tensor[key].Szz
+            matrix[i,1] = cdp.align_tensor[key].Sxxyy
+            matrix[i,2] = cdp.align_tensor[key].Sxy
+            matrix[i,3] = cdp.align_tensor[key].Sxz
+            matrix[i,4] = cdp.align_tensor[key].Syz
 
         # Increment the index.
         i = i + 1




Related Messages


Powered by MHonArc, Updated Wed Dec 19 15:20:35 2007