// // Copyright (C) 2001-2006 Greg Landrum and Rational Discovery LLC // // @@ All Rights Reserved @@ // // Automatically generated from elements.txt #include "atomic_data.h" #include typedef boost::tokenizer > tokenizer; namespace RDKit { const std::string periodicTableAtomData = "0 Du 0.000 0.000 0.000 0.000 0 1 2 3 4 5 6 \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 \n \ 22 Ti 1.470 1.320 1.700 47.867 4 6 \n \ 23 V 1.330 1.220 1.700 50.942 5 6 \n \ 24 Cr 1.350 1.180 1.700 51.996 6 6 \n \ 25 Mn 1.350 1.170 1.700 54.938 7 8 \n \ 26 Fe 1.340 1.170 1.700 55.845 8 6 \n \ 27 Co 1.330 1.160 1.700 58.933 9 6 \n \ 28 Ni 1.500 1.150 1.630 58.693 10 6 \n \ 29 Cu 1.520 1.170 1.400 63.546 11 6 \n" "30 Zn 1.450 1.250 1.390 65.390 2 6 \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 \n" "40 Zr 1.560 1.450 1.700 91.224 4 6 \n \ 41 Nb 1.480 1.340 1.700 92.906 5 6 \n \ 42 Mo 1.470 1.300 1.700 95.940 6 6 \n \ 43 Tc 1.350 1.270 1.700 98.000 7 6 \n \ 44 Ru 1.400 1.250 1.700 101.070 8 6 \n \ 45 Rh 1.450 1.250 1.700 102.906 9 6 \n \ 46 Pd 1.500 1.280 1.630 106.420 10 6 \n \ 47 Ag 1.590 1.340 1.720 107.868 11 6 \n \ 48 Cd 1.690 1.480 1.580 112.412 2 6 \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 \n \ 58 Ce 1.830 1.830 1.700 140.116 4 6 \n \ 59 Pr 1.820 1.820 1.700 140.908 3 6 \n" "60 Nd 1.810 1.810 1.700 144.240 4 6 \n \ 61 Pm 1.800 1.800 1.700 145.000 5 6 \n \ 62 Sm 1.800 1.800 1.700 150.360 6 6 \n \ 63 Eu 1.990 1.990 1.700 151.964 7 6 \n \ 64 Gd 1.790 1.790 1.700 157.250 8 6 \n \ 65 Tb 1.760 1.760 1.700 158.925 9 6 \n \ 66 Dy 1.750 1.750 1.700 162.500 10 6 \n \ 67 Ho 1.740 1.740 1.700 164.930 11 6 \n \ 68 Er 1.730 1.730 1.700 167.260 12 6 \n \ 69 Tm 1.720 1.720 1.700 168.934 13 6 \n" "70 Yb 1.940 1.940 1.700 173.040 14 6 \n \ 71 Lu 1.720 1.720 1.700 174.967 15 6 \n \ 72 Hf 1.570 1.440 1.700 178.490 4 6 \n \ 73 Ta 1.430 1.340 1.700 180.948 5 6 \n \ 74 W 1.370 1.300 1.700 183.840 6 6 \n \ 75 Re 1.350 1.280 1.700 186.207 7 6 \n \ 76 Os 1.370 1.260 1.700 190.230 8 6 \n \ 77 Ir 1.320 1.270 1.700 192.217 9 6 \n \ 78 Pt 1.500 1.300 1.720 195.078 10 6 \n \ 79 Au 1.500 1.340 1.660 196.967 11 6 \n" "80 Hg 1.700 1.490 1.550 200.590 2 6 \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 \n" "90 Th 1.790 1.790 1.700 232.038 4 6 \n \ 91 Pa 1.610 1.610 1.700 231.036 3 6 \n \ 92 U 1.580 1.580 1.860 238.029 4 6 \n \ 93 Np 1.550 1.550 1.700 237.000 5 6 \n \ 94 Pu 1.530 1.530 1.700 244.000 6 6 \n \ 95 Am 1.510 1.070 1.700 243.000 7 6 \n \ 96 Cm 1.500 0.000 1.700 247.000 8 6 \n \ 97 Bk 1.500 0.000 1.700 247.000 9 6 \n \ 98 Cf 1.500 0.000 1.700 251.000 10 6 \n \ 99 Es 1.500 0.000 1.700 252.000 11 6 \n" "100 Fm 1.500 0.000 1.700 257.000 12 6 \n \ 101 Md 1.500 0.000 1.700 258.000 13 6 \n \ 102 No 1.500 0.000 1.700 259.000 14 6 \n \ 103 Lr 1.500 0.000 1.700 262.000 15 6 \n \ 104 Rf 1.500 0.000 1.700 261.000 4 6 \n \ "; atomicData::atomicData(const std::string &dataLine) { boost::char_separator 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; } } }