Author: bugman Date: Thu Nov 6 19:49:04 2014 New Revision: 26429 URL: http://svn.gna.org/viewcvs/relax?rev=26429&view=rev Log: Simplifications for all of the torsionless pseudo-ellipse frame order matrix equations. Modified: branches/frame_order_cleanup/lib/frame_order/pseudo_ellipse_torsionless.py Modified: branches/frame_order_cleanup/lib/frame_order/pseudo_ellipse_torsionless.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/lib/frame_order/pseudo_ellipse_torsionless.py?rev=26429&r1=26428&r2=26429&view=diff ============================================================================== --- branches/frame_order_cleanup/lib/frame_order/pseudo_ellipse_torsionless.py (original) +++ branches/frame_order_cleanup/lib/frame_order/pseudo_ellipse_torsionless.py Thu Nov 6 19:49:04 2014 @@ -61,22 +61,23 @@ # The surface area normalisation factor. fact = 1.0 / (6.0 * pec(theta_x, theta_y)) + fact2 = 2.0 * fact # Diagonal. - matrix[0, 0] = fact * (6.0*pi + quad(part_int_daeg2_pseudo_ellipse_torsionless_00, -pi, pi, args=(theta_x, theta_y), full_output=1)[0]) + matrix[0, 0] = fact2 * (3.0*pi + quad(part_int_daeg2_pseudo_ellipse_torsionless_00, -pi, pi, args=(theta_x, theta_y), full_output=1)[0]) matrix[1, 1] = fact * (2.0*pi + quad(part_int_daeg2_pseudo_ellipse_torsionless_11, -pi, pi, args=(theta_x, theta_y), full_output=1)[0]) - matrix[2, 2] = fact * (5.0*pi + quad(part_int_daeg2_pseudo_ellipse_torsionless_22, -pi, pi, args=(theta_x, theta_y), full_output=1)[0]) + matrix[2, 2] = fact * (5.0*pi - quad(part_int_daeg2_pseudo_ellipse_torsionless_22, -pi, pi, args=(theta_x, theta_y), full_output=1)[0]) matrix[3, 3] = matrix[1, 1] - matrix[4, 4] = fact * (6.0*pi + quad(part_int_daeg2_pseudo_ellipse_torsionless_44, -pi, pi, args=(theta_x, theta_y), full_output=1)[0]) - matrix[5, 5] = fact * (5.0*pi + quad(part_int_daeg2_pseudo_ellipse_torsionless_55, -pi, pi, args=(theta_x, theta_y), full_output=1)[0]) + matrix[4, 4] = fact2 * (3.0*pi + quad(part_int_daeg2_pseudo_ellipse_torsionless_44, -pi, pi, args=(theta_x, theta_y), full_output=1)[0]) + matrix[5, 5] = fact * (5.0*pi - quad(part_int_daeg2_pseudo_ellipse_torsionless_55, -pi, pi, args=(theta_x, theta_y), full_output=1)[0]) matrix[6, 6] = matrix[2, 2] matrix[7, 7] = matrix[5, 5] - matrix[8, 8] = fact * quad(part_int_daeg2_pseudo_ellipse_torsionless_88, -pi, pi, args=(theta_x, theta_y), full_output=1)[0] + matrix[8, 8] = fact2 * (2.0*pi - quad(part_int_daeg2_pseudo_ellipse_torsionless_88, -pi, pi, args=(theta_x, theta_y), full_output=1)[0]) # Off diagonal set 1. - matrix[0, 4] = matrix[4, 0] = fact * (2.0*pi + quad(part_int_daeg2_pseudo_ellipse_torsionless_04, -pi, pi, args=(theta_x, theta_y), full_output=1)[0]) - matrix[0, 8] = matrix[8, 0] = fact * (4.0*pi + quad(part_int_daeg2_pseudo_ellipse_torsionless_08, -pi, pi, args=(theta_x, theta_y), full_output=1)[0]) - matrix[4, 8] = matrix[8, 4] = fact * (4.0*pi + quad(part_int_daeg2_pseudo_ellipse_torsionless_48, -pi, pi, args=(theta_x, theta_y), full_output=1)[0]) + matrix[0, 4] = matrix[4, 0] = fact2 * (pi + quad(part_int_daeg2_pseudo_ellipse_torsionless_04, -pi, pi, args=(theta_x, theta_y), full_output=1)[0]) + matrix[0, 8] = matrix[8, 0] = fact2 * (2.0*pi + quad(part_int_daeg2_pseudo_ellipse_torsionless_08, -pi, pi, args=(theta_x, theta_y), full_output=1)[0]) + matrix[4, 8] = matrix[8, 4] = fact2 * (2.0*pi + quad(part_int_daeg2_pseudo_ellipse_torsionless_48, -pi, pi, args=(theta_x, theta_y), full_output=1)[0]) # Off diagonal set 2. matrix[1, 3] = matrix[3, 1] = matrix[0, 4] @@ -104,7 +105,7 @@ tmax = tmax_pseudo_ellipse(phi, x, y) # The theta integral. - return (2*cos(phi)**4*cos(tmax) + 6*cos(phi)**2*sin(phi)**2)*sin(tmax)**2 - (6*sin(phi)**4 + 2*cos(phi)**4)*cos(tmax) + return (cos(phi)**4*cos(tmax) + 3.0*cos(phi)**2.0*sin(phi)**2)*sin(tmax)**2 - (3.0*sin(phi)**4 + cos(phi)**4)*cos(tmax) def part_int_daeg2_pseudo_ellipse_torsionless_04(phi, x, y): @@ -124,7 +125,7 @@ tmax = tmax_pseudo_ellipse(phi, x, y) # The theta integral. - return (2*cos(phi)**2*sin(phi)**2*cos(tmax) - 6*cos(phi)**2*sin(phi)**2)*sin(tmax)**2 - 8*cos(phi)**2*sin(phi)**2*cos(tmax) + return (cos(phi)**2*sin(phi)**2*cos(tmax) - 3.0*cos(phi)**2*sin(phi)**2)*sin(tmax)**2 - 4.0*cos(phi)**2*sin(phi)**2*cos(tmax) def part_int_daeg2_pseudo_ellipse_torsionless_08(phi, x, y): @@ -144,7 +145,7 @@ tmax = tmax_pseudo_ellipse(phi, x, y) # The theta integral. - return 2*cos(phi)**2*cos(tmax)**3 - 6*cos(phi)**2*cos(tmax) + return cos(phi)**2*cos(tmax)**3 - 3.0*cos(phi)**2*cos(tmax) def part_int_daeg2_pseudo_ellipse_torsionless_11(phi, x, y): @@ -164,7 +165,7 @@ tmax = tmax_pseudo_ellipse(phi, x, y) # The theta integral. - return (2*cos(phi)**2*sin(phi)**2*cos(tmax) + 3*sin(phi)**4 + 3*cos(phi)**4)*sin(tmax)**2 - 8*cos(phi)**2*sin(phi)**2*cos(tmax) + return (2.0*cos(phi)**2*sin(phi)**2*cos(tmax) + 3.0*sin(phi)**4 + 3.0*cos(phi)**4)*sin(tmax)**2 - 8.0*cos(phi)**2*sin(phi)**2*cos(tmax) def part_int_daeg2_pseudo_ellipse_torsionless_22(phi, x, y): @@ -184,7 +185,7 @@ tmax = tmax_pseudo_ellipse(phi, x, y) # The theta integral. - return (2*sin(phi)**2 - 2)*cos(tmax)**3 - 3*sin(phi)**2*cos(tmax)**2 + return 2.0*cos(phi)**2*cos(tmax)**3 + 3.0*sin(phi)**2*cos(tmax)**2 def part_int_daeg2_pseudo_ellipse_torsionless_44(phi, x, y): @@ -204,7 +205,7 @@ tmax = tmax_pseudo_ellipse(phi, x, y) # The theta integral. - return (2*sin(phi)**4*cos(tmax) + 6*cos(phi)**2*sin(phi)**2)*sin(tmax)**2 - (2*sin(phi)**4 + 6*cos(phi)**4)*cos(tmax) + return (sin(phi)**4*cos(tmax) + 3.0*cos(phi)**2*sin(phi)**2)*sin(tmax)**2 - (sin(phi)**4 + 3.0*cos(phi)**4)*cos(tmax) def part_int_daeg2_pseudo_ellipse_torsionless_48(phi, x, y): @@ -224,7 +225,7 @@ tmax = tmax_pseudo_ellipse(phi, x, y) # The theta integral. - return 2*sin(phi)**2*cos(tmax)**3 - 6*sin(phi)**2*cos(tmax) + return sin(phi)**2*cos(tmax)**3 - 3.0*sin(phi)**2*cos(tmax) def part_int_daeg2_pseudo_ellipse_torsionless_55(phi, x, y): @@ -244,7 +245,7 @@ tmax = tmax_pseudo_ellipse(phi, x, y) # The theta integral. - return (2*cos(phi)**2 - 2)*cos(tmax)**3 - 3*cos(phi)**2*cos(tmax)**2 + return 2.0*sin(phi)**2*cos(tmax)**3 + 3.0*cos(phi)**2*cos(tmax)**2 def part_int_daeg2_pseudo_ellipse_torsionless_88(phi, x, y): @@ -264,7 +265,7 @@ tmax = tmax_pseudo_ellipse(phi, x, y) # The theta integral. - return 2 - 2*cos(tmax)**3 + return cos(tmax)**3 def pcs_numeric_qr_int_pseudo_ellipse_torsionless(points=None, max_points=None, theta_x=None, theta_y=None, c=None, full_in_ref_frame=None, r_pivot_atom=None, r_pivot_atom_rev=None, r_ln_pivot=None, A=None, R_eigen=None, RT_eigen=None, Ri_prime=None, pcs_theta=None, pcs_theta_err=None, missing_pcs=None):