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 = []