mailr11685 - /1.3/generic_fns/diffusion_tensor.py


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

Header


Content

Posted by edward on November 18, 2010 - 18:53:
Author: bugman
Date: Thu Nov 18 18:53:39 2010
New Revision: 11685

URL: http://svn.gna.org/viewcvs/relax?rev=11685&view=rev
Log:
Final bug fix for the input of (Dxx, Dyy, Dzz, Dxy, Dxz, Dyz) ellipsoidal 
diffusion parameters.

The numpy eigenvalue decomposition has been replaced by SVD as the eigenvalue 
decomposition could
generate a proper rotation matrix when 2 eigenvalues are the same.  The test 
suite now passes fully.


Modified:
    1.3/generic_fns/diffusion_tensor.py

Modified: 1.3/generic_fns/diffusion_tensor.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/generic_fns/diffusion_tensor.py?rev=11685&r1=11684&r2=11685&view=diff
==============================================================================
--- 1.3/generic_fns/diffusion_tensor.py (original)
+++ 1.3/generic_fns/diffusion_tensor.py Thu Nov 18 18:53:39 2010
@@ -26,8 +26,8 @@
 # Python module imports.
 from copy import deepcopy
 from math import cos, pi, sin
-from numpy import cross, float64, transpose, zeros
-from numpy.linalg import eig, norm
+from numpy import cross, dot, float64, transpose, zeros
+from numpy.linalg import norm, svd
 from operator import itemgetter
 from re import search
 
@@ -371,7 +371,10 @@
         tensor = tensor * d_scale
 
         # Eigenvalues.
-        Di, R = eig(tensor)
+        R, Di, A = svd(tensor)
+        D_diag = zeros((3, 3), float64)
+        for i in range(3):
+            D_diag[i, i] = Di[i]
 
         # Reordering structure.
         tup_struct = []




Related Messages


Powered by MHonArc, Updated Thu Nov 18 19:20:01 2010