mailr6971 - /branches/rdc_analysis/specific_fns/n_state_model.py


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

Header


Content

Posted by edward on July 25, 2008 - 13:08:
Author: bugman
Date: Fri Jul 25 11:49:58 2008
New Revision: 6971

URL: http://svn.gna.org/viewcvs/relax?rev=6971&view=rev
Log:
Pre-calculated the dipolar constants prior to optimisation.


Modified:
    branches/rdc_analysis/specific_fns/n_state_model.py

Modified: branches/rdc_analysis/specific_fns/n_state_model.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/rdc_analysis/specific_fns/n_state_model.py?rev=6971&r1=6970&r2=6971&view=diff
==============================================================================
--- branches/rdc_analysis/specific_fns/n_state_model.py (original)
+++ branches/rdc_analysis/specific_fns/n_state_model.py Fri Jul 25 11:49:58 
2008
@@ -22,6 +22,7 @@
 
 # Python module imports.
 from math import acos, cos, pi
+from minfx.generic import generic_minimise
 from numpy import array, dot, float64, identity, zeros
 from numpy.linalg import inv, norm
 from re import search
@@ -37,7 +38,7 @@
 from generic_fns.structure.internal import Internal
 from maths_fns.n_state_model import N_state_opt
 from maths_fns.rotation_matrix import R_2vect, R_euler_zyz
-from minfx.generic import generic_minimise
+from physical_constants import dipolar_constant, return_gyromagnetic_ratio
 from relax_errors import RelaxError, RelaxInfError, RelaxModelError, 
RelaxNaNError, RelaxNoModelError, RelaxNoTensorError
 from relax_io import open_write_file
 from relax_warnings import RelaxWarning
@@ -839,6 +840,7 @@
         # Initialise.
         rdcs = []
         xh_vectors = []
+        dj = []
 
         # Spin loop.
         for spin, spin_id in spin_loop(return_id=True):
@@ -859,24 +861,31 @@
             rdcs.append(spin.rdc)
             xh_vectors.append(spin.xh_vect)
 
+            # Gyromagnetic ratios.
+            gx = return_gyromagnetic_ratio(spin.heteronuc_type)
+            gh = return_gyromagnetic_ratio(spin.proton_type)
+
+            # Calculate the dipolar constant, and append it to the list.
+            dj.append(3.0/(2.0*pi) * diploar_constant(gx, gh, spin.r))
+
         # Initialise the numpy objects (the rdc matrix is transposed!).
         rdcs_numpy = zeros((len(rdcs[0]), len(rdcs)), float64)
         xh_vect_numpy = zeros((len(xh_vectors), len(xh_vectors[0]), 3), 
float64)
 
         # Loop over the spins.
-        for i in xrange(len(rdcs)):
+        for spin_index in xrange(len(rdcs)):
             # Loop over the alignments.
-            for j in xrange(len(rdcs[i])):
+            for align_index in xrange(len(rdcs[spin_index])):
                 # Transpose and store the RDC value.
-                rdcs_numpy[j, i] = rdcs[i][j]
+                rdcs_numpy[align_index, spin_index] = 
rdcs[spin_index][align_index]
 
             # Loop over the N states.
-            for j in xrange(len(xh_vectors[i])):
+            for state_index in xrange(len(xh_vectors[spin_index])):
                 # Store the unit vector.
-                xh_vect_numpy[i,j] = xh_vectors[i][j]
+                xh_vect_numpy[spin_index, state_index] = 
xh_vectors[spin_index][state_index]
 
         # Set up the class instance containing the target function.
-        model = N_state_opt(model=cdp.model, N=cdp.N, 
init_params=param_vector, rdcs=rdcs_numpy, xh_vect=xh_vect_numpy, 
scaling_matrix=scaling_matrix)
+        model = N_state_opt(model=cdp.model, N=cdp.N, 
init_params=param_vector, rdcs=rdcs_numpy, xh_vect=xh_vect_numpy, 
dip_const=dj, scaling_matrix=scaling_matrix)
 
         # Return the instantiated class.
         return model




Related Messages


Powered by MHonArc, Updated Fri Jul 25 13:40:14 2008