Package maths_fns :: Module jw_mapping
[hide private]
[frames] | no frames]

Source Code for Module maths_fns.jw_mapping

  1  ############################################################################### 
  2  #                                                                             # 
  3  # Copyright (C) 2004 Edward d'Auvergne                                        # 
  4  #                                                                             # 
  5  # This file is part of the program relax.                                     # 
  6  #                                                                             # 
  7  # relax is free software; you can redistribute it and/or modify               # 
  8  # it under the terms of the GNU General Public License as published by        # 
  9  # the Free Software Foundation; either version 2 of the License, or           # 
 10  # (at your option) any later version.                                         # 
 11  #                                                                             # 
 12  # relax is distributed in the hope that it will be useful,                    # 
 13  # but WITHOUT ANY WARRANTY; without even the implied warranty of              # 
 14  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               # 
 15  # GNU General Public License for more details.                                # 
 16  #                                                                             # 
 17  # You should have received a copy of the GNU General Public License           # 
 18  # along with relax; if not, write to the Free Software                        # 
 19  # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA   # 
 20  #                                                                             # 
 21  ############################################################################### 
 22   
 23  from Numeric import Float64, zeros 
 24  from math import pi 
 25   
 26  from ri_comps import calc_fixed_csa, calc_fixed_dip, comp_csa_const_func, comp_dip_const_func 
 27   
 28   
29 -class Mapping:
30 - def __init__(self, frq=None, gx=None, gh=None, mu0=None, h_bar=None):
31 """Reduced spectral density mapping.""" 32 33 # Initialise the data container. 34 self.data = Data() 35 36 # Add the initial data to self.data 37 self.data.gx = gx 38 self.data.gh = gh 39 self.data.mu0 = mu0 40 self.data.h_bar = h_bar 41 42 # The number of frequencies. 43 self.data.num_frq = 1 44 45 # Dipolar and CSA data structures. 46 self.data.dip_const_fixed = 0.0 47 self.data.csa_const_fixed = [0.0] 48 self.data.dip_const_func = 0.0 49 self.data.csa_const_func = zeros(1, Float64) 50 51 # Nuclear frequencies. 52 frq = frq * 2 * pi 53 frqX = frq * self.data.gx / self.data.gh 54 55 # Calculate the five frequencies which cause R1, R2, and NOE relaxation. 56 self.data.frq_list = zeros((1, 5), Float64) 57 self.data.frq_list[0, 1] = frqX 58 self.data.frq_list[0, 2] = frq - frqX 59 self.data.frq_list[0, 3] = frq 60 self.data.frq_list[0, 4] = frq + frqX 61 self.data.frq_sqrd_list = self.data.frq_list ** 2
62 63
64 - def calc_sigma_noe(self, noe, r1):
65 """Function for calculating the sigma NOE value.""" 66 67 return (noe - 1.0) * r1 * self.data.gx / self.data.gh
68 69
70 - def func(self, r=None, csa=None, r1=None, r2=None, noe=None):
71 """Function for calculating the three spectal density values. 72 73 Three values are returned, J(0), J(wX), and J(wH) (or J(0.87wH)). 74 """ 75 76 # Calculate the fixed component of the dipolar and CSA constants. 77 calc_fixed_dip(self.data) 78 calc_fixed_csa(self.data) 79 80 # Calculate the dipolar and CSA constants. 81 comp_dip_const_func(self.data, r) 82 comp_csa_const_func(self.data, csa) 83 84 # Rename the dipolar and CSA constants. 85 d = self.data.dip_const_func 86 c = self.data.csa_const_func[0] 87 88 # Calculate the sigma NOE value. 89 sigma_noe = self.calc_sigma_noe(noe, r1) 90 91 # Calculate J(0). 92 j0 = -1.5 / (3.0*d + c) * (0.5*r1 - r2 + 0.6*sigma_noe) 93 94 # Calculate J(wX). 95 jwx = 1.0 / (3.0*d + c) * (r1 - 1.4*sigma_noe) 96 97 # Calculate J(wH). 98 jwh = sigma_noe / (5.0*d) 99 100 # Return the three values. 101 return j0, jwx, jwh
102 103
104 -class Data:
105 - def __init__(self):
106 """Empty container for storing data."""
107