Author: bugman Date: Wed May 28 17:47:55 2014 New Revision: 23544 URL: http://svn.gna.org/viewcvs/relax?rev=23544&view=rev Log: 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: branches/frame_order_cleanup/lib/frame_order/pseudo_ellipse.py Modified: branches/frame_order_cleanup/lib/frame_order/pseudo_ellipse.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/lib/frame_order/pseudo_ellipse.py?rev=23544&r1=23543&r2=23544&view=diff ============================================================================== --- branches/frame_order_cleanup/lib/frame_order/pseudo_ellipse.py (original) +++ branches/frame_order_cleanup/lib/frame_order/pseudo_ellipse.py Wed May 28 17:47:55 2014 @@ -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.