1   
  2   
  3   
  4   
  5   
  6   
  7   
  8   
  9   
 10   
 11   
 12   
 13   
 14   
 15   
 16   
 17   
 18   
 19   
 20   
 21   
 22   
 23  from re import match 
 24   
 25   
 28          """Class containing the function to set the gyromagnetic ratio of the heteronucleus.""" 
 29   
 30          self.relax = relax 
  31   
 32   
 34          """Function for finding the nucleus corresponding to 'self.relax.data.gx'.""" 
 35   
 36           
 37          if not hasattr(self.relax.data, 'gx'): 
 38              return 
 39   
 40           
 41          if self.relax.data.gx == self.gn(): 
 42              return 'N' 
 43   
 44           
 45          if self.relax.data.gx == self.gc(): 
 46              return 'C' 
 47   
 48           
 49          if self.relax.data.gx == self.go(): 
 50              return 'O' 
 51   
 52           
 53          if self.relax.data.gx == self.gp(): 
 54              return 'P' 
  55   
 56   
 58          """The 13C gyromagnetic ratio.""" 
 59   
 60          return 6.728e7 
  61   
 62   
 64          """The 1H gyromagnetic ratio.""" 
 65   
 66           
 67          return 26.7522212e7 
  68   
 69   
 71          """The 15N gyromagnetic ratio.""" 
 72   
 73          return -2.7126e7 
  74   
 75   
 77          """The 17O gyromagnetic ratio.""" 
 78   
 79          return -3.628e7 
  80   
 81   
 83          """The 31P gyromagnetic ratio.""" 
 84   
 85          return 1.0841e8 
  86   
 87   
 89          """Function for setting the gyromagnetic ratio of the heteronucleus.""" 
 90   
 91           
 92          if match('[Nn]', heteronuc): 
 93              self.relax.data.gx = self.gn() 
 94   
 95           
 96          elif match('[Cc]', heteronuc): 
 97              self.relax.data.gx = self.gc() 
 98   
 99           
100          elif match('[Oo]', heteronuc): 
101              self.relax.data.gx = self.go() 
102   
103           
104          elif match('[Pp]', heteronuc): 
105              self.relax.data.gx = self.gp() 
106   
107           
108          else: 
109              raise RelaxInvalidError, ('heteronucleus', heteronuc) 
110   
111           
112          self.relax.data.gh = self.gh() 
113   
114           
115          self.relax.data.g_ratio = self.relax.data.gh / self.relax.data.gx 
  116