Author: bugman Date: Mon Nov 25 14:11:31 2013 New Revision: 21642 URL: http://svn.gna.org/viewcvs/relax?rev=21642&view=rev Log: Returned the 'MMQ 2-site' model equations to those of the Korzhnev et al., 2004 paper. These equations were not incorrect. Modified: branches/relax_disp/lib/dispersion/mmq_2site.py Modified: branches/relax_disp/lib/dispersion/mmq_2site.py URL: http://svn.gna.org/viewcvs/relax/branches/relax_disp/lib/dispersion/mmq_2site.py?rev=21642&r1=21641&r2=21642&view=diff ============================================================================== --- branches/relax_disp/lib/dispersion/mmq_2site.py (original) +++ branches/relax_disp/lib/dispersion/mmq_2site.py Mon Nov 25 14:11:31 2013 @@ -139,33 +139,33 @@ # Special case of 1 CPMG block - the power is zero. if power[i] == 1: - # M2.M1 - A = M2_M1 - - # M2*.M1* - B = M2_M1_star - - # M1.M2 - C = M1_M2 - - # M1*.M2* - D = M1_M2_star + # M1.M2. + A = M1_M2 + + # M1*.M2*. + B = M1_M2_star + + # M2.M1. + C = M2_M1 + + # M2*.M1*. + D = M2_M1_star # Matrices for even number of CPMG blocks. elif power[i] % 2 == 0: # The power factor (only calculate once). fact = int(floor(power[i] / 2)) - # (M1.M2.M2.M1)^(n/2) + # (M1.M2.M2.M1)^(n/2). A = square_matrix_power(M1_M2_M2_M1, fact) - # (M2*.M1*.M1*.M2*)^(n/2) + # (M2*.M1*.M1*.M2*)^(n/2). B = square_matrix_power(M2_M1_M1_M2_star, fact) - # (M2.M1.M1.M2)^(n/2) + # (M2.M1.M1.M2)^(n/2). C = square_matrix_power(M2_M1_M1_M2, fact) - # (M1*.M2*.M2*.M1*)^(n/2) + # (M1*.M2*.M2*.M1*)^(n/2). D = square_matrix_power(M1_M2_M2_M1_star, fact) # Matrices for odd number of CPMG blocks. @@ -173,26 +173,26 @@ # The power factor (only calculate once). fact = int(floor((power[i] - 1) / 2)) - # M2.M1.(M1.M2.M2.M1)^((n-1)/2) + # (M1.M2.M2.M1)^((n-1)/2).M1.M2. A = square_matrix_power(M1_M2_M2_M1, fact) - A = dot(M2_M1, A) - - # M2*.M1*.(M1*.M2*.M2*.M1*)^((n-1)/2) + A = dot(A, M1_M2) + + # (M1*.M2*.M2*.M1*)^((n-1)/2).M1*.M2*. B = square_matrix_power(M1_M2_M2_M1_star, fact) - B = dot(M2_M1_star, B) - - # M1.M2.(M2.M1.M1.M2)^((n-1)/2) + B = dot(B, M1_M2_star) + + # (M2.M1.M1.M2)^((n-1)/2).M2.M1. C = square_matrix_power(M2_M1_M1_M2, fact) - C = dot(M1_M2, C) - - # M1*.M2*.(M2*.M1*.M1*.M2*)^((n-1)/2) + C = dot(C, M2_M1) + + # (M2*.M1*.M1*.M2*)^((n-1)/2).M2*.M1*. D = square_matrix_power(M2_M1_M1_M2_star, fact) - D = dot(M1_M2_star, D) + D = dot(D, M2_M1_star) # The next lines calculate the R2eff using a two-point approximation, i.e. assuming that the decay is mono-exponential. - B_A = dot(B, A) - D_C = dot(D, C) - Mx = dot(dot(F_vector, (B_A + D_C)), M0) + A_B = dot(A, B) + C_D = dot(C, D) + Mx = dot(dot(F_vector, (A_B + C_D)), M0) Mx = Mx.real / 2.0 if Mx <= 0.0 or isNaN(Mx): back_calc[i] = 1e99