mailr25872 - /branches/frame_order_cleanup/target_functions/frame_order.py


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

Header


Content

Posted by edward on September 17, 2014 - 17:11:
Author: bugman
Date: Wed Sep 17 17:11:28 2014
New Revision: 25872

URL: http://svn.gna.org/viewcvs/relax?rev=25872&view=rev
Log:
Changed the creation of the Sobol' points in the frame order target function.

For increased accuracy of the numerical PCS integration, the first 1000 
points of the Sobol'
sequence are now skipped to avoid any bias.  For speed, the axis order of the 
Sobol' torsion-tilt
angles has been swapped so that the numpy.swapaxes() function call is no 
longer required in the
lib.frame_order.*.pcs_numeric_int_*() functions.

Modified:
    branches/frame_order_cleanup/target_functions/frame_order.py

Modified: branches/frame_order_cleanup/target_functions/frame_order.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/target_functions/frame_order.py?rev=25872&r1=25871&r2=25872&view=diff
==============================================================================
--- branches/frame_order_cleanup/target_functions/frame_order.py        
(original)
+++ branches/frame_order_cleanup/target_functions/frame_order.py        Wed 
Sep 17 17:11:28 2014
@@ -25,7 +25,7 @@
 # Python module imports.
 from copy import deepcopy
 from math import acos, cos, pi, sin, sqrt
-from numpy import add, array, dot, float64, ones, outer, subtract, 
transpose, uint8, zeros
+from numpy import add, array, dot, float64, ones, outer, subtract, swapaxes, 
transpose, uint8, zeros
 
 # relax module imports.
 from extern.sobol.sobol_lib import i4_sobol_generate
@@ -1208,12 +1208,12 @@
         total_num = int(self.sobol_max_points * self.sobol_oversample * 
10**m)
 
         # Initialise.
-        self.sobol_angles = zeros((total_num, m), float64)
+        self.sobol_angles = zeros((m, total_num), float64)
         self.Ri_prime = zeros((total_num, 3, 3), float64)
         self.Ri2_prime = zeros((total_num, 3, 3), float64)
 
         # The Sobol' points.
-        points = i4_sobol_generate(m, total_num, 0)
+        points = i4_sobol_generate(m, total_num, 1000)
 
         # Loop over the points.
         for i in range(total_num):
@@ -1225,22 +1225,22 @@
                 # The tilt angle - the angle of rotation about the x-y plane 
rotation axis.
                 if dims[j] in ['theta']:
                     theta = acos(2.0*points[j, i] - 1.0)
-                    self.sobol_angles[i, j] = theta
+                    self.sobol_angles[j, i] = theta
 
                 # The angle defining the x-y plane rotation axis.
                 if dims[j] in ['phi']:
                     phi = 2.0 * pi * points[j, i]
-                    self.sobol_angles[i, j] = phi
+                    self.sobol_angles[j, i] = phi
 
                 # The 1st torsion angle - the angle of rotation about the z' 
axis (or y' for the double motion models).
                 if dims[j] in ['sigma']:
                     sigma = 2.0 * pi * (points[j, i] - 0.5)
-                    self.sobol_angles[i, j] = sigma
+                    self.sobol_angles[j, i] = sigma
 
                 # The 2nd torsion angle - the angle of rotation about the x' 
axis.
                 if dims[j] in ['sigma2']:
                     sigma2 = 2.0 * pi * (points[j, i] - 0.5)
-                    self.sobol_angles[i, j] = sigma2
+                    self.sobol_angles[j, i] = sigma2
 
             # Pre-calculate the rotation matrices for the double motion 
models.
             if 'sigma2' in dims:




Related Messages


Powered by MHonArc, Updated Wed Sep 17 17:20:03 2014