mailr11327 - /1.3/maths_fns/frame_order_matrix_ops.py


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

Header


Content

Posted by edward on July 21, 2010 - 13:36:
Author: bugman
Date: Wed Jul 21 13:36:52 2010
New Revision: 11327

URL: http://svn.gna.org/viewcvs/relax?rev=11327&view=rev
Log:
Modified compile_2nd_matrix_pseudo_ellipse() to rotate and return the frame 
order matrix.


Modified:
    1.3/maths_fns/frame_order_matrix_ops.py

Modified: 1.3/maths_fns/frame_order_matrix_ops.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/maths_fns/frame_order_matrix_ops.py?rev=11327&r1=11326&r2=11327&view=diff
==============================================================================
--- 1.3/maths_fns/frame_order_matrix_ops.py (original)
+++ 1.3/maths_fns/frame_order_matrix_ops.py Wed Jul 21 13:36:52 2010
@@ -34,7 +34,7 @@
 from maths_fns import order_parameters
 from maths_fns.kronecker_product import kron_prod, transpose_23
 from maths_fns.pseudo_ellipse import pec
-from maths_fns.rotation_matrix import two_vect_to_R
+from maths_fns.rotation_matrix import euler_to_R_zyz, two_vect_to_R
 
 
 def compile_2nd_matrix_iso_cone(matrix, R, z_axis, cone_axis, theta_axis, 
phi_axis, s1):
@@ -109,11 +109,19 @@
     matrix[2, 2] = fact * quad(part_int_daeg1_pseudo_ellipse_zz, -pi, pi, 
args=(theta_x, theta_y, sigma_max))[0]
 
 
-def compile_2nd_matrix_pseudo_ellipse(matrix, theta_x, theta_y, sigma_max):
+def compile_2nd_matrix_pseudo_ellipse(matrix, R, eigen_alpha, eigen_beta, 
eigen_gamma, theta_x, theta_y, sigma_max):
     """Generate the 2nd degree Frame Order matrix for the pseudo ellipse.
 
     @param matrix:      The Frame Order matrix, 2nd degree to be populated.
     @type matrix:       numpy 9D, rank-2 array
+    @param R:           The rotation matrix to be populated.
+    @type R:            numpy 3D, rank-2 array
+    @param eigen_alpha: The eigenframe rotation alpha Euler angle.
+    @type eigen_alpha:  float
+    @param eigen_beta:  The eigenframe rotation beta Euler angle.
+    @type eigen_beta:   float
+    @param eigen_gamma: The eigenframe rotation gamma Euler angle.
+    @type eigen_gamma:  float
     @param theta_x:     The cone opening angle along x.
     @type theta_x:      float
     @param theta_y:     The cone opening angle along y.
@@ -146,6 +154,24 @@
     matrix[2, 6] = matrix[6, 2] = fact * 
quad(part_int_daeg2_pseudo_ellipse_26, -pi, pi, args=(theta_x, theta_y, 
sigma_max))[0]
     matrix[5, 7] = matrix[7, 5] = fact * 
quad(part_int_daeg2_pseudo_ellipse_57, -pi, pi, args=(theta_x, theta_y, 
sigma_max))[0]
 
+    # Average position rotation.
+    euler_to_R_zyz(eigen_alpha, eigen_beta, eigen_gamma, R)
+
+    # The outer product of R.
+    R_kron = kron_prod(R, R)
+
+    # Perform the T23 transpose to obtain the Kronecker product matrix!
+    transpose_23(matrix)
+
+    # Rotate.
+    matrix = dot(R_kron, dot(matrix, transpose(R_kron)))
+
+    # Perform T23 again to return back.
+    transpose_23(matrix)
+
+    # Return the matrix.
+    return matrix
+
 
 def daeg_to_rotational_superoperator(daeg, Rsuper):
     """Convert the frame order matrix (daeg) to the rotational superoperator.




Related Messages


Powered by MHonArc, Updated Wed Jul 21 13:40:02 2010