mailr4046 - /branches/N_state_model/generic_fns/align_tensor.py


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

Header


Content

Posted by edward on November 26, 2007 - 16:57:
Author: bugman
Date: Mon Nov 26 16:57:43 2007
New Revision: 4046

URL: http://svn.gna.org/viewcvs/relax?rev=4046&view=rev
Log:
Implemented the generic_fns.align_tensor.fold_angles() function.


Modified:
    branches/N_state_model/generic_fns/align_tensor.py

Modified: branches/N_state_model/generic_fns/align_tensor.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/N_state_model/generic_fns/align_tensor.py?rev=4046&r1=4045&r2=4046&view=diff
==============================================================================
--- branches/N_state_model/generic_fns/align_tensor.py (original)
+++ branches/N_state_model/generic_fns/align_tensor.py Mon Nov 26 16:57:43 
2007
@@ -198,14 +198,9 @@
 
 
 def fold_angles(sim_index=None):
-    """Wrap the Euler or spherical angles and remove the glide reflection 
and translational symmetries.
+    """Wrap the Euler angles and remove the glide reflection and 
translational symmetries.
 
     Wrap the angles such that
-
-        0 <= theta <= pi,
-        0 <= phi <= 2pi,
-
-    and
 
         0 <= alpha <= 2pi,
         0 <= beta <= pi,
@@ -214,11 +209,6 @@
 
     For the simulated values, the angles are wrapped as
 
-        theta - pi/2 <= theta_sim <= theta + pi/2
-        phi - pi <= phi_sim <= phi + pi
-
-    and
-
         alpha - pi <= alpha_sim <= alpha + pi
         beta - pi/2 <= beta_sim <= beta + pi/2
         gamma - pi <= gamma_sim <= gamma + pi
@@ -236,119 +226,49 @@
     # Wrap the angles.
     ##################
 
-    # Spheroid.
-    if cdp.diff_tensor.type == 'spheroid':
-        # Get the current angles.
-        theta = cdp.diff_tensor.theta
-        phi = cdp.diff_tensor.phi
-
-        # Simulated values.
-        if sim_index != None:
-            theta_sim = cdp.diff_tensor.theta_sim[sim_index]
-            phi_sim   = cdp.diff_tensor.phi_sim[sim_index]
-
-        # Normal value.
-        if sim_index == None:
-            cdp.diff_tensor.theta = wrap_angles(theta, 0.0, pi)
-            cdp.diff_tensor.phi = wrap_angles(phi, 0.0, 2.0*pi)
-
-        # Simulated theta and phi values.
-        else:
-            cdp.diff_tensor.theta_sim[sim_index] = wrap_angles(theta_sim, 
theta - pi/2.0, theta + pi/2.0)
-            cdp.diff_tensor.phi_sim[sim_index]   = wrap_angles(phi_sim, phi 
- pi, phi + pi)
-
-    # Ellipsoid.
-    elif cdp.diff_tensor.type == 'ellipsoid':
-        # Get the current angles.
-        alpha = cdp.diff_tensor.alpha
-        beta  = cdp.diff_tensor.beta
-        gamma = cdp.diff_tensor.gamma
-
-        # Simulated values.
-        if sim_index != None:
-            alpha_sim = cdp.diff_tensor.alpha_sim[sim_index]
-            beta_sim  = cdp.diff_tensor.beta_sim[sim_index]
-            gamma_sim = cdp.diff_tensor.gamma_sim[sim_index]
-
-        # Normal value.
-        if sim_index == None:
-            cdp.diff_tensor.alpha = wrap_angles(alpha, 0.0, 2.0*pi)
-            cdp.diff_tensor.beta  = wrap_angles(beta, 0.0, 2.0*pi)
-            cdp.diff_tensor.gamma = wrap_angles(gamma, 0.0, 2.0*pi)
-
-        # Simulated alpha, beta, and gamma values.
-        else:
-            cdp.diff_tensor.alpha_sim[sim_index] = wrap_angles(alpha_sim, 
alpha - pi, alpha + pi)
-            cdp.diff_tensor.beta_sim[sim_index]  = wrap_angles(beta_sim, 
beta - pi, beta + pi)
-            cdp.diff_tensor.gamma_sim[sim_index] = wrap_angles(gamma_sim, 
gamma - pi, gamma + pi)
+    # Get the current angles.
+    alpha = cdp.align_tensor.alpha
+    beta  = cdp.align_tensor.beta
+    gamma = cdp.align_tensor.gamma
+
+    # Simulated values.
+    if sim_index != None:
+        alpha_sim = cdp.align_tensor.alpha_sim[sim_index]
+        beta_sim  = cdp.align_tensor.beta_sim[sim_index]
+        gamma_sim = cdp.align_tensor.gamma_sim[sim_index]
+
+    # Normal value.
+    if sim_index == None:
+        cdp.align_tensor.alpha = wrap_angles(alpha, 0.0, 2.0*pi)
+        cdp.align_tensor.beta  = wrap_angles(beta, 0.0, 2.0*pi)
+        cdp.align_tensor.gamma = wrap_angles(gamma, 0.0, 2.0*pi)
+
+    # Simulation values.
+    else:
+        cdp.align_tensor.alpha_sim[sim_index] = wrap_angles(alpha_sim, alpha 
- pi, alpha + pi)
+        cdp.align_tensor.beta_sim[sim_index]  = wrap_angles(beta_sim, beta - 
pi, beta + pi)
+        cdp.align_tensor.gamma_sim[sim_index] = wrap_angles(gamma_sim, gamma 
- pi, gamma + pi)
 
 
     # Remove the glide reflection and translational symmetries.
     ###########################################################
 
-    # Spheroid.
-    if cdp.diff_tensor.type == 'spheroid':
-        # Normal value.
-        if sim_index == None:
-            # Fold phi inside 0 and pi.
-            if cdp.diff_tensor.phi >= pi:
-                cdp.diff_tensor.theta = pi - cdp.diff_tensor.theta
-                cdp.diff_tensor.phi = cdp.diff_tensor.phi - pi
-
-        # Simulated theta and phi values.
-        else:
-            # Fold phi_sim inside phi-pi/2 and phi+pi/2.
-            if cdp.diff_tensor.phi_sim[sim_index] >= cdp.diff_tensor.phi + 
pi/2.0:
-                cdp.diff_tensor.theta_sim[sim_index] = pi - 
cdp.diff_tensor.theta_sim[sim_index]
-                cdp.diff_tensor.phi_sim[sim_index]   = 
cdp.diff_tensor.phi_sim[sim_index] - pi
-            elif cdp.diff_tensor.phi_sim[sim_index] <= cdp.diff_tensor.phi - 
pi/2.0:
-                cdp.diff_tensor.theta_sim[sim_index] = pi - 
cdp.diff_tensor.theta_sim[sim_index]
-                cdp.diff_tensor.phi_sim[sim_index]   = 
cdp.diff_tensor.phi_sim[sim_index] + pi
-
-    # Ellipsoid.
-    elif cdp.diff_tensor.type == 'ellipsoid':
-        # Normal value.
-        if sim_index == None:
-            # Fold alpha inside 0 and pi.
-            if cdp.diff_tensor.alpha >= pi:
-                cdp.diff_tensor.alpha = cdp.diff_tensor.alpha - pi
-
-            # Fold beta inside 0 and pi.
-            if cdp.diff_tensor.beta >= pi:
-                cdp.diff_tensor.alpha = pi - cdp.diff_tensor.alpha
-                cdp.diff_tensor.beta = cdp.diff_tensor.beta - pi
-
-            # Fold gamma inside 0 and pi.
-            if cdp.diff_tensor.gamma >= pi:
-                cdp.diff_tensor.alpha = pi - cdp.diff_tensor.alpha
-                cdp.diff_tensor.beta = pi - cdp.diff_tensor.beta
-                cdp.diff_tensor.gamma = cdp.diff_tensor.gamma - pi
-
-        # Simulated theta and phi values.
-        else:
-            # Fold alpha_sim inside alpha-pi/2 and alpha+pi/2.
-            if cdp.diff_tensor.alpha_sim[sim_index] >= cdp.diff_tensor.alpha 
+ pi/2.0:
-                cdp.diff_tensor.alpha_sim[sim_index] = 
cdp.diff_tensor.alpha_sim[sim_index] - pi
-            elif cdp.diff_tensor.alpha_sim[sim_index] <= 
cdp.diff_tensor.alpha - pi/2.0:
-                cdp.diff_tensor.alpha_sim[sim_index] = 
cdp.diff_tensor.alpha_sim[sim_index] + pi
-
-            # Fold beta_sim inside beta-pi/2 and beta+pi/2.
-            if cdp.diff_tensor.beta_sim[sim_index] >= cdp.diff_tensor.beta + 
pi/2.0:
-                cdp.diff_tensor.alpha_sim[sim_index] = pi - 
cdp.diff_tensor.alpha_sim[sim_index]
-                cdp.diff_tensor.beta_sim[sim_index] = 
cdp.diff_tensor.beta_sim[sim_index] - pi
-            elif cdp.diff_tensor.beta_sim[sim_index] <= cdp.diff_tensor.beta 
- pi/2.0:
-                cdp.diff_tensor.alpha_sim[sim_index] = pi - 
cdp.diff_tensor.alpha_sim[sim_index]
-                cdp.diff_tensor.beta_sim[sim_index] = 
cdp.diff_tensor.beta_sim[sim_index] + pi
-
-            # Fold gamma_sim inside gamma-pi/2 and gamma+pi/2.
-            if cdp.diff_tensor.gamma_sim[sim_index] >= cdp.diff_tensor.gamma 
+ pi/2.0:
-                cdp.diff_tensor.alpha_sim[sim_index] = pi - 
cdp.diff_tensor.alpha_sim[sim_index]
-                cdp.diff_tensor.beta_sim[sim_index] = pi - 
cdp.diff_tensor.beta_sim[sim_index]
-                cdp.diff_tensor.gamma_sim[sim_index] = 
cdp.diff_tensor.gamma_sim[sim_index] - pi
-            elif cdp.diff_tensor.gamma_sim[sim_index] <= 
cdp.diff_tensor.gamma - pi/2.0:
-                cdp.diff_tensor.alpha_sim[sim_index] = pi - 
cdp.diff_tensor.alpha_sim[sim_index]
-                cdp.diff_tensor.beta_sim[sim_index] = pi - 
cdp.diff_tensor.beta_sim[sim_index]
-                cdp.diff_tensor.gamma_sim[sim_index] = 
cdp.diff_tensor.gamma_sim[sim_index] + pi
+    # Normal value.
+    if sim_index == None:
+        # Fold beta inside 0 and pi.
+        if cdp.align_tensor.beta >= pi:
+            cdp.align_tensor.alpha = pi - cdp.align_tensor.alpha
+            cdp.align_tensor.beta = cdp.align_tensor.beta - pi
+
+    # Simulation values.
+    else:
+        # Fold beta_sim inside beta-pi/2 and beta+pi/2.
+        if cdp.align_tensor.beta_sim[sim_index] >= cdp.align_tensor.beta + 
pi/2.0:
+            cdp.align_tensor.alpha_sim[sim_index] = pi - 
cdp.align_tensor.alpha_sim[sim_index]
+            cdp.align_tensor.beta_sim[sim_index] = 
cdp.align_tensor.beta_sim[sim_index] - pi
+        elif cdp.align_tensor.beta_sim[sim_index] <= cdp.align_tensor.beta - 
pi/2.0:
+            cdp.align_tensor.alpha_sim[sim_index] = pi - 
cdp.align_tensor.alpha_sim[sim_index]
+            cdp.align_tensor.beta_sim[sim_index] = 
cdp.align_tensor.beta_sim[sim_index] + pi
 
 
 def init(params=None, scale=1.0, angle_units='deg', param_types=0, errors=0):




Related Messages


Powered by MHonArc, Updated Mon Nov 26 17:00:29 2007