mailr15079 - /branches/frame_order_testing/specific_fns/frame_order.py


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

Header


Content

Posted by edward on December 12, 2011 - 14:06:
Author: bugman
Date: Mon Dec 12 14:06:11 2011
New Revision: 15079

URL: http://svn.gna.org/viewcvs/relax?rev=15079&view=rev
Log:
Fixes for the frame order Monte Carlo simulations.

The Euler angle errors are now properly calculated as the simulation values 
are wrapped +/- pi
around the fitted value, rather than between 0 and 2pi.  The proper tensors 
are now also used for
the creation of the simulation data.


Modified:
    branches/frame_order_testing/specific_fns/frame_order.py

Modified: branches/frame_order_testing/specific_fns/frame_order.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/frame_order_testing/specific_fns/frame_order.py?rev=15079&r1=15078&r2=15079&view=diff
==============================================================================
--- branches/frame_order_testing/specific_fns/frame_order.py (original)
+++ branches/frame_order_testing/specific_fns/frame_order.py Mon Dec 12 
14:06:11 2011
@@ -199,26 +199,6 @@
 
         # Return the matrix.
         return scaling_matrix
-
-
-    def _back_calc(self):
-        """Back-calculation of the reduced alignment tensor.
-
-        @return:    The reduced alignment tensors.
-        @rtype:     numpy array
-        """
-
-        # Set up the target function for direct calculation.
-        model, param_vector, data_types, scaling_matrix = 
self._target_fn_setup()
-
-        # Make a single function call.  This will cause back calculation and 
the data will be stored in the class instance.
-        model.func(param_vector)
-
-        # Store the back-calculated tensors.
-        self._store_bc_data(model)
-
-        # Return the reduced tensors.
-        return model.A_5D_bc
 
 
     def _base_data_types(self):
@@ -1285,19 +1265,19 @@
         if sim_index != None:
             # Average position parameters.
             if ave_pos_alpha != None:
-                cdp.ave_pos_alpha_sim[sim_index] = 
wrap_angles(ave_pos_alpha, 0.0, 2.0*pi)
+                cdp.ave_pos_alpha_sim[sim_index] = 
wrap_angles(ave_pos_alpha, cdp.ave_pos_alpha-pi, cdp.ave_pos_alpha+pi)
             if ave_pos_beta != None:
-                cdp.ave_pos_beta_sim[sim_index] = wrap_angles(ave_pos_beta, 
0.0, 2.0*pi)
+                cdp.ave_pos_beta_sim[sim_index] = wrap_angles(ave_pos_beta, 
cdp.ave_pos_beta-pi, cdp.ave_pos_beta+pi)
             if ave_pos_gamma != None:
-                cdp.ave_pos_gamma_sim[sim_index] = 
wrap_angles(ave_pos_gamma, 0.0, 2.0*pi)
+                cdp.ave_pos_gamma_sim[sim_index] = 
wrap_angles(ave_pos_gamma, cdp.ave_pos_gamma-pi, cdp.ave_pos_gamma+pi)
 
             # Eigenframe parameters.
             if eigen_alpha != None:
-                cdp.eigen_alpha_sim[sim_index] = wrap_angles(eigen_alpha, 
0.0, 2.0*pi)
+                cdp.eigen_alpha_sim[sim_index] = wrap_angles(eigen_alpha, 
cdp.eigen_alpha-pi, cdp.eigen_alpha+pi)
             if eigen_beta != None:
-                cdp.eigen_beta_sim[sim_index] =  wrap_angles(eigen_beta,  
0.0, 2.0*pi)
+                cdp.eigen_beta_sim[sim_index] =  wrap_angles(eigen_beta, 
cdp.eigen_beta-pi, cdp.eigen_beta+pi)
             if eigen_gamma != None:
-                cdp.eigen_gamma_sim[sim_index] = wrap_angles(eigen_gamma, 
0.0, 2.0*pi)
+                cdp.eigen_gamma_sim[sim_index] = wrap_angles(eigen_gamma, 
cdp.eigen_gamma-pi, cdp.eigen_gamma+pi)
             if axis_theta != None:
                 cdp.axis_theta_sim[sim_index] = axis_theta
             if axis_phi != None:
@@ -1453,12 +1433,14 @@
 
         # Alignment tensor data.
         if data_id == 'A':
-            # Back calculate the tensors.
-            red_tensors_bc = self._back_calc()
-
-            # Append the data.
-            for i in range(len(red_tensors_bc)):
-                mc_data.append(red_tensors_bc[i])
+            # Loop over the full tensors.
+            for i, tensor in self._tensor_loop(red=False):
+                # Append the data.
+                mc_data.append(tensor.Axx)
+                mc_data.append(tensor.Ayy)
+                mc_data.append(tensor.Axy)
+                mc_data.append(tensor.Axz)
+                mc_data.append(tensor.Ayz)
 
         # The spin specific data.
         else:
@@ -1944,12 +1926,14 @@
 
         # Alignment tensor data.
         if data_id == 'A':
-            # Get the tensor data structures.
-            full_tensors, full_tensor_err, full_in_ref_frame = 
self._minimise_setup_tensors()
-
-            # Return the errors.
-            for i in range(len(full_tensor_err)):
-                mc_errors.append(full_tensor_err[i])
+            # Loop over the full tensors.
+            for i, tensor in self._tensor_loop(red=False):
+                # Append the errors.
+                mc_errors.append(tensor.Axx_err)
+                mc_errors.append(tensor.Ayy_err)
+                mc_errors.append(tensor.Axy_err)
+                mc_errors.append(tensor.Axz_err)
+                mc_errors.append(tensor.Ayz_err)
 
         # The spin specific data.
         else:




Related Messages


Powered by MHonArc, Updated Mon Dec 12 14:40:01 2011