← Index
NYTProf Performance Profile   « line view »
For examples/Atom-timer.pl
  Run on Mon Aug 12 14:45:28 2013
Reported on Mon Aug 12 14:46:15 2013

Filename/Users/dde/HackaMol_devel/HackaMol/lib/HackaMol/lib/PeriodicTable.pm
StatementsExecuted 100 statements in 233µs
Line State
ments
Time
on line
Calls Time
in subs
Code
1 package PeriodicTable;
21600ns require Exporter;
317µs our @ISA=qw(Exporter);
411µs our @EXPORT_OK = qw(%ATOM_MULTIPLICITY @EXHEAT @ELEMENTS
5 %ELEMENTS %ATOMIC_MASSES @COVALENT_RADII @VDW_RADII);
6
7# lifted from Ivan's PerlMol
8113µs our @ELEMENTS = qw(
9 X
10 H He
11 Li Be B C N O F Ne
12 Na Mg Al Si P S Cl Ar
13 K Ca Sc Ti V Cr Mn Fe Co Ni Cu Zn Ga Ge As Se Br Kr
14 Rb Sr Y Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I Xe
15 Cs Ba
16 La Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb
17 Lu Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn
18 Fr Ra
19 Ac Th Pa U Np Pu Am Cm Bk Cf Es Fm Md No
20 Lr Rf Db Sg Bh Hs Mt Ds Uuu Uub Uut Uuq Uup Uuh Uus Uuo
21 );
22
231100ns our %ELEMENTS;
24147µs $ELEMENTS{ $ELEMENTS[$_] } = $_ foreach (0 .. $#ELEMENTS);
251500ns $ELEMENTS{D} = $ELEMENTS{T} = 1;
26
27# lifted from Ivan's PerlMol
28116µs our %ATOMIC_MASSES = (
29 H => 1.00794, D => 2.014101, T => 3.016049, He => 4.002602,
30 Li => 6.941, Be => 9.012182, B => 10.811, C => 12.0107,
31 N => 14.00674, O => 15.9994, F => 18.9984032, Ne => 20.1797,
32 Na => 22.989770, Mg => 24.3050, Al => 26.981538, Si => 28.0855,
33 P => 30.973761, S => 32.066, Cl => 35.4527, Ar => 39.948,
34 K => 39.0983, Ca => 40.078, Sc => 44.955910, Ti => 47.867,
35 V => 50.9415, Cr => 51.9961, Mn => 54.938049, Fe => 55.845,
36 Co => 58.933200, Ni => 58.6934, Cu => 63.546, Zn => 65.39,
37 Ga => 69.723, Ge => 72.61, As => 74.92160, Se => 78.96,
38 Br => 79.904, Kr => 83.80, Rb => 85.4678, Sr => 87.62,
39 Y => 88.90585, Zr => 91.224, Nb => 92.90638, Mo => 95.94,
40 Tc => 98, Ru => 101.07, Rh => 102.90550, Pd => 106.42,
41 Ag => 107.8682, Cd => 112.411, In => 114.818, Sn => 118.710,
42 Sb => 121.760, Te => 127.60, I => 126.90447, Xe => 131.29,
43 Cs => 132.90545, Ba => 137.327, La => 138.9055, Ce => 140.116,
44 Pr => 140.90765, Nd => 144.24, Pm => 145, Sm => 150.36,
45 Eu => 151.964, Gd => 157.25, Tb => 158.92534, Dy => 162.50,
46 Ho => 164.93032, Er => 167.26, Tm => 168.93421, Yb => 173.04,
47 Lu => 174.967, Hf => 178.49, Ta => 180.9479, W => 183.84,
48 Re => 186.207, Os => 190.23, Ir => 192.217, Pt => 195.078,
49 Au => 196.96655, Hg => 200.59, Tl => 204.3833, Pb => 207.2,
50 Bi => 208.98038, Po => 209, At => 210, Rn => 222,
51 Fr => 223, Ra => 226, Ac => 227, Th => 232.038,
52 Pa => 231.03588, U => 238.0289, Np => 237, Pu => 244,
53 Am => 243, Cm => 247, Bk => 247, Cf => 251,
54 Es => 252, Fm => 257, Md => 258, No => 259,
55 Lr => 262, Rf => 261, Db => 262, Sg => 266,
56 Bh => 264, Hs => 269, Mt => 268, Ds => 271,
57 X => 0.0,
58 );
59
6012µs our %ATOM_MULTIPLICITY = (
61 # from jerry's thermo script
62 # see webelements.com .. thinking about term symbols and shit like that
63 H => 2,
64 C => 3,
65 N => 4,
66 O => 3,
67 F => 2,
68 P => 4,
69 S => 3,
70 Cl => 2,
71 Br => 2,
72 I => 2,
73 Hg => 1,
74 );
75
76# directly from MNDO99, which grabbed them from mopac
77# I believe these are at 298, from the thermo gaussian thingy
78# enthalpy correction from 0K (as calculated by gaussian) to 298
79# is on the order of 1 kcal/mol, which seems silly to mess with
80# unless one is actually interested in absolute heats of formation
81# SEQM HOF is something like this:
82# HoF(M) = tot_Eelec(M) - sum(x[X]*Hof_exp[X] -x[X]*atom_energy)
831100ns our @EXHEAT;
841300ns $EXHEAT[0] = 0.000;
851100ns $EXHEAT[1] = 52.102;
8610s $EXHEAT[2] = 0.000;
8710s $EXHEAT[3] = 38.410;
881400ns $EXHEAT[4] = 76.960;
891100ns $EXHEAT[5] =135.700;
901200ns $EXHEAT[6] =170.890;
9110s $EXHEAT[7] =113.000;
921100ns $EXHEAT[8] = 59.559;
9310s $EXHEAT[9] = 18.890;
941100ns $EXHEAT[10] = 0.000;
9510s $EXHEAT[11] = 25.650;
961200ns $EXHEAT[12] = 35.000;
9710s $EXHEAT[13] = 79.490;
9810s $EXHEAT[14] =108.390;
991100ns $EXHEAT[15] = 75.570;
1001200ns $EXHEAT[16] = 66.400;
10110s $EXHEAT[17] = 28.990;
10210s $EXHEAT[18] = 0.000;
10310s $EXHEAT[19] = 21.420;
1041100ns $EXHEAT[20] = 42.600;
10510s $EXHEAT[21] = 90.300;
10610s $EXHEAT[22] =112.300;
10710s $EXHEAT[23] =122.900;
1081200ns $EXHEAT[24] = 95.000;
10910s $EXHEAT[25] = 67.700;
11010s $EXHEAT[26] = 99.300;
11110s $EXHEAT[27] =102.400;
11210s $EXHEAT[28] =102.800;
1131100ns $EXHEAT[29] = 80.700;
1141100ns $EXHEAT[30] = 31.170;
11510s $EXHEAT[31] = 65.400;
11610s $EXHEAT[32] = 89.500;
11710s $EXHEAT[33] = 72.300;
11810s $EXHEAT[34] = 54.300;
11910s $EXHEAT[35] = 26.740;
1201200ns $EXHEAT[36] = 0.000;
12110s $EXHEAT[37] = 19.600;
12210s $EXHEAT[38] = 39.100;
12310s $EXHEAT[39] =101.500;
12410s $EXHEAT[40] =145.500;
12510s $EXHEAT[41] =172.400;
1261100ns $EXHEAT[42] =157.300;
12710s $EXHEAT[43] = 0.000;
1281200ns $EXHEAT[44] =155.500;
12910s $EXHEAT[45] =133.000;
13010s $EXHEAT[46] = 90.000;
13110s $EXHEAT[47] = 68.100;
13210s $EXHEAT[48] = 26.720;
13310s $EXHEAT[49] = 58.000;
13410s $EXHEAT[50] = 72.200;
13510s $EXHEAT[51] = 63.200;
13610s $EXHEAT[52] = 47.000;
1371100ns $EXHEAT[53] = 25.517;
1381200ns $EXHEAT[54] = 0.000;
13912µs $EXHEAT[55] = 18.700;
1401100ns $EXHEAT[56] = 42.500;
14110s $EXHEAT[57] = 0.000;
14210s $EXHEAT[58] =101.300;
14310s $EXHEAT[59] = 0.000;
14410s $EXHEAT[60] = 0.000;
14510s $EXHEAT[61] = 0.000;
14610s $EXHEAT[62] = 49.400;
14710s $EXHEAT[63] = 0.000;
14810s $EXHEAT[64] = 0.000;
1491100ns $EXHEAT[65] = 0.000;
1501200ns $EXHEAT[66] = 0.000;
15110s $EXHEAT[67] = 0.000;
15210s $EXHEAT[68] = 75.800;
15310s $EXHEAT[69] = 0.000;
15410s $EXHEAT[70] = 36.350;
15510s $EXHEAT[71] = 0.000;
15610s $EXHEAT[72] =148.000;
15710s $EXHEAT[73] =186.900;
15810s $EXHEAT[74] =203.100;
15910s $EXHEAT[75] =185.000;
16010s $EXHEAT[76] =188.000;
16110s $EXHEAT[77] =160.000;
16210s $EXHEAT[78] =135.200;
16310s $EXHEAT[79] = 88.000;
1641300ns $EXHEAT[80] = 14.690;
16510s $EXHEAT[81] = 43.550;
16610s $EXHEAT[82] = 46.620;
16710s $EXHEAT[83] = 50.100;
16810s $EXHEAT[84] = 0.000;
16910s $EXHEAT[85] = 0.000;
17010s $EXHEAT[86] = 34.800;
171
172145µs our @COVALENT_RADII = (
173 #in pm http://en.wikipedia.org/wiki/Covalent_radius
174 # P. Pyykkö, M. Atsumi (2009).
175 #"Molecular Single-Bond Covalent Radii for Elements 1-118". Chemistry: A European Journal 15: 186–197.
176 # doi:10.1002/chem.200800987.
177 # P. Pyykkö, M. Atsumi (2009).
178 # "Molecular Double-Bond Covalent Radii for Elements Li–E112". Chemistry: A European Journal 15 (46):
179 # 12770–12779.
180 # doi:10.1002/chem.200901472.. Figure 3 of this paper contains all radii of refs. The mean-square deviation of each set is 3 pm.
181 # P. Pyykkö, S. Riedel, M. Patzschke (2005).
182 # "Triple-Bond Covalent Radii". Chemistry: A European Journal 11 (12): 3511–3520.
183 # doi:10.1002/chem.200401299. PMID 15832398.
184 # Z sng dub trip all in pm
185 [0 , 0, '-', '-'],
186 [1 , 32, '-', '-'],
187 [2 , 46, '-', '-'],
188 [3 , 133, 133, 124],
189 [4 , 102, 90, 85],
190 [5 , 85, 78, 73],
191 [6 , 75, 67, 60],
192 [7 , 71, 60, 54],
193 [8 , 63, 57, 53],
194 [9 , 64, 59, 53],
195 [10 , 67, 96, '-'],
196 [11 , 155, 160, '-'],
197 [12 , 139, 132, 127],
198 [13 , 126, 113, 111],
199 [14 , 116, 107, 102],
200 [15 , 111, 102, 94],
201 [16 , 103, 94, 95],
202 [17 , 99, 95, 93],
203 [18 , 96, 107, 96],
204 [19 , 196, 193, '-'],
205 [20 , 171, 147, 133],
206 [21 , 148, 116, 114],
207 [22 , 136, 117, 108],
208 [23 , 134, 112, 106],
209 [24 , 122, 111, 103],
210 [25 , 119, 105, 103],
211 [26 , 116, 109, 102],
212 [27 , 111, 103, 96],
213 [28 , 110, 101, 101],
214 [29 , 112, 115, 120],
215 [30 , 118, 120, '-'],
216 [31 , 124, 117, 121],
217 [32 , 121, 111, 114],
218 [33 , 121, 114, 106],
219 [34 , 116, 107, 107],
220 [35 , 114, 109, 110],
221 [36 , 117, 121, 108],
222 [37 , 210, 202, '-'],
223 [38 , 185, 157, 139],
224 [39 , 163, 130, 124],
225 [40 , 154, 127, 121],
226 [41 , 147, 125, 116],
227 [42 , 138, 121, 113],
228 [43 , 128, 120, 110],
229 [44 , 125, 114, 103],
230 [45 , 125, 110, 106],
231 [46 , 120, 117, 112],
232 [47 , 128, 139, 137],
233 [48 , 136, 144, '-'],
234 [49 , 142, 136, 146],
235 [50 , 140, 130, 132],
236 [51 , 140, 133, 127],
237 [52 , 136, 128, 121],
238 [53 , 133, 129, 125],
239 [54 , 131, 135, 122],
240 [55 , 232, 209, '-'],
241 [56 , 196, 161, 149],
242 [57 , 180, 139, 139],
243 [58 , 163, 137, 131],
244 [59 , 176, 138, 128],
245 [60 , 174, 137, '-'],
246 [61 , 173, 135, '-'],
247 [62 , 172, 134, '-'],
248 [63 , 168, 134, '-'],
249 [64 , 169, 135, 132],
250 [65 , 168, 135, '-'],
251 [66 , 167, 133, '-'],
252 [67 , 166, 133, '-'],
253 [68 , 165, 133, '-'],
254 [69 , 164, 131, '-'],
255 [70 , 170, 129, '-'],
256 [71 , 162, 131, 131],
257 [72 , 152, 128, 122],
258 [73 , 146, 126, 119],
259 [74 , 137, 120, 115],
260 [75 , 131, 119, 110],
261 [76 , 129, 116, 109],
262 [77 , 122, 115, 107],
263 [78 , 123, 112, 110],
264 [79 , 124, 121, 123],
265 [80 , 133, 142, '-'],
266 [81 , 144, 142, 150],
267 [82 , 144, 135, 137],
268 [83 , 151, 141, 135],
269 [84 , 145, 135, 129],
270 [85 , 147, 138, 138],
271 [86 , 142, 145, 133],
272 [87 , 223, 218, '-'],
273 [88 , 201, 173, 159],
274 [89 , 186, 153, 140],
275 [90 , 175, 143, 136],
276 [91 , 169, 138, 129],
277 [92 , 170, 134, 118],
278 [93 , 171, 136, 116],
279 [94 , 172, 135, '-'],
280 [95 , 166, 135, '-'],
281 [96 , 166, 136, '-'],
282 [97 , 168, 139, '-'],
283 [98 , 168, 140, '-'],
284 [99 , 165, 140, '-'],
285 [100, 167, '-', '-'],
286 [101, 173, 139, '-'],
287 [102, 176, '-', '-'],
288 [103, 161, 141, '-'],
289 [104, 157, 140, 131],
290 [105, 149, 136, 126],
291 [106, 143, 128, 121],
292 [107, 141, 128, 119],
293 [108, 134, 125, 118],
294 [109, 129, 125, 113],
295 [110, 128, 116, 112],
296 [111, 121, 116, 118],
297 [112, 122, 137, 130],
298 [113, 136, '-', '-'],
299 [114, 143, '-', '-'],
300 [115, 162, '-', '-'],
301 [116, 175, '-', '-'],
302 [117, 165, '-', '-'],
303 [118, 157, '-', '-'],
304 );
305
306128µs our @VDW_RADII = (
307 # http://en.wikipedia.org/wiki/Atomic_radii_of_the_elements_%28data_page%29
308 # the covalent vals are shady on this page
309 [0 , 0],
310 [1 , 120],
311 [2 , 140],
312 [3 , 182],
313 [4 , 153],
314 [5 , 192],
315 [6 , 170],
316 [7 , 155],
317 [8 , 152],
318 [9 , 147],
319 [10 , 154],
320 [11 , 227],
321 [12 , 173],
322 [13 , 184],
323 [14 , 210],
324 [15 , 180],
325 [16 , 180],
326 [17 , 175],
327 [18 , 188],
328 [19 , 275],
329 [20 , 231],
330 [21 , 211],
331 [22 , 999],
332 [23 , 999],
333 [24 , 999],
334 [25 , 999],
335 [26 , 999],
336 [27 , 999],
337 [28 , 163],
338 [29 , 140],
339 [30 , 139],
340 [31 , 187],
341 [32 , 211],
342 [33 , 185],
343 [34 , 190],
344 [35 , 185],
345 [36 , 202],
346 [37 , 303],
347 [38 , 249],
348 [39 , 999],
349 [40 , 999],
350 [41 , 999],
351 [42 , 999],
352 [43 , 999],
353 [44 , 999],
354 [45 , 999],
355 [46 , 163],
356 [47 , 172],
357 [48 , 158],
358 [49 , 193],
359 [50 , 217],
360 [51 , 206],
361 [52 , 206],
362 [53 , 198],
363 [54 , 216],
364 [55 , 343],
365 [56 , 268],
366 [57 , 999],
367 [58 , 999],
368 [59 , 999],
369 [60 , 999],
370 [61 , 999],
371 [62 , 999],
372 [63 , 999],
373 [64 , 999],
374 [65 , 999],
375 [66 , 999],
376 [67 , 999],
377 [68 , 999],
378 [69 , 999],
379 [70 , 999],
380 [71 , 999],
381 [72 , 999],
382 [73 , 999],
383 [74 , 999],
384 [75 , 999],
385 [76 , 999],
386 [77 , 999],
387 [78 , 175],
388 [79 , 166],
389 [80 , 155],
390 [81 , 196],
391 [82 , 202],
392 [83 , 207],
393 [84 , 197],
394 [85 , 202],
395 [86 , 220],
396 [87 , 348],
397 [88 , 283],
398 [89 , 999],
399 [90 , 999],
400 [91 , 999],
401 [92 , 186],
402 [93 , 999],
403 [94 , 999],
404 [95 , 999],
405 [96 , 999],
406 [97 , 999],
407 [98 , 999],
408 [99 , 999],
409 [100, 999],
410 [101, 999],
411 [102, 999],
412 [103, 999],
413 [104, 999],
414 [105, 999],
415 [106, 999],
416 [107, 999],
417 [108, 999],
418 [109, 999],
419 [110, 999],
420 [111, 999],
421 [112, 999],
422 [113, 999],
423 [114, 999],
424 [115, 999],
425 [116, 999],
426 [117, 999],
427 [118, 999],
428 );
429
430169µs1;
431