1
2
3
4
5
6
7
8
9
10
11 """ periodic table data, **obsolete**
12
13 now that the C++ code exposes an interface to the internal PT stuff,
14 this data is mostly obsolete
15
16 """
17
18 periodicData = """
19 0 X 0.0 0.0 0.0 0 0.000 0
20 1 H 0.230 0.330 1.200 1 1.008 1
21 2 He 0.930 0.700 1.400 0 4.003 2
22 3 Li 0.680 1.230 1.820 1 6.941 1
23 4 Be 0.350 0.900 1.700 2 9.012 2
24 5 B 0.830 0.820 2.080 3 10.812 3
25 6 C 0.680 0.770 1.950 4 12.011 4
26 7 N 0.680 0.700 1.850 4 14.007 5
27 8 O 0.680 0.660 1.700 2 15.999 6
28 9 F 0.640 0.611 1.730 1 18.998 7
29 10 Ne 1.120 0.700 1.540 0 20.180 8
30 11 Na 0.970 1.540 2.270 1 22.990 1
31 12 Mg 1.100 1.360 1.730 2 24.305 2
32 13 Al 1.350 1.180 2.050 6 26.982 3
33 14 Si 1.200 0.937 2.100 6 28.086 4
34 15 P 0.750 0.890 2.080 5 30.974 5
35 16 S 1.020 1.040 2.000 6 32.067 6
36 17 Cl 0.990 0.997 1.970 1 35.453 7
37 18 Ar 1.570 1.740 1.880 0 39.948 8
38 19 K 1.330 2.030 2.750 1 39.098 1
39 20 Ca 0.990 1.740 1.973 2 40.078 2
40 21 Sc 1.440 1.440 1.700 6 44.956 3
41 22 Ti 1.470 1.320 1.700 6 47.867 4
42 23 V 1.330 1.220 1.700 6 50.942 5
43 24 Cr 1.350 1.180 1.700 6 51.996 6
44 25 Mn 1.350 1.170 1.700 8 54.938 7
45 26 Fe 1.340 1.170 1.700 6 55.845 8
46 27 Co 1.330 1.160 1.700 6 58.933 9
47 28 Ni 1.500 1.150 1.630 6 58.693 10
48 29 Cu 1.520 1.170 1.400 6 63.546 11
49 30 Zn 1.450 1.250 1.390 6 65.39 2
50 31 Ga 1.220 1.260 1.870 3 69.723 3
51 32 Ge 1.170 1.188 1.700 4 72.61 4
52 33 As 1.210 1.200 1.850 3 74.922 5
53 34 Se 1.220 1.170 1.900 2 78.96 6
54 35 Br 1.210 1.167 2.100 1 79.904 7
55 36 Kr 1.910 1.910 2.020 0 83.80 8
56 37 Rb 1.470 2.160 1.700 1 85.468 1
57 38 Sr 1.120 1.910 1.700 2 87.62 2
58 39 Y 1.780 1.620 1.700 6 88.906 3
59 40 Zr 1.560 1.450 1.700 6 91.224 4
60 41 Nb 1.480 1.340 1.700 6 92.906 5
61 42 Mo 1.470 1.300 1.700 6 95.94 6
62 43 Tc 1.350 1.270 1.700 6 98.0 7
63 44 Ru 1.400 1.250 1.700 6 101.07 8
64 45 Rh 1.450 1.250 1.700 6 102.906 9
65 46 Pd 1.500 1.280 1.630 6 106.42 10
66 47 Ag 1.590 1.340 1.720 6 107.868 11
67 48 Cd 1.690 1.480 1.580 6 112.412 2
68 49 In 1.630 1.440 1.930 3 114.818 3
69 50 Sn 1.460 1.385 2.170 4 118.711 4
70 51 Sb 1.460 1.400 2.200 3 121.760 5
71 52 Te 1.470 1.378 2.060 2 127.60 6
72 53 I 1.400 1.387 2.150 1 126.904 7
73 54 Xe 1.980 1.980 2.160 0 131.29 8
74 55 Cs 1.670 2.350 1.700 1 132.905 1
75 56 Ba 1.340 1.980 1.700 2 137.328 2
76 57 La 1.870 1.690 1.700 12 138.906 3
77 58 Ce 1.830 1.830 1.700 6 140.116 4
78 59 Pr 1.820 1.820 1.700 6 140.908 3
79 60 Nd 1.810 1.810 1.700 6 144.24 4
80 61 Pm 1.800 1.800 1.700 6 145.0 5
81 62 Sm 1.800 1.800 1.700 6 150.36 6
82 63 Eu 1.990 1.990 1.700 6 151.964 7
83 64 Gd 1.790 1.790 1.700 6 157.25 8
84 65 Tb 1.760 1.760 1.700 6 158.925 9
85 66 Dy 1.750 1.750 1.700 6 162.50 10
86 67 Ho 1.740 1.740 1.700 6 164.930 11
87 68 Er 1.730 1.730 1.700 6 167.26 12
88 69 Tm 1.720 1.720 1.700 6 168.934 13
89 70 Yb 1.940 1.940 1.700 6 173.04 14
90 71 Lu 1.720 1.720 1.700 6 174.967 15
91 72 Hf 1.570 1.440 1.700 6 178.49 4
92 73 Ta 1.430 1.340 1.700 6 180.948 5
93 74 W 1.370 1.300 1.700 6 183.84 6
94 75 Re 1.350 1.280 1.700 6 186.207 7
95 76 Os 1.370 1.260 1.700 6 190.23 8
96 77 Ir 1.320 1.270 1.700 6 192.217 9
97 78 Pt 1.500 1.300 1.720 6 195.078 10
98 79 Au 1.500 1.340 1.660 6 196.967 11
99 80 Hg 1.700 1.490 1.550 6 200.59 2
100 81 Tl 1.550 1.480 1.960 3 204.383 3
101 82 Pb 1.540 1.480 2.020 4 207.2 4
102 83 Bi 1.540 1.450 1.700 3 208.980 5
103 84 Po 1.680 1.460 1.700 2 209.0 6
104 85 At 1.700 1.450 1.700 1 210.0 7
105 86 Rn 2.400 2.400 1.700 0 222.0 8
106 87 Fr 2.000 2.000 1.700 1 223.0 1
107 88 Ra 1.900 1.900 1.700 2 226.0 2
108 89 Ac 1.880 1.880 1.700 6 227.0 3
109 90 Th 1.790 1.790 1.700 6 232.038 4
110 91 Pa 1.610 1.610 1.700 6 231.036 3
111 92 U 1.580 1.580 1.860 6 238.029 4
112 93 Np 1.550 1.550 1.700 6 237.0 5
113 94 Pu 1.530 1.530 1.700 6 244.0 6
114 95 Am 1.510 1.070 1.700 6 243.0 7
115 96 Cm 1.500 0.000 1.700 6 247.0 8
116 97 Bk 1.500 0.000 1.700 6 247.0 9
117 98 Cf 1.500 0.000 1.700 6 251.0 10
118 99 Es 1.500 0.000 1.700 6 252.0 11
119 100 Fm 1.500 0.000 1.700 6 257.0 12
120 101 Md 1.500 0.000 1.700 6 258.0 13
121 102 No 1.500 0.000 1.700 6 259.0 14
122 103 Lr 1.500 0.000 1.700 6 262.0 15
123 """
124
125 nameTable = {}
126 numTable = {}
127 for line in periodicData.split('\n'):
128 splitLine = line.split()
129 if len(splitLine) > 1:
130 nameTable[splitLine[1]] = (int(splitLine[0]), float(splitLine[6]), int(splitLine[7]),
131 int(splitLine[5]), float(splitLine[2]), float(splitLine[3]),
132 float(splitLine[4]))
133 numTable[int(splitLine[0])] = (splitLine[1], float(splitLine[6]), int(splitLine[7]),
134 int(splitLine[5]), float(splitLine[2]), float(splitLine[3]),
135 float(splitLine[4]))
136
137
138 metalRanges = ["13", "21-32", "39-51", "57-84", "89-103"]
139 metalNumList = []
140 for entry in metalRanges:
141 t = entry.split('-')
142 start = int(t[0])
143 if len(t) > 1:
144 end = int(t[1])
145 else:
146 end = start
147 if start > end:
148 start, end = end, start
149 metalNumList += range(start, end + 1)
150 metalNames = [numTable[x][0] for x in metalNumList]
151
152
153
154
155 hallKierAlphas = {
156 'H': [0.0, 0.0, 0.0],
157 'C': [-0.22, -0.13, 0.0],
158 'N': [-0.29, -0.20, -0.04],
159 'O': [None, -0.20, -0.04],
160 'F': [None, None, -0.07],
161 'P': [None, 0.30, 0.43],
162 'S': [None, 0.22, 0.35],
163 'Cl': [None, None, 0.29],
164 'Br': [None, None, 0.48],
165 'I': [None, None, 0.73]
166 }
167