Author: bugman Date: Tue Aug 3 15:17:54 2010 New Revision: 11391 URL: http://svn.gna.org/viewcvs/relax?rev=11391&view=rev Log: Added target function aliases for all 12 parameteric restriction models of the pseudo-ellipse. Modified: 1.3/maths_fns/frame_order.py Modified: 1.3/maths_fns/frame_order.py URL: http://svn.gna.org/viewcvs/relax/1.3/maths_fns/frame_order.py?rev=11391&r1=11390&r2=11391&view=diff ============================================================================== --- 1.3/maths_fns/frame_order.py (original) +++ 1.3/maths_fns/frame_order.py Tue Aug 3 15:17:54 2010 @@ -82,28 +82,35 @@ if full_tensors != None: self.__init_tensors() - # The rigid model. - if model == 'rigid': - # Alias the target function. + # Optimisation to the 2nd degree Frame Order matrix components directly. + if model == 'iso cone, free rotor' and frame_order_2nd != None: + self.__init_iso_cone_elements(frame_order_2nd) + + # The target function aliases. + if model == 'pseudo-ellipse': + self.func = self.func_pseudo_ellipse + elif model == 'pseudo-ellipse, torsionless': + self.func = self.func_pseudo_ellipse_torsionless + elif model == 'pseudo-ellipse, free rotor': + self.func = self.func_pseudo_ellipse_free_rotor + elif model == 'iso cone': + self.func = self.func_iso_cone + elif model == 'iso cone, torsionless': + self.func = self.func_iso_cone_torsionless + elif model == 'iso cone, free rotor': + self.func = self.func_iso_cone_free_rotor + elif model == 'line': + self.func = self.func_line + elif model == 'line, torsionless': + self.func = self.func_line_torsionless + elif model == 'line, free rotor': + self.func = self.func_line_free_rotor + elif model == 'rotor': + self.func = self.func_rotor + elif model == 'rigid': self.func = self.func_rigid - - # Isotropic cone model. - if model == 'iso cone': - # Optimisation to the 2nd degree Frame Order matrix components directly. - if frame_order_2nd != None: - self.__init_iso_cone_elements(frame_order_2nd) - - # The cone axis storage and molecular frame z-axis. - self.cone_axis = zeros(3, float64) - self.z_axis = array([0, 0, 1], float64) - - # Alias the target function. - self.func = self.func_iso_cone - - # Pseudo-ellipse cone model. - elif model == 'pseudo-ellipse': - # Alias the target function. - self.func = self.func_pseudo_ellipse + elif model == 'free rotor': + self.func = self.func_free_rotor def __init_tensors(self): @@ -127,6 +134,10 @@ self.rot = zeros((3, 3), float64) self.tensor_3D = zeros((3, 3), float64) + # The cone axis storage and molecular frame z-axis. + self.cone_axis = zeros(3, float64) + self.z_axis = array([0, 0, 1], float64) + # Initialise the Frame Order matrices. self.frame_order_2nd = zeros((9, 9), float64) @@ -199,7 +210,7 @@ return chi2(self.red_tensors, self.red_tensors_bc, self.red_errors) - def func_iso_cone(self, params): + def func_iso_cone_free_rotor(self, params): """Target function for isotropic cone model optimisation using the alignment tensors. This function optimises against alignment tensors.