Author: bugman Date: Thu Oct 1 20:44:41 2015 New Revision: 27922 URL: http://svn.gna.org/viewcvs/relax?rev=27922&view=rev Log: Merged revisions 23544 via svnmerge from svn+ssh://bugman@xxxxxxxxxxx/svn/relax/branches/frame_order_cleanup ........ r23544 | bugman | 2014-05-28 17:47:55 +0200 (Wed, 28 May 2014) | 7 lines Attempt to speed up the pseudo-elliptic frame order models. The quasi-random numerical integration of the PCS for the pseudo-ellipse has been modified so that the torsion angle check for each Sobol' point is preformed before the tmax_pseudo_ellipse() function call. A new check that the tilt angle is less than cone_theta_y, the larger of the two cone angles, has also been added to avoid tmax_pseudo_ellipse() when the theta tilt angle is outside of an isotropic cone defined by cone_theta_y. ........ Modified: trunk/ (props changed) trunk/lib/frame_order/pseudo_ellipse.py Propchange: trunk/ ------------------------------------------------------------------------------ --- svnmerge-integrated (original) +++ svnmerge-integrated Thu Oct 1 20:44:41 2015 @@ -1 +1 @@ -/branches/frame_order_cleanup:1-23195,23197-23205,23208-23322,23326-23391,23394-23424,23427-23467 +/branches/frame_order_cleanup:1-23195,23197-23205,23208-23322,23326-23391,23394-23424,23427-23467,23544 Modified: trunk/lib/frame_order/pseudo_ellipse.py URL: http://svn.gna.org/viewcvs/relax/trunk/lib/frame_order/pseudo_ellipse.py?rev=27922&r1=27921&r2=27922&view=diff ============================================================================== --- trunk/lib/frame_order/pseudo_ellipse.py (original) +++ trunk/lib/frame_order/pseudo_ellipse.py Thu Oct 1 20:44:41 2015 @@ -632,13 +632,19 @@ # Unpack the point. theta, phi, sigma = points[i] + # Check the torsion angle first, for speed. + if sigma > sigma_max or sigma < -sigma_max: + continue + + # As theta_x <= theta_y, check if theta is outside of the isotropic cone defined by theta_y to minimise calculations for speed. + if theta > theta_y: + continue + # Calculate theta_max. theta_max = tmax_pseudo_ellipse(phi, theta_x, theta_y) # Outside of the distribution, so skip the point. if theta > theta_max: - continue - if sigma > sigma_max or sigma < -sigma_max: continue # Calculate the PCSs for this state.