mailr14950 - in /1.3/test_suite/system_tests: frame_order.py scripts/frame_order/cam/rotor2.py


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

Header


Content

Posted by edward on November 02, 2011 - 10:22:
Author: bugman
Date: Wed Nov  2 10:22:14 2011
New Revision: 14950

URL: http://svn.gna.org/viewcvs/relax?rev=14950&view=rev
Log:
Created the Frame_order.test_cam_rotor2 system test.

This checks the frame order rotor model whereby the rotation axis is 
perpendicular to the pivot-CoM
vector.


Added:
    1.3/test_suite/system_tests/scripts/frame_order/cam/rotor2.py
      - copied, changed from r14947, 
1.3/test_suite/system_tests/scripts/frame_order/cam/free_rotor2.py
Modified:
    1.3/test_suite/system_tests/frame_order.py

Modified: 1.3/test_suite/system_tests/frame_order.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/test_suite/system_tests/frame_order.py?rev=14950&r1=14949&r2=14950&view=diff
==============================================================================
--- 1.3/test_suite/system_tests/frame_order.py (original)
+++ 1.3/test_suite/system_tests/frame_order.py Wed Nov  2 10:22:14 2011
@@ -35,6 +35,7 @@
 from data import Relax_data_store; ds = Relax_data_store()
 import dep_check
 from maths_fns.coord_transform import spherical_to_cartesian
+from maths_fns.rotation_matrix import euler_to_R_zyz
 from physical_constants import N15_CSA, NH_BOND_LENGTH
 from relax_io import DummyFileObject, open_read_file
 from status import Status; status = Status()
@@ -250,6 +251,49 @@
             self.assertAlmostEqual(ave_pos.x[i], orig_pos.x[i], 1)
             self.assertAlmostEqual(ave_pos.y[i], orig_pos.y[i], 1)
             self.assertAlmostEqual(ave_pos.z[i], orig_pos.z[i], 1)
+
+
+    def test_cam_rotor2(self):
+        """Test the second rotor frame order model of CaM."""
+
+        # Execute the script.
+        self.interpreter.run(script_file=status.install_path + 
sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'frame_order'+sep+'cam'+sep+'rotor2.py')
+
+        # Switch to the correct data pipe.
+        self.interpreter.pipe.switch('frame order')
+
+        # The base data.
+        pivot = array([ 37.254, 0.5, 16.7465])
+        com = array([ 26.83678091, -12.37906417,  28.34154128])
+        pivot_com_axis = com - pivot
+        rot_axis = array([ 0.40416535,  0.49967956,  0.76614014])
+
+        # The average position checks.
+        real_pos = array([[-0.31334613, -0.88922808, -0.33329811],
+                          [ 0.93737972, -0.23341205, -0.2585306 ],
+                          [ 0.15209688, -0.39343645,  0.90668313]], float64)
+        ave_pos = zeros((3, 3), float64)
+        euler_to_R_zyz(cdp.ave_pos_alpha, cdp.ave_pos_beta, 
cdp.ave_pos_gamma, ave_pos)
+        print("\nReal domain position:\n%s" % repr(real_pos))
+        print("Fitted domain position:\n%s" % repr(ave_pos))
+        for i in range(3):
+            for j in range(3):
+                self.assertAlmostEqual(ave_pos[i, j], real_pos[i, j], 1)
+
+        # The axis system.
+        axis_sys = zeros((3, 3), float64)
+        euler_to_R_zyz(cdp.eigen_alpha, cdp.eigen_beta, cdp.eigen_gamma, 
axis_sys)
+        print("\nReal rotation axis:   %s" % repr(rot_axis))
+        print("Fitted rotation axis: %s" % repr(axis_sys[:,2]))
+
+        # Check the angle between the real and fitted rotation axes.
+        angle = acos(dot(axis_sys[:,2], rot_axis))
+        if angle > pi/2:
+            angle = acos(dot(axis_sys[:,2], -rot_axis))
+        self.assertAlmostEqual(angle, 0.0, 2)
+
+        # Check the cone angle of 60 deg.
+        self.assertAlmostEqual(cdp.cone_sigma_max * 2.0, 60.0 / 360.0 * 2.0 
* pi, 2)
 
 
     def test_model_free_rotor(self):

Copied: 1.3/test_suite/system_tests/scripts/frame_order/cam/rotor2.py (from 
r14947, 1.3/test_suite/system_tests/scripts/frame_order/cam/free_rotor2.py)
URL: 
http://svn.gna.org/viewcvs/relax/1.3/test_suite/system_tests/scripts/frame_order/cam/rotor2.py?p2=1.3/test_suite/system_tests/scripts/frame_order/cam/rotor2.py&p1=1.3/test_suite/system_tests/scripts/frame_order/cam/free_rotor2.py&r1=14947&r2=14950&rev=14950&view=diff
==============================================================================
--- 1.3/test_suite/system_tests/scripts/frame_order/cam/free_rotor2.py 
(original)
+++ 1.3/test_suite/system_tests/scripts/frame_order/cam/rotor2.py Wed Nov  2 
10:22:14 2011
@@ -1,4 +1,4 @@
-# Script for optimising the free rotor frame order test model of CaM.
+# Script for optimising the second rotor frame order test model of CaM.
 
 # Python module imports.
 from numpy import array, float64, transpose, zeros
@@ -40,7 +40,7 @@
 
         # The file paths.
         PATH_N_DOM = DATA_PATH
-        PATH_C_DOM = PATH_N_DOM+sep+'free_rotor2'+sep
+        PATH_C_DOM = PATH_N_DOM+sep+'rotor2'+sep
 
         # Create the data pipe.
         pipe.create(pipe_name='frame order', pipe_type='frame order')
@@ -58,16 +58,19 @@
             align_tensor.reduction(full_tensor=full[i], red_tensor=red[i])
 
         # Select the model.
-        frame_order.select_model('free rotor')
+        frame_order.select_model('rotor')
 
         # Set the reference domain.
         frame_order.ref_domain('N')
 
-        # Set the parameters to that after a 21 increment grid search (for a 
massive speed up).
-        value.set(val=2.2143, param='ave_pos_beta')
-        value.set(val=0.897, param='ave_pos_gamma')
-        value.set(val=1.570, param='axis_theta')
-        value.set(val=1.1968, param='axis_phi')
+        # Set the parameters to that after a 11 increment grid search (for a 
massive speed up).
+        value.set(val=1.7136, param='ave_pos_alpha')
+        value.set(val=0.0, param='ave_pos_beta')
+        value.set(val=0.0, param='ave_pos_gamma')
+        value.set(val=1.7136, param='eigen_alpha')
+        value.set(val=0.0, param='eigen_beta')
+        value.set(val=1.7136, param='eigen_gamma')
+        value.set(val=1.3138, param='cone_sigma_max')
 
         # Optimise.
         minimise('simplex', constraints=False)




Related Messages


Powered by MHonArc, Updated Wed Nov 02 11:00:02 2011