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