File: atomic_data.cpp

package info (click to toggle)
rdkit 201203-3
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 37,840 kB
  • sloc: cpp: 93,902; python: 51,897; java: 5,192; ansic: 3,497; xml: 2,499; sql: 1,641; yacc: 1,518; lex: 1,076; makefile: 325; fortran: 183; sh: 153; cs: 51
file content (174 lines) | stat: -rw-r--r-- 7,026 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
//
//  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	0	0	0	0	0	0	1	2	3	4	5	6	-1 \n \
1	H 	0.23	0.33	1.2	1.008	1	1	1.007825032	1 \n \
2	He	0.93	0.7	1.4	4.003	2	4	4.002603254	0  \n \
3	Li	0.68	1.23	1.82	6.941	1	7	7.01600455	1  \n \
4	Be	0.35	0.9	1.7	9.012	2	9	9.0121822	2  \n \
5	B	0.830	0.82	2.08	10.812	3	11	11.0093054	3  \n \
6	C	0.68	0.77	1.95	12.011	4	12	12	4 \n \
7	N	0.68	0.7	1.85	14.007	5	14	14.003074	3 \n \
8	O	0.68	0.66	1.7	15.999	6	16	15.99491462	2 \n \
9	F	0.64	0.611	1.73	18.998	7	19	18.99840322	1 \n \
10	Ne	1.12	0.7	1.54	20.18	8	20	19.99244018	0 \n \
11	Na	0.97	1.54	2.27	22.99	1	23	22.98976928	1 \n \
12	Mg	1.1	1.36	1.73	24.305	2	24	23.9850417	2 \n \
13	Al	1.35	1.18	2.05	26.982	3	27	26.98153863	6 \n \
14	Si	1.2	0.937	2.1	28.086	4	28	27.97692653	4	6 \n \
15	P	0.75	0.89	2.08	30.974	5	31	30.97376163	3	5 \n \
16	S	1.02	1.04	2	32.067	6	32	31.972071	2	4	6 \n \
17	Cl	0.99	0.997	1.97	35.453	7	35	34.96885268	1 \n \
18	Ar	1.57	1.74	1.88	39.948	8	40	39.96238312	0 \n \
19	K	1.33	2.03	2.75	39.098	1	39	38.96370668	1 \n \
20	Ca	0.99	1.74	1.973	40.078	2	40	39.96259098	2 \n"
"21	Sc	1.44	1.44	1.7	44.956	3	45	44.9559119	6	-1 \n \
22	Ti	1.47	1.32	1.7	47.867	4	48	47.9479463	6	-1 \n \
23	V	1.33	1.22	1.7	50.942	5	50	49.9471585	6	-1 \n \
24	Cr	1.35	1.18	1.7	51.996	6	52	51.9405075	6	-1 \n \
25	Mn	1.35	1.17	1.7	54.938	7	55	54.9380451	6	-1 \n \
26	Fe	1.34	1.17	1.7	55.845	8	56	55.9349375	6	-1 \n \
27	Co	1.33	1.16	1.7	58.933	9	59	58.933195	6	-1 \n \
28	Ni	1.5	1.15	1.63	58.693	10	58	57.9353429	6	-1 \n \
29	Cu	1.52	1.17	1.4	63.546	11	63	62.9295975	6	-1 \n \
30	Zn	1.45	1.25	1.39	65.39	2	64	63.9291422	6	-1 \n \
31	Ga	1.22	1.26	1.87	69.723	3	69	68.9255736	3	   \n \
32	Ge	1.17	1.188	1.7	72.61	4	74	73.9211778	4	   \n \
33	As	1.21	1.2	1.85	74.922	5	75	74.9215965	3	5 \n \
34	Se	1.22	1.17	1.9	78.96	6	80	79.9165213	2	4	6 \n \
35	Br	1.21	1.167	2.1	79.904	7	79	78.9183371	1 \n \
36	Kr	1.91	1.91	2.02	83.8	8	84	83.911507	0 \n \
37	Rb	1.47	2.16	1.7	85.468	1	85	84.91178974	1 \n \
38	Sr	1.12	1.91	1.7	87.62	2	88	87.9056121	2 \n \
39	Y	1.78	1.62	1.7	88.906	3	89	88.9058483	6	-1 \n \
40	Zr	1.56	1.45	1.7	91.224	4	90	89.9047044	6	-1 \n"
"41	Nb	1.48	1.34	1.7	92.906	5	93	92.9063781	6	-1 \n \
42	Mo	1.47	1.3	1.7	95.94	6	98	97.9054082	6	-1 \n \
43	Tc	1.35	1.27	1.7	98	7	97	96.906365	6	-1 \n \
44	Ru	1.4	1.25	1.7	101.07	8	102	101.9043493	6	-1 \n \
45	Rh	1.45	1.25	1.7	102.906	9	103	102.905504	6	-1 \n \
46	Pd	1.5	1.28	1.63	106.42	10	106	105.903486	6	-1 \n \
47	Ag	1.59	1.34	1.72	107.868	11	107	106.905097	6	-1 \n \
48	Cd	1.69	1.48	1.58	112.412	2	114	113.9033585	6	-1 \n \
49	In	1.63	1.44	1.93	114.818	3	115	114.903878	3 \n \
50	Sn	1.46	1.385	2.17	118.711	4	120	119.9021947	4 \n \
51	Sb	1.46	1.4	2.2	121.76	5	121	120.9038157	3	5 \n \
52	Te	1.47	1.378	2.06	127.6	6	130	129.9062244	2 \n \
53	I	1.4	1.387	2.15	126.904	7	127	126.904473	1	2	5 \n \
54	Xe	1.98	1.98	2.16	131.29	8	132	131.9041535	0 \n \
55	Cs	1.67	2.35	1.7	132.905	1	133	132.9054519	1 \n \
56	Ba	1.34	1.98	1.7	137.328	2	138	137.9052472	2 \n \
57	La	1.87	1.69	1.7	138.906	3	139	138.9063533	12	-1 \n \
58	Ce	1.83	1.83	1.7	140.116	4	140	139.9054387	6	-1 \n \
59	Pr	1.82	1.82	1.7	140.908	3	141	140.9076528	6	-1 \n \
60	Nd	1.81	1.81	1.7	144.24	4	142	141.9077233	6	-1 \n"
"61	Pm	1.8	1.8	1.7	145	5	145	144.912749	6	-1 \n \
62	Sm	1.8	1.8	1.7	150.36	6	152	151.9197324	6	-1 \n \
63	Eu	1.99	1.99	1.7	151.964	7	153	152.9212303	6	-1 \n \
64	Gd	1.79	1.79	1.7	157.25	8	158	157.9241039	6	-1 \n \
65	Tb	1.76	1.76	1.7	158.925	9	159	158.9253468	6	-1 \n \
66	Dy	1.75	1.75	1.7	162.5	10	164	163.9291748	6	-1 \n \
67	Ho	1.74	1.74	1.7	164.93	11	165	164.9303221	6	-1 \n \
68	Er	1.73	1.73	1.7	167.26	12	166	165.9302931	6	-1 \n \
69	Tm	1.72	1.72	1.7	168.934	13	169	168.9342133	6	-1 \n \
70	Yb	1.94	1.94	1.7	173.04	14	174	173.9388621	6	-1 \n \
71	Lu	1.72	1.72	1.7	174.967	15	175	174.9407718	6	-1 \n \
72	Hf	1.57	1.44	1.7	178.49	4	180	179.94655	6	-1 \n \
73	Ta	1.43	1.34	1.7	180.948	5	181	180.9479958	6	-1 \n \
74	W	1.37	1.3	1.7	183.84	6	184	183.9509312	6	-1 \n \
75	Re	1.35	1.28	1.7	186.207	7	187	186.9557531	6	-1 \n \
76	Os	1.37	1.26	1.7	190.23	8	192	191.9614807	6	-1 \n \
77	Ir	1.32	1.27	1.7	192.217	9	193	192.9629264	6	-1 \n \
78	Pt	1.5	1.3	1.72	195.078	10	195	194.9647911	6	-1 \n \
79	Au	1.5	1.34	1.66	196.967	11	197	196.9665687	6	-1 \n \
80	Hg	1.7	1.49	1.55	200.59	2	202	201.970643	6	-1 \n"
"81	Tl	1.55	1.48	1.96	204.383	3	205	204.9744275	3 \n \
82	Pb	1.54	1.48	2.02	207.2	4	208	207.9766521	4 \n \
83	Bi	1.54	1.45	1.7	208.98	5	209	208.9803987	3 \n \
84	Po	1.68	1.46	1.7	209	6	209	208.9824304	2 \n \
85	At	1.7	1.45	1.7	210	7	210	209.987148	1 \n \
86	Rn	2.4	2.4	1.7	222	8	211	210.990601	0 \n \
87	Fr	2	2	1.7	223	1	223	223.0197359	1 \n \
88	Ra	1.9	1.9	1.7	226	2	223	223.0185022	2 \n \
89	Ac	1.88	1.88	1.7	227	3	227	227.0277521	6	-1 \n \
90	Th	1.79	1.79	1.7	232.038	4	232	232.0380553	6	-1 \n \
91	Pa	1.61	1.61	1.7	231.036	3	231	231.035884	6	-1 \n \
92	U	1.58	1.58	1.86	238.029	4	238	238.0507882	6	-1 \n \
93	Np	1.55	1.55	1.7	237	5	236	236.04657	6	-1 \n \
94	Pu	1.53	1.53	1.7	244	6	238	238.0495599	6	-1 \n \
95	Am	1.51	1.07	1.7	243	7	241	241.0568291	6	-1 \n \
96	Cm	1.5	0	1.7	247	8	243	243.0613891	6	-1 \n \
97	Bk	1.5	0	1.7	247	9	247	247.070307	6	-1 \n \
98	Cf	1.5	0	1.7	251	10	249	249.0748535	6	-1 \n \
99	Es	1.5	0	1.7	252	11	252	252.08298	6	-1 \n \
100	Fm	1.5	0	1.7	257	12	257	257.095105	6	-1 \n"
"101	Md	1.5	0	1.7	258	13	258	258.098431	6	-1 \n \
102	No	1.5	0	1.7	259	14	259	259.10103	6	-1 \n \
103	Lr	1.5	0	1.7	262	15	262	262.10963	6	-1 \n \
104	Rf	1.5	0	1.7	261	4	265	265.1167	6	-1";

  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;

    // most common isotope
    commonIsotope = atoi(token->c_str());
    ++token;

    // most common isotopic mass
    commonIsotopeMass = atof(token->c_str());
    ++token;
    
    // now the valences
    valence.clear();
    while (token != tokens.end()) {
      valence.push_back(atoi(token->c_str()));
      ++token;
    }
  }
}