Files
rdkit/Code/GraphMol/atomic_data.cpp
2010-09-26 17:04:37 +00:00

168 lines
7.1 KiB
C++

//
// Copyright (C) 2001-2006 Greg Landrum and Rational Discovery LLC
//
// @@ All Rights Reserved @@
// This file is part of the RDKit.
// The contents are covered by the terms of the BSD license
// which is included in the file license.txt, found at the root
// of the RDKit source tree.
//
// Automatically generated from elements.txt
#include "atomic_data.h"
#include <boost/tokenizer.hpp>
typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
namespace RDKit {
const std::string periodicTableAtomData =
"0 * 0.000 0.000 0.000 0.000 0 1 2 3 4 5 6 -1 \n \
1 H 0.230 0.330 1.200 1.008 1 1 \n \
2 He 0.930 0.700 1.400 4.003 2 0 \n \
3 Li 0.680 1.230 1.820 6.941 1 1 \n \
4 Be 0.350 0.900 1.700 9.012 2 2 \n \
5 B 0.830, 0.820 2.080 10.812 3 3 \n \
6 C 0.680 0.770 1.950 12.011 4 4 \n \
7 N 0.680 0.700 1.850 14.007 5 3 \n \
8 O 0.680 0.660 1.700 15.999 6 2 \n \
9 F 0.640 0.611 1.730 18.998 7 1 \n \
10 Ne 1.120 0.700 1.540 20.180 8 0 \n"
"11 Na 0.970 1.540 2.270 22.990 1 1 \n \
12 Mg 1.100 1.360 1.730 24.305 2 2 \n \
13 Al 1.350 1.180 2.050 26.982 3 6 \n \
14 Si 1.200 0.937 2.100 28.086 4 4 6 \n \
15 P 0.750 0.890 2.080 30.974 5 3 5 \n \
16 S 1.020 1.040 2.000 32.067 6 2 4 6 \n \
17 Cl 0.990 0.997 1.970 35.453 7 1 \n \
18 Ar 1.570 1.740 1.880 39.948 8 0 \n \
19 K 1.330 2.030 2.750 39.098 1 1 \n \
20 Ca 0.990 1.740 1.973 40.078 2 2 \n"
"21 Sc 1.440 1.440 1.700 44.956 3 6 -1 \n \
22 Ti 1.470 1.320 1.700 47.867 4 6 -1 \n \
23 V 1.330 1.220 1.700 50.942 5 6 -1 \n \
24 Cr 1.350 1.180 1.700 51.996 6 6 -1 \n \
25 Mn 1.350 1.170 1.700 54.938 7 6 -1 \n \
26 Fe 1.340 1.170 1.700 55.845 8 6 -1 \n \
27 Co 1.330 1.160 1.700 58.933 9 6 -1 \n \
28 Ni 1.500 1.150 1.630 58.693 10 6 -1 \n \
29 Cu 1.520 1.170 1.400 63.546 11 6 -1 \n"
"30 Zn 1.450 1.250 1.390 65.390 2 6 -1 \n \
31 Ga 1.220 1.260 1.870 69.723 3 3 \n \
32 Ge 1.170 1.188 1.700 72.610 4 4 \n \
33 As 1.210 1.200 1.850 74.922 5 3 5 \n \
34 Se 1.220 1.170 1.900 78.960 6 2 4 6 \n \
35 Br 1.210 1.167 2.100 79.904 7 1 \n \
36 Kr 1.910 1.910 2.020 83.800 8 0 \n \
37 Rb 1.470 2.160 1.700 85.468 1 1 \n \
38 Sr 1.120 1.910 1.700 87.620 2 2 \n \
39 Y 1.780 1.620 1.700 88.906 3 6 -1 \n"
"40 Zr 1.560 1.450 1.700 91.224 4 6 -1 \n \
41 Nb 1.480 1.340 1.700 92.906 5 6 -1 \n \
42 Mo 1.470 1.300 1.700 95.940 6 6 -1 \n \
43 Tc 1.350 1.270 1.700 98.000 7 6 -1 \n \
44 Ru 1.400 1.250 1.700 101.070 8 6 -1 \n \
45 Rh 1.450 1.250 1.700 102.906 9 6 -1 \n \
46 Pd 1.500 1.280 1.630 106.420 10 6 -1 \n \
47 Ag 1.590 1.340 1.720 107.868 11 6 -1 \n \
48 Cd 1.690 1.480 1.580 112.412 2 6 -1 \n \
49 In 1.630 1.440 1.930 114.818 3 3 \n"
"50 Sn 1.460 1.385 2.170 118.711 4 4 \n \
51 Sb 1.460 1.400 2.200 121.760 5 3 5 \n \
52 Te 1.470 1.378 2.060 127.600 6 2 \n \
53 I 1.400 1.387 2.150 126.904 7 1 2 5 \n \
54 Xe 1.980 1.980 2.160 131.290 8 0 \n \
55 Cs 1.670 2.350 1.700 132.905 1 1 \n \
56 Ba 1.340 1.980 1.700 137.328 2 2 \n \
57 La 1.870 1.690 1.700 138.906 3 12 -1 \n \
58 Ce 1.830 1.830 1.700 140.116 4 6 -1 \n \
59 Pr 1.820 1.820 1.700 140.908 3 6 -1 \n"
"60 Nd 1.810 1.810 1.700 144.240 4 6 -1 \n \
61 Pm 1.800 1.800 1.700 145.000 5 6 -1 \n \
62 Sm 1.800 1.800 1.700 150.360 6 6 -1 \n \
63 Eu 1.990 1.990 1.700 151.964 7 6 -1 \n \
64 Gd 1.790 1.790 1.700 157.250 8 6 -1 \n \
65 Tb 1.760 1.760 1.700 158.925 9 6 -1 \n \
66 Dy 1.750 1.750 1.700 162.500 10 6 -1 \n \
67 Ho 1.740 1.740 1.700 164.930 11 6 -1 \n \
68 Er 1.730 1.730 1.700 167.260 12 6 -1 \n \
69 Tm 1.720 1.720 1.700 168.934 13 6 -1 \n"
"70 Yb 1.940 1.940 1.700 173.040 14 6 -1 \n \
71 Lu 1.720 1.720 1.700 174.967 15 6 -1 \n \
72 Hf 1.570 1.440 1.700 178.490 4 6 -1 \n \
73 Ta 1.430 1.340 1.700 180.948 5 6 -1 \n \
74 W 1.370 1.300 1.700 183.840 6 6 -1 \n \
75 Re 1.350 1.280 1.700 186.207 7 6 -1 \n \
76 Os 1.370 1.260 1.700 190.230 8 6 -1 \n \
77 Ir 1.320 1.270 1.700 192.217 9 6 -1 \n \
78 Pt 1.500 1.300 1.720 195.078 10 6 -1 \n \
79 Au 1.500 1.340 1.660 196.967 11 6 -1 \n"
"80 Hg 1.700 1.490 1.550 200.590 2 6 -1 \n \
81 Tl 1.550 1.480 1.960 204.383 3 3 \n \
82 Pb 1.540 1.480 2.020 207.200 4 4 \n \
83 Bi 1.540 1.450 1.700 208.980 5 3 \n \
84 Po 1.680 1.460 1.700 209.000 6 2 \n \
85 At 1.700 1.450 1.700 210.000 7 1 \n \
86 Rn 2.400 2.400 1.700 222.000 8 0 \n \
87 Fr 2.000 2.000 1.700 223.000 1 1 \n \
88 Ra 1.900 1.900 1.700 226.000 2 2 \n \
89 Ac 1.880 1.880 1.700 227.000 3 6 -1 \n"
"90 Th 1.790 1.790 1.700 232.038 4 6 -1 \n \
91 Pa 1.610 1.610 1.700 231.036 3 6 -1 \n \
92 U 1.580 1.580 1.860 238.029 4 6 -1 \n \
93 Np 1.550 1.550 1.700 237.000 5 6 -1 \n \
94 Pu 1.530 1.530 1.700 244.000 6 6 -1 \n \
95 Am 1.510 1.070 1.700 243.000 7 6 -1 \n \
96 Cm 1.500 0.000 1.700 247.000 8 6 -1 \n \
97 Bk 1.500 0.000 1.700 247.000 9 6 -1 \n \
98 Cf 1.500 0.000 1.700 251.000 10 6 -1 \n \
99 Es 1.500 0.000 1.700 252.000 11 6 -1 \n \
100 Fm 1.500 0.000 1.700 257.000 12 6 -1 \n \
101 Md 1.500 0.000 1.700 258.000 13 6 -1 \n \
102 No 1.500 0.000 1.700 259.000 14 6 -1 \n \
103 Lr 1.500 0.000 1.700 262.000 15 6 -1 \n \
104 Rf 1.500 0.000 1.700 261.000 4 6 -1 \n \
"
;
atomicData::atomicData(const std::string &dataLine) {
boost::char_separator<char> spaceSep(" \t");
tokenizer tokens(dataLine,spaceSep);
tokenizer::iterator token=tokens.begin();
// atomic number first
anum = atoi(token->c_str());
++token;
// element symbol
symb = *token;
++token;
// covalent radius
rCov = atof(token->c_str());
++token;
// rB0
rB0 = atof(token->c_str());
++token;
// Van derWaal radius
rVdw = atof(token->c_str());
++token;
// atomic mass
mass = atof(token->c_str());
++token;
// number of outshell electrons
nVal = atoi(token->c_str());
++token;
// now the valences
valence.clear();
while (token != tokens.end()) {
valence.push_back(atoi(token->c_str()));
++token;
}
}
}