Author: tlinnet
Date: Wed May 21 20:36:36 2014
New Revision: 23316
URL: http://svn.gna.org/viewcvs/relax?rev=23316&view=rev
Log:
Extremely important fix to the model B14.
This was discovered by author Andrew Baldwin of the inspection of his code
in relax.
bug #22021: (https://gna.org/bugs/?22021) Model B14 shows bad fitting to
data.
The implementation was performed wrong for calculation of g3 and g4.
The implementations should be performed by trigonometric functions.
The model B14 was previously in a state of non-functioning.
The B14 model now shows excellent performance.
For the challenging case of data created with numerical model NS CPMG
2-site 3D:
sfrq_1 = 599.8908617*1E6
time_T2_1 = 0.06
ncycs_1 = [2, 4, 8, 10, 20, 30, 40, 60]
sfrq_2 = 499.8908617*1E6
time_T2_2 = 0.05
ncycs_2 = [2, 4, 8, 10, 30, 35, 40, 50]
r2 = 10. rad/s.
kex: 1000 rad/s
pA: 0.99
dw: 2. ppm
CR72 would fit:
----------
CR72 Ala :1@N r2 599.9 GRID=10.116 MIN=10.000 SET=10.000 RELC=0.000
CR72 Ala :1@N r2 499.9 GRID=10.080 MIN=9.999 SET=10.000 RELC=0.000
CR72 Ala :1@N pA GRID=0.929 MIN=0.990 SET=0.990 RELC=0.000
CR72 Ala :1@N dw GRID=1.429 MIN=1.925 SET=2.000 RELC=0.039
CR72 Ala :1@N kex GRID=5714.714 MIN=1034.721 SET=1000.000 RELC=0.034
B14 fits:
-----------
B14 Ala :1@N r2 599.9 GRID=10.116 MIN=10.000 SET=10.000 RELC=0.000
B14 Ala :1@N r2 499.9 GRID=10.080 MIN=10.000 SET=10.000 RELC=0.000
B14 Ala :1@N pA GRID=0.929 MIN=0.990 SET=0.990 RELC=0.000
B14 Ala :1@N dw GRID=1.429 MIN=2.000 SET=2.000 RELC=0.000
B14 Ala :1@N kex GRID=10000.000 MIN=1000.001 SET=1000.000 RELC=0.000
Modified:
trunk/lib/dispersion/b14.py
Modified: trunk/lib/dispersion/b14.py
URL:
http://svn.gna.org/viewcvs/relax/trunk/lib/dispersion/b14.py?rev=23316&r1=23315&r2=23316&view=diff
==============================================================================
--- trunk/lib/dispersion/b14.py (original)
+++ trunk/lib/dispersion/b14.py Wed May 21 20:36:36 2014
@@ -111,7 +111,7 @@
# Python module imports.
import numpy
-from numpy import arccosh, array, cos, cosh, in1d, log, nonzero, sin,
sinh, sqrt, power
+from numpy import arccosh, arctan2, array, cos, cosh, in1d, log, nonzero,
sin, sinh, sqrt, power
# Repetitive calculations (to speed up calculations).
g_fact = 1/sqrt(2)
@@ -161,11 +161,12 @@
# Repetitive calculations (to speed up calculations).
dw2 = dw**2
two_tcp = 2.0 * tcp
- sqrt_zeta2_Psi2 = sqrt(zeta**2 + Psi**2)
# Get the real and imaginary components of the exchange induced shift.
- g3 = g_fact * sqrt( Psi + sqrt_zeta2_Psi2)
- g4 = g_fact * sqrt(-Psi + sqrt_zeta2_Psi2)
+ # Trigonometric functions faster than square roots.
+ quad_zeta2_Psi2 = (zeta**2 + Psi**2)**0.25
+ g3 = cos(0.5 * arctan2(-zeta, Psi)) * quad_zeta2_Psi2
+ g4 = sin(0.5 * arctan2(-zeta, Psi)) * quad_zeta2_Psi2
# Repetitive calculations (to speed up calculations).
g32 = g3**2
_______________________________________________
relax (http://www.nmr-relax.com)
This is the relax-commits mailing list
relax-commits@xxxxxxx
To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-commits