Author: bugman Date: Fri Nov 2 16:28:18 2012 New Revision: 17952 URL: http://svn.gna.org/viewcvs/relax?rev=17952&view=rev Log: The Ri_prime data structure now has one element per integration point and is subdivided between slaves. This is in preparation for shifting some frame order operations from the target function to the initialisation. Modified: branches/frame_order_testing/maths_fns/frame_order/__init__.py branches/frame_order_testing/maths_fns/frame_order/pseudo_ellipse.py Modified: branches/frame_order_testing/maths_fns/frame_order/__init__.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_testing/maths_fns/frame_order/__init__.py?rev=17952&r1=17951&r2=17952&view=diff ============================================================================== --- branches/frame_order_testing/maths_fns/frame_order/__init__.py (original) +++ branches/frame_order_testing/maths_fns/frame_order/__init__.py Fri Nov 2 16:28:18 2012 @@ -335,14 +335,19 @@ self.func = self.func_free_rotor_qrint # Subdivide the Sobol' data points for the slave processors. - blocks = [] + blocks_sobol = [] for block in self.subdivide(self.sobol_angles, self.processor.processor_size()): - blocks.append(block) + blocks_sobol.append(block) + + # Subdivide the Ri prime data. + blocks_Ri_prime = [] + for block in self.subdivide(self.Ri_prime, self.processor.processor_size()): + blocks_Ri_prime.append(block) # Set up the slave processors. self.slaves = [] for i in range(self.processor.processor_size()): - self.slaves.append(Slave_command_pcs_pseudo_ellipse_qrint(blocks[i], full_in_ref_frame=self.full_in_ref_frame, r_ln_pivot=self.r_ln_pivot, A=self.A_3D, Ri_prime=self.Ri_prime, pcs_theta=self.pcs_theta, pcs_theta_err=self.pcs_theta_err, missing_pcs=self.missing_pcs)) + self.slaves.append(Slave_command_pcs_pseudo_ellipse_qrint(blocks_sobol[i], full_in_ref_frame=self.full_in_ref_frame, r_ln_pivot=self.r_ln_pivot, A=self.A_3D, Ri_prime=blocks_Ri_prime[i], pcs_theta=self.pcs_theta, pcs_theta_err=self.pcs_theta_err, missing_pcs=self.missing_pcs)) # The target function aliases (Scipy numerical integration). else: @@ -390,7 +395,7 @@ # The rotation to the Frame Order eigenframe. self.R_eigen = zeros((3, 3), float64) self.R_ave = zeros((3, 3), float64) - self.Ri_prime = zeros((3, 3), float64) + self.Ri_prime = zeros((self.num_int_pts, 3, 3), float64) self.tensor_3D = zeros((3, 3), float64) # The cone axis storage and molecular frame z-axis. Modified: branches/frame_order_testing/maths_fns/frame_order/pseudo_ellipse.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_testing/maths_fns/frame_order/pseudo_ellipse.py?rev=17952&r1=17951&r2=17952&view=diff ============================================================================== --- branches/frame_order_testing/maths_fns/frame_order/pseudo_ellipse.py (original) +++ branches/frame_order_testing/maths_fns/frame_order/pseudo_ellipse.py Fri Nov 2 16:28:18 2012 @@ -733,7 +733,7 @@ @type r_ln_pivot: numpy rank-2, 3D array @keyword A: The full alignment tensor of the non-moving domain. @type A: numpy rank-2, 3D array - @keyword Ri_prime: The empty rotation matrix for the in-frame isotropic cone motion, used to calculate the PCS for each state i in the numerical integration. + @keyword Ri_prime: The subdivision of rotation matrices used to calculate the PCS for each state i in the numerical integration. @type Ri_prime: numpy rank-2, 3D array @keyword pcs_theta: The storage structure for the back-calculated PCS values. @type pcs_theta: numpy rank-2 array @@ -808,7 +808,7 @@ continue # Calculate the PCSs for this state. - pcs_pivot_motion_full_qrint(theta_i=theta, phi_i=phi, sigma_i=sigma, full_in_ref_frame=self.full_in_ref_frame, r_pivot_atom=self.r_pivot_atom, r_pivot_atom_rev=self.r_pivot_atom_rev, r_ln_pivot=self.r_ln_pivot, A=self.A, R_eigen=self.R_eigen, RT_eigen=self.RT_eigen, Ri_prime=self.Ri_prime, pcs_theta=self.pcs_theta, pcs_theta_err=self.pcs_theta_err, missing_pcs=self.missing_pcs) + pcs_pivot_motion_full_qrint(theta_i=theta, phi_i=phi, sigma_i=sigma, full_in_ref_frame=self.full_in_ref_frame, r_pivot_atom=self.r_pivot_atom, r_pivot_atom_rev=self.r_pivot_atom_rev, r_ln_pivot=self.r_ln_pivot, A=self.A, R_eigen=self.R_eigen, RT_eigen=self.RT_eigen, Ri_prime=self.Ri_prime[i], pcs_theta=self.pcs_theta, pcs_theta_err=self.pcs_theta_err, missing_pcs=self.missing_pcs) # Increment the number of points. num += 1